第一次在课堂上限定时间做的时候,着急、思绪混乱,输入都有问题,好在最后解决了。
昨天安静下来认真写完,测试一遍没有问题,但是仔细想,又二次加工了一下,之前测试No的情况没有发现,最终写成如下版本:
(后悔没把昨天第一次写的保存了,不然就可以看到不封装成函数有多崩溃,血淋淋的教训!)
1 package up;
2
3 public class information {
4 private String num;
5 private String name;
6 private double math;
7 private double eng;
8 private double net;
9 private double data;
10 private double soft;
11 public information() {}
12
13 public String getNum() {
14 return num;
15 }
16
17 public void setNum(String num) {
18 this.num = num;
19 }
20
21 public String getName() {
22 return name;
23 }
24
25 public void setName(String name) {
26 this.name = name;
27 }
28
29 public double getMath() {
30 return math;
31 }
32
33 public void setMath(double math) {
34 this.math = math;
35 }
36
37 public double getEng() {
38 return eng;
39 }
40
41 public void setEng(double eng) {
42 this.eng = eng;
43 }
44
45 public double getNet() {
46 return net;
47 }
48
49 public void setNet(double net) {
50 this.net = net;
51 }
52
53 public double getData() {
54 return data;
55 }
56
57 public void setData(double data) {
58 this.data = data;
59 }
60
61 public double getSoft() {
62 return soft;
63 }
64
65 public void setSoft(double soft) {
66 this.soft = soft;
67 }
68
69 public information(String num,String name,double math,double eng,double net,double data,double soft)
70 {
71 num = " ";
72 name = " ";
73 math = 0;
74 eng = 0;
75 net = 0;
76 data = 0;
77 soft = 0;
78 }
79
80 }
1 package up;
2
3 import java.util.Scanner;
4
5 public class management {
6
7 static information [] stu = new information[100];
8 static String []nums = {"20180001","20180002","20180003","20180004","20183613"};
9 static String []names = {"aaa","bbb","ccc","ddd","薛瑞瑾"};
10 static int sum=0;
11 static Scanner input=new Scanner(System.in);
12 static double old;
13
14 public static void menu()//主菜单
15 {
16 System.out.println("***********************************************************\n" +
17 " 石家庄铁道大学软件工程系\n" +
18 " 学生学籍管理系统 2019 版\n" +
19 "***********************************************************\n" +
20 " 1、 学生考试成绩录入\n " +
21 " 2、 学生考试成绩修改 \n " +
22 " 3、 计算学生成绩绩点 \n " +
23 " 4、退出学籍管理系统 \n "+
24 "********************************************************** \n");
25 }
26 public static void first()//录入最初界面
27 {
28 System.out.println("***********************************************************\n" +
29 " 石家庄铁道大学软件工程系\n" +
30 " 考试成绩录入\n" +
31 "***********************************************************\n" +
32 " 请输入学生学号: \n"+
33 "***********************************************************");
34 }
35 public static void first1()//录入界面头
36 {
37 System.out.println("***********************************************************\n" +
38 " 石家庄铁道大学软件工程系\n" +
39 " 学生考试成绩录入界面\n" +
40 "***********************************************************");
41 }
42 public static void second()//修改最初界面
43 {
44 System.out.println("***********************************************************\n" +
45 " 石家庄铁道大学软件工程系\n" +
46 " 考试成绩修改\n" +
47 "***********************************************************\n" +
48 " 请输入学生学号: \n"+
49 "***********************************************************");
50
51 }
52 public static void third()//绩点最初界面
53 {
54 System.out.println("***********************************************************\n" +
55 " 石家庄铁道大学软件工程系\n" +
56 " 考试成绩绩点计算\n" +
57 "***********************************************************\n" +
58 " 请输入学生学号: \n"+
59 "***********************************************************");
60 }
61 public static void third1()//绩点界面头
62 {
63 System.out.println("***********************************************************\n" +
64 " 石家庄铁道大学软件工程系\n" +
65 " 考试成绩绩点计算界面\n" +
66 "***********************************************************");
67 }
68 public static boolean Input()//判断学号是否在数据库中
69 {
70 int i,n=0;
71 String num = input.next();
72 for (i=0;i<5;i++)
73 {
74 if(num.equals(nums[i]))
75 {
76 n=1;
77 stu[sum]=new information();
78 stu[sum].setNum(nums[i]);
79 stu[sum].setName(names[i]);
80 break;
81 }
82 }
83 if(n==0)
84 {
85 System.out.println("学号不存在!\n");
86 first();
87 return false;
88 }
89 return true;
90 }
91 public static int judge()//找到学生的位置
92 {
93 int i,n=0;
94 String num = input.next();
95 for (i=0;i<5;i++)
96 {
97 if(num.equals(stu[i].getNum()))
98 {
99 n=1;
100 break;
101 }
102 }
103 if(n==0)
104 {
105 System.out.println("学号不存在!\n");
106 first();
107 return -1;
108 }
109 return i;
110 }
111 public static void add()//录入
112 {
113 double math,eng,net,soft,data;
114 first();
115 while(Input()==false);
116 first1();
117 System.out.println("学生学号:"+stu[sum].getNum());
118 System.out.println("学号姓名:"+stu[sum].getName());
119 System.out.println("请输入高数成绩:");
120 System.out.println("***********************************************************");
121 math = input.nextDouble();
122 stu[sum].setMath(math);
123 first1();
124 System.out.println("学生学号:"+stu[sum].getNum());
125 System.out.println("学号姓名:"+stu[sum].getName());
126 System.out.println("高数成绩:"+stu[sum].getMath());
127 System.out.println("请输入英语成绩:");
128 System.out.println("***********************************************************");
129 eng = input.nextDouble();
130 stu[sum].setEng(eng);
131 first1();
132 System.out.println("学生学号:"+stu[sum].getNum());
133 System.out.println("学号姓名:"+stu[sum].getName());
134 System.out.println("高数成绩:"+stu[sum].getMath());
135 System.out.println("英语成绩:"+stu[sum].getEng());
136 System.out.println("请输入计网成绩:");
137 System.out.println("***********************************************************");
138 net = input.nextDouble();
139 stu[sum].setNet(net);
140 first1();
141 System.out.println("学生学号:"+stu[sum].getNum());
142 System.out.println("学号姓名:"+stu[sum].getName());
143 System.out.println("高数成绩:"+stu[sum].getMath());
144 System.out.println("英语成绩:"+stu[sum].getEng());
145 System.out.println("计网成绩:"+stu[sum].getNet());
146 System.out.println("请输入数据库成绩:");
147 System.out.println("***********************************************************");
148 data = input.nextDouble();
149 stu[sum].setData(data);
150 first1();
151 System.out.println("学生学号:"+stu[sum].getNum());
152 System.out.println("学号姓名:"+stu[sum].getName());
153 System.out.println("高数成绩:"+stu[sum].getMath());
154 System.out.println("英语成绩:"+stu[sum].getEng());
155 System.out.println("计网成绩:"+stu[sum].getNet());
156 System.out.println("数据库成绩:"+stu[sum].getData());
157 System.out.println("请输入软工成绩:");
158 System.out.println("***********************************************************");
159 soft = input.nextDouble();
160 stu[sum].setSoft(soft);
161 first1();
162 System.out.println("学生学号:"+stu[sum].getNum());
163 System.out.println("学号姓名:"+stu[sum].getName());
164 System.out.println("高数成绩:"+stu[sum].getMath());
165 System.out.println("英语成绩:"+stu[sum].getEng());
166 System.out.println("计网成绩:"+stu[sum].getNet());
167 System.out.println("数据库成绩:"+stu[sum].getData());
168 System.out.println("软工成绩:"+stu[sum].getSoft());
169 }
170 public static boolean isorno() //录入是否提交
171 {
172 System.out.println("该学生已录入完毕,是否提交(Y/N)");
173 System.out.println("***********************************************************");
174 String flag = input.next();
175 String s = "Y";
176 if(flag.equals(s))
177 {
178 sum++;
179 System.out.println("已提交!");
180 return true;
181 }
182 else
183 {
184 System.out.println("未保存!");
185 return false;
186
187 }
188 }
189 public static void changemath(int j)
190 {
191 double math;
192 System.out.println("学生学号:"+stu[j].getNum());
193 System.out.println("学号姓名:"+stu[j].getName());
194 System.out.println("请输入修改后的高数成绩:");
195 math = input.nextDouble();
196 old = stu[j].getMath();
197 stu[j].setMath(math);
198 System.out.println("学生学号:"+stu[j].getNum());
199 System.out.println("学号姓名:"+stu[j].getName());
200 System.out.println("1、高数成绩:"+stu[j].getMath());
201 System.out.println("2、英语成绩:"+stu[j].getEng());
202 System.out.println("3、计网成绩:"+stu[j].getNet());
203 System.out.println("4、数据库成绩:"+stu[j].getData());
204 System.out.println("5、软工成绩:"+stu[j].getSoft());
205 }
206 public static void changeeng(int j)
207 {
208 double eng;
209 System.out.println("学生学号:"+stu[j].getNum());
210 System.out.println("学号姓名:"+stu[j].getName());
211 System.out.println("请输入修改后的高数成绩:");
212 eng = input.nextDouble();
213 old = stu[j].getEng();
214 stu[j].setEng(eng);
215 System.out.println("学生学号:"+stu[j].getNum());
216 System.out.println("学号姓名:"+stu[j].getName());
217 System.out.println("1、高数成绩:"+stu[j].getMath());
218 System.out.println("2、英语成绩:"+stu[j].getEng());
219 System.out.println("3、计网成绩:"+stu[j].getNet());
220 System.out.println("4、数据库成绩:"+stu[j].getData());
221 System.out.println("5、软工成绩:"+stu[j].getSoft());
222 }
223 public static void changenet(int j)
224 {
225 double net;
226 System.out.println("学生学号:"+stu[j].getNum());
227 System.out.println("学号姓名:"+stu[j].getName());
228 System.out.println("请输入修改后的高数成绩:");
229 net = input.nextDouble();
230 old = stu[j].getNet();
231 stu[j].setNet(net);
232 System.out.println("学生学号:"+stu[j].getNum());
233 System.out.println("学号姓名:"+stu[j].getName());
234 System.out.println("1、高数成绩:"+stu[j].getMath());
235 System.out.println("2、英语成绩:"+stu[j].getEng());
236 System.out.println("3、计网成绩:"+stu[j].getNet());
237 System.out.println("4、数据库成绩:"+stu[j].getData());
238 System.out.println("5、软工成绩:"+stu[j].getSoft());
239 }
240 public static void changedata(int j)
241 {
242 double data;
243 System.out.println("学生学号:"+stu[j].getNum());
244 System.out.println("学号姓名:"+stu[j].getName());
245 System.out.println("请输入修改后的高数成绩:");
246 data = input.nextDouble();
247 old = stu[j].getData();
248 stu[j].setData(data);
249 System.out.println("学生学号:"+stu[j].getNum());
250 System.out.println("学号姓名:"+stu[j].getName());
251 System.out.println("1、高数成绩:"+stu[j].getMath());
252 System.out.println("2、英语成绩:"+stu[j].getEng());
253 System.out.println("3、计网成绩:"+stu[j].getNet());
254 System.out.println("4、数据库成绩:"+stu[j].getData());
255 System.out.println("5、软工成绩:"+stu[j].getSoft());
256 }
257 public static void changesoft(int j)
258 {
259 double soft;
260 System.out.println("学生学号:"+stu[j].getNum());
261 System.out.println("学号姓名:"+stu[j].getName());
262 System.out.println("请输入修改后的高数成绩:");
263 soft = input.nextDouble();
264 old = stu[j].getSoft();
265 stu[j].setSoft(soft);
266 System.out.println("学生学号:"+stu[j].getNum());
267 System.out.println("学号姓名:"+stu[j].getName());
268 System.out.println("1、高数成绩:"+stu[j].getMath());
269 System.out.println("2、英语成绩:"+stu[j].getEng());
270 System.out.println("3、计网成绩:"+stu[j].getNet());
271 System.out.println("4、数据库成绩:"+stu[j].getData());
272 System.out.println("5、软工成绩:"+stu[j].getSoft());
273 }
274 public static int second1()//修改界面头
275 {
276 int j;
277 second();
278 while((j=judge())==-1);
279 System.out.println("学生学号:"+stu[j].getNum());
280 System.out.println("学号姓名:"+stu[j].getName());
281 System.out.println("1、高数成绩:"+stu[j].getMath());
282 System.out.println("2、英语成绩:"+stu[j].getEng());
283 System.out.println("3、计网成绩:"+stu[j].getNet());
284 System.out.println("4、数据库成绩:"+stu[j].getData());
285 System.out.println("5、软工成绩:"+stu[j].getSoft());
286 System.out.println("请选择要修改的成绩:");
287 return j;
288 }
289 public static int which(int j)//改哪一个成绩
290 {
291 int choice1 = input.nextInt();
292 first1();
293 switch(choice1)
294 {
295 case 1:
296 changemath(j);
297 break;
298 case 2:
299 changeeng(j);
300 break;
301 case 3:
302 changenet(j);
303 break;
304 case 4:
305 changedata(j);
306 break;
307 case 5:
308 changesoft(j);
309 break;
310 }
311 return choice1;
312 }
313 public static boolean yesorno(int choice1,int j)//修改是否提交
314 {
315 System.out.println("该学生已录入完毕,是否提交(Y/N)");
316 System.out.println("***********************************************************");
317 String flag = input.next();
318 String s = "Y";
319 if(flag.equals(s))
320 {
321 System.out.println("已提交!");
322 return true;
323 }
324 else
325 {
326 switch(choice1)
327 {
328 case 1:
329 stu[j].setMath(old);
330 break;
331 case 2:
332 stu[j].setEng(old);
333 break;
334 case 3:
335 stu[j].setNet(old);
336 break;
337 case 4:
338 stu[j].setData(old);
339 break;
340 case 5:
341 stu[j].setSoft(old);
342 break;
343 }
344 return false;
345 }
346 }
347 public static double getjidian(double x)
348 {
349 double temp;
350 if(x>=90 && x<=100)
351 temp = 4.0;
352 else if(x>=85 && x<=89.9)
353 temp = 3.7;
354 else if(x>=82 && x<=84.9)
355 temp = 3.3;
356 else if(x>=78 && x<=81.9)
357 temp = 3.0;
358 else if(x>=75 && x<=77.9)
359 temp = 2.7;
360 else if(x>=72 && x<=74.9)
361 temp = 2.3;
362 else if(x>=68 && x<=71.9)
363 temp = 2.0;
364 else if(x>=66 && x<=67.9)
365 temp = 1.7;
366 else if(x>=64 && x<=65.9)
367 temp = 1.3;
368 else if(x>=60 && x<=63.9)
369 temp = 1.0;
370 else
371 temp = 0;
372 return temp;
373 }
374
375 public static void main(String[] args) {
376 int i,n=0;
377
378 menu();
379 System.out.println("请选择:\n");
380 int choice = input.nextInt();
381 while(1<=choice&&choice<=4)
382 {
383 switch(choice)
384 {
385 case 1://录入
386 {
387 add();
388 while(isorno()==false)
389 add();
390 break;
391 }
392 case 2://修改
393 {
394 int j,choice1;
395 j=second1();
396 choice1 = which(j);
397 while(yesorno(choice1, j)==false)
398 {
399 j = second1();
400 choice1 = which(j);
401 }
402 break;
403 }
404 case 3:
405 {
406 int index;
407 third();
408 index = judge();
409 double mathjd,engjd,netjd,datajd,softjd,ave;
410 mathjd = getjidian(stu[index].getMath());
411 engjd = getjidian(stu[index].getEng());
412 netjd = getjidian(stu[index].getNet());
413 datajd = getjidian(stu[index].getData());
414 softjd = getjidian(stu[index].getSoft());
415 ave = mathjd*4/16+engjd*3/16+netjd*4/16+datajd*3/16+softjd*2/16;
416 third1();
417 System.out.println("学生学号:"+stu[index].getNum());
418 System.out.println("学号姓名:"+stu[index].getName());
419 System.out.println("1、数学绩点:"+mathjd);
420 System.out.println("2、英语绩点:"+engjd);
421 System.out.println("3、计网绩点:"+netjd);
422 System.out.println("4、数据库绩点:"+datajd);
423 System.out.println("5、软工绩点:"+softjd);
424 System.out.println("你的平均学分绩点:"+ave);
425 if(ave>=2)
426 {
427 System.out.println("提示信息:你的学分绩点已达到毕业要求!");
428 }
429 else
430 {
431 System.out.println("提示信息:你的学分绩点不满足毕业要求!");
432 }
433 System.out.println("是否返回系统主界面(Y/N)");
434 System.out.println("***********************************************************");
435 String flag = input.next();
436 String s = "Y";
437 if(flag.equals(s))
438 {
439 menu();
440 }
441 else
442 {
443 System.out.println("无操作");
444 }
445 break;
446 }
447 case 4:
448 System.out.println("***********************************************************");
449 System.out.println(" 谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
450 System.out.println(" 制作人:薛瑞瑾");
451 System.out.println("***********************************************************");
452 System.exit(0);
453 break;
454 }
455 // TODO Auto-generated method stub
456 menu();
457 System.out.println("请选择:\n");
458 input=new Scanner(System.in);
459 choice = input.nextInt();
460 }
461
462
463 }
464
465 }