一、idea调试:





二、实验内容:

4. 实现学生成绩管理功能(增删改,排序,查找),并进行测试(正常情况,异常情况,边界情况)。

运行截图:









代码:

public class Student {

String name;

String studentId;

String sex;

int grade;

  1. public Student(String name,String studentId,String sex,int grade){
  2. this.name= name;
  3. this.studentId= studentId;
  4. this.sex = sex;
  5. this.grade = grade;
  6. }
  7. public int getGrade(){
  8. return grade;
  9. }
  10. public String getName(){
  11. return name;
  12. }
  13. public String getSex(){
  14. return sex;
  15. }
  16. public void setGrade(int g){
  17. this.grade = g;
  18. }
  19. public String getStudentId(){
  20. return studentId;
  21. }

}

import java.util.*;

public class StudentSystem {

  1. static List<Student> StudentList = new LinkedList<Student>();
  2. public static void main(String[] agrs){
  3. select(StudentList);
  4. }
  5. private static void select(List<Student> StudentList ){
  6. System.out.println("***************");
  7. System.out.println("*欢迎来到学生管理系统 *");
  8. System.out.println("*1:增加学生 *");
  9. System.out.println("*2:删除学生 *");
  10. System.out.println("*3:修改成绩 *");
  11. System.out.println("*4:查询成绩 *");
  12. System.out.println("***************");
  13. System.out.println("若要退出系统,请输入1、2、3、4外的其他数字!!!");
  14. System.out.println("您想选择的操作是:");
  15. Scanner sc = new Scanner(System.in);
  16. int choice = sc.nextInt();
  17. switch(choice){
  18. //增加学生
  19. case 1:
  20. System.out.print("请输入学生的姓名:");
  21. Scanner Sname = new Scanner(System.in);
  22. String name = Sname.nextLine();
  23. System.out.print("请输入学生的性别:");
  24. Scanner Ssex = new Scanner(System.in);
  25. String sex = Ssex.nextLine();
  26. System.out.print("请输入学生的学号:");
  27. Scanner SId = new Scanner(System.in);
  28. String studentId = SId.nextLine();
  29. System.out.print("请输入学生的成绩:");
  30. Scanner Sgrade = new Scanner(System.in);
  31. int grade = Sgrade.nextInt();
  32. StudentList.add(new Student(name,studentId,sex,grade));
  33. System.out.println("添加成功!!!");
  34. select(StudentList);
  35. break;
  36. //删除学生成绩
  37. case 2:
  38. System.out.print("请告诉我需要删除学生的学号:");
  39. Scanner Sid = new Scanner(System.in);
  40. String SstudentId = Sid.nextLine();
  41. boolean isfindDelete = false;
  42. for (int i = 0; i < StudentList.size(); i++) {
  43. if(SstudentId.equals(StudentList.get(i).getStudentId())){
  44. StudentList.remove(i);
  45. System.out.println("删除成功!!!");
  46. isfindDelete =true;
  47. }
  48. }
  49. if(!isfindDelete){
  50. System.out.println("抱歉,没有找到");
  51. }
  52. select(StudentList);
  53. break;
  54. //修改学生成绩
  55. case 3:
  56. System.out.print("请告诉我需要修改成绩学生的学号:");
  57. Scanner GId = new Scanner(System.in);
  58. String GstudentId = GId.nextLine();
  59. boolean isfindChange = false;
  60. for (int j = 0; j < StudentList.size(); j++) {
  61. if(GstudentId.equals(StudentList.get(j).getStudentId())){
  62. System.out.println("学生原成绩为"+StudentList.get(j).getGrade());
  63. System.out.print("请输入修改后学生的成绩:");
  64. Scanner Ggrade = new Scanner(System.in);
  65. int grade2 = Ggrade.nextInt();
  66. StudentList.get(j).setGrade(grade2);
  67. System.out.println("修改成功!!!");
  68. isfindChange =true;
  69. }else{
  70. }
  71. }
  72. if(!isfindChange){
  73. System.out.println("没有该名学生!");
  74. }
  75. select(StudentList);
  76. break;
  77. //查看学生成绩
  78. case 4:
  79. System.out.print("请告诉我需要查询学生的学号:");
  80. Scanner CId = new Scanner(System.in);
  81. String CstudentId = CId.nextLine();
  82. boolean isfindData = false;
  83. for (int i = 0; i < StudentList.size(); i++) {
  84. if(CstudentId.equals(StudentList.get(i).getStudentId())){
  85. System.out.println("名字:"+StudentList.get(i).getName());
  86. System.out.println("性别:"+StudentList.get(i).getSex());
  87. System.out.println("学号:"+StudentList.get(i).getStudentId());
  88. System.out.println("成绩:"+StudentList.get(i).getGrade());
  89. isfindData = true;
  90. }
  91. }
  92. if(!isfindData){
  93. System.out.println("没有该名学生!");
  94. }
  95. select(StudentList);
  96. break;
  97. default:
  98. System.out.println("退出系统!!!");
  99. break;
  100. }
  101. }

}

感想:

  一开始,当我得知我抽到的实验是几乎最难、代码也最长的实验的时候,我还有点丧气。但是,转念一想,以前在学习C语言的时候,我曾经编写过类似的学生成绩管理系统,这次只不过是换了一种语言而已,而且用Java语言来编写这种程序说不定比用C语言来编写还要简单,于是终究还是开始着手写代码。一开始,自然而然地想到创建一个用于存放学生信息的student类,后来,又想到可以把输入信息的函数放进student类里面。一开始我不知道如何删除学生,在参考了一些其他程序之后,终于是写出来。

  由于自己的Java功底还不到家,所以在参考了一部分程序后,才艰难地写出了代码。

步骤 耗时 百分比
需求分析 10 4%
设计 20 8%
代码实现 180 72%
测试 10 4%
分析总结 20 8%

20165321实验一 Java开发环境的熟悉的更多相关文章

  1. 20165321 实验一Java开发环境的熟悉-2

  2. 20165321实验一Java开发环境的熟悉-1

  3. 20145205 实验一 Java开发环境的熟悉

    实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...

  4. 实验一 Java开发环境的熟悉

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

  5. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  6. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  7. 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...

  8. 20145208实验一 Java开发环境的熟悉

    20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...

  9. 实验一 Java开发环境的熟悉(Linux + Eclipse)

    学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...

随机推荐

  1. 我的阿里、腾讯暑期实习Offer经历

    三四月份对我拿来说是个忙碌的两个月,实验室项目到了关键的时刻,自己又需要抽身去找暑期实习,总之过得很快.值得欣慰的是幸运的拿到了阿里和腾讯的暑期实习offer,也算是对三四月份的忙碌一些回报吧.阿里的 ...

  2. db2 reorg(转)

    DB2 reorg RUNSTATS: db2 connect to rmdb11 user rmadmin using rmadmin 对所有用户表执行runstats(reorgchk加updat ...

  3. Oracle数据库版本10.2.0.1升级到10.2.0.3(转)

    Oracle数据库版本10.2.0.1升级到10.2.0.3 1.停止OEM/isqlplus/监听/DB实例 $ emctl stop dbconsole $ isqlplusctl stop $ ...

  4. cvLoadImage函数详解

    cvLoadImage是一个计算机函数,用途是图像处理,函数原型是IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAG ...

  5. update set from 语句用法

    关键字: update set from 下面是这样一个例子: 两个表a.b,想使b中的memo字段值等于a表中对应id的name值     表a:id, name               1   ...

  6. 恢复制作了系统盘的U盘

    制作了系统盘的U盘通常容量会变得很小(比如用win32制作的系统盘) 此时在系统安装完成之后就要把U盘恢复,否则就无法正常使用了 步骤: 1.win+r打开程序搜索框,输入cmd打开dos窗口 2.在 ...

  7. deepin修改javahome不生效,一直显示openjdk解决

    删除/usr/bin/java即可 terwer@terwer-PC:~$ sudo rm /usr/bin/java [sudo] terwer 的密码: terwer@terwer-PC:~$ j ...

  8. Exception 05 : Could not instantiate id generator

    异常名称: Could not instantiate id generator 异常截图: 异常原因:Sequence不支持mysql数据库 Sequence支持的是有序列的数据库,此时可以将ora ...

  9. char是所有类型中最短的 char多为8位,

    https://en.wikipedia.org/wiki/C_data_typesIn practice, char is usually eight bits in size and short ...

  10. 请教神牛_字符串hash

    针对字符串hash 我早就听闻可以暴力的干一些事情. 比如 可以... 很多很多 实现O(n)求出 模式串在文本串出现的次数. 但是我不会这什么hash. 我会自然溢出字符串hash 嘿嘿 unsig ...