9.9 日测试

本次测试我们使用Java编写了一个学生的成绩管理系统:

具体要求如下:


1、定义 ScoreInformation 类,其中包括七个私有变量(stunumber,
name, mathematicsscore, englishiscore,networkscore, databasescore,
softwarescore)。
各成员的含义如下:
变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数
字组成)。
变量 name 为字符串类型 String,用于存储学生的姓名。
变量 mathematicsscore 为 double 类型,用于存储学生的高等数学成绩,
高等数学的学分为 4 分。
变量 englishiscore 为 double 类型,用于存储学生的大学英语成绩,大学
英语的学分为 3 分。
变量 networkscore 为 double 类型,用于存储学生的计算机网络成绩,计
算机网络的学分为 4 分。
第 2 页 共  8 页
变量 databasescore 为 double 类型,用于存储学生的数据库成绩,数据库
的学分为 3 分。
变量 softwarescore 为 double 类型,用于存储学生的软件工程成绩,软件
工程的学分为 2 分。
对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的
方法。
2 、 赋 初 值 方 法 包 括 七 个 参 数 , 用 于 为 变 量 (stunumber ,
name, mathematicsscore, englishiscore,networkscore, databasescore,
softwarescore)赋值。


 

首先定义一个 ScoreInformation 类 设置私有变量并创建构造方法,get set 方法,进行调试:

具体源代码如下:

 1 package 课堂测试试卷;
 2 /**
 3  * 信1805-2
 4  * @author cuixingyu
 5  * 20183547
 6  */
 7 public class ScoreInformation {
 8     
 9     private String stunumber; //学号
10     private String name;  //姓名
11     private double mathematicsscore; //高等数学
12     private double englishiscore;   //大学英语
13     private double networkscore;    //计算机网络成绩
14     private double databasescore;   //数据库成绩
15     private double softwarescore;   //软件工程成绩
16     
17     public ScoreInformation(String stunumber, String name, double mathematicsscore, double englishiscore, double networkscore,
18             double databasescore, double softwarescore) {
19         super();
20         this.stunumber = stunumber;
21         this.name = name;
22         this.mathematicsscore = mathematicsscore;
23         this.englishiscore = englishiscore;
24         this.networkscore = networkscore;
25         this.databasescore = databasescore;
26         this.softwarescore = softwarescore;
27     }
28     public String getStunumber() {
29         return stunumber;
30     }
31     public void setStunumber(String stunumber) {
32         this.stunumber = stunumber;
33     }
34     public String getName() {
35         return name;
36     }
37     public void setName(String name) {
38         this.name = name;
39     }
40     public double getMathematicsscore() {
41         return mathematicsscore;
42     }
43     public void setMathematicsscore(double mathematicsscore) {
44         this.mathematicsscore = mathematicsscore;
45     }
46     public double getEnglishiscore() {
47         return englishiscore;
48     }
49     public void setEnglishiscore(double englishiscore) {
50         this.englishiscore = englishiscore;
51     }
52     public double getNetworkscore() {
53         return networkscore;
54     }
55     public void setNetworkscore(double networkscore) {
56         this.networkscore = networkscore;
57     }
58     public double getDatabasescore() {
59         return databasescore;
60     }
61     public void setDatabasescore(double databasescore) {
62         this.databasescore = databasescore;
63     }
64     public double getSoftwarescore() {
65         return softwarescore;
66     }
67     public void setSoftwarescore(double softwarescore) {
68         this.softwarescore = softwarescore;
69     }
70     public static void main(String[] args) {
71         ScoreInformation s=new ScoreInformation("20183547","崔星宇",90.0,90.0,90.0,90.0,90.0);
72         System.out.println(s.getStunumber()+" "+s.getName()+" "+s.getEnglishiscore()+" "+s.getMathematicsscore()+" "+s.getSoftwarescore()+" "+s.getNetworkscore()+" "+s.getDatabasescore());
73     }
74 
75 }

 


功能要求如下:

1、定义 ScoreInformation 类,其中包括七个私有变量(stunumber,
name, mathematicsscore, englishiscore,networkscore, databasescore,
softwarescore)。
各成员的含义如下:
变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数
字组成)。
变量 name 为字符串类型 String,用于存储学生的姓名。
变量 mathematicsscore 为 double 类型,用于存储学生的高等数学成绩,
高等数学的学分为 4 分。
变量 englishiscore 为 double 类型,用于存储学生的大学英语成绩,大学
英语的学分为 3 分。
变量 networkscore 为 double 类型,用于存储学生的计算机网络成绩,计
算机网络的学分为 4 分。
第 2 页 共  8 页
变量 databasescore 为 double 类型,用于存储学生的数据库成绩,数据库
的学分为 3 分。
变量 softwarescore 为 double 类型,用于存储学生的软件工程成绩,软件
工程的学分为 2 分。
对每个变量定义 get()(读取变量信息)和 set()(设置变量信息)的
方法。
2 、 赋 初 值 方 法 包 括 七 个 参 数 , 用 于 为 变 量 (stunumber ,
name, mathematicsscore, englishiscore,networkscore, databasescore,
softwarescore)赋值。
三、 功能要求:(10 分)
该系统完成学生成绩录入,修改,计算学分积点和查询学生成绩的简单
功能,定义 ScoreManagement 类完成下列功能。
1、利用数组实现至少存储五个学生的信息; (将考生信息作为第一条记
录)。(1 分)
2、学生成绩管理系统的主界面如下图所示:(1 分)
①界面要求;(0.5 分)
***********************************************************
石家庄铁道大学软件工程系
学生学籍管理系统 2019 版
***********************************************************
1、 学生考试成绩录入
2、 学生考试成绩修改
3、 计算学生成绩绩点
4、退出学籍管理系统
**********************************************************
 
第 3 页 共  8 页
②功能说明
输入数字 1-4 执行相应的功能,输入其他数字提示错误信息(该选项
不存在),并返回主界面。(0.5 分)
2、成绩录入功能操作流程:(3 分)
①在主界面选择成绩录入功能后,进入成绩录入界面,如下图所示: (0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。
②用户输入学号后,显示用户学号和姓名,如果用户学号不存在或信息错
误提示错误信息(该学号不存在),并返回成绩录入界面。(0.5 分)
③用户输入学号正确如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入高等数学成绩:XXX
**********************************************************
提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学
英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当
第 4 页 共  8 页
用户录完所有成绩后,显示如下界面。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
高等数学成绩:XXX
大学英语成绩:XXX
计算机网络成绩:XXX
数据库成绩:XXX
软件工程成绩:XXX
该学生成绩已录入完毕,是否提交(Y/N)
**********************************************************
选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩录入界面。(0.5 分)
3、成绩修改功能操作流程:(2 分)
①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示:
 
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩修改界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。(0.5 分)
 
第 5 页 共  8 页
②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。
 
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
**********************************************************
如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回
成绩修改界面。(0.5 分)
③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。(0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入修改后软件工程成绩:XXX
**********************************************************
录入修改后的成绩,则进入下一步。
第 6 页 共  8 页
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
该学生成绩已修改完毕,是否提交(Y/N)
**********************************************************
 
选择“Y”将修改后成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩修改界面。(0.5 分)
 
3、计算学生成绩绩点功能操作流程:(2 分)
①在主界面选择计算学生成绩绩点功能后,进入计算学生成绩绩点界面,
如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩绩点计算界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
第 7 页 共  8 页
提示用户输入八位的学号。
②用户输入学号后,显示用户学号、姓名、学分绩点、提示信息。如下图
所示。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩绩点计算界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩绩点:XXX
2、大学英语成绩绩点:XXX
3、计算机网络成绩绩点:XXX
4、数据库成绩绩点:XXX
5、软件工程成绩绩点:XXX
你的平均学分绩点为:XXX
提示信息:XXX XXX XXX XXX XXX XXX XXX
是否返回系统主界面:(Y/N)
**********************************************************
如果学分绩点大于等于 2,提示信息显示“你的学分绩点已达到毕业要
求!”;
如果学分绩点小于 2,提示信息显示“你的学分绩点不满足毕业要求!”
 
 
 
 
 
第 8 页 共  8 页
学分绩点计算方法:
(1) 百分制对应绩点
 
分数  ≥90  
 85~
89.9
82~
84.9
78~
81.9
75~
77.9
72~
74.9
68~
71.9
66~
67.9
64~
65.9
60~
63.9
<60
绩点  4.0   3.7  3.3  3.0  2.7  2.3  2.0  1.7  1.5  1.0  0
 
(2)平均学分计算方法
平均学分绩点=∑ ( 课程绩点× 该课程学分) /∑ 课程学分
计算平均学分绩点按四舍五入原则, 小数点后保留两位有效数字。
 
③选择“Y”返回系统主界面。选择“N”,无操作。(0.5 分)
 
4、用户选择数字“4”, 显示如下界面,退出当前程序。(1 分)
***********************************************************
谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版
制作人:考生姓名
***********************************************************


 

 

 

代码实现如下:

首先定义一个 jidian类 用于储存绩点,并便于输出

代码实现如下:

 1 package 课堂测试试卷;
 2 
 3 public class jidian {
 4     private String id;
 5     private String name;
 6     private double s1;
 7     private double s2;
 8     private double s3;
 9     private double s4;
10     private double s5;
11     private double s6;
12     
13     
14     public String getId() {
15         return id;
16     }
17     public void setId(String id) {
18         this.id = id;
19     }
20     public String getName() {
21         return name;
22     }
23     public void setName(String name) {
24         this.name = name;
25     }
26     public double getS1() {
27         return s1;
28     }
29     public void setS1(double s1) {
30         this.s1 = s1;
31     }
32     public double getS2() {
33         return s2;
34     }
35     public void setS2(double s2) {
36         this.s2 = s2;
37     }
38     public double getS3() {
39         return s3;
40     }
41     public void setS3(double s3) {
42         this.s3 = s3;
43     }
44     public double getS4() {
45         return s4;
46     }
47     public void setS4(double s4) {
48         this.s4 = s4;
49     }
50     public double getS5() {
51         return s5;
52     }
53     public void setS5(double s5) {
54         this.s5 = s5;
55     }
56     public double getS6() {
57         return s6;
58     }
59     public void setS6(double s6) {
60         this.s6 = s6;
61     }
62     public jidian(String id, String name, double s1, double s2, double s3, double s4, double s5, double s6) {
63         super();
64         this.id = id;
65         this.name = name;
66         this.s1 = s1;
67         this.s2 = s2;
68         this.s3 = s3;
69         this.s4 = s4;
70         this.s5 = s5;
71         this.s6 = s6;
72     }
73 }

 

 

 

主要代码如下:

  1 /** 信1805-2
  2  *  崔星宇
  3  *  20183547
  4  */ 
  5 package 课堂测试试卷;
  6 
  7 import java.util.Scanner;
  8 
  9 public class ScoreManagement {
 10     static Scanner sc=null;
 11     //static ScoreInformation s[]=new ScoreInformation[1000];
 12     static ScoreInformation s1=new ScoreInformation("20183547","崔星宇",0,0,0,0,0);
 13     static ScoreInformation s2=new ScoreInformation("20183549","张三",0,0,0,0,0);
 14     static ScoreInformation s3=new ScoreInformation("20183550","李四",0,0,0,0,0);
 15     static ScoreInformation s4=new ScoreInformation("20183551","王五",0,0,0,0,0);
 16     static ScoreInformation s5=new ScoreInformation("20183552","赵六",0,0,0,0,0);
 17     static ScoreInformation S=new ScoreInformation(null,null,0,0,0,0,0);
 18     static jidian s=new jidian(null,null,0,0,0,0,0,0);
 19     /**
 20      * 主界面
 21      */
 22     public static void Menu() {
 23      System.out.println("***********************************************************\r\n" + 
 24              "        石家庄铁道大学软件工程系 \r\n" + 
 25              "        学生学籍管理系统 2019版 \r\n" + 
 26              "*********************************************************** \r\n" + 
 27              "        1、 学生考试成绩录入 \r\n" + 
 28              "        2、 学生考试成绩修改 \r\n" + 
 29              "        3、 计算学生成绩绩点 \r\n" + 
 30              "        4、退出学籍管理系统 \r\n" + 
 31              "********************************************************** ");    
 32         int i=1;
 33         sc=new Scanner(System.in);
 34         while(i!=4) {   //选择需要的操作
 35         i=sc.nextInt();
 36         switch(i) {
 37         case 1: 
 38             addinfo();
 39             break;
 40         case 2:
 41             updateinfo();
 42             break;
 43         case 3:
 44             mathinfo();
 45             break;
 46         case 4:
 47             menuend();
 48             break;
 49         default:
 50             System.out.println("该选项不存在");
 51             Menu();
 52         break;
 53         }
 54     }
 55     }
 56     /**
 57      * 结束界面
 58      */
 59 
 60     public static void menuend() {
 61         System.out.println("***********************************************************\r\n" + 
 62                 "        谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
 63                 "        制作人:崔星宇 \r\n" + 
 64                 "***********************************************************");
 65           System.exit(0);
 66     }
 67     /**
 68      * 录入界面
 69      */
 70     public static String menu1() {
 71         System.out.println("***********************************************************\r\n" + 
 72                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
 73                 "        学生考试成绩录入 \r\n" + 
 74                 "*********************************************************** \r\n" + 
 75                 "        请输入学生学号:          \r\n" + 
 76                 "********************************************************** ");
 77         int i=0;
 78         sc=new Scanner(System.in);  //判断学号是否是八位
 79         String q=sc.next();
 80         if(q.length()!=8) {
 81             System.out.println("该学号不存在");
 82             menu1();
 83         }
 84         int k=0;
 85         if(s1.getStunumber().compareTo(q)!=0) {   //判断已经录入的学生里面是否由该学生
 86             k++;
 87         }
 88         if(s2.getStunumber().compareTo(q)!=0) {
 89             k++;
 90         }
 91         if(s3.getStunumber().compareTo(q)!=0) {
 92             k++;
 93         }
 94         if(s4.getStunumber().compareTo(q)!=0) {
 95             k++;
 96         }
 97         if(s5.getStunumber().compareTo(q)!=0) {
 98             k++;
 99         }
100         if(k==5)
101         {
102             System.out.println("该学号不存在");
103             menu1();
104         }
105         return q;
106     }
107     
108     //录入高等数学成绩
109     public static void menu2() {
110         System.out.println("***********************************************************\r\n" + 
111                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
112                 "        学生考试成绩录入界面 \r\n" +
113                 "*********************************************************** \r\n" + 
114                 "        学生学号: \r\n" + S.getStunumber()+ "\r\n"+
115                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
116                 "        请输入高等数学成绩: \r\n" + 
117                 "********************************************************** ");
118     }
119     //录入大学英语成绩
120     public static void menu3() {
121         System.out.println("***********************************************************\r\n" + 
122                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
123                 "        学生考试成绩录入 \r\n" + 
124                 "*********************************************************** \r\n" + 
125                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
126                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
127                 "        高等数学成绩: \r\n" + S.getMathematicsscore()+"\r\n"+
128                 "        请输入大学英语成绩: \r\n" + 
129                 "********************************************************** ");
130         
131     }
132     //录入计算机网络成绩
133     public static void menu4() {
134         System.out.println("***********************************************************\r\n" + 
135                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
136                 "        学生考试成绩录入 \r\n" + 
137                 "*********************************************************** \r\n" + 
138                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
139                 "        学生姓名:\r\n" + S.getName()+"\r\n"+
140                 "        高等数学成绩: \r\n" + S.getMathematicsscore()+"\r\n"+
141                 "        大学英语成绩: \r\n" + S.getEnglishiscore()+"\r\n"+
142                 "        请输入计算机网络成绩: \r\n" + 
143                 
144                 "********************************************************** ");
145         
146     }
147     //录入数据库成绩
148     public static void menu5() {
149         System.out.println("***********************************************************\r\n" + 
150                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
151                 "        学生考试成绩录入 \r\n" + 
152                 "*********************************************************** \r\n" + 
153                 "        学生学号: \r\n" +  S.getStunumber()+"\r\n"+
154                 "        学生姓名:\r\n" + S.getName()+"\r\n"+
155                 "        高等数学成绩: \r\n" + S.getMathematicsscore()+"\r\n"+
156                 "        大学英语成绩: \r\n" + S.getEnglishiscore()+"\r\n"+
157                 "        计算机网络成绩: \r\n" + S.getNetworkscore()+"\r\n"+
158                 "        请输入数据库成绩:\r\n" + 
159                 "********************************************************** ");
160     }
161     //录入软件工程成绩
162     public static void menu6() {
163         System.out.println("***********************************************************\r\n" + 
164                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
165                 "        学生考试成绩录入 \r\n" + 
166                 "*********************************************************** \r\n" + 
167                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
168                 "        学生姓名:\r\n" + S.getName()+"\r\n"+
169                 "        高等数学成绩: \r\n" + S.getMathematicsscore()+"\r\n"+
170                 "        大学英语成绩: \r\n" + S.getEnglishiscore()+"\r\n"+
171                 "        计算机网络成绩: \r\n" + S.getNetworkscore()+"\r\n"+
172                 "        数据库成绩:\r\n" + S.getDatabasescore()+"\r\n"+
173                 "        请输入软件工程成绩:\r\n" + 
174                 
175                 "********************************************************** ");
176         
177     }
178     //输入完成界面 全部输出成绩并寻求是否保存
179     public static void menu7() {
180         System.out.println("***********************************************************\r\n" + 
181                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
182                 "        学生考试成绩录入 \r\n" + 
183                 "*********************************************************** \r\n" + 
184                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
185                 "        学生姓名:\r\n" + S.getName()+"\r\n"+
186                 "        高等数学成绩: \r\n" + S.getMathematicsscore()+"\r\n"+
187                 "        大学英语成绩: \r\n" + S.getEnglishiscore()+"\r\n"+
188                 "        计算机网络成绩: \r\n" + S.getNetworkscore()+"\r\n"+
189                 "        数据库成绩:\r\n" + S.getDatabasescore()+"\r\n"+
190                 "        软件工程成绩:\r\n" + S.getSoftwarescore()+"\r\n"+
191                 "        该学生成绩已录入完毕,是否提交(Y/N) \r\n" + 
192                 "********************************************************** ");
193         
194     }
195 /**
196  * 修改界面
197   */
198     public static String menu21() {
199         System.out.println("***********************************************************\r\n" + 
200                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
201                 "        学生考试成绩修改界面 \r\n" + 
202                 "*********************************************************** \r\n" + 
203                 "        请输入学生学号(输入八位的学号): \r\n" + 
204                 "********************************************************** ");
205         sc=new Scanner(System.in);
206         String q=sc.next();
207         return q;
208     }
209     //输出所查询的学生所有成绩
210     public static void menu22() {
211      System.out.println("***********************************************************\r\n" + 
212              "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
213              "        学生考试成绩录入 \r\n" + 
214              "*********************************************************** \r\n" + 
215              "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
216              "        学生姓名:\r\n" + S.getName()+"\r\n"+
217              "        1、高等数学成绩:\r\n" + S.getMathematicsscore()+"\r\n"+
218              "        2、大学英语成绩: \r\n" + S.getEnglishiscore()+"\r\n"+
219              "        3、计算机网络成绩:\r\n" + S.getNetworkscore()+"\r\n"+
220              "        4、数据库成绩:\r\n" + S.getDatabasescore()+"\r\n"+
221              "        5、软件工程成绩:\r\n" + S.getSoftwarescore()+"\r\n"+
222              "********************************************************** ");
223      int i;
224      sc=new Scanner(System.in);
225      i=sc.nextInt();
226      switch(i) {
227      case 1:   //选择需要修改的成绩
228          menu23();
229          break;
230      case 2:
231          menu24();
232          break;
233      case 3:
234          menu25();
235          break;
236      case 4:
237          menu26();
238          break;
239      case 5:
240          menu27();
241          break;
242      }
243     }
244     //修改高数成绩
245     public static void menu23() {
246         System.out.println("***********************************************************\r\n" + 
247                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
248                 "        学生考试成绩录入界面 \r\n" + 
249                 "*********************************************************** \r\n" + 
250                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
251                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
252                 "        请输入修改后高等数学成绩: \r\n" + 
253                 "********************************************************** ");
254         sc=new Scanner(System.in);
255         double a=sc.nextDouble();
256         S.setMathematicsscore(a);
257         
258     }
259     //修改大学英语成绩
260     public static void menu24() {
261         System.out.println("***********************************************************\r\n" + 
262                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
263                 "        学生考试成绩录入界面 \r\n" + 
264                 "*********************************************************** \r\n" + 
265                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
266                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
267                 "        请输入修改后大学英语成绩: \r\n" + 
268                 "********************************************************** ");
269         sc=new Scanner(System.in);
270         double a=sc.nextDouble();
271         S.setEnglishiscore(a);
272     }
273     //修改计算机网络成绩
274     public static void menu25() {
275         System.out.println("***********************************************************\r\n" + 
276                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
277                 "        学生考试成绩录入界面 \r\n" + 
278                 "*********************************************************** \r\n" + 
279                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
280                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
281                 "        请输入修改后计算机网络成绩: \r\n" + 
282                 "********************************************************** ");
283         sc=new Scanner(System.in);
284         double a=sc.nextDouble();
285         S.setNetworkscore(a);
286     }
287     //修改数据库成绩
288     public static void menu26() {
289         System.out.println("***********************************************************\r\n" + 
290                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
291                 "        学生考试成绩录入界面 \r\n" + 
292                 "*********************************************************** \r\n" + 
293                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
294                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
295                 "        请输入修改后数据库成绩: \r\n" + 
296                 "********************************************************** ");
297         sc=new Scanner(System.in);
298         double a=sc.nextDouble();
299         S.setDatabasescore(a);
300         
301     }
302     //修改软件工程成绩
303     public static void menu27() {
304         System.out.println("***********************************************************\r\n" + 
305                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
306                 "        学生考试成绩录入界面 \r\n" + 
307                 "*********************************************************** \r\n" + 
308                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
309                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
310                 "        请输入修改后软件工程成绩: \r\n" + 
311                 "********************************************************** ");
312         sc=new Scanner(System.in);
313         double a=sc.nextDouble();
314         S.setSoftwarescore(a);
315         
316     }
317     //全部输出成绩并寻求是否保存
318     public static void menu28() {
319         System.out.println("***********************************************************\r\n" + 
320                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
321                 "        学生考试成绩录入 \r\n" + 
322                 "*********************************************************** \r\n" + 
323                 "        学生学号: \r\n" + S.getStunumber()+"\r\n"+
324                 "        学生姓名: \r\n" + S.getName()+"\r\n"+
325                 "        1、高等数学成绩: \r\n" + S.getMathematicsscore()+"\r\n"+
326                 "        2、大学英语成绩: \r\n" + S.getEnglishiscore()+"\r\n"+
327                 "        3、计算机网络成绩: \r\n" + S.getNetworkscore()+"\r\n"+
328                 "        4、数据库成绩: \r\n" + S.getDatabasescore()+"\r\n"+
329                 "        5、软件工程成绩: \r\n" + S.getSoftwarescore()+"\r\n"+
330                 "        该学生成绩已修改完毕,是否提交(Y/N) \r\n" + 
331                 "********************************************************** ");
332     }
333     
334     //计算学生绩点输入学号
335     public static void menu31() {
336         System.out.println("***********************************************************\r\n" + 
337                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
338                 "        学生考试成绩绩点计算界面 \r\n" + 
339                 "*********************************************************** \r\n" + 
340                 "        请输入学生学号: \r\n" + 
341                 "********************************************************** ");
342     }
343     //输出绩点
344     public static void menu32() {
345         double a=s.getS6();
346         if(a>2||a==2) {
347             System.out.println("***********************************************************\r\n" + 
348                 "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
349                 "        学生考试成绩绩点计算界面\r\n" + 
350                 "*********************************************************** \r\n" + 
351                 "        学生学号: \r\n" + s.getId()+"\r\n"+
352                 "        学生姓名:\r\n" + s.getName()+"\r\n"+
353                 "        1、高等数学成绩绩点: \r\n" + s.getS1()+"\r\n"+
354                 "        2、大学英语成绩绩点: \r\n" + s.getS2()+"\r\n"+
355                 "        3、计算机网络成绩绩点: \r\n" + s.getS3()+"\r\n"+
356                 "        4、数据库成绩绩点: \r\n" + s.getS4()+"\r\n"+
357                 "        5、软件工程成绩绩点: \r\n" + s.getS5()+"\r\n"+
358                 "        你的平均学分绩点为: \r\n" + String.format("%.2f", s.getS6())+"\r\n"+  //输出保留两位小数
359                 "        提示信息: \r\n" + "你的学分绩点已达到毕业要求!"+"\r\n"+
360                 "        是否返回系统主界面:(Y/N) \r\n" + 
361                 "********************************************************** ");
362         }
363         else {
364             System.out.println("***********************************************************\r\n" + 
365                     "        石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" + 
366                     "        学生考试成绩绩点计算界面\r\n" + 
367                     "*********************************************************** \r\n" + 
368                     "        学生学号: \r\n" + s.getId()+"\r\n"+
369                     "        学生姓名:\r\n" + s.getName()+"\r\n"+
370                     "        1、高等数学成绩绩点: \r\n" + s.getS1()+"\r\n"+
371                     "        2、大学英语成绩绩点: \r\n" + s.getS2()+"\r\n"+
372                     "        3、计算机网络成绩绩点: \r\n" + s.getS3()+"\r\n"+
373                     "        4、数据库成绩绩点: \r\n" + s.getS4()+"\r\n"+
374                     "        5、软件工程成绩绩点: \r\n" + s.getS5()+"\r\n"+
375                     "        你的平均学分绩点为: \r\n" + String.format("%.2f", s.getS6())+"\r\n"+  //输出保留两位小数
376                     "        提示信息: \r\n" + "你的学分绩点不满足毕业要求!"+"\r\n"+
377                     "        是否返回系统主界面:(Y/N) \r\n" + 
378                     "********************************************************** ");
379         }
380         String f;
381         f=sc.next();
382         String d=new String("Y");
383         boolean k;
384         k=f.equals(d);
385         if(k) {
386             Menu();
387         }
388         else {
389             System.out.println("无操作");
390         }
391         
392     }
393     //求绩点
394     public static double xf(double a) {
395         double x = 0;
396         if(a<60) {
397             x=0;
398         }
399         if(a==60||a>60&&a<63.9) {
400             x=1.0;
401         }
402         if(a==64||a>64&&a<65.9) {
403             x=1.5;
404         }
405 
406         if(a==66||a>66&&a<67.9) {
407             x=1.7;
408         }
409 
410         if(a==68||a>68&&a<71.9) {
411             x=2.0;
412         }
413         if(a==72||a>72&&a<74.9) {
414             x=2.3;
415         }
416         if(a==75||a>75&&a<77.9) {
417             x=2.7;
418         }
419         if(a==78||a>78&&a<81.9) {
420             x=3.0;
421         }
422         if(a==82||a>82&&a<84.9) {
423             x=3.3;
424         }
425         if(a==85||a>85&&a<89.9) {
426             x=3.7;
427         }
428         if(a==90||a>90) {
429             x=4.0;
430         }
431         return x;
432     }
433 /**
434  * 录入学生成绩
435  */
436     public static void addinfo() {
437         System.out.println("录入学生成绩");
438         String id= menu1();
439 
440         if(s1.getStunumber().compareTo(id)==0) {
441             S=s1;
442         }
443         if(s2.getStunumber().compareTo(id)==0) {
444             S=s2;
445         }
446         if(s3.getStunumber().compareTo(id)==0) {
447             S=s3;
448         }
449         if(s4.getStunumber().compareTo(id)==0) {
450             S=s4;
451         }
452         if(s5.getStunumber().compareTo(id)==0) {
453             S=s5;
454         }
455         double a1,a2,a3,a4,a5;
456         menu2();
457         a1=sc.nextDouble();          
458         S.setMathematicsscore(a1);    //添加成绩
459         menu3();
460         a2=sc.nextDouble();
461         S.setEnglishiscore(a2);
462         menu4();
463         a3=sc.nextDouble();
464         S.setNetworkscore(a3);
465         menu5();
466         a4=sc.nextDouble();
467         S.setDatabasescore(a4);
468         menu6();
469         a5=sc.nextDouble();
470         S.setSoftwarescore(a5);
471         menu7();
472         String f;
473         f=sc.next();
474         String d=new String("Y");
475         boolean k;
476         k=f.equals(d);    //判断 是否成绩录入
477         if(k) {
478             if(s1.getStunumber().compareTo(id)==0) {
479                 s1=S;
480             }
481             if(s2.getStunumber().compareTo(id)==0) {
482                 s2=S;
483             }
484             if(s3.getStunumber().compareTo(id)==0) {
485                 s3=S;
486             }
487             if(s4.getStunumber().compareTo(id)==0) {
488                 s4=S;
489             }
490             if(s5.getStunumber().compareTo(id)==0) {
491                 s5=S;
492             }
493             Menu();
494         }else {
495             Menu();
496         }
497    }
498     /**
499      * 修改学生信息
500      */
501     public static void updateinfo() {
502         System.out.println("学生成绩修改");
503         String id=menu21();  //打印界面
504         if(s1.getStunumber().compareTo(id)==0) {  
505             S=s1;
506         }
507         if(s2.getStunumber().compareTo(id)==0) {
508             S=s2;
509         }
510         if(s3.getStunumber().compareTo(id)==0) {
511             S=s3;
512         }
513         if(s4.getStunumber().compareTo(id)==0) {
514             S=s4;
515         }
516         if(s5.getStunumber().compareTo(id)==0) {
517             S=s5;
518         }
519         menu22();
520         menu28();
521         sc=new Scanner(System.in);
522         String f;
523         f=sc.next();
524         String d=new String("Y");  //判断 是否成绩录入
525         boolean k;
526         k=f.equals(d);
527         if(k) {
528             if(s1.getStunumber().compareTo(id)==0) {
529                 s1=S;
530             }
531             if(s2.getStunumber().compareTo(id)==0) {
532                 s2=S;
533             }
534             if(s3.getStunumber().compareTo(id)==0) {
535                 s3=S;
536             }
537             if(s4.getStunumber().compareTo(id)==0) {
538                 s4=S;
539             }
540             if(s5.getStunumber().compareTo(id)==0) {
541                 s5=S;
542             }
543             Menu();
544         }else {
545             Menu();
546         }
547         
548     }
549     /**
550      * 计算学生绩点
551      */
552     public static void mathinfo() {
553         System.out.println("计算学生成绩绩点 ");
554         menu31();
555         sc=new Scanner(System.in);
556         String id=sc.next();
557         if(s1.getStunumber().compareTo(id)==0) {  //判断是否学号是s1
558             s.setId(s1.getStunumber());
559             s.setName(s1.getName());
560             double z1,z2,z3,z4,z5,z6;
561             z1=s1.getMathematicsscore();
562             z2=s1.getEnglishiscore();
563             z3=s1.getNetworkscore();
564             z4=s1.getDatabasescore();
565             z5=s1.getSoftwarescore();
566             s.setS1(xf(z1));
567             s.setS2(xf(z2));
568             s.setS3(xf(z3));
569             s.setS4(xf(z4));
570             s.setS5(xf(z5));
571             double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5();
572             double b=16;
573             double c=a/b;
574             s.setS6(c);
575         }
576         if(s2.getStunumber().compareTo(id)==0) {  //判断是否学号是s2
577             s.setId(s2.getStunumber());
578             s.setName(s2.getName());
579             double z1,z2,z3,z4,z5,z6;
580             z1=s2.getMathematicsscore();
581             z2=s2.getEnglishiscore();
582             z3=s2.getNetworkscore();
583             z4=s2.getDatabasescore();
584             z5=s2.getSoftwarescore();
585             s.setS1(xf(z1));
586             s.setS2(xf(z2));
587             s.setS3(xf(z3));
588             s.setS4(xf(z4));
589             s.setS5(xf(z5));
590             double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5();
591             double b=16;
592             double c=a/b;
593             s.setS6(c);
594         }
595         if(s3.getStunumber().compareTo(id)==0) { //判断是否学号是s3
596             s.setId(s3.getStunumber());
597             s.setName(s3.getName());
598             double z1,z2,z3,z4,z5,z6;
599             z1=s3.getMathematicsscore();
600             z2=s3.getEnglishiscore();
601             z3=s3.getNetworkscore();
602             z4=s3.getDatabasescore();
603             z5=s3.getSoftwarescore();
604             s.setS1(xf(z1));
605             s.setS2(xf(z2));
606             s.setS3(xf(z3));
607             s.setS4(xf(z4));
608             s.setS5(xf(z5));
609             double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5();
610             double b=16;
611             double c=a/b;
612             s.setS6(c);
613         }
614         if(s4.getStunumber().compareTo(id)==0) { //判断是否学号是s4
615             s.setId(s4.getStunumber());
616             s.setName(s4.getName());
617             double z1,z2,z3,z4,z5,z6;
618             z1=s4.getMathematicsscore();
619             z2=s4.getEnglishiscore();
620             z3=s4.getNetworkscore();
621             z4=s4.getDatabasescore();
622             z5=s4.getSoftwarescore();
623             s.setS1(xf(z1));
624             s.setS2(xf(z2));
625             s.setS3(xf(z3));
626             s.setS4(xf(z4));
627             s.setS5(xf(z5));
628             double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5();
629             double b=16;
630             double c=a/b;
631             s.setS6(c);
632         }
633         if(s5.getStunumber().compareTo(id)==0) { //判断是否学号是s5
634             s.setId(s5.getStunumber());
635             s.setName(s5.getName());
636             double z1,z2,z3,z4,z5,z6;
637             z1=s5.getMathematicsscore();
638             z2=s5.getEnglishiscore();
639             z3=s5.getNetworkscore();
640             z4=s5.getDatabasescore();
641             z5=s5.getSoftwarescore();
642             s.setS1(xf(z1));
643             s.setS2(xf(z2));
644             s.setS3(xf(z3));
645             s.setS4(xf(z4));
646             s.setS5(xf(z5));
647             double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5();
648             double b=16;
649             double c=a/b;  //四舍五入取值
650             s.setS6(c);
651         }
652         menu32();
653     }
654     /**
655      * 主函数 调用
656      * @param args
657      */
658     public static void main(String[] args) {
659         Menu();
660     }
661 }

 


 

设计思路:

首先仔细研读题目要求,设置方法满足功能的实现。我第一步实现的是菜单的实现,因为使用的是dos系统,页面不能更新,只能多次更新,所以菜单的实现使用了很多的方法来实现,其次对于是否保存的判断,需要进行判断,我使用的是匹配是否与要求相同,然会返回一个foolean类型数值,依据此数值进行操作。

学生成绩的录入:首先设置菜单的输出,依次录入成绩,并暂时保存,等到录入结束的时候,再根据用户自己判定是否需要保存录入的成绩。

学生成绩的修改:输出菜单,然后选择需要修改的成绩的科目,修改成绩,判断是否保存成绩。

学生学分的计算:输出菜单,选择需要计算学分的同学,输入学号,然后自动输出各科绩点,和平均绩点(保留小数点后两位)。 判读学分绩点需要设计方法来计算每科的成绩,平均成绩也必须寻找方法来判断。


 测试截图如下:

 

 

 

 

 

 

 

 

 

 

posted @ 2019-09-11 12:42  不懂就要问!  阅读(168)  评论(0编辑  收藏  举报