JAVA之学生信息管理系统

Myth丶恋晨 2023-06-03 02:57 70阅读 0赞

StudentManager系统

系统的数据:

变量 stunumber 为字符串类型 String,用于存储学生的学号(有 8 位数字组成)

变量 name 为字符串类型 String,用于存储学生的姓名。

变量 mathematicsscore 为 double 类型,用于存储学生的高等数学成绩,高等数学的学分为 4 分。

变量 englishiscore 为 double 类型,用于存储学生的大学英语成绩,大学英语的学分为 3 分。

变量 networkscore 为 double 类型,用于存储学生的计算机网络成绩,计算机网络的学分为 4 分。

变量 databasescore 为 double 类型,用于存储学生的数据库成绩,数据库的学分为 3 分。

变量 softwarescore 为 double 类型,用于存储学生的软件工程成绩,软件工程的学分为 2 分。

功能要求:

1.实现成绩的录入

2.学生成绩修改

3.计算学生成绩绩点

4.退出程序界面

思路:

首先,利用对象数组来存储5个数据,只存学号和姓名,成绩都默认为零

利用while循环来控制选择的功能,选择4就退出循环,否则继续循环

根据所选的功能,利用case语句分开,分被执行功能

该程序会重复用到查找学号的方法,因此建立一个find()方法

该录入功能会有一个难题,就是如何实现实时的更新

因此,建立了一个方法来专门实现它

  1. public void display5(int p)
  2. {
  3. System.out.println("*******************************");
  4. System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  5. System.out.println(" 学生考试成绩录入界面 ");
  6. System.out.println("*******************************");
  7. System.out.println(" 学生学号:"+s[p].getStunumber());
  8. System.out.println(" 学生姓名:"+s[p].getName());
  9. if(s[p].getMathematicsscore()!=0)
  10. System.out.println(" 1.高等数学成绩为:"+s[p].getMathematicsscore());
  11. if(s[p].getEnglishiscore()!=0)
  12. System.out.println(" 2.大学英语成绩为:"+s[p].getEnglishiscore());
  13. if(s[p].getNetworkscore()!=0)
  14. System.out.println(" 3.计算机网络成绩为:"+s[p].getNetworkscore());
  15. if(s[p].getDatabasescore()!=0)
  16. System.out.println(" 4.数据库成绩为:"+s[p].getDatabasescore());
  17. if(s[p].getSoftwarescore()!=0)
  18. System.out.println(" 5.软件工程成绩为:"+s[p].getSoftwarescore());
  19. }

这样根据成绩初始值为0,就可以实现更新输出;

1717524-20190912175628867-1095227662.png

1717524-20190912175651772-149185127.png

1717524-20190912175731157-1347421846.png

这样第一个功能就完成了,接下来进行修改的功能

修改的时候,有一个问题就是:如果不录入修改的程序,那么之前的数据如何找回?

此时,我们就是需要找个变量去等于修改之前的数据,这样就避免了修改后的数据不能再找回之前的数据的问题。

1717524-20190912180157244-1920168763.png

第三步:就是计算学分绩点

根据1717524-20190912180315592-988555802.png

我们可以用if语句,来算出各科成绩的绩点,最终保留两位小数可以用String.format(“%.2f”,v)

来判断是否大于等于2,满足毕业要求!!

1717524-20190912180640705-679443654.png

下面就是全部的代码:

  1. package com.开学测试;
  2. import java.util.Scanner;
  3. /* 信1805-3班 */
  4. /* 徐利峰 */
  5. class ScoreInformation
  6. {
  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. return stunumber;
  16. }
  17. public void setStunumber(String stunumber) {
  18. this.stunumber = stunumber;
  19. }
  20. public String getName() {
  21. return name;
  22. }
  23. public void setName(String name) {
  24. this.name = name;
  25. }
  26. public double getMathematicsscore() {
  27. return mathematicsscore;
  28. }
  29. public void setMathematicsscore(double mathematicsscore) {
  30. this.mathematicsscore = mathematicsscore;
  31. }
  32. public double getEnglishiscore() {
  33. return englishiscore;
  34. }
  35. public void setEnglishiscore(double englishiscore) {
  36. this.englishiscore = englishiscore;
  37. }
  38. public double getNetworkscore() {
  39. return networkscore;
  40. }
  41. public void setNetworkscore(double networkscore) {
  42. this.networkscore = networkscore;
  43. }
  44. public double getDatabasescore() {
  45. return databasescore;
  46. }
  47. public void setDatabasescore(double databasescore) {
  48. this.databasescore = databasescore;
  49. }
  50. public double getSoftwarescore() {
  51. return softwarescore;
  52. }
  53. public void setSoftwarescore(double softwarescore) {
  54. this.softwarescore = softwarescore;
  55. }
  56. }
  57. public class ScoreManagement {
  58. Scanner in=new Scanner(System.in);
  59. public void display1()
  60. {
  61. System.out.println("*******************************");
  62. System.out.println(" 石家庄铁道大学软件工程系 ");
  63. System.out.println(" 学生学籍管理系统2019版 ");
  64. System.out.println("*******************************");
  65. System.out.println(" 1.学生考试成绩录入 ");
  66. System.out.println(" 2.学生考试成绩修改 ");
  67. System.out.println(" 3.计算学生成绩绩点; ");
  68. System.out.println(" 4.退出学籍管理系统; ");
  69. System.out.println("*******************************");
  70. }
  71. public int find(String t)
  72. {
  73. int i=0,k=0;
  74. for(i=0;i<5;i++)
  75. {
  76. if(s[i].getStunumber().compareTo(t)==0)
  77. {
  78. k=1;
  79. break;
  80. }
  81. }
  82. if(k==0)
  83. return -1;
  84. else
  85. {
  86. return i;
  87. }
  88. }
  89. public void display2()
  90. {
  91. System.out.println("*******************************");
  92. System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  93. System.out.println(" 学生考试成绩录入 ");
  94. System.out.println("*******************************");
  95. }
  96. public void display3()
  97. {
  98. System.out.println("*******************************");
  99. System.out.println("谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  100. System.out.println(" 制作人:徐利峰 ");
  101. System.out.println("*******************************");
  102. }
  103. public void display4(int k)
  104. {
  105. System.out.println("*******************************");
  106. System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  107. System.out.println(" 学生考试成绩录入界面 ");
  108. System.out.println("*******************************");
  109. System.out.println(" 学生学号:"+s[k].getStunumber());
  110. System.out.println(" 学生姓名:"+s[k].getName());
  111. }
  112. public void display5(int p)
  113. {
  114. System.out.println("*******************************");
  115. System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  116. System.out.println(" 学生考试成绩录入界面 ");
  117. System.out.println("*******************************");
  118. System.out.println(" 学生学号:"+s[p].getStunumber());
  119. System.out.println(" 学生姓名:"+s[p].getName());
  120. if(s[p].getMathematicsscore()!=0)
  121. System.out.println(" 1.高等数学成绩为:"+s[p].getMathematicsscore());
  122. if(s[p].getEnglishiscore()!=0)
  123. System.out.println(" 2.大学英语成绩为:"+s[p].getEnglishiscore());
  124. if(s[p].getNetworkscore()!=0)
  125. System.out.println(" 3.计算机网络成绩为:"+s[p].getNetworkscore());
  126. if(s[p].getDatabasescore()!=0)
  127. System.out.println(" 4.数据库成绩为:"+s[p].getDatabasescore());
  128. if(s[p].getSoftwarescore()!=0)
  129. System.out.println(" 5.软件工程成绩为:"+s[p].getSoftwarescore());
  130. }
  131. public void display6()
  132. {
  133. System.out.println("*******************************");
  134. System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  135. System.out.println(" 学生考试成绩修改界面 ");
  136. System.out.println("*******************************");
  137. }
  138. public void display7()
  139. {
  140. System.out.println("*******************************");
  141. System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
  142. System.out.println(" 学生考试成绩绩点计算界面 ");
  143. System.out.println("*******************************");
  144. }
  145. static ScoreInformation []s=new ScoreInformation[10];
  146. public static void main(String[] args) {
  147. // TODO Auto-generated method stub
  148. Scanner in=new Scanner(System.in);
  149. ScoreManagement stu=new ScoreManagement();
  150. boolean flag=true,flag2=true,flag3=true,flag4=true,flag5=true,flag6=true,flag7=true;
  151. String xuehao;
  152. int i,number;
  153. for(i=0;i<10;i++)
  154. s[i]=new ScoreInformation();
  155. s[0].setStunumber("20183516");
  156. s[0].setName("徐利峰");
  157. s[1].setStunumber("20183517");
  158. s[1].setName("小华");
  159. s[2].setStunumber("20183518");
  160. s[2].setName("小李");
  161. s[3].setStunumber("20183519");
  162. s[3].setName("小刚");
  163. s[4].setStunumber("20183520");
  164. s[4].setName("小风");
  165. for(i=0;i<5;i++)
  166. {
  167. s[i].setDatabasescore(0);
  168. s[i].setEnglishiscore(0);
  169. s[i].setMathematicsscore(0);
  170. s[i].setNetworkscore(0);
  171. s[i].setSoftwarescore(0);
  172. }
  173. while(flag)
  174. {
  175. stu.display1();
  176. System.out.println("请选择要执行的功能序号");
  177. number=in.nextInt();
  178. if(number<1||number>4)
  179. System.out.println("该选项不存在");
  180. else
  181. {
  182. switch(number)
  183. {
  184. case 1:
  185. {
  186. while(flag2==true)
  187. {
  188. stu.display2();
  189. System.out.println("请输入学生学号:");
  190. xuehao=in.next();
  191. System.out.println("*******************************");
  192. if(stu.find(xuehao)==-1)
  193. {
  194. flag2=true;
  195. System.out.println("该不存在");
  196. }
  197. else
  198. {
  199. double m;
  200. String c;
  201. flag2=false;
  202. int b=stu.find(xuehao);
  203. while(flag7==true)
  204. {
  205. flag7=false;
  206. stu.display4(b);
  207. System.out.println("请输入高等数学成绩:");
  208. m=in.nextDouble();
  209. s[b].setMathematicsscore(m);
  210. stu.display5(b);
  211. System.out.println("请输入大学英语成绩:");
  212. m=in.nextDouble();
  213. s[b].setEnglishiscore(m);
  214. stu.display5(b);
  215. System.out.println("请输入计算机网络成绩:");
  216. m=in.nextDouble();
  217. s[b].setNetworkscore(m);
  218. stu.display5(b);
  219. System.out.println("请输入数据库成绩:");
  220. m=in.nextDouble();
  221. s[b].setDatabasescore(m);
  222. stu.display5(b);
  223. System.out.println("请输入软件工程成绩:");
  224. m=in.nextDouble();
  225. s[b].setSoftwarescore(m);
  226. stu.display5(b);
  227. System.out.println("该学生成绩已录入完毕,是否提交(Y/N) ");
  228. c=in.next();
  229. if(c.compareTo("N")==0)
  230. {
  231. flag7=true;
  232. s[b].setDatabasescore(0);
  233. s[b].setEnglishiscore(0);
  234. s[b].setMathematicsscore(0);
  235. s[b].setNetworkscore(0);
  236. s[b].setSoftwarescore(0);
  237. }
  238. }
  239. }
  240. }
  241. break;
  242. }
  243. case 2:
  244. {
  245. String q;
  246. while(flag3==true)
  247. {
  248. stu.display6();
  249. flag3=false;
  250. System.out.println("请输入学号:");
  251. q=in.next();
  252. System.out.println("*******************************");
  253. if(stu.find(q)==-1)
  254. {
  255. flag3=true;
  256. System.out.println("该不存在");
  257. }
  258. else
  259. {
  260. int r;
  261. int k=stu.find(q);
  262. double j;
  263. flag3=false;
  264. stu.display5(k);
  265. System.out.println("请选择要修改的成绩序号:");
  266. r=in.nextInt();
  267. if(r==1)
  268. {
  269. String m;
  270. double old;
  271. stu.display4(k);
  272. old=s[k].getMathematicsscore();
  273. System.out.println("请输入要修改后的高等数学成绩:");
  274. j=in.nextDouble();
  275. s[k].setMathematicsscore(j);
  276. stu.display5(k);
  277. System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
  278. m=in.next();
  279. if(m.compareTo("N")==0)
  280. {
  281. flag3=true;
  282. s[k].setMathematicsscore(old);
  283. }
  284. }
  285. else if(r==2)
  286. {
  287. String m;
  288. double old;
  289. old=s[k].getEnglishiscore();
  290. stu.display4(k);
  291. System.out.println("请输入要修改后的大学英语成绩:");
  292. j=in.nextDouble();
  293. s[k].setEnglishiscore(j);
  294. stu.display5(k);
  295. System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
  296. m=in.next();
  297. if(m.compareTo("N")==0)
  298. {
  299. flag3=true;
  300. s[k].setEnglishiscore(old);
  301. }
  302. }
  303. else if(r==3)
  304. {
  305. String m;
  306. double old;
  307. old=s[k].getNetworkscore();
  308. stu.display4(k);
  309. System.out.println("请输入要修改后的计算机网络成绩:");
  310. j=in.nextDouble();
  311. s[k].setNetworkscore(j);
  312. stu.display5(k);
  313. System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
  314. m=in.next();
  315. if(m.compareTo("N")==0)
  316. {
  317. flag3=true;
  318. s[k].setNetworkscore(old);
  319. }
  320. }
  321. else if(r==4)
  322. {
  323. String m;
  324. double old;
  325. old=s[k].getDatabasescore();
  326. stu.display4(k);
  327. System.out.println("请输入要修改后的数据库成绩:");
  328. j=in.nextDouble();
  329. s[k].setDatabasescore(j);
  330. stu.display5(k);
  331. System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
  332. m=in.next();
  333. if(m.compareTo("N")==0)
  334. {
  335. flag3=true;
  336. s[k].setDatabasescore(old);
  337. }
  338. }
  339. else if(r==5)
  340. {
  341. String m;
  342. double old;
  343. old=s[k].getSoftwarescore();
  344. stu.display4(k);
  345. System.out.println("请输入要修改后的软件工程成绩:");
  346. j=in.nextDouble();
  347. s[k].setSoftwarescore(j);
  348. stu.display5(k);
  349. System.out.println("该学生成绩已修改完毕,是否提交(Y/N) ");
  350. m=in.next();
  351. if(m.compareTo("N")==0)
  352. {
  353. flag3=true;
  354. s[k].setSoftwarescore(old);
  355. }
  356. }
  357. else
  358. {
  359. System.out.println("请重新输入:");
  360. }
  361. }
  362. }
  363. break;
  364. }
  365. case 3:
  366. {
  367. String l;
  368. while(flag4==true)
  369. {
  370. stu.display7();
  371. in.nextLine();
  372. flag4=false;
  373. System.out.println("请输入学生学号:");
  374. l=in.nextLine();
  375. System.out.println("*******************************");
  376. if(stu.find(l)==-1)
  377. {
  378. flag4=true;
  379. System.out.println("该不存在");
  380. }
  381. else
  382. {
  383. int p=stu.find(l);
  384. double []a=new double[5];
  385. double []g=new double[]{4,3,4,3,2};
  386. double v=0;
  387. for(i=0;i<5;i++)
  388. {
  389. if(i==0)
  390. {
  391. if(s[p].getMathematicsscore()>=72)
  392. {
  393. if(s[p].getMathematicsscore()<=74.9)
  394. a[i]=2.3;
  395. else if(s[p].getMathematicsscore()<=77.9)
  396. a[i]=2.7;
  397. else if(s[p].getMathematicsscore()<=81.9)
  398. a[i]=3.0;
  399. else if(s[p].getMathematicsscore()<=84.9)
  400. a[i]=3.3;
  401. else if(s[p].getMathematicsscore()<=89.9)
  402. a[i]=3.7;
  403. else
  404. a[i]=4.0;
  405. }
  406. else
  407. {
  408. if(s[p].getMathematicsscore()>=68)
  409. a[i]=2.0;
  410. else if(s[p].getMathematicsscore()>=66)
  411. a[i]=1.7;
  412. else if(s[p].getMathematicsscore()>=64)
  413. a[i]=1.5;
  414. else if(s[p].getMathematicsscore()>=60)
  415. a[i]=1.0;
  416. else
  417. a[i]=0;
  418. }
  419. }
  420. if(i==1)
  421. {
  422. if(s[p].getEnglishiscore()>=72)
  423. {
  424. if(s[p].getEnglishiscore()<=74.9)
  425. a[i]=2.3;
  426. else if(s[p].getEnglishiscore()<=77.9)
  427. a[i]=2.7;
  428. else if(s[p].getEnglishiscore()<=81.9)
  429. a[i]=3.0;
  430. else if(s[p].getEnglishiscore()<=84.9)
  431. a[i]=3.3;
  432. else if(s[p].getEnglishiscore()<=89.9)
  433. a[i]=3.7;
  434. else
  435. a[i]=4.0;
  436. }
  437. else
  438. {
  439. if(s[p].getEnglishiscore()>=68)
  440. a[i]=2.0;
  441. else if(s[p].getEnglishiscore()>=66)
  442. a[i]=1.7;
  443. else if(s[p].getEnglishiscore()>=64)
  444. a[i]=1.5;
  445. else if(s[p].getEnglishiscore()>=60)
  446. a[i]=1.0;
  447. else
  448. a[i]=0;
  449. }
  450. }
  451. if(i==2)
  452. {
  453. if(s[p].getNetworkscore()>=72)
  454. {
  455. if(s[p].getNetworkscore()<=74.9)
  456. a[i]=2.3;
  457. else if(s[p].getNetworkscore()<=77.9)
  458. a[i]=2.7;
  459. else if(s[p].getNetworkscore()<=81.9)
  460. a[i]=3.0;
  461. else if(s[p].getNetworkscore()<=84.9)
  462. a[i]=3.3;
  463. else if(s[p].getNetworkscore()<=89.9)
  464. a[i]=3.7;
  465. else
  466. a[i]=4.0;
  467. }
  468. else
  469. {
  470. if(s[p].getNetworkscore()>=68)
  471. a[i]=2.0;
  472. else if(s[p].getNetworkscore()>=66)
  473. a[i]=1.7;
  474. else if(s[p].getNetworkscore()>=64)
  475. a[i]=1.5;
  476. else if(s[p].getNetworkscore()>=60)
  477. a[i]=1.0;
  478. else
  479. a[i]=0;
  480. }
  481. }
  482. if(i==3)
  483. {
  484. if(s[p].getDatabasescore()>=72)
  485. {
  486. if(s[p].getDatabasescore()<=74.9)
  487. a[i]=2.3;
  488. else if(s[p].getDatabasescore()<=77.9)
  489. a[i]=2.7;
  490. else if(s[p].getDatabasescore()<=81.9)
  491. a[i]=3.0;
  492. else if(s[p].getDatabasescore()<=84.9)
  493. a[i]=3.3;
  494. else if(s[p].getDatabasescore()<=89.9)
  495. a[i]=3.7;
  496. else
  497. a[i]=4.0;
  498. }
  499. else
  500. {
  501. if(s[p].getDatabasescore()>=68)
  502. a[i]=2.0;
  503. else if(s[p].getDatabasescore()>=66)
  504. a[i]=1.7;
  505. else if(s[p].getDatabasescore()>=64)
  506. a[i]=1.5;
  507. else if(s[p].getDatabasescore()>=60)
  508. a[i]=1.0;
  509. else
  510. a[i]=0;
  511. }
  512. }
  513. if(i==4)
  514. {
  515. if(s[p].getSoftwarescore()>=72)
  516. {
  517. if(s[p].getSoftwarescore()<=74.9)
  518. a[i]=2.3;
  519. else if(s[p].getSoftwarescore()<=77.9)
  520. a[i]=2.7;
  521. else if(s[p].getSoftwarescore()<=81.9)
  522. a[i]=3.0;
  523. else if(s[p].getSoftwarescore()<=84.9)
  524. a[i]=3.3;
  525. else if(s[p].getSoftwarescore()<=89.9)
  526. a[i]=3.7;
  527. else
  528. a[i]=4.0;
  529. }
  530. else
  531. {
  532. if(s[p].getSoftwarescore()>=68)
  533. a[i]=2.0;
  534. else if(s[p].getSoftwarescore()>=66)
  535. a[i]=1.7;
  536. else if(s[p].getSoftwarescore()>=64)
  537. a[i]=1.5;
  538. else if(s[p].getSoftwarescore()>=60)
  539. a[i]=1.0;
  540. else
  541. a[i]=0;
  542. }
  543. }
  544. }
  545. for(i=0;i<5;i++)
  546. v+=a[i]*g[i];
  547. v=v/16;
  548. if(v>=2)
  549. flag5=true;
  550. else
  551. flag5=false;
  552. stu.display7();
  553. System.out.println(" 学生学号:"+s[p].getStunumber());
  554. System.out.println(" 学生姓名:"+s[p].getName());
  555. System.out.println(" 1、高等数学成绩绩点:"+a[0]);
  556. System.out.println(" 2、大学英语成绩绩点::"+a[1]);
  557. System.out.println(" 3、计算机网络成绩绩点:"+a[2]);
  558. System.out.println(" 4、数据库成绩绩点:"+a[3]);
  559. System.out.println(" 5、软件工程成绩绩点:"+a[4]);
  560. System.out.println(" 6、你的平均学分绩点为:"+String.format("%.2f",v));
  561. if(flag5==true)
  562. System.out.println(" 你的学分绩点已达到毕业要求!");
  563. else
  564. System.out.println(" 你的学分绩点不满足毕业要求!");
  565. System.out.println(" 是否返回系统主界面:(Y/N) ");
  566. String c;
  567. c=in.next();
  568. if(c.compareTo("Y")==0)
  569. flag6=false;
  570. }
  571. if(flag6==false&&flag4==false)
  572. break;
  573. }
  574. break;
  575. }
  576. case 4:
  577. {
  578. stu.display3();
  579. flag=false;
  580. break;
  581. }
  582. }
  583. }
  584. }
  585. in.close();
  586. }
  587. }

转载于:https://www.cnblogs.com/xiaofengzai/p/11511277.html

发表评论

表情:
评论列表 (有 0 条评论,70人围观)

还没有评论,来说两句吧...

相关阅读

    相关 学生信息管理系统

      最近在做学生信息管理系统,做之前大脑一片空白,觉得做系统真的好复杂!但真正入手了也没那么复杂了。   学生信息管理系统条理性很强大概可以分为三大块:添加信息、修改信息和查