0%

学生管理系统

StudentManagerSystem

学生管理系统-java


说明

  • 学生属性:学号,姓名,年龄,性别
  • 功能:
  • 遍历所有学生信息
  • 添加学生信息
  • 根据学号查找学生
  • 根据名字查找学生
  • 根据学号删除学生
  • 根据姓名修改学生

代码包

项目包 #### 功能界面 初始化 根据学号查找 根据名字查找 添加学生 显示添加 退出

代码……

MyUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    package com.hycc.school;
import java.util.Scanner;
//工具类,得到输入和随机数
public class MyUtil {
private MyUtil() {
}
/*
* 得到指定区间随机数
* @param min包含
* @param max不包含
* @return
*/
public static int getRandomNumber(int min,int max) {
return (int)(Math.random()*(max-min)+min);
}

/**
* 给用户提示信息的同时,请用户输入一个整数
* @param msg
* @param scanner
* @return
*/
public static int getInputNumber(String msg,Scanner scanner) {
System.out.println(msg);
return scanner.nextInt();
}
/**
* 给用户提示信息的同时,请用户输入一个字符串
* @param msg
* @param scanner
* @return
*/
public static String getInputString(String msg,Scanner scanner) {
System.out.println(msg);
return scanner.next();
}
}
Student.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 package com.hycc.school;
/**
* 学生属性:学号,姓名,年龄,性别
* @author Administrator
*
*/

//创建实体类
public class Student {
private int sid;
private String name;
private int age;
private Gender gender;//性别枚举

public Student() {
}
public Student(int sid,String name,int age,Gender gender) {
this.sid=sid;
this.name=name;
this.age=age;
this.gender=gender;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}

@Override
public String toString() {
return "学生信息 ["
+ "学号=" + sid + ","
+ "姓名=" + name + ", "
+ "年龄=" + age + ", "
+ "性别=" + gender + "]";
}





}
enum Gender{
男,女
}
StudentInterface.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.hycc.school;
/*
* 功能:
* 遍历所有学生信息
* 添加学生信息
* 根据学号查找学生信息
* 根据名字查找学生
* 根据学号删除学生
* 根据学号修改学生
*/

import java.util.List;

public interface StudentInterface {
//遍历所有学生信息
void showAll();
/*
* 添加学生信息
* @return 添加成功,返回true,否则false
*/
boolean addStudent();
/*
* 根据学号查找学生信息
*@return 被找到的学生对象,如果不存在,返回null
*/
Student findStuBySid(int sid);
/*
* 根据名字查找学生
* @return 返回所有该名字为name的学生的列表,如果不存在,返回null
*/
List<Student> findStusByName(String name);
/*
* 根据学号删除学生
* @param sid
* @return 如果删除成功,返回true;否则false
*/
boolean removeStuBySid(int sid);
/*
* 根据学号修改学生
* @param sid
* @return 如果修改成功,返回true,否则false
*/
boolean modifyStuBySid(int sid);

}
StudentSystem.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package com.hycc.school;

import java.util.*;

public class StudentSystem implements StudentInterface{
//使用hashMap保存所有的学生信息,容器中的Enter的key是学号,value就是学号对应的学生对象
private Map<Integer,Student> students = new HashMap<>();
private Scanner scanner = new Scanner(System.in);

public void welcome() {
System.out.println("***********欢迎来到学生管理系统************");
System.out.println("系统初始化成功......");
}
public void exit() {
System.out.println("****************谢谢使用本管理系统****************");
}

/**
* 显示系统菜单
*/
public void showMenu() {
System.out.println("\n操作菜单内容:");
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("7-->退出系统");
}





//遍历所有学生信息
@Override
public void showAll() {
//得到所有的学号
Set<Integer> sids = students.keySet();
Iterator<Integer> iterator = sids.iterator();
while(iterator.hasNext()) {
Integer sid = iterator.next();
Student student = students.get(sid);
System.out.println(student);
}
}

/*
* 添加学生信息
* @return 添加成功,返回true,否则false
*/
@Override
public boolean addStudent() {
// System.out.println("请输入学生学号,要求整数:");
// int sid = scanner.nextInt();
int sid = MyUtil.getInputNumber("请输入学生学号,要求是整数:", scanner);
String name = MyUtil.getInputString("请输入学生姓名:", scanner);
int age=MyUtil.getInputNumber("请输入学生年龄:", scanner);
Gender gender = MyUtil.getInputString("请输入学生性别:男 or 女", scanner).equals("男")?Gender.男:Gender.女;

Student s = new Student(sid,name,sid,gender);
students.put(sid,s);
System.out.println("添加学生成功!");
return false;
}
/**
* 根据学号查找学生
*/
@Override
public Student findStuBySid(int sid) {
Student student = students.get(sid);
if(student != null) {
System.out.println(student);
}else {
System.out.println("该学生不存在!");
}
return student;
}

public Student findStuBySid() {
int sid = MyUtil.getInputNumber("请输入要查找的学生的学号:", scanner);
return findStuBySid(sid);
}
/*
* 根据名字查找学生
* @param name
* @return 返回所有该名字为name的学生列表,若不存在返回null
*/
@Override
public List<Student> findStusByName(String name) {
List<Student> list = new ArrayList<>();
//遍历所有的学生,然后和name逐个比较
Collection<Student> stus = students.values();
Iterator<Student> iterator= stus.iterator();
while(iterator.hasNext()) {
Student student = iterator.next();
if(student.getName().equals(name)) {
list.add(student);
}
}
return list.size() == 0?null : list;
}

public void findStusByName(){
String name = MyUtil.getInputString("请输入要查找的学生的姓名:", scanner);
List<Student> stus = findStusByName(name);
if(stus==null) {
System.out.println("该姓名的学生不存在!");
}else {
//打印所有学生信息
System.out.println("查找到的学生信息如下:");
for(int i=0;i<stus.size();i++) {
System.out.println(stus.get(i));
}
}
}

/*
* 根据学号删除
*@param sid
*@return 删除成功,返回true;否则false
*/
@Override
public boolean removeStuBySid(int sid) {
Student student = students.remove(sid);
return student==null?false:true;
}

public void removeStuBySid() {
int sid = MyUtil.getInputNumber("请输入要删除的学生的学号:", scanner);
boolean bool = removeStuBySid(sid);
if(true) {
System.out.println("删除学生成功!");
}else {
System.out.println("该学生不存在!");
}
}

/**
* 根据学号修改学生
* @param sid
* @return 修改成功返回true;否则false
*/
@Override
public boolean modifyStuBySid(int sid) {
Student student = students.get(sid);
if(student!=null) {
sid = MyUtil.getInputNumber("请输入新的学生学号,要求是整数:", scanner);
String name = MyUtil.getInputString("请输入新的学生姓名:", scanner);
int age=MyUtil.getInputNumber("请输入新的学生年龄:", scanner);
Gender gender = MyUtil.getInputString("请输入新的学生性别:男 or 女", scanner).equals("男")?Gender.男:Gender.女;
student.setAge(age);
student.setName(name);
student.setGender(gender);
student.setSid(sid);
}
return student == null?false:true;
}

public void modifyStuBySid() {
int sid = MyUtil.getInputNumber("请输入要修改的学生的学号:", scanner);
boolean bool = modifyStuBySid(sid);
if(bool) {
System.out.println("修改学生信息成功!");
}else {
System.out.println("学生不存在!");
}
}


}
TestStudentSystem.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.hycc.school;

import java.util.Scanner;

/**
* 学生管理系统
* 学生属性:学号,姓名,年龄,性别
* 功能:
* 遍历所有学生信息
* 添加学生信息
* 根据学号查找学生信息
* 根据名字查找学生
* 根据学号删除学生
* 根据姓名修改学生
* @author hycc
*/
public class TestStudentSystem {
public static void main(String[] args) {
StudentSystem system = new StudentSystem();
//显示欢迎信息
system.welcome();
Scanner scanner = new Scanner(System.in);
while(true) {
system.showMenu();
int input = MyUtil.getInputNumber("请选择您的操作:", scanner);
switch(input) {
case 1:
system.showAll();
break;
case 2:
system.addStudent();
break;
case 3:
system.findStuBySid();
break;
case 4:
system.findStusByName();
break;
case 5:
system.removeStuBySid();
break;
case 6:
system.modifyStuBySid();
break;
case 7:
system.exit();
return ;
}
}
}
}