目的:实现一个具有以下功能的学生管理系统
1、添加学生信息
2、删除学生信息
3、修改学生信息
4、查询指定学生信息
5、查询所有学生信息
(主要采用的是map集合)
先来看看main方法的整体架构:
static Scanner sc = new Scanner(System.in); static Mapstudents = new HashMap<>();
public static void main(String[] args) {
print();
boolean flag = true;
while (flag) {
int n = showMenu();
switch (n) {
case 1:
addData();
break;
case 2:
deleteData();
break;
case 3:
updateData();
break;
case 4:
selectOneData();
break;
case 5:
selectAllData();
break;
default:
flag = false;
break;
}
}
再者是其中方法的细节内容
0、程序标题及菜单界面
public static void print() {
System.out.println("***********************");
System.out.println("* *");
System.out.println("* 学生信息管理系统 *");
System.out.println("* *");
System.out.println("***********************");
}
public static int showMenu() {
System.out.println("***********************");
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");
System.out.println("4、查询指定学生信息");
System.out.println("5、查询所有学生信息");
System.out.println("6、退出程序");
System.out.println("***********************");
System.out.print("请选择你的输入(只能输入1、2、3、4、5、6):");
return sc.nextInt();
}
1、添加学生信息
public static void addData() {
System.out.print("请输入学生id:");
int id_add = sc.nextInt();
while (true){
if (students.containsKey(id_add)){
System.out.print("该学号已经存在,请更换学号输入:");
id_add = sc.nextInt();
} else {
break;
}
}
System.out.print("请输入学生姓名:");
String name_add = sc.next();
System.out.print("请输入学生性别:");
String sex_add = sc.next();
System.out.print("请输入学生成绩:");
double score_add = sc.nextDouble();
students.put(id_add, new Student(name_add, sex_add, score_add));
}
2、删除学生信息
public static void deleteData() {
System.out.print("请输入要删除的学生学号");
while (true){
int id_delete = sc.nextInt();
if (students.containsKey(id_delete)){
students.remove(id_delete);
System.out.println("学号为"+id_delete+"的学生已经被删除!");
break;
} else {
System.out.print("不存在该学生信息,请再次输入学号:");
}
}
}
3、修改学生信息
public static void updateData() {
System.out.print("请输入要更改的学生学号:");
while (true){
int id_update= sc.nextInt();
if (students.containsKey(id_update)){
System.out.print("请输入学生姓名:");
String name_update = sc.next();
System.out.print("请输入学生性别:");
String sex_update = sc.next();
System.out.print("请输入学生成绩:");
double score_update = sc.nextDouble();
students.put(id_update, new Student(name_update, sex_update, score_update));
break;
} else {
System.out.print("不存在该学生信息,请再次输入学号:");
}
}
}
4、查询指定学生信息
public static void selectOneData() {
System.out.print("请输入要查询的学生学号:");
while (true){
int id_select = sc.nextInt();
if (students.containsKey(id_select)){
System.out.println("--------------------");
System.out.println("姓名:" + students.get(id_select).getName());
System.out.println("性别:" + students.get(id_select).getSex());
System.out.println("成绩:" + students.get(id_select).getScore());
System.out.println("--------------------");
break;
} else {
System.out.print("不存在该学生信息,请再次输入学号:");
}
}
}
5、查询所有学生信息
public static void selectAllData() {
for (Map.Entry entry : students.entrySet()) {
System.out.println("--------------------");
System.out.println("学号:" + entry.getKey());
System.out.println("姓名:" + entry.getValue().getName());
System.out.println("性别:" + entry.getValue().getSex());
System.out.println("成绩:" + entry.getValue().getScore());
System.out.println("--------------------");
}
}
最后再来展示一下Student类
public class Student {
private String name;
private String sex;
private double score;
public Student() {
}
public Student(String name, String sex, double score) {
this.name = name;
this.sex = sex;
this.score = score;
}
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 double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + ''' +
", sex='" + sex + ''' +
", score=" + score +
'}';
}
}


