这是一个学生信息管理系统的主界面,要按照以上菜单内容完成各个功能的实现
首先定义一个学生类
//学生类
public class Student
有四个成员变量,分别是学号、姓名、年龄和居住地址,全部定义为String类型,方便存储在集合ArrayList中
private String sid;//学号
private String name;//姓名
private String age;//年龄
private String address;//居住地址
成员变量用private修饰,便于封装,get/set方法可以使用快捷键完成,先按快捷键shift+alt+s,再找到Generate Getters and Setters,选择全部成员变量,最后确认即可
//get/set
public String getSid() {
return sid;
}
public void setSid(String sid2) {
this.sid = sid2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age2) {
this.age = age2;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
再添加无参和带参构造方法,同样可以使用上一步的快捷键操作,选择Generate Constructor using Fields,这样学生类部分的代码就完成了
//无参构造方法
public Student() {
}
//带四个参数构造方法
public Student(String sid,String name,String age,String address) {
this.sid=sid;
this.name=name;
this.age=age;
this.address=address;
}
接着写测试类部分
先在主函数中通过输出语句显示学生信息管理系统的菜单,以及用switch选择语句进行人机交互的操作部分
// 主界面
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("请输入你的选择:");
Scanner sc = new Scanner(System.in);
int choose = sc.nextInt();
switch (choose) {
case 1:
addStu(array);
break;
case 2:
deleteStu(array);
break;
case 3:
changeStu(array);
break;
case 4:
findStu(array);
break;
case 5:
System.out.println("感谢使用");
System.exit(0);
default:
System.out.println("输入指令错误");
}
}
}
别忘了在主函数开头创建一个集合对象
// 创建集合对象,用于存储学生数据
ArrayList<Student> array = new ArrayList<Student>();
下面开始写用于各个功能的方法代码
添加功能,通过Scanner语句录入学生的信息,注意学号是否重复的问题,可以定义一个flag进行判断,接着创建一个新的学生对象,将录入的信息填入学生类中,最后将学生类中的信息添加到集合当中
// 添加学生信息
public static void addStu(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
String sid;
while (true) {
System.out.println("请输入学生学号:");
sid = sc.nextLine();
boolean flag = isUsed(array, sid);
if (flag) {
System.out.println("学号重复,请重新输入");
} else {
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();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功");
}
查看功能,首先判断传进去的集合是否为空,若不为空,再遍历集合按照格式输出所有的学生信息
// 查看所有学生信息
public static void findStu(ArrayList<Student> array) {
// 判断集合中是否有数据
if (array.size() == 0) {
System.out.println("无信息,请先添加信息后再查看信息");
} else {
// 显示表头信息 \t就是tab键
System.out.println("学号\t姓名\t年龄\t居住地址");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());
}
}
}
删除功能,输入要删除的学号,遍历集合找到该学号,用remove方法删除信息,要注意是否存在你要删除的学生的信息
// 删除学生信息
public static void deleteStu(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生学号:");
String sid = sc.nextLine();
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
Student student = array.get(i);
if (student.getSid().equals(sid)) {
flag = true;
array.remove(i);
System.out.println("删除成功");
break;
}
}
if (flag == false) {
System.out.println("没有找到你要删除的学生");
}
}
修改功能,输入要修改的学生学号,再将新的信息录入,也要注意该学生是否存在的问题,注释部分使用集合set方法修改也可代替下面部分用于修改信息
// 修改学生信息
public static void changeStu(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String sid = sc.nextLine();
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();
// s.setSid(sid);
// s.setName(name);
// s.setAge(age);
// s.setAddress(address);
//
// for(int i=0;i<array.size();i++) {
// Student student = array.get(i);
// if(student.getSid().equals(sid)) {
// array.set(i, s);
// System.out.println("修改成功");
// break;
// }
// }
boolean flag = false;// 判断是否存在
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
flag = true;
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
System.out.println("修改成功");
break;
}
}
if (flag == false) {
System.out.println("没有找到你要修改的学生");
}
}
另外多加了一个方法用于在添加功能中判断学号是否重复
// 判断学号是否重复
public static boolean isUsed(ArrayList<Student> array, String sid) {
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
flag = true;
break;
}
}
return flag;
}
最后附一个完整代码
package StudentManage;
//学生类
//快捷键shift+alt+s,生成构造方法或者get、set方法
public class Student {
private String sid;//学号
private String name;//姓名
private String age;//年龄
private String address;//居住地址
//无参构造方法
public Student() {
}
//带四个参数构造方法
public Student(String sid,String name,String age,String address) {
this.sid=sid;
this.name=name;
this.age=age;
this.address=address;
}
//get/set
public String getSid() {
return sid;
}
public void setSid(String sid2) {
this.sid = sid2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age2) {
this.age = age2;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package StudentManage;
import java.util.ArrayList;
import java.util.Scanner;
//学生管理系统测试类
public class StudentManageDemo {
// 判断学号是否重复
public static boolean isUsed(ArrayList<Student> array, String sid) {
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
flag = true;
break;
}
}
return flag;
}
// 修改学生信息
public static void changeStu(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String sid = sc.nextLine();
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();
// s.setSid(sid);
// s.setName(name);
// s.setAge(age);
// s.setAddress(address);
//
// for(int i=0;i<array.size();i++) {
// Student student = array.get(i);
// if(student.getSid().equals(sid)) {
// array.set(i, s);
// System.out.println("修改成功");
// break;
// }
// }
boolean flag = false;// 判断是否存在
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
flag = true;
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
System.out.println("修改成功");
break;
}
}
if (flag == false) {
System.out.println("没有找到你要修改的学生");
}
}
// 删除学生信息
public static void deleteStu(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学生学号:");
String sid = sc.nextLine();
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
Student student = array.get(i);
if (student.getSid().equals(sid)) {
flag = true;
array.remove(i);
System.out.println("删除成功");
break;
}
}
if (flag == false) {
System.out.println("没有找到你要删除的学生");
}
}
// 查看所有学生信息
public static void findStu(ArrayList<Student> array) {
// 判断集合中是否有数据
if (array.size() == 0) {
System.out.println("无信息,请先添加信息后再查看信息");
} else {
// 显示表头信息 \t就是tab键
System.out.println("学号\t姓名\t年龄\t居住地址");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());
}
}
}
// 添加学生信息
public static void addStu(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
String sid;
while (true) {
System.out.println("请输入学生学号:");
sid = sc.nextLine();
boolean flag = isUsed(array, sid);
if (flag) {
System.out.println("学号重复,请重新输入");
} else {
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();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.add(s);
System.out.println("添加成功");
}
public static void main(String[] args) {
// 创建集合对象,用于存储学生数据
ArrayList<Student> array = new ArrayList<Student>();
// 主界面
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("请输入你的选择:");
Scanner sc = new Scanner(System.in);
int choose = sc.nextInt();
switch (choose) {
case 1:
addStu(array);
break;
case 2:
deleteStu(array);
break;
case 3:
changeStu(array);
break;
case 4:
findStu(array);
break;
case 5:
System.out.println("感谢使用");
System.exit(0);
default:
System.out.println("输入指令错误");
}
}
}
}
运行结果: