学生管理系统
一:案例需求:
针对目前我们的所学内容,完成一个综合案例:
学生管理系统!该系统主要功能如下:
(1)添加学生:通过键盘录入学生信息,将该学生添加到集合中
(2)删除学生:通过键盘录入学生的学号,将该学生从集合中删除
(3)修改学生:通过键盘录入学生的学号,将该学生其他信息进行修改
(4)查看学生:将集合中的所有学生信息进行展示
(5)退出系统:结束程序
二:实现步骤:
-
定义学生类,包含以下成员变量
学生类:
Student成员变量:属性私有化,提供公共的访问方式
学号:sid String
姓名:name String
年龄:age String
地址:address String
构造方法:
空参构造
有参构造 -
学生管理系统主界面的搭建
主界面内容举例:
***** 欢迎来到学生管理系统 *****
请录入您要进行的操作:
1、添加学生信息
2、删除学生信息
3、修改学生信息
4、查看学生信息
5、退出当前系统
要求:输入对应的序号,进行对应的功能实现,实现之后,需要再次提示录入,进行下 次操作,直到录入5,退出系统才结束整个操作。 -
学生管理系统的添加学生功能实现步骤
3.1 用键盘录入选择添加学生
3.2 定义一个方法,用于添加学生
注意:
(1)要求添加学生的学号、姓名、年龄、地址
(2)添加的学号不能重复,如果重复提示学号已有,重新录入
(3)录入之后,将学生添加到集合中
(3)添加成功后,提示添加成功,继续下次操作 -
学生管理系统的查看学生功能实现步骤
4.1 录入对应序号,查看所有的学生的信息
4.2 定义一个方法,用于展示集合中所有学生信息 -
学生管理系统的删除学生功能实现步骤
5.1 录入对应序号,进行删除功能
5.2 用键盘录入学号选择删除哪一个学生信息(根据学号删除)
5.2 定义一个方法,用于删除学生信息
注意:
(1)键盘录入要删除的学生学号
如果该学生存在,则删除,之后提示删除成功
如果学生不存在,提示没有该学生,重新进行删除操作
(2)删除之后,提示成功,然后进行下次操作 -
学生管理系统的修改学生功能实现步骤
6.1 录入对应序号,进行修改功能
6.2 用键盘录入学号,选择修改哪一个学生信息(根据学号修改)
6.2 定义一个方法,用于修改学生信息
注意:
(1)键盘录入要修改的学生学号
如果存在该学生则将该学生除学号外的其他信息进行修改
如果不存在该学生则提示没有此人,重新进行修改操作
(3)修改之后,提示成功,然后进行下次操作
代码实现
import java.util.ArrayList;
import java.util.Scanner;
public class StuManagement {
static Scanner sc = new Scanner(System.in);
static ArrayList<Student> list = new ArrayList<>();
public static void main(String[] args) {
System.out.println("*******欢迎来到天上人间学生管理系统*******");
while(true){
System.out.println("请录入序号,进行对应的服务");
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");
System.out.println("4、查看学生信息");
System.out.println("5、退出系统");
String x = sc.nextLine();
switch(x){
case "1":
addStu();
break;
case "2":
removeStu();
break;
case "3":
alterStu();
break;
case "4":
checkStu();
break;
case "5":
System.out.println("欢迎下次使用!!");
System.exit(0);
}
}
}
private static void removeStu() {
System.out.println("请录入您要删除的学生学号:");
String id = sc.nextLine();
for(int i = 0;i <= list.size()-1;i++){
Student stu = list.get(i);
String sid = stu.getSid();
if(id.equals(sid)){
list.remove(stu);
System.out.println("该学生删除成功!!!");
return;
}
}
System.out.println("学校没有该学生!");
System.out.println("请重新操作!");
}
private static void alterStu() {
System.out.println("请录入要修改学生的学号:");
String id = sc.nextLine();
for(int i = 0;i <= list.size()-1;i++){
Student stu = list.get(i);
String sid = stu.getSid();
if(id.equals(sid)){
System.out.println("请录入新的姓名:");
String newname = sc.nextLine();
System.out.println("请录入新的年龄:");
String newage = sc.nextLine();
System.out.println("请录入新的地址:");
String newaddress = sc.nextLine();
stu.setSname(newname);
stu.setSage(newage);
stu.setSaddress(newaddress);
System.out.println("信息修改成功!!!");
return;
}
}
System.out.println("该学校没有该学生!!!");
System.out.println("请重新操作!!!");
}
private static void checkStu() {
System.out.println("学生的信息如下:");
System.out.println("学号" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "地址");
for(Student stu:list){
System.out.println(stu.getSid() + "\t" + stu.getSname() + "\t" + stu.getSage() + "\t" + stu.getSaddress());
}
}
private static void addStu() {
System.out.println("请添加一个学生信息");
System.out.println("请录入学生的学号:");
String id = null;
while(true){
int count = 0;
id = sc.nextLine();
//录入学号之后,需要判断该学号是否已经存在
//如果没有存在就继续录入后面的信息
//如果该学号存在,提示有该学号,重新录入
for(int i = 0;i <= list.size()-1;i++){
Student stu = list.get(i);
String sid = stu.getSid();
if(sid.equals(id)){
System.out.println("该学号已经存在,请重新录入");
count++;
}
}
//如果循环结束后,没有一次相等,就结束死循环
if(count == 0){
break;
}
}
System.out.println("请录入学生的姓名:");
String name = sc.nextLine();
System.out.println("请录入学生的年龄:");
String age = sc.nextLine();
System.out.println("请录入学生的地址:");
String address = sc.nextLine();
Student s = new Student(id,name,age,address);
list.add(s);
System.out.println("学生添加成功!!!");
}
}