学生信息管理系统应当包含查看所有学生信息、添加学生信息、修改学生信息、删除学生信息等功能。每个学生都应该包含学号、姓名、性别、联系电话、家庭地址等信息,其中学号还应该具有唯一性。
学生类之中应该包含学生的相关属性以及设置和获取相关属性值的方法,类的无参和有参构造方法。
用户可以通过菜单管理学生的信息
菜单中应包含查看所有学生信息、添加学生信息、删除学生信息、修改学生信息、退出系统等选项,用户选择相应的选项,便可执行相关的功能。
思路:使用switch实现用户选择相应的选项,执行相关的功能,只要用户没有选择退出键,查询就会一直执行下去,直至用户选择退出系统为止。
思路:如果集合中没有元素,则在控制台提示“系统中没有学生的信息,请先选择"添加"选项,添加学生。”如果有元素,则遍历集合中的元素,并在控制台输出所有学生的信息。
思路:输入学生学号后,会遍历集合中所有的元素,查看学号是否已存在,如果已存在,则在控制台提示,并重新输入;如果不存在,则继续输入其他信息。
思路:输入要删除学生的学号后,遍历集合中所有的元素,查看学号是否存在,如果不存在,则在控制台提示;如果存在,则输出相关学生的全部信息,让用户确认是否删除,以免误删。
思路:输入要修改学生的学号后,遍历集合中所有的元素,查看学号是否存在,如果不存在,则在控制台提示;如果存在,则输出相关学生的全部信息,让用户确认是否修改,以免修改错误。若用户选择修改,则继续输入除学号外的其他信息,学号是不能修改的。
/*
* 这是一个学生类,包含学生的相关属性以及设置和获取相关属性值的方法,类的无参和有参构造方法。
* 其中属性值包括:学号、姓名、性别、联系电话、家庭地址
*/
public class Student {
// 定义学生的相关属性变量
private String student_id;
private String student_name;
private String student_sex;
private String student_telephone;
private String student_address;
public Student() {
}
public Student(String student_id, String student_name, String student_sex, String student_telephone,
String student_address) {
this.student_id = student_id;
this.student_name = student_name;
this.student_sex = student_sex;
this.student_telephone = student_telephone;
this.student_address = student_address;
}
public String getStudent_id() {
return student_id;
}
public void setStudent_id(String student_id) {
this.student_id = student_id;
}
public String getStudent_name() {
return student_name;
}
public void setStudent_name(String student_name) {
this.student_name = student_name;
}
public String getStudent_sex() {
return student_sex;
}
public void setStudent_sex(String student_sex) {
this.student_sex = student_sex;
}
public String getStudent_telephone() {
return student_telephone;
}
public void setStudent_telephone(String student_telephone) {
this.student_telephone = student_telephone;
}
public String getStudent_address() {
return student_address;
}
public void setStudent_address(String student_address) {
this.student_address = student_address;
}
}
import java.util.ArrayList;
import java.util.Scanner;
/*
* 这是一个学生管理系统的主体类
* 开发过程:
* 1.编写学生类
* 2.编写学生信息管理系统的菜单(即主界面)
* 3.编写查询所有学生信息的方法
* 4.编写添加学生信息的方法,其中要保证学生的学号唯一
* 5.编写删除学生信息的方法
* 6.编写修改学生相关信息的方法
*/
public class StudentManagerTest {
public static void main(String[] args) {
// 创建集合对象
ArrayList array = new ArrayList();
while (true) {
// 菜单
System.out.println("-----------欢迎进入学生信息管理系统-----------");
System.out.println("请选择相关选项对学生信息进行管理...\n");
System.out.println("1.查看所有学生信息");
System.out.println("2.添加学生信息");
System.out.println("3.删除学生信息");
System.out.println("4.修改学生信息");
System.out.println("5.退出系统\n");
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 接收选项数据
System.out.println("请输入你的选项:");
String option = sc.nextLine();
switch (option) {
// 查看所有学生信息
case "1":
findAllStudentInfo(array);
break;
// 添加学生信息
case "2":
addStudentInfo(array);
break;
// 删除学生信息
case "3":
deleteStudentInfo(array);
break;
// 修改学生信息
case "4":
updateStudentInfo(array);
break;
// 退出系统
case "5":
System.out.println("退出系统成功!");
// 关闭Java虚拟机
System.exit(0);
break;
// 输入错误
default:
System.out.println("\n输入错误,请重新选择!\n");
break;
}
}
}
// 查询所有学生信息
public static void findAllStudentInfo(ArrayList array) {
// 查询功能
if (array.size() == 0) {
System.out.println("\n系统中没有学生的信息,请先选择\"添加\"选项,添加学生。\n");
return;
}
System.out.println();
System.out.println("-----------欢迎查看所有学生信息-----------");
System.out.println("学号\t\t姓名\t性别\t联系电话\t\t家庭地址");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (i != array.size() - 1)
System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
+ s.getStudent_telephone() + "\t" + s.getStudent_address());
else
System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
+ s.getStudent_telephone() + "\t" + s.getStudent_address() + "\n");
}
}
// 添加学生信息
public static void addStudentInfo(ArrayList array) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
String student_id;
System.out.println();
while (true) {
// 输入学生信息
System.out.print("请输入学号:");
student_id = sc.nextLine();
// 定义标记
boolean flag = false;
// 判断学号是否已存在
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getStudent_id().equals(student_id)) {
flag = true;
break;
}
}
if (flag)
System.out.println("你输入的学号已存在,请重新输入!\n");
else
break;
}
System.out.print("请输入姓名:");
String student_name = sc.nextLine();
System.out.print("请输入性别:");
String student_sex = sc.nextLine();
System.out.print("请输入联系方式:");
String student_telephone = sc.nextLine();
System.out.print("请输入家庭地址:");
String student_address = sc.nextLine();
// 创建学生对象
Student s = new Student();
s.setStudent_id(student_id);
s.setStudent_name(student_name);
s.setStudent_sex(student_sex);
s.setStudent_telephone(student_telephone);
s.setStudent_address(student_address);
// 把学生对象作为元素添加到集合中
array.add(s);
// 输出提示信息
System.out.println("\n添加成功!\n");
}
// 删除学生信息
public static void deleteStudentInfo(ArrayList array) {
// 创建键盘输入对象
Scanner sc = new Scanner(System.in);
// 输入要删除学生的学号
System.out.println();
System.out.print("请输入你要删除的学生的学号:");
String student_id = sc.nextLine();
// 定义标记
int index = -1;
// 查询用户输入的学号是否存在
Student s = null;
for (int i = 0; i < array.size(); i++) {
s = array.get(i);
if (s.getStudent_id().equals(student_id)) {
index = i;
break;
}
}
if (index == -1)
System.out.println("\n没有查找到你所输入的学号,请检查学号是否输入正确。\n");
else {
System.out.println("\n你要删除的学号对应的学生信息如下,是否删除?\n输入\"1\"选择\"是\",输入任意键选择\"否\"\n");
System.out.println("学号\t\t姓名\t性别\t联系电话\t\t家庭地址");
System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
+ s.getStudent_telephone() + "\t" + s.getStudent_address() + "\n");
System.out.print("请输入:");
String j = sc.nextLine();
switch (j) {
case "1":
array.remove(index);
System.out.println("\n删除学号为:" + student_id + "的学生成功\n");
break;
default:
System.out.println("\n删除学号为:" + student_id + "的学生失败\n");
break;
}
}
}
// 更改学生的相关信息
public static void updateStudentInfo(ArrayList array) {
// 创建键盘输入对象
Scanner sc = new Scanner(System.in);
// 输入要修改学生的学号
System.out.println();
System.out.print("请输入你要修改的学生的学号:");
String student_id = sc.nextLine();
// 定义标记
int index = -1;
Student s = null;
for (int i = 0; i < array.size(); i++) {
s = array.get(i);
if (s.getStudent_id().equals(student_id)) {
index = i;
break;
}
}
if (index == -1)
System.out.println("\n没有查找到你所输入的学号,请检查学号是否输入正确。\n");
else {
System.out.println("\n你要修改的学号对应的学生信息如下,是否修改?\n输入\"1\"选择\"是\",输入任意键选择\"否\"\n");
System.out.println("学号\t\t姓名\t性别\t联系电话\t\t家庭地址");
System.out.println(s.getStudent_id() + "\t" + s.getStudent_name() + "\t" + s.getStudent_sex() + "\t"
+ s.getStudent_telephone() + "\t" + s.getStudent_address() + "\n");
System.out.print("请输入:");
String j = sc.nextLine();
switch (j) {
case "1":
System.out.println();
// 输入要修改的数据
System.out.print("请输入新姓名:");
String student_name = sc.nextLine();
System.out.print("请输入新性别:");
String student_sex = sc.nextLine();
System.out.print("请输入新联系方式:");
String student_telephone = sc.nextLine();
System.out.print("请输入新地址:");
String student_address = sc.nextLine();
// 修改集合中的学生的信息
s.setStudent_name(student_name);
s.setStudent_sex(student_sex);
s.setStudent_telephone(student_telephone);
s.setStudent_address(student_address);
System.out.println("\n学号为:" + student_id + "的学生信息修改成功!\n");
break;
default:
System.out.println("\n学号为:" + student_id + "的学生信息修改失败!\n");
break;
}
}
}
}