学生管理系统(1)
一、前言
本文主要是实现登录学生管理系统后的功能一部分,包括实现学生类和主界面、添加学生、查看所有学生,其主界面如图
二、学生类实现
在本管理系统中,需要录入的是学生的学号、姓名和性别,所以首先要定义三个成员变量
private String id
private String name
private String gender
然后生成一个标准的JavaBean类,快捷方法参考文章:IDEA2018 中有关编写JavaBean类的小技巧(保姆级教程)
生成后将最后两行删除,代码如下:
public class student {
private String id;
private String name;
private String gender;
public student() {
}
public student(String id, String name, String gender) {
this.id = id;
this.name = name;
this.gender = gender;
}
/**
* 获取
* @return id
*/
public String getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(String id) {
this.id = id;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return gender
*/
public String getGender() {
return gender;
}
/**
* 设置
* @param gender
*/
public void setGender(String gender) {
this.gender = gender;
}
}
三、主界面实现
1.解题思路
由于这里要选择的选项很多,所以我们用 switch语句 来实现
- 创建一个集合,用来存放学生数据
- 打印输出 “-----欢迎来到学生管理系统-----”
- 打印输出“----------------------------” 和 “请选择需要执行的操作”
- 键盘输入一个数
- 运用switch语句来进行选择,并调用方法实现每个选择
- 调用无限循环语句使得每次执行操作完回到主界面
2.代码实现
public static void main(String[] args) {
ArrayList<student> list = new ArrayList<>();
Scanner in = new Scanner(System.in);
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.查看学生");
System.out.println("----------------------------");
System.out.println("请选择需要执行的操作");
int i = in.nextInt();
switch (i) {
case 1:
System.out.println("添加学生");
addStudent(list);
break;
case 2:
System.out.println("删除学生");
removeStudent(list);
break;
case 3:
System.out.println("修改学生");
modifyStudent(list);
break;
case 4:
System.out.println("查找学生");
searchStudent(list);
break;
case 5:
System.out.println("查看学生");
lookStudent(list);
break;
default:
System.out.println("输入有误,请重新输入");
break;
}
}
四、添加学生功能
1.解题思路
- 定义一个带参数的方法,需要添加学生时调用方法即可
- 参数为一个集合,用来存放数据
- 分别从键盘录入要添加学生的学号、姓名和性别
- 将键盘输入的信息添加到集合中
- 返回提示信息 “添加成功”
2.学号重复情况
当录入的学号已经存在时,我们就要提示用户重新输入,直至不重复为止,这时候我们就需要重新定义一个方法来判断学号是否重复
🟡思路
- 定义一个带参数的方法来判断输入的学号是否已经存在与集合内
- 参数为集合和输入的学号
- 定义一个 flag,使其值为 false,表示新增元素与集合中存在元素不相同
- 遍历集合,判断输入的学号是否与集合中的元素相同
- 如果相同,修改flag的值为 true 并退出循环
- 返回flag的值
- 定义一个boolean型的变量接收返回值
- 参数为增加学生方法内定义的集合名以及输入的学号
- 判断变量值;如果为true,则输出提升语句:“学号重复,请重新输入”,如果为false则退出循环
- 由于添加循环,所以学号的类型要在循环体外定义,不影响后续使用
🟡判断是否重复功能的代码
public static boolean isUsed(ArrayList<student> Array,String id){
boolean flag = false;
for (int i = 0; i < Array.size(); i++) {
student s = Array.get(i);
if(s.getId().equals(id)){
flag = true;
break;
}
}
return flag;
}
🟡在实现添加学生功能内代码
while (true) {
System.out.println("请输入学号");
id = in.next();
boolean flag = isUsed(Array, id);
if (flag) {
System.out.println("学号重复,请重新输入");
}
else {
break;
}
3.代码实现
public static void addStudent(ArrayList<student> Array){
student s = new student();
Scanner in = new Scanner(System.in);
String id;
while (true) {
System.out.println("请输入学号");
id = in.next();
boolean flag = isUsed(Array, id);
if (flag) {
System.out.println("学号重复,请重新输入");
}
else {
break;
}
}
System.out.println("请输入姓名");
String name = in.next();
System.out.println("请输入性别");
String gender = in.next();
s.setName(name);
s.setId(id);
s.setGender(gender);
Array.add(s);
System.out.println("添加成功");
}
public static boolean isUsed(ArrayList<student> Array,String id){
boolean flag = false;
for (int i = 0; i < Array.size(); i++) {
student s = Array.get(i);
if(s.getId().equals(id)){
flag = true;
break;
}
}
return flag;
}
五、查看所有学生功能
1.解题思路
- 运用判断语句来判断集合内是否有元素存在
- 当集合内为空时,返回提示语句:“无信息,请添加后再查询”
- 当集合内有元素时,遍历集合并输出集合内元素
- 为了整齐,使用制表符 \t 来缩进
2.代码实现
public static void lookStudent(ArrayList<student> Array){
if(Array.size() == 0){
System.out.println("无信息,请添加后再查询");
}
for (int i = 0; i < Array.size(); i++) {
student s = Array.get(i);
System.out.println("学号"+"\t"+"姓名"+"\t"+"性别"+"\t");
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getGender()+"\t");
}
}
六、结语
本文实现了一部分功能,下一篇文章中会实现剩余功能