zoukankan      html  css  js  c++  java
  • 学生信息管理练习程序设计

    学生信息管理练习程序设计

    复习面向对象的程序设计思想、理解并掌握面向接口的程序设计思想、理解掌握三层架构的基本思想及实践。

    一、需要解决问题

    学生信息管理练习程序,实现对学生信息的管理,学生的学号、姓名、联系地址。录入学生的信息、编辑学生的信息、删除学生的信息、查询(根据学号查询、根据姓名查询)

    1.如何存储学生的基本信息

    必然要涉及很多名学生的信息,如何存储这些信息呢?一名学生就是个对象,也就是说,程序需要存储N个学生对象,最基本的方案使用对象数组。对象数组有哪些问题?

    数组的长度是固定的,引入集合

    2.List集合接口、ArrayList类

    List集合接口、ArrayList类,位于java.util包。

    有序的
    collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。

    List 接口的大小可变数组的实现。ArrayList的存储结构是数组(可变)

    **ArrayList**() 构造一个初始容量为 10 的空列表。
    **ArrayList**(Collection<? extends E> c) 构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
    **ArrayList**(int initialCapacity) 构造一个具有指定初始容量的空列表。

    void add(E e);//将指定的元素添加到此列表的尾部。

    void add(int index,E element);//将指定的元素插入到此列表中的指定位置

    void clear();//移除列表中的所有元素

    E get(int index);//返回此列表中指定位置上的元素

    boolean remove(Object o);//移除此列表中指定位置上的元素

    int size();//返回此列表中的元素数

    package demo;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Demo1 {
        public static void main(String[] args) {
            List<String> strs=new ArrayList<>();
            strs.add("Hello");
            strs.add("World");
            strs.add(0,"WWW");
            System.out.println(strs.size());
            System.out.println(strs.get(1));
            System.out.println(strs.contains("123"));
            strs.remove("Hello");
            for (String str : strs) {
                System.out.println(str);
            }
        }
    }
    package demo2;
    
    public class Student {
        private String number;
        private String name;
        private String address;
    
        public Student() {
        }
    
        public Student(String number, String name, String address) {
            this.number = number;
            this.name = name;
            this.address = address;
        }
    
        public String getNumber() {
            return number;
        }
    
        public void setNumber(String number) {
            this.number = number;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }
    package demo2;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Demo2 {
        public static void main(String[] args) {
            List<Student> stus=new ArrayList<>();
            Student s1=new Student("20181812102","张三丰","武当山");
            Student s2=new Student("20181812103","张无忌","光明顶");
            Student s3=new Student("20181812104","赵敏","元大都");
            stus.add(s1);//将元素加入到集合中
            stus.add(s2);
            stus.add(s3);
            //遍历
            for (Student student : stus) {
                System.out.println(student.getNumber()+"	"+student.getName()+"	"+student.getAddress());
            }
            //查询根据学号得到
            for (Student s : stus) {
                if(s.getNumber().equals("20181812105")){
                    System.out.println(s.getNumber()+"	"+s.getName()+"	"+s.getAddress());
                }
            }
            //如何从集合中移除对象,首先要找到欲删除的记录,然后再删除。
            for (Student s : stus) {
                if(s.getNumber().equals("20181812102")){
                    //stus.remove(s);
                    System.out.println(stus.indexOf(s));
                    stus.remove(stus.indexOf(s));
                    break;
                }
            }
            for (Student s : stus) {
                System.out.println(s.getNumber()+"	"+s.getName()+"	"+s.getAddress());
            }
        }
    }

    二、练习程序设计

    表示层功能:显示所有学生信息的列表、根据学号查询学生信息、根据姓名查询学生信息、编辑学生信息、删除学生信息、录入学生信息

    业务层功能:IStudentService接口:

    ​ List getStudents();

    ​ Student getStudentByNumber(String number);

    ​ List getStudentsByName(String name);

    ​ boolean editStudentInfo(Student stu);

    ​ boolean deleteStudentByNumber(String number);

    ​ Student addStudent(Student stu);

    数据访问层功能:IStudentDao接口:

    ​ List getStudents();

    ​ Student getStudentByNumber(String number);

    ​ List getStudentsByName(String name);

    ​ boolean updateStudentInfo(Student stu);

    ​ boolean deleteStudentByNumber(String number);

    ​ Student addStudent(Student stu);





    Autor:VincentAdamNemessis E-mail:vincent5519@yeah.net QQ:3377299629 Wechat:ZTXLoveC3344
  • 相关阅读:
    编程填空:第i位替换
    poj 2192 Zipper
    3:拦截导弹
    vijos 1006 晴天小猪历险记之Hill——数字三角形的终极变化
    数字三角形【汇总】
    codevs 1576 最长严格上升子序列
    3299 有序数组合并求第K大问题
    输出数组第k大的元素
    Java线程同步的Monitor机制(Lock配合Condition)
    堆排序Heapsort的Java和C代码
  • 原文地址:https://www.cnblogs.com/VincentAdam/p/7d49793e384a29425b0203bb97430eb0.html
Copyright © 2011-2022 走看看