需求:
采取控制台的方法去书写学生管理系统
功能
能录入,删除,修改,遍历数据库,退出。
学生类
学生的id ,名字,住址便利,年龄。
所有功能要保证id唯一。
main函数:
public static void main(String[]args){
ArrayList<Student>list = new ArrayList<>();
loop: while (true) { // loop 后面跳出循环时用
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);
String choose = sc.next();
switch (choose){ //用switch选择各操作
case "1"-> addstudent(list); //case 函数用加箭头可以自动跳出
case"2"->delstudent(list);
case"3"->updatestudent(list);
case"4"-> searchstudent(list);
case"5"->{
System.out.println("退出");
break loop;
}default -> System.out.println("无意义的选项");
}
}
}
录入函数:
public static void addstudent(ArrayList<Student>list){
Student s = new Student(); //构建一个新的对象用来录入元素,最后存到集合中
Scanner sc = null;
while (true) {
System.out.println("请输入学生的id");
sc = new Scanner(System.in);
String id = sc.next();
boolean sum =judge(list,id)>=0;
if(sum){
System.out.println("学生id已存在,请重新输入");
}else {
s.setId(id);
break;
}
}
System.out.println("请输入学生的名字");
String name = sc.next();
s.setName(name);
System.out.println("请输入学生的地址");
String address = sc.next();
s.setAddress(address);
System.out.println("请输入学生的年龄");
int age = sc.nextInt();
s.setAge(age);
System.out.println("添加成功");
list.add(s);
}
删除函数:
public static void delstudent(ArrayList<Student>list){
Scanner sc = new Scanner(System.in);
System.out.println("请输入删除学生的id");
String id = sc.next();
int num = judge(list,id);
boolean sum = judge(list,id)>=0; //若id与数据库中有相同 则为true
if(sum){
list.remove(num);
}else {
System.out.println("该id不存在,删除失败");
}
return;
}
修改函数:
public static void updatestudent(ArrayList<Student>list){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改学生的id");
String id = sc.next();
boolean sum = judge(list,id)>= 0;
if(!sum){ //值判断id不存在
System.out.println("该学生id不存在,修改失败");
}
int index = judge(list,id); // 用判断函数得到要改变的索引
Student stu = list.get(index); //构建一个新的对象用来接受修改以后的元素
System.out.println("请输入要修改的名字");
String name = sc.next();
stu.setName(name);
System.out.println("请输入要修改的地址");
String address = sc.next();
stu.setAddress(address);
System.out.println("请输入要修改的年龄");
int age = sc.nextInt();
stu.setAge(age);
System.out.println("学生信息修改成功");
}
遍历函数:
public static void searchstudent(ArrayList<Student>list){
System.out.println("id\t\t名字\t地址\t年龄");
if (list.size() == 0)
{
System.out.println("数据库中无信息,请添加后再查询");
}
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println(stu.getId()+" "+stu.getName()+" "+stu.getAddress()+" "+stu.getAge());
}
}
判断函数:
public static int judge(ArrayList<Student>list,String id){
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
String idt = stu.getId();//得到集合中各元素的id
if(idt.equals(id))
{
return i;
}
}
return -1;
}
}
运行结果:

这是一个使用Java编程语言实现的学生信息管理系统,通过控制台操作实现录入、删除、修改和遍历学生数据的功能。系统确保每个学生ID的唯一性,并提供了详细的主函数及辅助函数来完成各项操作。
1588

被折叠的 条评论
为什么被折叠?



