当前位置:   article > 正文

JAVA学生成绩管理系统_java学生成绩管理系统代码

java学生成绩管理系统代码

只写了最基本的增删改查,其中可能会有一些没考虑到的地方。结尾有完整代码

首先是main方法

  1. public static void main(String[] args) throws Exception {
  2. //创建Scanner对象和ArrayList集合
  3. Scanner sc = new Scanner(System.in);
  4. ArrayList<Student> students = new ArrayList<>();
  5. //放入死循环能一直运行
  6. while (true) {
  7. Welcome();
  8. Menu(sc, students);
  9. }
  10. }

然后是菜单和欢迎页面

  1. //欢迎界面
  2. private static void Welcome() {
  3. System.out.println("请选择您要进行的操作:");
  4. System.out.println("1.录入学生信息");
  5. System.out.println("2.删除学生信息");
  6. System.out.println("3.修改学生信息");
  7. System.out.println("4.查询学生信息");
  8. System.out.println("5.展示所有学生成绩信息");
  9. System.out.println("0.退出系统");
  10. }
  11. //真正的菜单
  12. private static void Menu(Scanner sc, ArrayList<Student> students) {
  13. switch (sc.next()) {
  14. case "1" -> add(sc, students); //添加学生信息
  15. case "2" -> deleteMessage(sc, students); //删除学生信息
  16. case "3" -> change(sc, students); //修改学生信息
  17. case "4" -> Search(sc, students); //查询学生信息
  18. case "5" -> show(students); //列出所有学生的成绩
  19. case "0" -> System.exit(0);
  20. }
  21. }

1:添加学生信息

  1. private static void add(Scanner sc, ArrayList<Student> students) {
  2. Student s = new Student();
  3. StudentMessage(sc, s);
  4. students.add(s);
  5. }

2:删除学生信息

  1. //"2"->删除学生信息
  2. private static void deleteMessage(Scanner sc, ArrayList<Student> students) {
  3. if (judge(students)) {
  4. System.out.println("请输入要删除学生的姓名");
  5. String next = sc.next();
  6. for (int i = 0; i < students.size(); i++) {
  7. Student student = students.get(i);
  8. if (student.getName().equals(next)) {
  9. System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
  10. showMessage(student);
  11. System.out.println("确定要删除吗?Y/N");
  12. if (sc.next().equalsIgnoreCase("Y")) {
  13. students.remove(i);
  14. System.out.println("删除成功!");
  15. } else {
  16. System.out.println("删除失败!退回菜单页");
  17. }
  18. return;
  19. }
  20. }
  21. System.out.println("没有找到该学生!");
  22. } else {
  23. System.out.println("操作失败!");
  24. }
  25. }

3:修改学生信息

  1. //"3"->修改学生信息
  2. private static void change(Scanner sc, ArrayList<Student> students) {
  3. if (judge(students)) {
  4. System.out.println("请输入要修改信息的学生姓名");
  5. String n = sc.next();
  6. for (Student student : students) {
  7. if (student.getName().equals(n)) {
  8. StudentMessage(sc, student);
  9. return;
  10. }
  11. }
  12. } else {
  13. System.out.println("操作失败");
  14. }
  15. }

4:查询单个学生信息

  1. // "4"->查询单个学生信息
  2. private static void Search(Scanner sc, ArrayList<Student> students) {
  3. if (judge(students)) {
  4. System.out.println("请输入要查询的学生姓名");
  5. String next = sc.next();
  6. for (Student student : students) {
  7. if (student.getName().equals(next)) {
  8. System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
  9. showMessage(student);
  10. return;
  11. }
  12. }
  13. System.out.println("没有找到该学生的信息!");
  14. } else {
  15. System.out.println("操作失败!");
  16. }
  17. }

5:列出所有学生信息

  1. // "5"->列出所有学生
  2. private static void show(ArrayList<Student> students) {
  3. if (judge(students)) {
  4. System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
  5. for (Student student : students) {
  6. showMessage(student);
  7. }
  8. } else {
  9. System.out.println("操作失败!");
  10. }
  11. }

用到的其他方法:

  1. private static void StudentMessage(Scanner sc, Student s) {
  2. System.out.println("请输入学生的学号:");
  3. s.setId(sc.next());
  4. System.out.println("请输入学生的姓名:");
  5. s.setName(sc.next());
  6. System.out.println("请输入学生的年龄:");
  7. s.setAge(sc.nextInt());
  8. while (true) {
  9. System.out.println("请输入学生的性别:");
  10. String next = sc.next();
  11. if (next.equals("女") || next.equals("男")) {
  12. s.setGender(next);
  13. break;
  14. } else {
  15. System.out.println("性别只有男女,没有你说的这个,请重新输入");
  16. }
  17. }
  18. while (true) {
  19. System.out.println("请输入学生的语文成绩:");
  20. double v = scanScore(sc);
  21. if (v != -1) {
  22. s.setChinese_score(v);
  23. break;
  24. }
  25. }
  26. while (true) {
  27. System.out.println("请输入学生的数学成绩:");
  28. double v = scanScore(sc);
  29. if (v != -1) {
  30. s.setMath_score(v);
  31. break;
  32. }
  33. }
  34. while (true) {
  35. System.out.println("请输入学生的英语成绩:");
  36. double v = scanScore(sc);
  37. if (v != -1) {
  38. s.setEnglish_score(v);
  39. break;
  40. }
  41. }
  42. }
  43. //根据Student对象展示单个学生的信息
  44. private static void showMessage(Student student) {
  45. System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getGender() +
  46. "\t\t" + student.getAge() + "\t\t" + student.getChinese_score() + "\t\t" + student.getMath_score() +
  47. "\t\t" + student.getEnglish_score());
  48. }
  49. //判断系统中是否有学生信息
  50. private static boolean judge(ArrayList<Student> students) {
  51. if (students.size() == 0) {
  52. System.out.println("还没有学生信息呢,请添加后再进行后续操作");
  53. return false;
  54. }
  55. return true;
  56. }
  57. private static double scanScore(Scanner sc) {
  58. double v = sc.nextDouble();
  59. if (v > 100 || v < 0) {
  60. System.out.println("输入成绩不在允许范围内,请重新输入");
  61. return -1;
  62. }
  63. return v;
  64. }

完整发一下代码:

学生类:

  1. public class Student {
  2. private String id;
  3. private String name;
  4. private int age;
  5. private String gender;
  6. private double Math_score;
  7. private double Chinese_score;
  8. private double English_score;
  9. public Student() {
  10. }
  11. public Student(String id, String name, int age, String gender, double math_score, double chinese_score, double english_score) {
  12. this.id = id;
  13. this.name = name;
  14. this.age = age;
  15. this.gender = gender;
  16. Math_score = math_score;
  17. Chinese_score = chinese_score;
  18. English_score = english_score;
  19. }
  20. public String getName() {
  21. return name;
  22. }
  23. public void setName(String name) {
  24. this.name = name;
  25. }
  26. public int getAge() {
  27. return age;
  28. }
  29. public void setAge(int age) {
  30. this.age = age;
  31. }
  32. public String getGender() {
  33. return gender;
  34. }
  35. public void setGender(String gender) {
  36. this.gender = gender;
  37. }
  38. public double getMath_score() {
  39. return Math_score;
  40. }
  41. public void setMath_score(double math_score) {
  42. Math_score = math_score;
  43. }
  44. public double getChinese_score() {
  45. return Chinese_score;
  46. }
  47. public void setChinese_score(double chinese_score) {
  48. Chinese_score = chinese_score;
  49. }
  50. public double getEnglish_score() {
  51. return English_score;
  52. }
  53. public void setEnglish_score(double english_score) {
  54. English_score = english_score;
  55. }
  56. public String getId() {
  57. return id;
  58. }
  59. public void setId(String id) {
  60. this.id = id;
  61. }
  62. }

StudentSystem类

  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3. //学生信息管理系统
  4. //功能:增、删、改、查
  5. public class StudentSystem {
  6. public static void main(String[] args) throws Exception {
  7. //创建Scanner对象和ArrayList集合
  8. Scanner sc = new Scanner(System.in);
  9. ArrayList<Student> students = new ArrayList<>();
  10. //放入死循环能一直运行
  11. while (true) {
  12. Welcome();
  13. Menu(sc, students);
  14. }
  15. }
  16. //欢迎界面
  17. private static void Welcome() {
  18. System.out.println("请选择您要进行的操作:");
  19. System.out.println("1.录入学生信息");
  20. System.out.println("2.删除学生信息");
  21. System.out.println("3.修改学生信息");
  22. System.out.println("4.查询学生信息");
  23. System.out.println("5.展示所有学生成绩信息");
  24. System.out.println("0.退出系统");
  25. }
  26. //真正的菜单
  27. private static void Menu(Scanner sc, ArrayList<Student> students) {
  28. switch (sc.next()) {
  29. case "1" -> add(sc, students); //添加学生信息
  30. case "2" -> deleteMessage(sc, students); //删除学生信息
  31. case "3" -> change(sc, students); //修改学生信息
  32. case "4" -> Search(sc, students); //查询学生信息
  33. case "5" -> show(students); //列出所有学生的成绩
  34. case "0" -> System.exit(0);
  35. }
  36. }
  37. // "1"->添加学生信息
  38. private static void add(Scanner sc, ArrayList<Student> students) {
  39. Student s = new Student();
  40. StudentMessage(sc, s);
  41. students.add(s);
  42. }
  43. //"2"->删除学生信息
  44. private static void deleteMessage(Scanner sc, ArrayList<Student> students) {
  45. if (judge(students)) {
  46. System.out.println("请输入要删除学生的姓名");
  47. String next = sc.next();
  48. for (int i = 0; i < students.size(); i++) {
  49. Student student = students.get(i);
  50. if (student.getName().equals(next)) {
  51. System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
  52. showMessage(student);
  53. System.out.println("确定要删除吗?Y/N");
  54. if (sc.next().equalsIgnoreCase("Y")) {
  55. students.remove(i);
  56. System.out.println("删除成功!");
  57. } else {
  58. System.out.println("删除失败!退回菜单页");
  59. }
  60. return;
  61. }
  62. }
  63. System.out.println("没有找到该学生!");
  64. } else {
  65. System.out.println("操作失败!");
  66. }
  67. }
  68. //"3"->修改学生信息
  69. private static void change(Scanner sc, ArrayList<Student> students) {
  70. if (judge(students)) {
  71. System.out.println("请输入要修改信息的学生姓名");
  72. String n = sc.next();
  73. for (Student student : students) {
  74. if (student.getName().equals(n)) {
  75. StudentMessage(sc, student);
  76. return;
  77. }
  78. }
  79. } else {
  80. System.out.println("操作失败");
  81. }
  82. }
  83. // "4"->查询单个学生信息
  84. private static void Search(Scanner sc, ArrayList<Student> students) {
  85. if (judge(students)) {
  86. System.out.println("请输入要查询的学生姓名");
  87. String next = sc.next();
  88. for (Student student : students) {
  89. if (student.getName().equals(next)) {
  90. System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
  91. showMessage(student);
  92. return;
  93. }
  94. }
  95. System.out.println("没有找到该学生的信息!");
  96. } else {
  97. System.out.println("操作失败!");
  98. }
  99. }
  100. // "5"->列出所有学生
  101. private static void show(ArrayList<Student> students) {
  102. if (judge(students)) {
  103. System.out.println("学号\t\t姓名\t\t性别\t\t年龄\t\t语文\t\t数学\t\t英语");
  104. for (Student student : students) {
  105. showMessage(student);
  106. }
  107. } else {
  108. System.out.println("操作失败!");
  109. }
  110. }
  111. private static void StudentMessage(Scanner sc, Student s) {
  112. System.out.println("请输入学生的学号:");
  113. s.setId(sc.next());
  114. System.out.println("请输入学生的姓名:");
  115. s.setName(sc.next());
  116. System.out.println("请输入学生的年龄:");
  117. s.setAge(sc.nextInt());
  118. while (true) {
  119. System.out.println("请输入学生的性别:");
  120. String next = sc.next();
  121. if (next.equals("女") || next.equals("男")) {
  122. s.setGender(next);
  123. break;
  124. } else {
  125. System.out.println("性别只有男女,没有你说的这个,请重新输入");
  126. }
  127. }
  128. while (true) {
  129. System.out.println("请输入学生的语文成绩:");
  130. double v = scanScore(sc);
  131. if (v != -1) {
  132. s.setChinese_score(v);
  133. break;
  134. }
  135. }
  136. while (true) {
  137. System.out.println("请输入学生的数学成绩:");
  138. double v = scanScore(sc);
  139. if (v != -1) {
  140. s.setMath_score(v);
  141. break;
  142. }
  143. }
  144. while (true) {
  145. System.out.println("请输入学生的英语成绩:");
  146. double v = scanScore(sc);
  147. if (v != -1) {
  148. s.setEnglish_score(v);
  149. break;
  150. }
  151. }
  152. }
  153. //根据Student对象展示单个学生的信息
  154. private static void showMessage(Student student) {
  155. System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getGender() +
  156. "\t\t" + student.getAge() + "\t\t" + student.getChinese_score() + "\t\t" + student.getMath_score() +
  157. "\t\t" + student.getEnglish_score());
  158. }
  159. //判断系统中是否有学生信息
  160. private static boolean judge(ArrayList<Student> students) {
  161. if (students.size() == 0) {
  162. System.out.println("还没有学生信息呢,请添加后再进行后续操作");
  163. return false;
  164. }
  165. return true;
  166. }
  167. private static double scanScore(Scanner sc) {
  168. double v = sc.nextDouble();
  169. if (v > 100 || v < 0) {
  170. System.out.println("输入成绩不在允许范围内,请重新输入");
  171. return -1;
  172. }
  173. return v;
  174. }
  175. }

这就是所有内容了,这篇文章可用于学校作业(*^_^*),但主要学习思路,我的代码也不是最简单的,其中有很多地方还可以简化,这只是我学习Java的练手作品,请酌情观看。

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

占位置的文字,用于消除改进质量的提醒

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

闽ICP备14008679号