题目:学生信息管理系统设计
功能:学生信息管理系统设计,每个学生信息作为一条记录,包括姓名、学号、性别、年龄。
系统要求实现以下功能:
1、增:录入学生信息(包括学生学号、姓名、性别、年龄等);
2、删:删除指定的学生信息;
3、改:对指定的学生进行指定的信息修改;
4、查:显示学生信息列表
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。
2、完成信息的录入与显示(将学生的信息封装到student类中,设计StudentList类,将一个个学生对象储存到studentList数组中)
3、通过输入学生的姓名或者学号查找学生并将其删除(遍历学生数组,将输入的姓名或学号信息与数组中对象的属性信息进行对照,找到指定的对象,并删除)
3、统计学生总数(在StudentLIst中添加total属性,将学生的总数统计出来,以便完善系统)
5、查看所有的学生信息(通过遍历数组的方式,将学生信息一个个输出,并优化显示界面)
1.创建Student类,添加姓名、学号、性别、年龄属性以及get/set方法;
2.创建StudentList类,添加total,studentList属性。设计增删改查的函数。
3.创建Welcome类,设计菜单界面,设计用户与系统的交互操作。
4.利用项目二中的、CMUtility(工具类),完善人机交流。
5.写出系统主体所需的函数:
o.绘制菜单
a.添加学生信息
c.删除学生信息
b.通过姓名或学号查找学生
e.修改学生信息
f.替换学生
g.遍历学生数组
4.逐个完成上述主要函数
// 获取学生总数
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
// 添加学生
public boolean addStudent(Student student) {
if (total > length)
return false;
studentList[total++] = student;
return true;
}
// 删除学生
public boolean delectStudent(int index) {
if (index < 0 || index >= total) {
return false;
}
for (int i = index; i < total - 1; i++) {
studentList[i] = studentList[i + 1];
}
studentList[total-1] = null;
total -- ;
return true;
}
// 查找学生
public Student findStudent(int index) {
if (index < 0 || index >= total)
return null;
return studentList[index];
}
// 学号查找学生
public int findStudent1(int number) {
int i;
for (i = 0; i < total; i++) {
if (studentList[i].getNumber() == number)
break;
}
if (i == total)
return -1;
return i;
}
// 姓名查找学生
public int findStudent2(String name) {
int i;
for (i = 0; i < total; i++) {
if (studentList[i].getName().equals(name))
break;
}
if (i == total)
return -1;
return i;
}
// 替换学生
public boolean replaceStudent(int index, Student student) {
if (index < 0 || index >= total)
return false;
studentList[index] = student;
return true;
}
这是第三次写项目了。
由于前不久C语言刚考的学生成绩管理系统与本次考核项目相似,所以整体耗费时间较少,相对与学到新的知识,更多的是将旧的知识得到了巩固。
在写项目的过程中,发现有许多知识都遗忘了。
比如:Student类中 属性的封装、权限设置、get/set方法快捷生成、构造器的代码编写 :
public + 类名{};等一些语法上的遗忘。
除此之外,还遇到了 通过姓名或学号来查找学生。这个时候我想到了“多态”——只用一个函数,兼容接收用户输入的 “学号”或 “姓名” 两种不同的数据类型。但由于自身对多态性的了解不够深入,以及长时间没有复习,所以暂时没有将多态利用到这一步操作中。
通过这次项目的制作,虽然有许多问题解决思路都比较熟悉,但收获还是挺大的——java语法的巩固,首次尝试将多态性运用到项目中、代码手感······当然,也或多或少也积累了一些项目经验。这次的项目实践,也激发了我向编程更深处探索的欲望。希望今后还有机会进行这样的项目实习。