Java学生成绩绩点管理系统
一、考试要求:
1、按照测试内容要求完成程序的设计与编程;
2、建立学号姓名文件夹,如:“信 1805-1 班 20180001 XXX”,将源程序文件保存在文件夹中,压缩成 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 分。
变量 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 版
学生考试成绩录入界面
***********************************************************
学生学号:20180001
学生姓名:XXX
请输入高等数学成绩:XXX
**********************************************************
提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当第 3 页 共 8 页用户录完所有成绩后,显示如下界面。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20180001
学生姓名:XXX
高等数学成绩:XXX
大学英语成绩:XXX
计算机网络成绩:XXX
数据库成绩:XXX
软件工程成绩:XXX
该学生成绩已录入完毕,是否提交(Y/N)
**********************************************************
选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”,则忽略上述成绩录入,并返回成绩录入界面。(0.5 分)
3、成绩修改功能操作流程:(2 分)
①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩修改界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。(0.5 分)
②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20180001
学生姓名:XXX
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
**********************************************************
如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回成绩修改界面。(0.5 分)
③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。(0.5分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20180001
学生姓名:XXX
请输入修改后软件工程成绩:XXX
**********************************************************
录入修改后的成绩,则进入下一步。
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20180001
学生姓名:XXX
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
该学生成绩已修改完毕,是否提交(Y/N)
**********************************************************
选择“Y”将修改后成绩保存到相应的数组中,并返回主界面。选择“N”,则忽略上述成绩录入,并返回成绩修改界面。(0.5 分)
3、计算学生成绩绩点功能操作流程:(2 分)
①在主界面选择计算学生成绩绩点功能后,进入计算学生成绩绩点界面,如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩绩点计算界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
第 6 页 共 8 页提示用户输入八位的学号。
②用户输入学号后,显示用户学号、姓名、学分绩点、提示信息。如下图所示。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩绩点计算界面
***********************************************************
学生学号:20180001
学生姓名:XXX
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 /* 2 * 班级:信1805-1 3 * 学号:20183566 4 * 姓名:董奥 5 * */ 6 7 public class ScoreInformation { 8 private String stunumber; 9 private String name; 10 private double mathematicsscore; 11 private double englishiscore; 12 private double networkscore; 13 private double databasescore; 14 private double softwarescore; 15 //定义 get()(读取变量信息)和 set()(设置变量信息)的方法 16 public void setStunumber(String stunumber) { 17 this.stunumber=stunumber; 18 } 19 public String getStunumber() { 20 return stunumber; 21 } 22 public void setName(String name) { 23 this.name=name; 24 } 25 public String getName() { 26 return name; 27 } 28 public void setMathematicsscore(double mathematicsscore) { 29 this.mathematicsscore=mathematicsscore; 30 } 31 public double getMathematicsscore() { 32 return mathematicsscore; 33 } 34 public void setEnglishiscore(double englishiscore) { 35 this.englishiscore=englishiscore; 36 } 37 public double getEnglishiscore() { 38 return englishiscore; 39 } 40 public void setNetworkscore(double networkscore) { 41 this.networkscore=networkscore; 42 } 43 public double getNetworkscore() { 44 return networkscore; 45 } 46 public void setDatabasescore(double databasescore) { 47 this.databasescore=databasescore; 48 } 49 public double getDatabasescore() { 50 return databasescore; 51 } 52 public void setSoftwarescore(double softwarescore) { 53 this.softwarescore=softwarescore; 54 } 55 public double getSoftwarescore() { 56 return softwarescore; 57 } 58 public ScoreInformation(String stunumber,String name,double mathematicsscore,double englishiscore,double networkscore,double databasescore,double softwarescore) { 59 this.stunumber=stunumber; 60 this.name=name; 61 this.mathematicsscore=mathematicsscore; 62 this.englishiscore=englishiscore; 63 this.networkscore=networkscore; 64 this.databasescore=databasescore; 65 this.softwarescore=softwarescore; 66 } 67 // public static void main(String[] args) { 68 // ScoreInformation text=new ScoreInformation("20183566","董奥",1,2,3,4,5); 69 // System.out.println(text.getDatabasescore()); 70 // System.out.println(text.getEnglishiscore()); 71 // System.out.println(text.getMathematicsscore()); 72 // System.out.println(text.getStunumber()); 73 // } 74 }
1 import java.util.Scanner; 2 public class ScoreManagement { 3 static ScoreInformation Score1=new ScoreInformation("20180001","姓名1",0,0,0,0,0); 4 static ScoreInformation Score2=new ScoreInformation("20180002","姓名2",0,0,0,0,0); 5 static ScoreInformation Score3=new ScoreInformation("20180003","姓名3",0,0,0,0,0); 6 static ScoreInformation Score4=new ScoreInformation("20180004","姓名4",0,0,0,0,0); 7 static ScoreInformation Score5=new ScoreInformation("20180005","姓名5",0,0,0,0,0); 8 static Scanner in=new Scanner(System.in); 9 public static void menu(){ 10 System.out.println("***********************************************************"); 11 System.out.println(" 石家庄铁道大学软件工程系"); 12 System.out.println(" 学生学籍管理系统 2019 版"); 13 System.out.println("***********************************************************"); 14 System.out.println(" 1、 学生考试成绩录入"); 15 System.out.println(" 2、 学生考试成绩修改"); 16 System.out.println(" 3、 计算学生成绩绩点"); 17 System.out.println(" 4、退出学籍管理系统"); 18 System.out.println("**********************************************************"); 19 System.out.print("请输入:"); 20 } 21 public static void totalMenu() {//总菜单 22 int anss=0; 23 while(anss!=4) { 24 menu(); 25 anss=in.nextInt(); 26 if(anss==1) addScore(); 27 else if(anss==2) modifyScore(); 28 else if(anss==3) caculateScore(); 29 else if(anss==4); 30 else 31 System.out.println("该选项不存在"); 32 } 33 System.out.println("退出成功"); 34 System.out.println("***********************************************************\r\n" + 35 "谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 36 "制作人:董奥\r\n" + 37 "***********************************************************"); 38 } 39 public static void addMenu() { 40 System.out.println("***********************************************************"); 41 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版"); 42 System.out.println(" 学生考试成绩录入"); 43 System.out.println("***********************************************************"); 44 System.out.print(" 请输入学生学号:"); 45 } 46 public static void addInterface(ScoreInformation h) {//录入成绩界面 47 System.out.println("***********************************************************"); 48 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版"); 49 System.out.println(" 学生考试成绩录入界面"); 50 System.out.println("***********************************************************"); 51 System.out.println("学生学号:"+h.getStunumber()); 52 System.out.println("学生姓名:"+h.getName()); 53 System.out.println("请输入高等数学成绩:"); 54 double ans1=in.nextDouble(); 55 System.out.println("请输入大学英语成绩:"); 56 double ans2=in.nextDouble(); 57 System.out.println("请输入计算机网络成绩:"); 58 double ans3=in.nextDouble(); 59 System.out.println("请输入数据库成绩:"); 60 double ans4=in.nextDouble(); 61 System.out.println("请输入软件工程成绩:"); 62 double ans5=in.nextDouble(); 63 System.out.println("***********************************************************"); 64 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版"); 65 System.out.println(" 学生考试成绩录入界面"); 66 System.out.println("***********************************************************"); 67 System.out.println("学生学号:"+h.getStunumber()); 68 System.out.println("学生姓名:"+h.getName()); 69 System.out.println("高等数学成绩:"+ans1); 70 System.out.println("大学英语成绩:"+ans2); 71 System.out.println("计算机网络成绩:"+ans3); 72 System.out.println("数据库成绩:"+ans4); 73 System.out.println("软件工程成绩:"+ans5); 74 System.out.print("该学生成绩已录入完毕,是否提交(Y/N)"); 75 String a=in.next(); 76 char s=a.charAt(0); 77 if(s=='Y'||s=='y') { 78 h.setMathematicsscore(ans1); 79 h.setEnglishiscore(ans2); 80 h.setNetworkscore(ans3); 81 h.setDatabasescore(ans4); 82 h.setSoftwarescore(ans5); 83 } 84 else 85 addScore(); 86 } 87 public static void addScore() {//录入成绩 88 boolean flag=true; 89 while(flag) { 90 addMenu(); 91 String ans=in.next();//将输入的学号存入ans中 92 if(ans.equals(Score1.getStunumber())) {//检查ans与那个Score相等 93 addInterface(Score1); 94 flag=false; 95 } 96 else if(ans.equals(Score2.getStunumber())) { 97 addInterface(Score2); 98 flag=false; 99 } 100 else if(ans.equals(Score3.getStunumber())) { 101 addInterface(Score3); 102 flag=false; 103 } 104 else if(ans.equals(Score4.getStunumber())) { 105 addInterface(Score4); 106 flag=false; 107 } 108 else if(ans.equals(Score5.getStunumber())) { 109 addInterface(Score5); 110 flag=false; 111 } 112 else 113 System.out.println("该学号不存在1"); 114 } 115 } 116 public static void modifyMenu() { 117 System.out.print("***********************************************************\r\n" + 118 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 119 " 学生考试成绩修改界面\r\n" + 120 "***********************************************************\r\n" + 121 "请输入学生学号:"); 122 } 123 public static void modifyInterface(ScoreInformation h) { 124 System.out.print("***********************************************************\r\n" + 125 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 126 " 学生考试成绩录入\r\n" + 127 "***********************************************************\r\n" + 128 "学生学号:"+h.getStunumber()+"\r\n" + 129 "学生姓名:"+h.getName()+"\r\n" + 130 "1、高等数学成绩:"+h.getMathematicsscore()+"\r\n" + 131 "2、大学英语成绩:"+h.getEnglishiscore()+"\r\n" + 132 "3、计算机网络成绩:"+h.getNetworkscore()+"\r\n" + 133 "4、数据库成绩:"+h.getDatabasescore()+"\r\n" + 134 "5、软件工程成绩:"+h.getSoftwarescore()+"\r\n" + 135 "**********************************************************"); 136 System.out.println("请选择修改内容:"); 137 int ans=in.nextInt();//记录序号 138 double cmp;//记录接下来输入的成绩 139 String s; 140 char a; 141 switch(ans) { 142 case 1: 143 System.out.print("***********************************************************\r\n" + 144 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 145 " 学生考试成绩录入界面\r\n" + 146 "***********************************************************\r\n" + 147 "学生学号:"+h.getStunumber()+"\r\n" + 148 "学生姓名:"+h.getName()+"\r\n" + 149 "请输入修改后高等数学成绩:"); 150 cmp=in.nextDouble(); 151 System.out.println("***********************************************************\r\n" + 152 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 153 " 学生考试成绩录入\r\n" + 154 "***********************************************************\r\n" + 155 "学生学号:"+h.getStunumber()+"\r\n" + 156 "学生姓名:"+h.getName()+"\r\n" + 157 "1、高等数学成绩:"+cmp+"\r\n" + 158 "2、大学英语成绩:"+h.getEnglishiscore()+"\r\n" + 159 "3、计算机网络成绩:"+h.getNetworkscore()+"\r\n" + 160 "4、数据库成绩:"+h.getDatabasescore()+"\r\n" + 161 "5、软件工程成绩:"+h.getSoftwarescore()+"\r\n" + 162 "该学生成绩已修改完毕,是否提交(Y/N)\r\n" + 163 "**********************************************************"); 164 s=in.next(); 165 a=s.charAt(0); 166 if(a=='Y'||a=='y') h.setMathematicsscore(cmp); 167 break; 168 case 2: 169 System.out.print("***********************************************************\r\n" + 170 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 171 " 学生考试成绩录入界面\r\n" + 172 "*************1**********************************************\r\n" + 173 "学生学号:"+h.getStunumber()+"\r\n" + 174 "学生姓名:"+h.getName()+"\r\n" + 175 "请输入修改后大学英语成绩:"); 176 cmp=in.nextDouble(); 177 System.out.println("***********************************************************\r\n" + 178 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 179 " 学生考试成绩录入\r\n" + 180 "***********************************************************\r\n" + 181 "学生学号:"+h.getStunumber()+"\r\n" + 182 "学生姓名:"+h.getName()+"\r\n" + 183 "1、高等数学成绩:"+h.getMathematicsscore()+"\r\n" + 184 "2、大学英语成绩:"+cmp+"\r\n" + 185 "3、计算机网络成绩:"+h.getNetworkscore()+"\r\n" + 186 "4、数据库成绩:"+h.getDatabasescore()+"\r\n" + 187 "5、软件工程成绩:"+h.getSoftwarescore()+"\r\n" + 188 "该学生成绩已修改完毕,是否提交(Y/N)\r\n" + 189 "**********************************************************"); 190 s=in.next(); 191 a=s.charAt(0); 192 if(a=='Y'||a=='y') h.setEnglishiscore(cmp); 193 break; 194 case 3: 195 System.out.print("***********************************************************\r\n" + 196 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 197 " 学生考试成绩录入界面\r\n" + 198 "***********************************************************\r\n" + 199 "学生学号:"+h.getStunumber()+"\r\n" + 200 "学生姓名:"+h.getName()+"\r\n" + 201 "请输入修改后计算机网络成绩:"); 202 cmp=in.nextDouble(); 203 System.out.println("***********************************************************\r\n" + 204 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 205 " 学生考试成绩录入\r\n" + 206 "***********************************************************\r\n" + 207 "学生学号:"+h.getStunumber()+"\r\n" + 208 "学生姓名:"+h.getName()+"\r\n" + 209 "1、高等数学成绩:"+h.getMathematicsscore()+"\r\n" + 210 "2、大学英语成绩:"+h.getEnglishiscore()+"\r\n" + 211 "3、计算机网络成绩:"+cmp+"\r\n" + 212 "4、数据库成绩:"+h.getDatabasescore()+"\r\n" + 213 "5、软件工程成绩:"+h.getSoftwarescore()+"\r\n" + 214 "该学生成绩已修改完毕,是否提交(Y/N)\r\n" + 215 "**********************************************************"); 216 s=in.next(); 217 a=s.charAt(0); 218 if(a=='Y'||a=='y') h.setNetworkscore(cmp); 219 break; 220 case 4: 221 System.out.print("***********************************************************\r\n" + 222 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 223 "学生考试成绩录入界面\r\n" + 224 "***********************************************************\r\n" + 225 "学生学号:"+h.getStunumber()+"\r\n" + 226 "学生姓名:"+h.getName()+"\r\n" + 227 "请输入修改后数据库成绩:"); 228 cmp=in.nextDouble(); 229 System.out.println("***********************************************************\r\n" + 230 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 231 "学生考试成绩录入\r\n" + 232 "***********************************************************\r\n" + 233 "学生学号:"+h.getStunumber()+"\r\n" + 234 "学生姓名:"+h.getName()+"\r\n" + 235 "1、高等数学成绩:"+h.getMathematicsscore()+"\r\n" + 236 "2、大学英语成绩:"+h.getEnglishiscore()+"\r\n" + 237 "3、计算机网络成绩:"+h.getNetworkscore()+"\r\n" + 238 "4、数据库成绩:"+cmp+"\r\n" + 239 "5、软件工程成绩:"+h.getSoftwarescore()+"\r\n" + 240 "该学生成绩已修改完毕,是否提交(Y/N)\r\n" + 241 "**********************************************************"); 242 s=in.next(); 243 a=s.charAt(0); 244 if(a=='Y'||a=='y') h.setDatabasescore(cmp); 245 break; 246 case 5: 247 System.out.print("***********************************************************\r\n" + 248 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 249 "学生考试成绩录入界面\r\n" + 250 "***********************************************************\r\n" + 251 "学生学号:"+h.getStunumber()+"\r\n" + 252 "学生姓名:"+h.getName()+"\r\n" + 253 "请输入修改后软件工程成绩:"); 254 cmp=in.nextDouble(); 255 System.out.println("***********************************************************\r\n" + 256 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 257 "学生考试成绩录入\r\n" + 258 "***********************************************************\r\n" + 259 "学生学号:"+h.getStunumber()+"\r\n" + 260 "学生姓名:"+h.getName()+"\r\n" + 261 "1、高等数学成绩:"+h.getMathematicsscore()+"\r\n" + 262 "2、大学英语成绩:"+h.getEnglishiscore()+"\r\n" + 263 "3、计算机网络成绩:"+h.getNetworkscore()+"\r\n" + 264 "4、数据库成绩:"+h.getDatabasescore()+"\r\n" + 265 "5、软件工程成绩:"+cmp+"\r\n" + 266 "该学生成绩已修改完毕,是否提交(Y/N)\r\n" + 267 "**********************************************************"); 268 s=in.next(); 269 a=s.charAt(0); 270 if(a=='Y'||a=='y') h.setSoftwarescore(cmp); 271 break; 272 default: 273 System.out.println("输入序号错误"); 274 } 275 } 276 public static void modifyScore() {//修改成绩 277 boolean flag=true; 278 while(flag) { 279 modifyMenu(); 280 String ans=in.next();//将输入的学号存入ans中 281 if(ans.equals(Score1.getStunumber())) { 282 modifyInterface(Score1); 283 flag=false; 284 } 285 else if(ans.equals(Score2.getStunumber())) { 286 modifyInterface(Score2); 287 flag=false; 288 } 289 else if(ans.equals(Score3.getStunumber())) { 290 modifyInterface(Score3); 291 flag=false; 292 } 293 else if(ans.equals(Score4.getStunumber())) { 294 modifyInterface(Score4); 295 flag=false; 296 } 297 else if(ans.equals(Score5.getStunumber())) { 298 modifyInterface(Score5); 299 flag=false; 300 } 301 else 302 System.out.println("该学号不存在2"); 303 } 304 } 305 public static void caculateMenu() { 306 System.out.println("***********************************************************\r\n" + 307 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 308 "学生考试成绩绩点计算界面\r\n" + 309 "***********************************************************\r\n" + 310 "请输入学生学号:"); 311 } 312 public static void caculateInterface(ScoreInformation h) { 313 double [] s=new double[5];//分别存储1--5五门学科成绩 314 s[0]=h.getMathematicsscore(); 315 s[1]=h.getEnglishiscore(); 316 s[2]=h.getNetworkscore(); 317 s[3]=h.getDatabasescore(); 318 s[4]=h.getSoftwarescore(); 319 double[] result=new double[5];//分别存储1-5学科的绩点 320 double [] credit= {4,3,4,3,2};//存储各科学分 321 double sum=0; 322 for (int i = 0; i < s.length; i++) { 323 if(s[i]>=90) result[i]=4.0; 324 else if(s[i]>=85&&s[i]<90) result[i]=3.7; 325 else if(s[i]>=82&&s[i]<85) result[i]=3.3; 326 else if(s[i]>=78&&s[i]<82) result[i]=3.0; 327 else if(s[i]>=75&&s[i]<78) result[i]=2.7; 328 else if(s[i]>=72&&s[i]<75) result[i]=2.3; 329 else if(s[i]>=68&&s[i]<72) result[i]=2.0; 330 else if(s[i]>=66&&s[i]<68) result[i]=1.7; 331 else if(s[i]>=64&&s[i]<66) result[i]=1.5; 332 else if(s[i]>=60&&s[i]<64) result[i]=1.0; 333 else result[i]=0; 334 sum+=result[i]*credit[i]; 335 } 336 sum/=16; 337 boolean flag=true; 338 if(sum<2) 339 flag=false; 340 System.out.print("***********************************************************\r\n" + 341 "石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r\n" + 342 "学生考试成绩绩点计算界面\r\n" + 343 "***********************************************************\r\n" + 344 "学生学号:"+h.getStunumber()+"\r\n" + 345 "学生姓名:"+h.getName()+"\r\n" + 346 "1、高等数学成绩绩点:"+result[0]+"\r\n" + 347 "2、大学英语成绩绩点:"+result[1]+"\r\n" + 348 "3、计算机网络成绩绩点:"+result[2]+"\r\n" + 349 "4、数据库成绩绩点:"+result[3]+"\r\n" + 350 "5、软件工程成绩绩点:"+result[4]+"\r\n" + 351 "你的平均学分绩点为:"); 352 System.out.println(String.format("%.2f", sum)); //计算结果保留小数点后两位 353 if(flag) 354 System.out.println("提示信息:你的学分绩点已达到毕业要求!"); 355 else 356 System.out.println("你的学分绩点不满足毕业要求!"); 357 358 System.out.println("是否返回系统主界面:(Y/N)"); 359 String a; 360 char c='2'; 361 while(c!='Y'&&c!='y') { 362 a=in.next(); 363 c=a.charAt(0); 364 } 365 } 366 public static void caculateScore() {//计算学分绩点 367 boolean flag=true; 368 while(flag) { 369 caculateMenu(); 370 String ans=in.next();//将输入的学号存入ans中 371 if(ans.equals(Score1.getStunumber())) { 372 caculateInterface(Score1); 373 flag=false; 374 } 375 else if(ans.equals(Score2.getStunumber())) { 376 caculateInterface(Score2); 377 flag=false; 378 } 379 else if(ans.equals(Score3.getStunumber())) { 380 caculateInterface(Score3); 381 flag=false; 382 } 383 else if(ans.equals(Score4.getStunumber())) { 384 caculateInterface(Score4); 385 flag=false; 386 } 387 else if(ans.equals(Score5.getStunumber())) { 388 caculateInterface(Score5); 389 flag=false; 390 } 391 else 392 System.out.println("该学号不存在3"); 393 } 394 } 395 public static void main(String[] args) { 396 totalMenu(); 397 } 398 }