描述:通过java语言,设计一个学生信息管理系统。 要求:
1. 实现基本的增删改查功能 2. 采用面向对象思维 3. 在考虑到代码的可读性的前提下,尽可能多的实现封装 4. 设计初始化交互界面建立一个学生类Student 1.1. Student具有的属性:. 学号、姓名、性别、专业、年龄、成绩; 1.2. 构建默认和有参构造方法; 1.3. 设置set()和get()方法用来操作属性; 1.4. 重写toString()方法;
创建DoStudent类对Student进行操作 2.1 创建一个容器,用来存储学生信息; 2.2 设置添加学生信息方法add(); 2.3 设置删除学生信息方法delete(); 2.4 设置修改学生信息方法modify(); 2.5 设置显示学生信息方法show();
创建Test类,测试完整的程序 3.1 创建初始化方法init(); 3.2 测试完整程序;
Student类:
public class Student { //学生属性 String sno; String name; String sex; String major; int age; int grade; //默认构造方法 public Student() { } //有参构造方法 public Student(String sno, String name, String sex, String major, int age, int grade, Scanner sc, String[] data) { super(); this.sno = sno; this.name = name; this.sex = sex; this.major = major; this.age = age; this.grade = grade; this.sc = sc; this.data = data; } //get()、set()方法 public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } public Scanner getSc() { return sc; } public void setSc(Scanner sc) { this.sc = sc; } public String[] getData() { return data; } public void setData(String[] data) { this.data = data; } //重写toString方法 @Override public String toString() { return "Student [sno=" + sno + ", name=" + name + ", sex=" + sex + ", major=" + major + ", age=" + age + ", grade=" + grade + ", sc=" + sc + ", data=" + Arrays.toString(data) + "]"; }DoStudent类:
// 添加学生信息 public void add() { System.out.print("请输入要添加的学生信息:"); String s = sc.nextLine(); String[] temp = new String[data.length + 1]; System.arraycopy(data, 0, temp, 0, data.length); temp[temp.length - 1] = s; data = temp; } // 移除指定学生信息 public String delete() { System.out.print("请输入要移除的学生编号:"); int index = sc.nextInt(); String s = data[index]; String[] temp = new String[data.length - 1]; System.arraycopy(data, 0, temp, 0, index); System.arraycopy(data, index + 1, temp, index, data.length - 1 - index); data = temp; return s; } // 修改指定学生信息 public String modify() { System.out.print("请输入要修改的学生编号和信息:"); int index = sc.nextInt(); String s = sc.nextLine(); data[index] = s; return data[index]; } // 展示学生信息 public void show() { System.out.println("学生的基本信息如下:"); for (int i = 0; i < data.length; i++) { System.out.println(data[i]); } }Test类:
// 初始化界面 public void init() { System.out.println("-------欢迎进入xx学生管理系统-------"); System.out.println("--请根据的你需要,输入相应的指令进行操作"); System.out.println("输入数字" + 1 + ",添加学生信息."); System.out.println("输入数字" + 2 + ",修改学生信息."); System.out.println("输入数字" + 3 + ",删除学生信息."); System.out.println("输入数字" + 4 + ",查询学生信息."); System.out.println("输入exit,退出学生管理系统."); while (true) { int n = sc.nextInt(); if (n == 1 || n == 2 || n == 3 || n == 4) { switch (n) { case 1: add(); break; case 2: modify(); break; case 3: delete(); break; case 4: show(); break; default: break; } } else { return; } } }基于Java的学生信息管理系统基本完成,相应的功能已经实现,基本上达到要求,但是在实际的编程中发现,本系统还有许多方面可以进行优化:
虽然功能基本实现,但是代码的复用性,可读性还有待提升;基本的增删该查功能已经实现,但是可以在此基础上扩展更多的功能;本系统以数组作为容纳容器存储学生信息,但是基于数组的缺陷(数组的长度一旦定义则不可修改),导致容器与实际学生需求存在误差,系统的扩展性较差;综上,考虑到目前所学知识的局限性,无法更好的优化,所以唯有后续学习更深入的知识,用更好的方法优化以上问题。