当前位置:   article > 正文

编写学生管理系统

编写学生管理系统

Java程序编写练习 :

1.创建信息类:

  1. package 简易学生管理系统;
  2. public class 信息{
  3. //定义学生ID,姓名,性别,电话号码;
  4. private String ID;
  5. private String name;
  6. private String gender;
  7. private int tel;
  8. public 信息() {}
  9. public 信息(String ID,String name,String gender,int tel) {
  10. this.ID=ID;
  11. this.name=name;
  12. this.gender=gender;
  13. this.tel=tel;
  14. }
  15. public void setID(String ID) {
  16. this.ID=ID;
  17. }
  18. public String getID() {
  19. return ID;
  20. }
  21. public void setname(String name) {
  22. this.name=name;
  23. }
  24. public String getname() {
  25. return name;
  26. }
  27. public void setgender(String gender) {
  28. this.gender=gender;
  29. }
  30. public String getgender() {
  31. return gender;
  32. }
  33. public void settel(int tel) {
  34. this.tel=tel;
  35. }
  36. public int gettel() {
  37. return tel;
  38. }
  39. }

2.创建功能实现类:

  1. package 简易学生管理系统;
  2. import java.util.Scanner;
  3. import java.util.ArrayList;
  4. public class 功能实现 {
  5. public static void main(String[] args) {
  6. ArrayList<信息> array = new ArrayList<信息>();
  7. //ArrayList用于储存 信息 中的数据。
  8. 信息 x1=new 信息("2022405501","Naruto","男",17657);
  9. 信息 x2=new 信息("2022405502","路飞","男",12345);
  10. 信息 x3=new 信息("2022405503","黑崎一护","男",18523);
  11. //初始学生信息
  12. array.add(x1);
  13. array.add(x2);
  14. array.add(x3);
  15. while(true) {//while(true)为无限循环语句,后续语句中有break即会跳出循环。
  16. System.out.println("-----学生管理系统-----");
  17. System.out.println("(1)添加学生信息");
  18. System.out.println("(2)查询学生信息");
  19. System.out.println("(3)删除学生信息");
  20. System.out.println("(4)退出管理系统");
  21. System.out.println("请选择功能:");
  22. Scanner sc=new Scanner(System.in);
  23. String choice = sc.nextLine();
  24. switch (choice) {
  25. case "1":
  26. add信息(array); //增
  27. break;
  28. case "2":
  29. findAll信息(array);//查
  30. break;
  31. case "3":
  32. remove信息(array); //删
  33. break;
  34. case "4": //退出
  35. System.out.println("谢谢您的使用");
  36. System.exit(0);
  37. }
  38. }
  39. }
  40. //添加学生信息
  41. public static void add信息(ArrayList<信息> array) {
  42. Scanner sc=new Scanner(System.in);
  43. String ID;
  44. System.out.println("请输入学生学号:");
  45. ID = sc.nextLine();//输入学号,nextline返回String类型数据
  46. boolean flag = true;//判断学生学号是否重复
  47. for (int i=0;i<array.size();i++) {
  48. // 遍历学生信息返回给学生对象
  49. 信息 x =array.get(i);
  50. // 获取该学生的学号,和键盘录入的学号进行比较
  51. if (x.getID().equals(ID)) {
  52. flag=false;// 说明学号被占用
  53. System.out.println("该学生已存在,请重新输入!");
  54. break;
  55. }
  56. }
  57. if (flag) {
  58. System.out.println("请输入学生姓名:");
  59. String Name = sc.nextLine();
  60. System.out.println("请输入学生性别:");
  61. String gender = sc.nextLine();
  62. System.out.println("请输入学生电话:");
  63. int tel = sc.nextInt();
  64. //创建学生对象
  65. 信息 x = new 信息();
  66. x.setID(ID);
  67. x.setname(Name);
  68. x.setgender(gender);
  69. x.settel(tel);
  70. // 把学生对象作为元素添加到集合
  71. array.add(x);
  72. System.out.println("添加成功!");
  73. }
  74. }
  75. //查询学生信息
  76. public static void findAll信息(ArrayList<信息> array) {
  77. if (array.size() == 0) {
  78. System.out.println("对不起,当前学生信息为空,请您重新选择: ");
  79. return;// 不让程序往下执行
  80. }
  81. // 学生信息列表
  82. System.out.println("学号:\t姓名:\t性别:\t年龄:\t住址:\t电话:");// \t是一个tab键的位置
  83. // 遍历集合
  84. for (int i=0; i<array.size();i++) {
  85. 信息 student = array.get(i);//
  86. System.out.println(student.getID() + "\t" + student.getname() + "\t" + student.getgender()+"\t" + student.gettel());
  87. }
  88. }
  89. public static void remove信息(ArrayList<信息> array) {
  90. Scanner sc=new Scanner (System.in);
  91. System.out.println("请输入你要删除的学生的学号: ");
  92. String ID = sc.nextLine(); // 键盘录入的学号返回给No
  93. // 作为索引
  94. int index = -1;
  95. // 遍历学生信息
  96. for (int i=0;i<array.size();i++) {
  97. 信息 x = array.get(i);
  98. if (x.getID().equals(ID)) {
  99. index = i;
  100. break;
  101. }
  102. }
  103. if (index == -1) {
  104. System.out.println("您要删除的学生信息不存在,请重新选择: ");
  105. } else {
  106. array.remove(index); // 删除获取的学生信息
  107. System.out.println("删除学生信息成功");
  108. }
  109. }
  110. }

3.编程中的问题:

(1)编写时部分代码无法解析:

解决方法:Scanner无法解析必须添加import java.util.Scanner。

(2)学生信息重复问题:

解决方式:运用boolean flag=true or false来进行标识。先遍历学生信息,再获得学生的ID,在于键盘上输入的ID进行比较。

(3) 在查询学生信息是否存在中,如果没有查找到要修改或者删除的学生信息该怎么返回给程序:

解决方法:添加变量名为index(int index = -1;)作为索引,在数组遍历时,如果没有查到键盘输入信息,返回-1,结束程序,进行下一次循环。

4.总结:

目前水平仍然不足,此次代码编写借鉴了不少先例,所以所遇到的对自己代码有能力提升的问题不多,这一点仍需努力。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/205790?site
推荐阅读
相关标签
  

闽ICP备14008679号