Java_题目_学生管理系统_业务分析并搭建主菜单_查询添加删除修改
创始人
2024-02-06 01:14:31
0

学生管理系统

需求:

​ 采取控制台的方式去书写学生管理系统。

分析:

初始菜单:

"-------------欢迎来到学生管理系统----------------"
"1:添加学生"
"2:删除学生"
"3:修改学生"
"4:查询学生"
"5:退出"
"请输入您的选择:"

学生类:

​ 属性:id、姓名、年龄、家庭住址

添加功能:

​ 键盘录入每一个学生信息并添加,需要满足以下要求:

  • id唯一

删除功能:

​ 键盘录入要删除的学生id,需要满足以下要求:

  • id存在删除
  • id不存在,需要提示不存在,并回到初始菜单

修改功能:

​ 键盘录入要修改的学生id,需要满足以下要求

  • id存在,继续录入其他信息
  • id不存在,需要提示不存在,并回到初始菜单

查询功能:

​ 打印所有的学生信息,需要满足以下要求

  • 如果没有学生信息,提示:当前无学生信息,请添加后再查询
  • 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
id			姓名		年龄		家庭住址
001	        张三		23		 南京
002	        李四		24		 北京
003	        王五		25		 广州
004	        赵六	 	26		 深圳
public class Student {private String id;private String name;private int age;private String address;public Student() {}public Student(String id, String name, int age, String address) {this.id = id;this.name = name;this.age = age;this.address = address;}public String getId() {return id;}public void setId(String id) {this.id = id;}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 String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}
import java.util.ArrayList;
import java.util.Scanner;public class StudentSystem {public static void main(String[] args) {ArrayList list = new ArrayList<>();loop: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);//不使用nextInt(),扩大选择范围String choose = sc.next();switch (choose) {case "1" -> addStudent(list);case "2" -> deleteStudent(list);case "3" -> updateStudent(list);case "4" -> queryStudent(list);case "5" -> {System.out.println("退出");//★★★使用loop标记跳出到指定层。否则只能跳出当前循环。//break loop;System.exit(0);//★★★停止虚拟机运行}default -> System.out.println("没有这个选项");}}}//添加学生public static void addStudent(ArrayList list) {/*//1)第一种方法:后创建学生对象System.out.println("添加学生");Scanner sc = new Scanner(System.in);System.out.println("请输入学生的id");String id = sc.next();System.out.println("请输入学生的姓名");String name = sc.next();System.out.println("请输入学生的年龄");int age = sc.nextInt();System.out.println("请输入学生的家庭住址");String address = sc.next();Student s = new Student(id, name, age, address);//把学生对象添加到集合中list.add(s);//提示添加成功System.out.println("学生信息添加成功");*///2)第二种方法:先创建学生对象//利用空参构造先创建学生对象Student s = new Student();Scanner sc = new Scanner(System.in);//★★★设置id变量String id = null;while (true) {System.out.println("请输入学生的id");id = sc.next();boolean flag = containsId(list, id);if (flag) {//表示id已存在,需要重新输入System.out.println("学生id已存在,请重新输入");} else {//表示id不存在,可以使用s.setId(id);break;}}System.out.println("请输入学生的姓名");String name = sc.next();s.setName(name);System.out.println("请输入学生的年龄");int age = sc.nextInt();s.setAge(age);System.out.println("请输入学生的家庭住址");String address = sc.next();s.setAddress(address);list.add(s);System.out.println("学生信息添加成功");}//删除学生public static void deleteStudent(ArrayList list) {Scanner sc = new Scanner(System.in);System.out.println("请输入要删除的id");String id = sc.next();//查询id在集合中的索引int index = getIndex(list, id);//对index进行判断//如果索引为-1,表示id不存在,结束方法,回到初始菜单if (index >= 0) {list.remove(index);System.out.println("已删除id为" + id + "的学生");} else {System.out.println("输入的学生id不存在,删除失败");}}//修改学生public static void updateStudent(ArrayList list) {Scanner sc = new Scanner(System.in);System.out.println("请输入要修改学生的id");String id = sc.next();int index = getIndex(list, id);if (index == -1) {System.out.println("要修改的id" + id + "不存在,请重新输入");return;}//id存在,获取要修改的学生对象Student s = list.get(index);//输入其他信息并修改System.out.println("请输入要修改的学生姓名");String name = sc.next();s.setName(name);System.out.println("请输入要修改的学生年龄");int age = sc.nextInt();s.setAge(age);System.out.println("请输入要修改的学生家庭住址");String address = sc.next();s.setAddress(address);System.out.println("学生信息修改成功");}//查询学生public static void queryStudent(ArrayList list) {System.out.println("查询学生");if (list.size() == 0) {System.out.println("当前无学生信息,请添加后再查询");//★★★结束方法return;}//★★★打印表头信息 \tSystem.out.println("id\t姓名\t年龄\t家庭住址");//当代码执行到这里,表示集合中是有数据的for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());}}//判断id在集合中是否存在public static boolean containsId(ArrayList list, String id) {/*//循环遍历集合拿到里面每一个学生对象for (int i = 0; i < list.size(); i++) {Student s = list.get(i);//拿到学生对象后,获取id进行判断String uid = s.getId();if (uid.equals(id)) {//学生id已在集合里存在,返回truereturn true;}}//不存在相同id返回falsereturn false;*/return getIndex(list, id) >= 0;}//通过id获取索引public static int getIndex(ArrayList list, String id) {//遍历集合for (int i = 0; i < list.size(); i++) {//得到每一个学生对象Student s = list.get(i);//得到每一个学生对象的idString uid = s.getId();//拿着集合中的学生id与要删除的id进行比较if (uid.equals(id)) {// 如果一样,id存在,可以删除,返回此学生对象的索引return i;}}//循环结束,无相同id,没有找到要删除的学生对象,无法删除return -1;}
}

相关内容

热门资讯

关爱牙齿健康标语 关爱牙齿健康标语(精选100句)  在学习、工作、生活中,大家对标语都再熟悉不过了吧,标语肩负着“社...
咖啡的广告语 关于咖啡的广告语(精选365句)  品尝一杯好咖啡,如同欣赏一件古董,让人细细品味。关于咖啡的广告语...
关于环保的标语   关于环保的标语  1、世界变成大花园,垃圾分类是关键。  2、同处蓝天下共栖地球上让我们的世界更...
指导教师评语短 指导教师评语短  引导学生培养坚强毅力的评语,下面小编整理的指导教师评语短,欢迎来参考!  1、该生...
金公子珠宝的广告词 金公子珠宝的广告词  1、珠宝亦有价,真情乃无价。  创意说明:金银珠宝首饰一般价格比较高昂,愿意买...
师傅对徒弟的评价评语 师傅对徒弟的评价评语  篇一:师傅对徒弟综合评价  20XX年8月,学校来了一批新教师。9月10日,...
文明行为规范标语 文明行为规范标语(精选115句)  无论是身处学校还是步入社会,大家对标语都再熟悉不过了吧,标语不但...
进入高三励志标语 进入高三励志标语(精选180句)  在日常的学习、工作、生活中,大家最不陌生的就是标语了吧,标语在一...
大学毕业班级鉴定评语 大学毕业班级鉴定评语(精选120条)  无论是身处学校还是步入社会,大家都有写评语的经历,对评语很是...
中考横幅标语大全   1.春播秋收近十载,一朝收获终有成。  2.不论你在什么时候开始,重要的是开始之后不要停止。  ...
学校六一活动标语 学校六一活动标语(精选50句)  在现实生活或工作学习中,大家对标语都再熟悉不过了吧,标语以其时间性...
家装实木高档油漆门广告语 家装实木高档油漆门广告语  1、一“门”心思只为您。  2、打开木门,开启幸福。  3、独门工艺,专...
厕所文明标语 厕所文明标语(通用185句)  在现实生活或工作学习中,大家都对那些朗朗上口的标语很是熟悉吧,标语是...
宣传稿格式 宣传稿格式  一、宣传稿的介绍  首先,新闻宣传稿要重视宣传的本身意义和作用。  其次,要懂得如何在...
校园文明标语 校园文明标语  在学习、工作、生活中,大家都接触过比较经典的标语吧,标语的作用是便于“造势”,形成一...
打折促销标语 打折促销标语大全  XX真情回馈理惠X折  终极X小时终极抄底价  心动,不如行动!  不做不休用暴...
最新学习小组口号 最新学习小组口号  在日常的学习、工作、生活中,大家都经常接触到口号吧,口号作为意识的表现形式之一,...
垃圾分类标语 垃圾分类标语(精选140句)  在平时的学习、工作或生活中,大家最不陌生的就是宣传语了吧,宣传语具有...
安全生产横幅标语口号 安全生产横幅标语口号大全  ●安全人人抓,幸福千万家  ●安全生产 人人有责  ●安全生产 重在预防...
迎新的标语 迎新的标语(精选150句)  在日常学习、工作和生活中,大家都接触过比较经典的标语吧,标语不但折射着...