一、测试题目
1、以下为考试题目
一、考试要求:
1、按照测试内容要求完成程序的设计与编程;
2、建立学号姓名文件夹,如:“信 1805-1 班 20183557 杨雄豪”,将
源程序文件 保存在文件夹中,压缩成 rar 文件提交。
3、以班级为单位上交最终考试结果。
4、需要在程序开始的注释中注明班级、学号、姓名。
二、数据结构要求:(5 分)
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、退出学籍管理系统
**********************************************************
②功能说明
输入数字 1-4 执行相应的功能,输入其他数字提示错误信息(该选项
不存在),并返回主界面。(0.5 分)
2、成绩录入功能操作流程:(3 分)
①在主界面选择成绩录入功能后,进入成绩录入界面,如下图所示: (0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。
②用户输入学号后,显示用户学号和姓名,如果用户学号不存在或信息错
误提示错误信息(该学号不存在),并返回成绩录入界面。(0.5 分)
③用户输入学号正确如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入高等数学成绩:XXX
**********************************************************
提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学
英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当
用户录完所有成绩后,显示如下界面。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
高等数学成绩:XXX
大学英语成绩:XXX
计算机网络成绩:XXX
数据库成绩:XXX
软件工程成绩:XXX
该学生成绩已录入完毕,是否提交(Y/N)
**********************************************************
选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩录入界面。(0.5 分)
3、成绩修改功能操作流程:(2 分)
①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩修改界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。(0.5 分)
②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
**********************************************************
如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回
成绩修改界面。(0.5 分)
③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。(0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入修改后软件工程成绩:XXX
**********************************************************
录入修改后的成绩,则进入下一步。
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
该学生成绩已修改完毕,是否提交(Y/N)
**********************************************************
选择“Y”将修改后成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩修改界面。(0.5 分)
3、计算学生成绩绩点功能操作流程:(2 分)
①在主界面选择计算学生成绩绩点功能后,进入计算学生成绩绩点界面,
如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩绩点计算界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。
②用户输入学号后,显示用户学号、姓名、学分绩点、提示信息。如下图
所示。(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,提示信息显示“你的学分绩点不满足毕业要求!”
学分绩点计算方法:
(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 版
制作人:考生姓名
***********************************************************
二、源程序代码
1.ScoreInformation 类:
1 /*
2 信1805-1
3 20183504
4 肖洋
5 */
6 public class ScoreInformation {
7 private String stunumber;
8 private String name;
9 private double mathematicsscore;
10 private double englishiscore;
11 private double networkscore;
12 private double databasescore;
13 private double softwarescore;
14 public String getStunumber()
15 {
16 return stunumber;
17 }
18
19 public void setStunumber(String stunumber)
20 {
21 this.stunumber = stunumber;
22 }
23
24 public String getName()
25 {
26 return name;
27 }
28
29 public void setName(String name)
30 {
31 this.name = name;
32 }
33
34 public double getMathematicsscore()
35 {
36 return mathematicsscore;
37 }
38
39 public void setMathematicsscore(double mathematicsscore)
40 {
41 this.mathematicsscore = mathematicsscore;
42 }
43
44 public double getEnglishiscore()
45 {
46 return englishiscore;
47 }
48
49 public void setEnglishiscore(double englishiscore)
50 {
51 this.englishiscore = englishiscore;
52 }
53
54 public double getNetworkscore()
55 {
56 return networkscore;
57 }
58
59 public void setNetworkscore(double networkscore)
60 {
61 this.networkscore = networkscore;
62 }
63
64 public double getDatabasescore()
65 {
66 return databasescore;
67 }
68
69 public void setDatabasescore(double databasescore)
70 {
71 this.databasescore = databasescore;
72 }
73
74 public double getSoftwarescore()
75 {
76 return softwarescore;
77 }
78
79 public void setSoftwarescore(double softwarescore)
80 {
81 this.softwarescore = softwarescore;
82 }
83
84 public ScoreInformation(String stunumber ,String name,double mathematicsscore,double englishiscore,double networkscore,double databasescore,double softwarescore)
85 {
86 this.stunumber = stunumber;
87 this.name = name;
88 this.mathematicsscore = mathematicsscore;
89 this.englishiscore = englishiscore;
90 this.networkscore = networkscore;
91 this.databasescore = databasescore;
92 this.softwarescore = softwarescore;
93 }
94 }
2.ScoreManagement 类:
1 /*
2 信1805-1
3 20183504
4 肖洋
5 */
6 import java.util.Scanner;
7
8 public class ScoreManagement {
9 static int sum=0;
10 static int choose=0;
11 static int flag1;
12 static Scanner sc=null;
13 static ScoreInformation[] a = new ScoreInformation[1000];
14 public static void mainscreen()
15 {
16 sc = new Scanner(System.in);
17 System.out.println("***********************************************************\n" +
18 "石家庄铁道大学软件工程系 \n" +
19 "学生学籍管理系统 2019 版 \n" +
20 "***********************************************************\n" +
21 "1、 学生考试成绩录入 \n" +
22 "2、 学生考试成绩修改 \n" +
23 "3、 计算学生成绩绩点 \n" +
24 "4、退出学籍管理系统 \n" +
25 "**********************************************************");
26 System.out.println("请选择:");
27 choose=sc.nextInt();
28 }
29 public static void addscore(String stunumber ,String name,double mathematicsscore,double englishiscore,double networkscore,double databasescore,double softwarescore)
30 {
31 a[sum]=new ScoreInformation(stunumber,name,mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
32 }
33 public static void scoreinputscreen1()
34 {
35 System.out.println("***********************************************************\n" +
36 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
37 "学生考试成绩录入 \n" +
38 "***********************************************************\n" +
39 "请输入学生学号:\n" +
40 "********************************************************** ");
41 }
42 public static void scoreinputscreen2(String stu,String na) {
43 System.out.println("***********************************************************\n" +
44 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
45 "学生考试成绩录入界面 \n" +
46 "*********************************************************** \n" +
47 "学生学号:"+stu+"\n" +
48 "学生姓名:"+na+"\n" +
49 "请输入高等数学成绩:\n" +
50 "********************************************************** ");
51 }
52 public static void scoreinputscreen3(String stu,String na,double math)
53 {
54 System.out.println("***********************************************************\n" +
55 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
56 "学生考试成绩录入界面 \n" +
57 "*********************************************************** \n" +
58 "学生学号:"+stu+"\n" +
59 "学生姓名:"+na+"\n" +
60 "高等数学成绩:"+math+"\n" +
61 "请输入大学英语成绩:\n"+
62 "********************************************************** ");
63 }
64 public static void scoreinputscreen4(String stu,String na,double math,double english) {
65 System.out.println("***********************************************************\n" +
66 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
67 "学生考试成绩录入界面 \n" +
68 "*********************************************************** \n" +
69 "学生学号:"+stu+"\n" +
70 "学生姓名:"+na+"\n" +
71 "高等数学成绩:"+math+"\n" +
72 "大学英语成绩:"+english+"\n"+
73 "请输入计算机网络成绩:\n"+
74 "********************************************************** ");
75 }
76 public static void scoreinputscreen5(String stu,String na,double math,double english,double network) {
77 System.out.println("***********************************************************\n" +
78 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
79 "学生考试成绩录入界面 \n" +
80 "*********************************************************** \n" +
81 "学生学号:"+stu+"\n" +
82 "学生姓名:"+na+"\n" +
83 "高等数学成绩:"+math+"\n" +
84 "大学英语成绩:"+english+"\n"+
85 "计算机网络成绩:"+network+"\n"+
86 "请输入数据库成绩:\n"+
87 "********************************************************** ");
88 }
89 public static void scoreinputscreen6(String stu,String na,double math,double english,double network,double database) {
90 System.out.println("***********************************************************\n" +
91 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
92 "学生考试成绩录入界面 \n" +
93 "*********************************************************** \n" +
94 "学生学号:"+stu+"\n" +
95 "学生姓名:"+na+"\n" +
96 "高等数学成绩:"+math+"\n" +
97 "大学英语成绩:"+english+"\n"+
98 "计算机网络成绩:"+network+"\n"+
99 "数据库成绩:"+database+"\n"+
100 "请输入软件工程成绩:\n"+
101 "********************************************************** ");
102 }
103 public static void scoreinputscreen7(String stu,String na,double math,double english,double network,double database,double software) {
104 System.out.println("***********************************************************\n" +
105 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
106 "学生考试成绩录入界面 \n" +
107 "*********************************************************** \n" +
108 "学生学号:"+stu+"\n" +
109 "学生姓名:"+na+"\n" +
110 "高等数学成绩:"+math+"\n" +
111 "大学英语成绩:"+english+"\n"+
112 "计算机网络成绩:"+network+"\n"+
113 "数据库成绩:"+database+"\n"+
114 "软件工程成绩:"+software+"\n"+
115 "该学生成绩已录入完毕,是否提交(Y/N)");
116 System.out.println("********************************************************** ");
117 }
118 public static void scoreinput()
119 {
120 sc = new Scanner(System.in);
121 String stunumber;
122 int i=0;
123 int flag=1;
124 int count=0;
125 char x='N';
126 do
127 {
128 while(flag==1)
129 {
130 scoreinputscreen1();
131 System.out.println("请输入八位学生学号");
132 stunumber=sc.next();
133 for(int k=0;k<5;k++)
134 {
135 if(stunumber.equals(a[k].getStunumber()))
136 {
137 scoreinputscreen2(stunumber,a[k].getName());
138 i=k;
139 flag=0;
140 break;
141 }
142 else {
143 count++;
144 }
145 }
146 if(count==5)
147 System.out.println("该学号不存在");
148 }
149 String name=a[i].getName();
150 double mathematicsscore;
151 double englishiscore;
152 double networkscore;
153 double databasescore;
154 double softwarescore;
155 mathematicsscore=sc.nextDouble();
156 scoreinputscreen3(a[i].getStunumber(),a[i].getName(),mathematicsscore);
157 englishiscore=sc.nextDouble();
158 scoreinputscreen4(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore);
159 networkscore=sc.nextDouble();
160 scoreinputscreen5(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore,networkscore);
161 databasescore=sc.nextDouble();
162 scoreinputscreen6(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore,networkscore,databasescore);
163 softwarescore=sc.nextDouble();
164 scoreinputscreen7(a[i].getStunumber(),a[i].getName(),mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
165 String s = sc.next();
166 x = s.charAt(0);
167 if(x=='Y')
168 {
169 sum++;
170 ScoreManagement.addscore(a[i].getStunumber(),name,mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
171 }
172 else {
173 flag=1;
174 }
175 }while(x=='N');
176 }
177 public static void scoretuichu()
178 {
179 System.out.println("***********************************************************\n" +
180 "谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
181 "制作人:肖洋\n" +
182 "*********************************************************** ");
183 }
184 public static void scorechange1()
185 {
186 System.out.println("***********************************************************\n" +
187 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
188 "学生考试成绩修改界面 \n" +
189 "*********************************************************** \n" +
190 "请输入学生学号:\n" +
191 "********************************************************** ");
192 }
193 public static void scorechange2(String stu,String na,double math,double english,double network,double database,double software)
194 {
195 System.out.println("***********************************************************\n" +
196 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\n" +
197 "学生考试成绩录入\n" +
198 "***********************************************************\n" +
199 "学生学号:"+stu+"\n" +
200 "学生姓名:"+na+"\n" +
201 "1、高等数学成绩:"+math+" \n" +
202 "2、大学英语成绩:"+english+" \n" +
203 "3、计算机网络成绩: "+network+"\n" +
204 "4、数据库成绩:"+database+" \n" +
205 "5、软件工程成绩:"+software+"\n" +
206 "**********************************************************");
207 }
208 public static void scorechange3(String stu,String na,double math,double english,double network,double database,double software)
209 {
210 System.out.println("***********************************************************\n" +
211 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\n" +
212 "学生考试成绩录入\n" +
213 "***********************************************************\n" +
214 "学生学号:"+stu+"\n" +
215 "学生姓名:"+na+"\n" +
216 "1、高等数学成绩:"+math+" \n" +
217 "2、大学英语成绩:"+english+" \n" +
218 "3、计算机网络成绩: "+network+"\n" +
219 "4、数据库成绩:"+database+" \n" +
220 "5、软件工程成绩:"+software+"\n" +
221 "该学生成绩已修改完毕,是否提交(Y/N)");
222 System.out.println("**********************************************************");
223 }
224 public static void mathscore(String stu,String na)
225 {
226 System.out.println("***********************************************************\n" +
227 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
228 "学生考试成绩录入界面 \n" +
229 "*********************************************************** \n" +
230 "学生学号:"+stu+"\n" +
231 "学生姓名:"+na+"\n" +
232 "请输入修改后高等数学成绩: \n" +
233 "********************************************************** ");
234 }
235 public static void englishscore(String stu,String na)
236 {
237 System.out.println("***********************************************************\n" +
238 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
239 "学生考试成绩录入界面 \n" +
240 "*********************************************************** \n" +
241 "学生学号:"+stu+"\n" +
242 "学生姓名:"+na+"\n" +
243 "请输入修改后大学英语成绩: \n" +
244 "********************************************************** ");
245 }
246 public static void networkscore(String stu,String na)
247 {
248 System.out.println("***********************************************************\n" +
249 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
250 "学生考试成绩录入界面 \n" +
251 "*********************************************************** \n" +
252 "学生学号:"+stu+"\n" +
253 "学生姓名:"+na+"\n" +
254 "请输入修改后计算机网络成绩: \n" +
255 "********************************************************** ");
256 }
257 public static void databasescore(String stu,String na)
258 {
259 System.out.println("***********************************************************\n" +
260 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
261 "学生考试成绩录入界面 \n" +
262 "*********************************************************** \n" +
263 "学生学号:"+stu+"\n" +
264 "学生姓名:"+na+"\n" +
265 "请输入修改后数据库成绩: \n" +
266 "********************************************************** ");
267 }
268 public static void softwarescore(String stu,String na)
269 {
270 System.out.println("***********************************************************\n" +
271 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
272 "学生考试成绩录入界面 \n" +
273 "*********************************************************** \n" +
274 "学生学号:"+stu+"\n" +
275 "学生姓名:"+na+"\n" +
276 "请输入修改后软件工程成绩: \n" +
277 "********************************************************** ");
278 }
279 public static void scorechange()
280 {
281 sc = new Scanner(System.in);
282 int flag=0;
283 char x='N';
284 String s;
285 int count=0;
286 int k=0;
287 int i;
288 String stunumber="";
289 do
290 {
291 while(flag==0)
292 {
293 scorechange1();
294 System.out.println("请输入八位学生学号");
295 stunumber=sc.next();
296 for(i=sum;i>=0;i--) {
297 if(stunumber.equals(a[i].getStunumber()))
298 {
299 scorechange2(a[i].getStunumber(),a[i].getName(),a[i].getMathematicsscore(),a[i].getEnglishiscore(),a[i].getNetworkscore() ,a[i].getDatabasescore(),a[i].getSoftwarescore());
300 flag=1;
301 k=i;
302 break;
303 }
304 else {
305 count++;
306 }
307 }
308 if(count==6)
309 System.out.println("该学号不存在");
310 }
311 double mathematicsscore;
312 double englishiscore;
313 double networkscore;
314 double databasescore;
315 double softwarescore;
316 int b=0;
317 System.out.println("请选择:");
318 b=sc.nextInt();
319 switch(b) {
320 case 1:
321 mathscore(a[k].getStunumber(),a[k].getName());
322 mathematicsscore=sc.nextDouble();
323 scorechange3(a[k].getStunumber(),a[k].getName(),mathematicsscore,a[k].getEnglishiscore(),a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
324 s= sc.next();
325 x = s.charAt(0);
326 if(s.equals("Y"))
327 {
328 sum++;
329 ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),mathematicsscore,a[k].getEnglishiscore(),a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
330 }
331 break;
332 case 2:
333 englishscore(a[k].getStunumber(),a[k].getName());
334 englishiscore=sc.nextDouble();
335 scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),englishiscore,a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
336 s= sc.next();
337 x = s.charAt(0);
338 if(s.equals("Y"))
339 {
340 sum++;
341 ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),englishiscore,a[k].getNetworkscore() ,a[k].getDatabasescore(),a[k].getSoftwarescore());
342 }
343 break;
344 case 3:
345 networkscore(a[k].getStunumber(),a[k].getName());
346 networkscore=sc.nextDouble();
347 scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),networkscore,a[k].getDatabasescore(),a[k].getSoftwarescore());
348 s= sc.next();
349 x = s.charAt(0);
350 if(s.equals("Y"))
351 {
352 sum++;
353 ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),networkscore,a[k].getDatabasescore(),a[k].getSoftwarescore());
354 }
355 break;
356 case 4:
357 databasescore(a[k].getStunumber(),a[k].getName());
358 databasescore=sc.nextDouble();
359 scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),databasescore,a[k].getSoftwarescore());
360 s= sc.next();
361 x = s.charAt(0);
362 if(s.equals("Y"))
363 {
364 sum++;
365 ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),databasescore,a[k].getSoftwarescore());
366 }
367 break;
368 case 5:
369 softwarescore(a[k].getStunumber(),a[k].getName());
370 softwarescore=sc.nextDouble();
371 scorechange3(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),a[k].getDatabasescore(),softwarescore);
372 s= sc.next();
373 x = s.charAt(0);
374 if(s.equals("Y"))
375 {
376 sum++;
377 ScoreManagement.addscore(a[k].getStunumber(),a[k].getName(),a[k].getMathematicsscore(),a[k].getEnglishiscore(),a[k].getNetworkscore(),a[k].getDatabasescore(),softwarescore);
378 }
379 break;
380 }
381 if(x=='Y') {
382 flag=0;
383 }
384 }while(x=='N');
385 }
386 public static void pointcalculate1()
387 {
388 System.out.println("***********************************************************\n" +
389 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \n" +
390 "学生考试成绩绩点计算界面 \n" +
391 "*********************************************************** \n" +
392 "请输入学生学号:\n" +
393 "********************************************************** ");
394 }
395 public static double pointcalculate2(double l)
396 {
397 double m=0;
398 if(l<60)
399 m=0.0;
400 if(l>=60&&l<=63.9)
401 m=1.0;
402 if(l>=64&&l<=65.9)
403 m=1.5;
404 if(l>=66&&l<=67.9)
405 m=1.7;
406 if(l>=68&&l<=71.9)
407 m=2.0;
408 if(l>=72&&l<=74.9)
409 m=2.3;
410 if(l>=75&&l<=77.9)
411 m=2.7;
412 if(l>=78&&l<=81.9)
413 m=3.0;
414 if(l>=82&&l<=84.9)
415 m=3.3;
416 if(l>=85&&l<=89.9)
417 m=3.7;
418 if(l>=90)
419 m=4.0;
420 return m;
421 }
422 public static void pointcalculate3(String stu,String na,double ma,double eng,double net,double data,double soft,double avg)
423 {
424 System.out.println("***********************************************************\r\n" +
425 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" +
426 "学生考试成绩绩点计算界面\r\n" +
427 "*********************************************************** \r\n" +
428 "学生学号:"+stu+"\n" +
429 "学生姓名:"+na+"\n" +
430 "1、高等数学成绩绩点:"+ma+"\n" +
431 "2、大学英语成绩绩点:"+eng+"\n" +
432 "3、计算机网络成绩绩点:"+net+"\n" +
433 "4、数据库成绩绩点:"+data+"\n" +
434 "5、软件工程成绩绩点:"+soft+"\n" +
435 "你的平均学分绩点为:"+avg+"\n" +
436 "提示信息:你的学分绩点已达到毕业要求\n" +
437 "是否返回系统主界面:(Y/N)");
438 System.out.println("********************************************************** ");
439 }
440 public static void pointcalculate4(String stu,String na,double ma,double eng,double net,double data,double soft,double avg)
441 {
442 System.out.println("***********************************************************\r\n" +
443 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版 \r\n" +
444 "学生考试成绩绩点计算界面\r\n" +
445 "*********************************************************** \r\n" +
446 "学生学号:"+stu+"\n" +
447 "学生姓名:"+na+"\n" +
448 "1、高等数学成绩绩点:"+ma+"\n" +
449 "2、大学英语成绩绩点:"+eng+"\n" +
450 "3、计算机网络成绩绩点:"+net+"\n" +
451 "4、数据库成绩绩点:"+data+"\n" +
452 "5、软件工程成绩绩点:"+soft+"\n" +
453 "你的平均学分绩点为:"+avg+"\n" +
454 "提示信息:你的学分绩点已达到毕业要求\n" +
455 "是否返回系统主界面:(Y/N)");
456 System.out.println("********************************************************** ");
457 }
458 public static void pointcalculate()
459 {
460 String stunumber;
461 int i;
462 int k=0;
463 sc = new Scanner(System.in);
464 pointcalculate1();
465 System.out.println("请输入八位学生学号");
466 stunumber=sc.next();
467 for(i=sum;i>=0;i--)
468 {
469 if(stunumber.equals(a[i].getStunumber())){
470 k=i;
471 break;
472 }
473 }
474 double j;
475 double math;
476 double english;
477 double network;
478 double database;
479 double software;
480 j=a[k].getMathematicsscore();
481 math=pointcalculate2(j);
482 j=a[k].getEnglishiscore();
483 english=pointcalculate2(j);
484 j=a[k].getNetworkscore();
485 network=pointcalculate2(j);
486 j=a[k].getDatabasescore();
487 database=pointcalculate2(j);
488 j=a[k].getSoftwarescore();
489 software=pointcalculate2(j);
490 double avgpointscore;
491 avgpointscore=(4*math+3*english+4*network+3*database+2*software)/16;
492 if(avgpointscore>=2)
493 pointcalculate3(a[k].getStunumber(),a[k].getName(),math,english,network,database,software,avgpointscore);
494 else
495 pointcalculate4(a[k].getStunumber(),a[k].getName(),math,english,network,database,software,avgpointscore);
496 String s = sc.next();
497 char x = s.charAt(0);
498 if(x=='Y')
499 {
500 flag1=1;
501 }
502 else
503 {
504 flag1=0;
505 }
506 }
507 public static void main(String[] args){
508
509 sc = new Scanner(System.in);
510 int k1;
511 String stunumber;
512 String name;
513 double mathematicsscore;
514 double englishiscore;
515 double networkscore;
516 double databasescore;
517 double softwarescore;
518 System.out.println("现在是初始创建学生信息,请输入学生信息(格式:学号 姓名 高数成绩 英语成绩 计算机网络成绩 数据库成绩 软件工程成绩):");
519 for(k1=0;k1<5;k1++) {
520 stunumber = sc.next();
521 name = sc.next();
522 mathematicsscore= sc.nextDouble();
523 englishiscore = sc.nextDouble();
524 networkscore= sc.nextDouble();
525 databasescore=sc.nextDouble();
526 softwarescore=sc.nextDouble();
527 ScoreManagement.addscore(stunumber,name,mathematicsscore,englishiscore,networkscore,databasescore,softwarescore);
528 sum++;
529 }
530 mainscreen();
531 while(choose<1||choose>4)
532 {
533 System.out.println("该选项不存在");
534 mainscreen();
535 }
536 while(1<=choose&&choose<=3) {
537 switch(choose) {
538 case 1:
539 scoreinput();
540 flag1=1;
541 break;
542 case 2:
543 scorechange();
544 flag1=1;
545 break;
546 case 3:
547 pointcalculate();
548 break;
549 }
550 if(flag1==1)
551 mainscreen();
552 else
553 break;
554 }
555 if(choose==4)
556 scoretuichu();
557 }
558 }
三、测试运行截图