当前位置:   article > 正文

用Java实现学生管理系统(附项目详细的介绍和源代码)_学生管理系统java

学生管理系统java

前言:最近练习了用Java语言实现简单的学生管理系统小项目,分享一下。

Ps:原创不易,请多多支持!

摘要分析如下:

实现的主要功能:

1,添加学生信息。

2,查询学生信息(实现了单个学生信息查询 & 所有学生信息查询)。

3,修改学生信息。

4,删除学生信息(实现了单个学生信息删除 & 所有学生信息删除)。

5,退出管理系统。

项目说明:

cn.yunhe.bean包:

Student:代表“学生实体类”。

cn.yunhe.utils包:

StudentTools:代表“工具类”。Scanner键盘录入工具类。

cn.yunhe.view包:

StudentFunction:代表“增、删、改、查功能”。

StudentView:代表“项目视图功能”。

源代码如下:

cn.yunhe.bean包:

  1. package cn.yunhe.bean;
  2. /**
  3. * @Auther: xydsr
  4. * @Date: 2023/4/3 16:58
  5. * @Desc: 学生管理系统
  6. * 创建学生类,定义私有成员变量,
  7. * 并定义构造方法和get、set方法
  8. **/
  9. public class Student {
  10. //定义私有成员属性
  11. private int id;
  12. private String name;
  13. private double score;
  14. //创建构造方法(无参和有参构造)
  15. public Student() {
  16. }
  17. public Student(int id, String name, double score) {
  18. this.id = id;
  19. this.name = name;
  20. this.score = score;
  21. }
  22. //创建set、get方法
  23. public int getId() {
  24. return id;
  25. }
  26. public void setId(int id) {
  27. this.id = id;
  28. }
  29. public String getName() {
  30. return name;
  31. }
  32. public void setName(String name) {
  33. this.name = name;
  34. }
  35. public double getScore() {
  36. return score;
  37. }
  38. public void setScore(double score) {
  39. this.score = score;
  40. }
  41. }

cn.yunhe.utils包:

  1. package cn.yunhe.utils;
  2. import java.util.Scanner;
  3. /**
  4. * @Auther: xydsr
  5. * @Date: 2023/4/4 17:26
  6. * @Desc:
  7. **/
  8. public class StudentTools {
  9. public static int ScannerId() {
  10. // System.out.println("请输入学生的学号:");
  11. Scanner sc = new Scanner(System.in);
  12. return sc.nextInt();
  13. }
  14. public static String ScannerName() {
  15. // System.out.println("请输入学生的姓名:");
  16. Scanner sc = new Scanner(System.in);
  17. return sc.nextLine();
  18. }
  19. public static double ScannerScore() {
  20. // System.out.println("请输入学生的成绩:");
  21. Scanner sc = new Scanner(System.in);
  22. return sc.nextDouble();
  23. }
  24. }

cn.yunhe.view包:

  1. package cn.yunhe.view;
  2. import cn.yunhe.bean.Student;
  3. import cn.yunhe.utils.StudentTools;
  4. import java.util.ArrayList;
  5. /**
  6. * @Auther: xydsr
  7. * @Date: 2023/4/4 16:06
  8. * @Desc: 学生管理系统功能模块
  9. **/
  10. public class StudentFunction {
  11. //创建集合对象,用于存储学生信息
  12. private static ArrayList<Student> arrayList = new ArrayList<>();
  13. /**
  14. * 1、添加学生信息模块功能实现
  15. */
  16. public static void addStudent() {
  17. System.out.println();
  18. System.out.println("------------1、添加学生信息------------");
  19. int id;
  20. // 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
  21. Student stu = new Student();
  22. // 添加学生学号,并判断是否已存在
  23. while (true) {
  24. System.out.print("请输入需要添加的学生学号:");
  25. id = StudentTools.ScannerId();
  26. boolean flag = isUsed(id);
  27. if (flag) {
  28. System.out.println("对不起,你输入的学号已存在,请重新输入:");
  29. } else {
  30. break;
  31. }
  32. }
  33. stu.setId(id);
  34. // 添加学生姓名
  35. System.out.print("请输入需要添加的学生姓名:");
  36. String name = StudentTools.ScannerName();
  37. stu.setName(name);
  38. // 添加学生成绩
  39. while (true) {
  40. System.out.print("请输入需要添加的学生成绩:");
  41. double score = StudentTools.ScannerScore();
  42. // 判断输入的成绩是否符合规范
  43. if (score <= 100 && score >= 0) {
  44. stu.setScore(score);
  45. break;
  46. } else {
  47. System.out.println("你输入的成绩不符合规范,请重新输入:");
  48. }
  49. }
  50. System.out.println();
  51. // 将学生对象添加到集合中(保存)
  52. arrayList.add(stu);
  53. // 添加成功提示
  54. System.out.println("添加成功!");
  55. }
  56. // 定义判断学号是否被占用的方法
  57. public static boolean isUsed(int id) {
  58. // 如果与集合中的某一个学生学号相同,返回true 如果都不相同,返回false
  59. boolean flag = false;
  60. for (int i = 0; i < arrayList.size(); i++) {
  61. Student s = arrayList.get(i);
  62. if (s.getId() == id) {
  63. flag = true;
  64. break;
  65. }
  66. }
  67. return flag;
  68. }
  69. /**
  70. * 2、查询学生信息模块功能实现
  71. */
  72. public static void searchStudent() {
  73. System.out.println();
  74. System.out.println("------------2、查询学生信息------------");
  75. System.out.println("请输入序号选择查询的方式(1,按照学号查询;2,查询所有信息):");
  76. // 调用键盘录入对象方法,输入序号选择查询的方式
  77. int fun = StudentTools.ScannerId();
  78. while (true) {
  79. // 调用查询学生信息的方法
  80. if (fun == 1) {
  81. searchSingle(); // 调用查询单个学生信息的方法
  82. } else if (fun == 2) {
  83. searchAll(); // 调用查询所有学生信息的方法
  84. } else {
  85. System.out.println("你输入的序号功能暂未开发,请重新输入:");
  86. }
  87. return;
  88. }
  89. }
  90. // 定义查询单个学生信息的方法
  91. public static void searchSingle() {
  92. // 输入学生学号
  93. System.out.print("请输入需要查询的学生学号:");
  94. // 调用键盘录入对象方法
  95. int stuId = StudentTools.ScannerId();
  96. System.out.println();
  97. System.out.println("------------学生信息查询结果------------");
  98. for (Student student : arrayList) {
  99. if (student.getId() == (stuId)) {
  100. System.out.println("学号" + " " + "姓名" + " " + "成绩");
  101. System.out.println(student.getId() + " " + student.getName() + " " + student.getScore());
  102. return;
  103. }
  104. }
  105. System.out.println();
  106. System.out.println("对不起,你输入的学号不存在,请重新输入:");
  107. System.out.println();
  108. }
  109. // 定义查询所有学生信息的方法
  110. public static void searchAll() {
  111. System.out.println();
  112. System.out.println("------------学生信息查询结果------------");
  113. System.out.println("学号" + " " + "姓名" + " " + "成绩");
  114. for (int i = 0; i < arrayList.size(); i++) {
  115. Student s = arrayList.get(i);
  116. System.out.println(s.getId() + " " +
  117. s.getName() + " " + s.getScore());
  118. }
  119. }
  120. /**
  121. * 3、修改学生信息模块功能实现
  122. */
  123. public static void updateStudent() {
  124. System.out.println();
  125. System.out.println("------------3、修改学生信息------------");
  126. int id;
  127. System.out.println("请输入你想修改的学生的学号:");
  128. id = StudentTools.ScannerId();
  129. // 输入学生学号,判断学号是否存在
  130. boolean upId = isExited(id);
  131. if (upId) {
  132. for (int i = 0; i < arrayList.size(); i++) {
  133. Student student = arrayList.get(i);
  134. if (student.getId() == (id)) {
  135. // 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
  136. Student stu = new Student();
  137. // 键盘录入要修改的学生信息
  138. System.out.println("请输入修改后的学生的学号:");
  139. int updateId = StudentTools.ScannerId();
  140. stu.setId(updateId);
  141. System.out.println("请输入修改后的学生的姓名:");
  142. String updateName = StudentTools.ScannerName();
  143. stu.setName(updateName);
  144. System.out.println("请输入修改后的学生的成绩:");
  145. double updateScore = StudentTools.ScannerScore();
  146. // 判断输入的成绩是否符合规范
  147. if (updateScore <= 100 && updateScore >= 0) {
  148. student.setScore(updateScore);
  149. } else {
  150. System.out.println("你输入需要修改的成绩不符合规范,请重新输入:");
  151. }
  152. stu.setScore(updateScore);
  153. // 将修改的学生成绩到集合中(修改)
  154. arrayList.set(i, stu);
  155. // 给出修改成功提示
  156. System.out.println("修改成功!");
  157. System.out.println();
  158. break;
  159. }
  160. }
  161. } else {
  162. System.out.println("对不起,你输入的学号不存在,请重新输入:");
  163. }
  164. }
  165. // 定义判断需要修改的学生学号是否存在
  166. public static boolean isExited(int id) {
  167. boolean updateId = false;
  168. for (int i = 0; i < arrayList.size(); i++) {
  169. Student s = arrayList.get(i);
  170. if (s.getId() == (id)) {
  171. updateId = true;
  172. break;
  173. }
  174. }
  175. return updateId;
  176. }
  177. /**
  178. * 4、删除学生信息模块功能实现
  179. */
  180. public static void deleteStudent() {
  181. System.out.println();
  182. System.out.println("------------4、删除学生信息------------");
  183. System.out.println("请输入序号选择删除的方式(1,按照学号删除;2,删除所有信息):");
  184. int delete = StudentTools.ScannerId();
  185. while (true) {
  186. if (delete == 1) {
  187. deleteSingle(); // 1,按照学号删除
  188. } else if (delete == 2) {
  189. deleteAll(); // 2,删除所有信息
  190. } else {
  191. System.out.println("你输入的序号功能暂未开发,请重新选择输入:");
  192. }
  193. break;
  194. }
  195. return;
  196. }
  197. // 定义单个删除的方法
  198. public static void deleteSingle() {
  199. // 判断需要删除的学生信息是否存在
  200. System.out.println("请输入需要删除的学生学号:");
  201. int id = StudentTools.ScannerId();
  202. int index = -1;
  203. // 遍历集合将对应学生对象从集合中删除
  204. for (int i = 0; i < arrayList.size(); i++) {
  205. Student s = arrayList.get(i);
  206. if (s.getId() == (id)) {
  207. index = i;
  208. break;
  209. }
  210. }
  211. while (true) {
  212. if (index == -1) {
  213. System.out.println("对不起,你输入的学号不存在,请重新输入:");
  214. } else {
  215. arrayList.remove(index);
  216. System.out.println("删除学生信息成功!");
  217. }
  218. break;
  219. }
  220. }
  221. // 定义全部删除的方法
  222. public static void deleteAll() {
  223. arrayList.clear();
  224. System.out.println("删除所有信息成功!");
  225. }
  226. /**
  227. * 5、退出系统模块功能实现
  228. */
  229. public static void exitSystem() {
  230. System.out.println();
  231. System.err.println("退出成功,欢迎再次访问!");
  232. System.exit(0);
  233. }
  234. }
  1. package cn.yunhe.view;
  2. import cn.yunhe.utils.StudentTools;
  3. /**
  4. * @Auther: xydsr
  5. * @Date: 2023/4/3 16:58
  6. * @Desc: 学生管理系统实现需求:
  7. * 1、添加学生信息
  8. * 2、查询学生信息
  9. * 3、修改学生信息
  10. * 4、删除学生信息
  11. * 5、退出管理系统
  12. **/
  13. public class StudentView {
  14. public static void main(String[] args) {
  15. //用循环完成回到系统主界面功能
  16. while (true) {
  17. //系统主界面菜单模块
  18. System.out.println("------欢迎来到-xydsr-学生管理系统------");
  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. //添加一个空格行,为了输出控制台布局美观、不拥挤(下同)。
  25. System.out.println();
  26. System.out.println("请选择功能序号:");
  27. int str = StudentTools.ScannerId();
  28. // 用switch循环完成系统主界面功能模块的切换操作
  29. switch (str) {
  30. case 1:
  31. // System.out.println("1、添加学生信息");
  32. StudentFunction.addStudent();
  33. break;
  34. case 2:
  35. // System.out.println("2、查询学生信息");
  36. StudentFunction.searchStudent();
  37. break;
  38. case 3:
  39. // System.out.println("3、修改学生信息");
  40. StudentFunction.updateStudent();
  41. break;
  42. case 4:
  43. // System.out.println("4、删除学生信息");
  44. StudentFunction.deleteStudent();
  45. break;
  46. case 5:
  47. // System.out.println("5、退出系统");
  48. StudentFunction.exitSystem();
  49. break;
  50. default:
  51. System.out.println("对不起,你选择的功能序号有误,请重新输入:");
  52. }
  53. //添加一个空格行,为了输出控制台布局美观、不拥挤。
  54. System.out.println();
  55. }
  56. }
  57. }

项目演示:

 

 

 

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

闽ICP备14008679号