这是一个学生管理系统

  • 分析步骤:

  • 1.定义一个学生类

  • 2.学生管理系统主界面的编写
  • 3.学生管理系统的查看所有学生的信息
  • 4.学生管理系统的添加学生信息
  • 5.学生管理系统的删除学生信息
  • 6.学生管理系统的修改学生信息

新建一个学生实体类

  1. package Test10_Demo.StudentManager06;/*
  2. @create 2020--11--26--9:31
  3. */
  4. /**
  5. * 学生的实体类
  6. */
  7. public class Student {
  8. //属性
  9. private String id;
  10. private String name;
  11. private String age;
  12. private String address;
  13. public Student(){
  14. }
  15. public Student(String id,String name ,String age,String address){
  16. this.id = id;
  17. this.name = name;
  18. this.age = age;
  19. this.address = address;
  20. }
  21. public String getId() {
  22. return id;
  23. }
  24. public void setId(String id) {
  25. this.id = id;
  26. }
  27. public String getName() {
  28. return name;
  29. }
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. public String getAge() {
  34. return age;
  35. }
  36. public void setAge(String age) {
  37. this.age = age;
  38. }
  39. public String getAddress() {
  40. return address;
  41. }
  42. public void setAddress(String address) {
  43. this.address = address;
  44. }
  45. }

实现学生管理系统:

  1. package Test10_Demo.StudentManager06;/*
  2. @create 2020--11--26--9:28
  3. */
  4. import java.util.ArrayList;
  5. import java.util.Scanner;
  6. /**
  7. * 这是一个学生管理系统
  8. *
  9. * 分析步骤:
  10. * 1.定义一个学生类
  11. * 2.学生管理系统主界面的编写
  12. * 3.学生管理系统的查看所有学生的信息
  13. * 4.学生管理系统的添加学生信息
  14. * 5.学生管理系统的删除学生信息
  15. * 6.学生管理系统的修改学生信息
  16. */
  17. public class StudentManagerTest {
  18. public static void main(String[] args) {
  19. //定义一个学生类型的集合
  20. ArrayList<Student> array = new ArrayList<>();
  21. //为了用户体验度,设计一个界面
  22. //利用循环的方法可以重复的展示界面,直到推出程序就结束循环
  23. while (true) {
  24. //主界面的欢迎词
  25. System.out.println("-------------------------欢迎来到学生管理系统-------------------------------");
  26. System.out.println("1.查看所有学生信息");
  27. System.out.println("2.添加学生信息");
  28. System.out.println("3.删除学生信息");
  29. System.out.println("4.修改学生信息");
  30. System.out.println("5.退出学生管理系统");
  31. //键盘录入获取
  32. Scanner sc = new Scanner(System.in);
  33. String choiceString = sc.nextLine();
  34. //用开关键 - swtich...case
  35. switch (choiceString) {
  36. case "1":
  37. //查看所有学生
  38. findAllStudent(array);
  39. break;
  40. case "2":
  41. //添加学生信息
  42. addStudent(array);
  43. break;
  44. case "3":
  45. deleteStudent(array);
  46. //删除学生信息
  47. break;
  48. case "4":
  49. updateStudent(array);
  50. //修改学生信息
  51. break;
  52. default:
  53. System.out.println("谢谢你的使用");
  54. System.exit(0); //jvm中提供的退出程序
  55. break;
  56. }
  57. }
  58. }
  59. //封装一个方法用于查询学生的所有细腻
  60. public static void findAllStudent(ArrayList<Student> array){
  61. //首先判断集合中有没有数据,如果是空的,那就要给出提示,并且该方法就不需要执行了 - 非空判断
  62. if (array.size() == 0) {
  63. System.out.println("抱歉!目前没有任何的学生信息可以查询,请回去重新选择!");
  64. return; //将当前的方法直接结束
  65. }
  66. //有学生的情况下 - 遍历查询
  67. //\t 表示一个Tab键 - 制表符
  68. //\s 表示一个space键 - 空格
  69. System.out.println("学号\t姓名\t年龄\t居住地");
  70. for (int i = 0; i <array.size() ; i++) {
  71. Student s = array.get(i);
  72. //输出属性
  73. System.out.println(s.getId()+"\t " +
  74. s.getName() + "\t " +
  75. s.getAge() + "\t " +
  76. s.getAddress());
  77. }
  78. }
  79. public static void addStudent(ArrayList<Student> array) {
  80. //键盘对象
  81. Scanner sc = new Scanner(System.in);
  82. //所有的对学生的操作都是基于id,所以我们把id属性放到循环的外面
  83. String id;
  84. //能够实现重复添加学生的信息,所以使用循环
  85. while (true) {
  86. //判断一下这个学号是不是已经存在了
  87. System.out.println("请输入学号");
  88. id = sc.nextLine();
  89. boolean flag = false;
  90. //遍历学号 - 就是遍历数组
  91. for (int i = 0; i < array.size(); i++) {
  92. Student s = array.get(i);
  93. //获取学号
  94. if (s.getId().equals(id)) {
  95. flag = true;//学号存在
  96. break;
  97. }
  98. }
  99. //这个时候flag就是true
  100. if (flag) {
  101. System.out.println("你输入的学号已经存在,请重新输入");
  102. } else {
  103. break;
  104. }
  105. }
  106. //通过上面的验证之后就可以添加学生了
  107. System.out.println("请输入学生姓名");
  108. String name = sc.nextLine();
  109. System.out.println("请输入学生年龄");
  110. String age = sc.nextLine();
  111. System.out.println("请输入学生居住地");
  112. String address = sc.nextLine();
  113. //创建学生对象
  114. Student s = new Student();
  115. //赋值
  116. s.setId(id);
  117. s.setName(name);
  118. s.setAge(age);
  119. s.setAddress(address);
  120. //把学生保存到集合中
  121. array.add(s);
  122. //给出一个提示
  123. System.out.println("添加学生成功!");
  124. }
  125. //封装以个方法用于删除学生
  126. public static void deleteStudent(ArrayList<Student> array){
  127. //思路:键盘录入一个id(唯一),到集合中查找,看看是否有学生,如果有,则删除
  128. //键盘录入
  129. Scanner sc = new Scanner(System.in);
  130. System.out.println("请输入你要删除的学生的学号:");
  131. String id = sc.nextLine();
  132. //遍历集合看看这个id所对应的学生是不是存在 - 设置一个索引
  133. int index = -1;
  134. for (int i = 0; i < array.size(); i++) {
  135. //获取每一个学生
  136. Student s = array.get(i);
  137. //判断这个学生的学号喝键盘录入的id进行比较
  138. if (s.getId().equals(id)) { //要删除的对象存在
  139. index = i;
  140. break;
  141. }
  142. }
  143. //判断
  144. if (index == -1) {
  145. System.out.println("抱歉!您要删除的学生不存在!请重新输入");
  146. } else {
  147. array.remove(index);
  148. System.out.println("删除成功!");
  149. }
  150. }
  151. //封装一个方法用于修改学生
  152. public static void updateStudent(ArrayList<Student> array){
  153. //思路:键盘录入一个id(唯一),到集合中查找,看看是否有学生,如果有,则删除
  154. //键盘录入
  155. Scanner sc = new Scanner(System.in);
  156. System.out.println("请输入你要删除的学生的学号:");
  157. String id = sc.nextLine();
  158. //遍历集合看看这个id所对应的学生是不是存在 - 设置一个索引
  159. int index = -1;
  160. for (int i = 0; i < array.size(); i++) {
  161. //获取每一个学生
  162. Student s = array.get(i);
  163. //判断这个学生的学号喝键盘录入的id进行比较
  164. if (s.getId().equals(id)) { //要删除的对象存在
  165. index = i;
  166. break;
  167. }
  168. }
  169. //判断
  170. if (index == -1) {
  171. System.out.println("抱歉!您要修改的学生不存在!请重新输入");
  172. } else {
  173. //修改的逻辑
  174. System.out.println("请输入学生的新的姓名:");
  175. String name = sc.nextLine();
  176. System.out.println("请输入学生的新的年龄:");
  177. String age = sc.nextLine();
  178. System.out.println("请输入学生的新的居住地:");
  179. String address = sc.nextLine();
  180. //创建一个新的对象
  181. Student s = new Student();
  182. s.setId(id);
  183. s.setName(name);
  184. s.setAge(age);
  185. s.setAddress(address);
  186. //修改集合中的学生对象 -- 实际上就是把原来的元素替换
  187. array.set(index, s);//index表示集合中元素的下表 s表示替换进去的对象
  188. //给出一个提示
  189. System.out.println("修改学生成功!");
  190. }
  191. }
  192. }