题目
数据结构要求: 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)赋值。 功能要求: 该系统完成学生成绩录入,修改,计算学分积点和查询学生成绩的简单 功能,定义 ScoreManagement 类完成下列功能。 1、利用数组实现至少存储五个学生的信息; (将考生信息作为第一条记 录)。 2、学生成绩管理系统的主界面如下图所示: ①界面要求; *********************************************************** 石家庄铁道大学软件工程系 学生学籍管理系统 2019 版 *********************************************************** 1、 学生考试成绩录入 2、 学生考试成绩修改 3、 计算学生成绩绩点 4、退出学籍管理系统 ********************************************************** ②功能说明 输入数字 1-4 执行相应的功能,输入其他数字提示错误信息(该选项 不存在),并返回主界面。 2、成绩录入功能操作流程: ①在主界面选择成绩录入功能后,进入成绩录入界面,如下图所示: *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩录入 *********************************************************** 请输入学生学号:XXXXXXXX ********************************************************** 提示用户输入八位的学号。 ②用户输入学号后,显示用户学号和姓名,如果用户学号不存在或信息错 误提示错误信息(该学号不存在),并返回成绩录入界面。 ③用户输入学号正确如下图所示: *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩录入界面 *********************************************************** 学生学号:20183557 学生姓名:杨雄豪 请输入高等数学成绩:XXX **********************************************************
提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学 英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当 用户录完所有成绩后,显示如下界面。 *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩录入 *********************************************************** 学生学号:20183557 学生姓名:杨雄豪 高等数学成绩:XXX 大学英语成绩:XXX 计算机网络成绩:XXX 数据库成绩:XXX 软件工程成绩:XXX 该学生成绩已录入完毕,是否提交(Y/N) ********************************************************** 选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”, 则忽略上述成绩录入,并返回成绩录入界面。 3、成绩修改功能操作流程: ①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示: *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩修改界面 *********************************************************** 请输入学生学号:XXXXXXXX ********************************************************** 提示用户输入八位的学号。 ②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。 *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩录入 *********************************************************** 学生学号:20183557 学生姓名:杨雄豪 1、高等数学成绩:XXX 2、大学英语成绩:XXX 3、计算机网络成绩:XXX 4、数据库成绩:XXX 5、软件工程成绩:XXX ********************************************************** 如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回 成绩修改界面。 ③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。 *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩录入界面 *********************************************************** 学生学号:20183557 学生姓名:杨雄豪 请输入修改后软件工程成绩:XXX ********************************************************** 录入修改后的成绩,则进入下一步。 *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩录入 *********************************************************** 学生学号:20183557 学生姓名:杨雄豪 1、高等数学成绩:XXX 2、大学英语成绩:XXX 3、计算机网络成绩:XXX 4、数据库成绩:XXX 5、软件工程成绩:XXX 该学生成绩已修改完毕,是否提交(Y/N) ********************************************************** 选择“Y”将修改后成绩保存到相应的数组中,并返回主界面。选择“N”, 则忽略上述成绩录入,并返回成绩修改界面。 3、计算学生成绩绩点功能操作流程: ①在主界面选择计算学生成绩绩点功能后,进入计算学生成绩绩点界面, 如下图所示: *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 学生考试成绩绩点计算界面 *********************************************************** 请输入学生学号:XXXXXXXX ********************************************************** 提示用户输入八位的学号。 ②用户输入学号后,显示用户学号、姓名、学分绩点、提示信息。如下图 所示。 *********************************************************** 石家庄铁道大学软件工程系学生学籍管理系统 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”,无操作。 4、用户选择数字“4”, 显示如下界面,退出当前程序。 *********************************************************** 谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 制作人:考生姓名 ***********************************************************
分析
题目的第一个类仅需要创建2个公有成员变量和4个私有成员变量并创建对应的setter和getter,可使用source选项下的自动创建setter与getter的选项自动生成。第二个类中包含了很多方法,首先每个方法都有菜单模板,可以创建函数来存储模板。其次是方法中有很多循环,可以用while(true)语句执行,并在条件合适的情况下使用break语句退出循环。每个方法都用函数实现,在主函数中使用switch语句根据输入调用相应的函数并最终输出即可。
可能出现的问题:
(1)由于函数中存在许多循环和条件判断,注意嵌套时的逻辑问题。
(2)注意平均学分绩点要保留2为小数,语法为:String.format(".%2f",x)。
(3)String类型读入时.next()和.nextLine()的区别在于.next()以空格和回车为间断区分字符串而.nextLine()只以回车为间断。
(4)如果用对象数组存取数据的话,要注意数组的初始化和数组元素中的对象的初始化是要分别进行的,即创建数组之后,存取数据时对每个元素要分别进行对象初始化,否则将会出现空指针错误。
源代码
ScoreInformation类
1 public class ScoreInformation { 2 String stunumber; 3 String name; 4 private double mathematicsscore; 5 private double englishiscore; 6 private double networkscore; 7 private double databasescore; 8 private double softwarescore; 9 public String getStunumber() { 10 return stunumber; 11 } 12 public void setStunumber(String stunumber) { 13 this.stunumber = stunumber; 14 } 15 public String getName() { 16 return name; 17 } 18 public void setName(String name) { 19 this.name = name; 20 } 21 public double getMathematicsscore() { 22 return mathematicsscore; 23 } 24 public void setMathematicsscore(double mathematicsscore) { 25 this.mathematicsscore = mathematicsscore; 26 } 27 public double getEnglishiscore() { 28 return englishiscore; 29 } 30 public void setEnglishiscore(double englishiscore) { 31 this.englishiscore = englishiscore; 32 } 33 public double getNetworkscore() { 34 return networkscore; 35 } 36 public void setNetworkscore(double networkscore) { 37 this.networkscore = networkscore; 38 } 39 public double getDatabasescore() { 40 return databasescore; 41 } 42 public void setDatabasescore(double databasescore) { 43 this.databasescore = databasescore; 44 } 45 public double getSoftwarescore() { 46 return softwarescore; 47 } 48 public void setSoftwarescore(double softwarescore) { 49 this.softwarescore = softwarescore; 50 } 51 }
ScoreManagement类
1 import java.util.Scanner; 2 3 public class ScoreManagement { 4 static ScoreInformation n[]=new ScoreInformation[5]; 5 static int k=5; 6 static Scanner in = new Scanner(System.in); 7 public static void setting() //赋初值 8 { 9 n[0] = new ScoreInformation(); 10 n[0].setStunumber("20183713"); 11 n[0].setName("庞家恒"); 12 n[1] = new ScoreInformation(); 13 n[1].setStunumber("20183766"); 14 n[1].setName("ABC"); 15 n[2] = new ScoreInformation(); 16 n[2].setStunumber("20183777"); 17 n[2].setName("DEF"); 18 n[3] = new ScoreInformation(); 19 n[3].setStunumber("20183788"); 20 n[3].setName("GHI"); 21 n[4] = new ScoreInformation(); 22 n[4].setStunumber("20183799"); 23 n[4].setName("JKL"); 24 } 25 public static void list() //菜单 26 { 27 System.out.println("***********************************************************"); 28 System.out.println(" 石家庄铁道大学软件工程系 "); 29 System.out.println(" 学生学籍管理系统 2019 版 "); 30 System.out.println("**********************************************************"); 31 System.out.println(" 1、 学生考试成绩录入 "); 32 System.out.println(" 2、 学生考试成绩修改 "); 33 System.out.println(" 3、 计算学生成绩绩点"); 34 System.out.println(" 4、退出学籍管理系统 "); 35 System.out.println("********************************************************** "); 36 } 37 public static void inputlist1() //成绩录入界面模板1 38 { 39 System.out.println("***********************************************************"); 40 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); 41 System.out.println(" 学生考试成绩录入"); 42 System.out.println("*********************************************************** "); 43 } 44 public static void inputlist2() //成绩录入界面模板2 45 { 46 System.out.println("***********************************************************"); 47 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); 48 System.out.println(" 学生考试成绩录入界面 "); 49 System.out.println("*********************************************************** "); 50 } 51 public static void input() //成绩录入功能实现 52 { 53 while(true) 54 { 55 String stunumber; 56 double mathematicsscore,englishiscore,networkscore,databasescore,softwarescore; 57 int a=0; 58 boolean t = true; 59 String b; 60 while(t) //读入学号并判断是否正确 61 { 62 inputlist1(); 63 System.out.println(" 请输入学生学号:XXXXXXXX "); 64 System.out.println("*********************************************************** "); 65 stunumber = in.next(); 66 for(int i=0;i<k;i++) //判断学号是存在 67 { 68 if(stunumber.equals(n[i].getStunumber())) 69 { 70 a = i; 71 t = false; 72 break; 73 } 74 if(i==k-1) 75 { 76 System.out.println("该学号不存在请重新输入"); 77 } 78 } 79 } 80 while(true) //读入高等数学成绩 81 { 82 inputlist2(); 83 System.out.println(" 学生学号:"+n[a].getStunumber()); 84 System.out.println(" 学生姓名:"+n[a].getName()); 85 System.out.println(" 请输入高等数学成绩:XXX "); 86 System.out.println("**********************************************************"); 87 mathematicsscore = in.nextDouble(); 88 if(mathematicsscore>=0&&mathematicsscore<=100) 89 { 90 break; 91 } 92 else 93 { 94 System.out.println("成绩无效请重新输入"); 95 } 96 } 97 while(true) //读入大学英语成绩 98 { 99 inputlist2(); 100 System.out.println(" 学生学号:"+n[a].getStunumber()); 101 System.out.println(" 学生姓名:"+n[a].getName()); 102 System.out.println(" 高等数学成绩:"+mathematicsscore); 103 System.out.println(" 请输入大学英语成绩:XXX "); 104 System.out.println("**********************************************************"); 105 englishiscore = in.nextDouble(); 106 if(englishiscore>=0&&englishiscore<=100) 107 { 108 break; 109 } 110 else 111 { 112 System.out.println("成绩无效请重新输入"); 113 } 114 } 115 while(true) //读入计算机网络成绩 116 { 117 inputlist2(); 118 System.out.println(" 学生学号:"+n[a].getStunumber()); 119 System.out.println(" 学生姓名:"+n[a].getName()); 120 System.out.println(" 高等数学成绩:"+mathematicsscore); 121 System.out.println(" 大学英语成绩:"+englishiscore); 122 System.out.println(" 请输入计算机网络成绩:XXX "); 123 System.out.println("**********************************************************"); 124 networkscore = in.nextDouble(); 125 if(networkscore>=0&&networkscore<=100) 126 { 127 break; 128 } 129 else 130 { 131 System.out.println("成绩无效请重新输入"); 132 } 133 } 134 while(true) //读入数据库成绩 135 { 136 inputlist2(); 137 System.out.println(" 学生学号:"+n[a].getStunumber()); 138 System.out.println(" 学生姓名:"+n[a].getName()); 139 System.out.println(" 高等数学成绩:"+mathematicsscore); 140 System.out.println(" 大学英语成绩:"+englishiscore); 141 System.out.println(" 计算机网络成绩:"+networkscore); 142 System.out.println(" 请输入数据库成绩:XXX "); 143 System.out.println("**********************************************************"); 144 databasescore = in.nextDouble(); 145 if(databasescore>=0&&databasescore<=100) 146 { 147 break; 148 } 149 else 150 { 151 System.out.println("成绩无效请重新输入"); 152 } 153 } 154 while(true) //读入软件工程成绩 155 { 156 inputlist2(); 157 System.out.println(" 学生学号:"+n[a].getStunumber()); 158 System.out.println(" 学生姓名:"+n[a].getName()); 159 System.out.println(" 高等数学成绩:"+mathematicsscore); 160 System.out.println(" 大学英语成绩:"+englishiscore); 161 System.out.println(" 计算机网络成绩:"+networkscore); 162 System.out.println(" 数据库成绩:"+databasescore); 163 System.out.println(" 请输入软件工程成绩:XXX "); 164 System.out.println("**********************************************************"); 165 softwarescore = in.nextDouble(); 166 if(softwarescore>=0&&softwarescore<=100) 167 { 168 break; 169 } 170 else 171 { 172 System.out.println("成绩无效请重新输入"); 173 } 174 } 175 inputlist2(); 176 System.out.println(" 学生学号:"+n[a].getStunumber()); 177 System.out.println(" 学生姓名:"+n[a].getName()); 178 System.out.println(" 高等数学成绩:"+mathematicsscore); 179 System.out.println(" 大学英语成绩:"+englishiscore); 180 System.out.println(" 计算机网络成绩:"+networkscore); 181 System.out.println(" 数据库成绩:"+databasescore); 182 System.out.println(" 软件工程成绩:"+softwarescore); 183 System.out.println(" 该学生成绩已录入完毕,是否提交(Y/N)"); 184 System.out.println("**********************************************************"); 185 b = in.next(); 186 if(b.equals("Y")) //判断成绩是否提交 187 { 188 n[a].setMathematicsscore(mathematicsscore); 189 n[a].setEnglishiscore(englishiscore); 190 n[a].setNetworkscore(networkscore); 191 n[a].setDatabasescore(databasescore); 192 n[a].setSoftwarescore(softwarescore); 193 break; 194 } 195 } 196 } 197 public static void changelist() //成绩修改菜单模板 198 { 199 System.out.println("***********************************************************"); 200 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); 201 System.out.println(" 学生考试成绩修改界面 "); 202 System.out.println("***********************************************************"); 203 } 204 public static void showscore(int a) 205 { 206 inputlist1(); 207 System.out.println(" 学生学号:"+n[a].getStunumber()); 208 System.out.println(" 学生姓名:"+n[a].getName()); 209 System.out.println(" 1、高等数学成绩:"+n[a].getMathematicsscore()); 210 System.out.println(" 2、大学英语成绩:"+n[a].getEnglishiscore()); 211 System.out.println(" 3、计算机网络成绩:"+n[a].getNetworkscore()); 212 System.out.println(" 4、数据库成绩:"+n[a].getDatabasescore()); 213 System.out.println(" 5、软件工程成绩:"+n[a].getSoftwarescore()); 214 System.out.println("**********************************************************"); 215 } 216 public static void change() //成绩修改功能实现 217 { 218 String stunumber; 219 boolean t = true; 220 double mathematicsscore,englishiscore,networkscore,databasescore,softwarescore; 221 int a=0; 222 int b=0; 223 String c; 224 while(t) //读入学号并判断是否正确 225 { 226 changelist(); 227 System.out.println(" 请输入学生学号:XXXXXXXX "); 228 System.out.println("*********************************************************** "); 229 stunumber = in.next(); 230 for(int i=0;i<k;i++) //判断学号是存在 231 { 232 if(stunumber.equals(n[i].getStunumber())) 233 { 234 a = i; 235 t = false; 236 break; 237 } 238 if(i==k-1) 239 { 240 System.out.println("该学号不存在请重新输入"); 241 } 242 } 243 } 244 mathematicsscore = n[a].getMathematicsscore(); 245 englishiscore = n[a].getEnglishiscore(); 246 networkscore = n[a].getNetworkscore(); 247 databasescore = n[a].getDatabasescore(); 248 softwarescore = n[a].getSoftwarescore(); 249 while(true) 250 { 251 showscore(a); 252 b = in.nextInt(); 253 if((b<=0)&&(b>5)) 254 System.out.println("输入错误请重新输入"); 255 else 256 { 257 switch(b) 258 { 259 case 1:{ 260 while(true) 261 { 262 inputlist2(); 263 System.out.println(" 学生学号:"+n[a].getStunumber()); 264 System.out.println(" 学生姓名:"+n[a].getName()); 265 System.out.println(" 请输入修改后的高等数学成绩:XXX"); 266 mathematicsscore = in.nextDouble(); 267 if(mathematicsscore>=0&&mathematicsscore<=100) 268 { 269 break; 270 } 271 else 272 { 273 System.out.println("成绩无效请重新输入"); 274 } 275 } 276 break; 277 } 278 case 2:{ 279 while(true) 280 { 281 inputlist2(); 282 System.out.println(" 学生学号:"+n[a].getStunumber()); 283 System.out.println(" 学生姓名:"+n[a].getName()); 284 System.out.println(" 请输入修改后的大学英语成绩:XXX"); 285 englishiscore = in.nextDouble(); 286 if((englishiscore>=0)&&(englishiscore<=100)) 287 { 288 break; 289 } 290 else 291 { 292 System.out.println("成绩无效请重新输入"); 293 } 294 } 295 break; 296 } 297 case 3:{ 298 inputlist2(); 299 System.out.println(" 学生学号:"+n[a].getStunumber()); 300 System.out.println(" 学生姓名:"+n[a].getName()); 301 System.out.println(" 请输入修改后的计算机网络成绩:XXX"); 302 networkscore = in.nextDouble(); 303 if((networkscore>=0)&&(networkscore<=100)) 304 { 305 break; 306 } 307 else 308 { 309 System.out.println("成绩无效请重新输入"); 310 } 311 } 312 case 4:{ 313 inputlist2(); 314 System.out.println(" 学生学号:"+n[a].getStunumber()); 315 System.out.println(" 学生姓名:"+n[a].getName()); 316 System.out.println(" 请输入修改后的数据库成绩:XXX"); 317 databasescore = in.nextDouble(); 318 if((databasescore>=0)&&(databasescore<=100)) 319 { 320 break; 321 } 322 else 323 { 324 System.out.println("成绩无效请重新输入"); 325 } 326 } 327 case 5:{ 328 inputlist2(); 329 System.out.println(" 学生学号:"+n[a].getStunumber()); 330 System.out.println(" 学生姓名:"+n[a].getName()); 331 System.out.println(" 请输入修改后的软件工程成绩:XXX"); 332 softwarescore = in.nextDouble(); 333 if((softwarescore>=0)&&(softwarescore<=100)) 334 { 335 break; 336 } 337 else 338 { 339 System.out.println("成绩无效请重新输入"); 340 } 341 } 342 } 343 } 344 inputlist1(); 345 System.out.println(" 学生学号:"+n[a].getStunumber()); 346 System.out.println(" 学生姓名:"+n[a].getName()); 347 System.out.println(" 1、高等数学成绩:"+mathematicsscore); 348 System.out.println(" 2、大学英语成绩:"+englishiscore); 349 System.out.println(" 3、计算机网络成绩:"+networkscore); 350 System.out.println(" 4、 数据库成绩:"+databasescore); 351 System.out.println(" 5、软件工程成绩:"+softwarescore); 352 System.out.println(" 该学生成绩已修改完毕,是否提交(Y/N) "); 353 System.out.println("**********************************************************"); 354 c = in.next(); 355 if(c.equals("Y")) 356 { 357 n[a].setMathematicsscore(mathematicsscore); 358 n[a].setEnglishiscore(englishiscore); 359 n[a].setNetworkscore(networkscore); 360 n[a].setDatabasescore(databasescore); 361 n[a].setSoftwarescore(softwarescore); 362 break; 363 } 364 } 365 } 366 public static void gpalist() //绩点菜单模板 367 { 368 System.out.println("**********************************************************"); 369 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); 370 System.out.println(" 学生考试成绩绩点计算界面 "); 371 System.out.println("**********************************************************"); 372 } 373 public static void gpa() //计算学分绩点 374 { 375 boolean t = true; 376 String stunumber; 377 double mathematicsscore,englishiscore,networkscore,databasescore,softwarescore; 378 double average; 379 int a=0; 380 while(t) //读入学号并判断是否正确 381 { 382 gpalist(); 383 System.out.println(" 请输入学生学号:XXXXXXXX "); 384 System.out.println("*********************************************************** "); 385 stunumber = in.next(); 386 for(int i=0;i<k;i++) //判断学号是存在 387 { 388 if(stunumber.equals(n[i].getStunumber())) 389 { 390 a = i; 391 t = false; 392 break; 393 } 394 if(i==k-1) 395 { 396 System.out.println("该学号不存在请重新输入"); 397 } 398 } 399 } 400 if(n[a].getMathematicsscore()>=90) //计算绩点 401 mathematicsscore = 4; 402 else if(n[a].getMathematicsscore()>=85) 403 mathematicsscore = 3.7; 404 else if(n[a].getMathematicsscore()>=82) 405 mathematicsscore = 3.3; 406 else if(n[a].getMathematicsscore()>=78) 407 mathematicsscore = 3; 408 else if(n[a].getMathematicsscore()>=75) 409 mathematicsscore = 2.7; 410 else if(n[a].getMathematicsscore()>=72) 411 mathematicsscore = 2.3; 412 else if(n[a].getMathematicsscore()>=68) 413 mathematicsscore = 2; 414 else if(n[a].getMathematicsscore()>=66) 415 mathematicsscore = 1.7; 416 else if(n[a].getMathematicsscore()>=64) 417 mathematicsscore = 1.5; 418 else if(n[a].getMathematicsscore()>=60) 419 mathematicsscore = 1; 420 else 421 mathematicsscore = 0; 422 if(n[a].getEnglishiscore()>=90) 423 englishiscore = 4; 424 else if(n[a].getEnglishiscore()>=85) 425 englishiscore = 3.7; 426 else if(n[a].getEnglishiscore()>=82) 427 englishiscore = 3.3; 428 else if(n[a].getEnglishiscore()>=78) 429 englishiscore = 3; 430 else if(n[a].getEnglishiscore()>=75) 431 englishiscore = 2.7; 432 else if(n[a].getEnglishiscore()>=72) 433 englishiscore = 2.3; 434 else if(n[a].getEnglishiscore()>=68) 435 englishiscore = 2; 436 else if(n[a].getEnglishiscore()>=66) 437 englishiscore = 1.7; 438 else if(n[a].getEnglishiscore()>=64) 439 englishiscore = 1.5; 440 else if(n[a].getEnglishiscore()>=60) 441 englishiscore = 1; 442 else 443 englishiscore = 0; 444 if(n[a].getNetworkscore()>=90) 445 networkscore = 4; 446 else if(n[a].getNetworkscore()>=85) 447 networkscore = 3.7; 448 else if(n[a].getNetworkscore()>=82) 449 networkscore = 3.3; 450 else if(n[a].getNetworkscore()>=78) 451 networkscore = 3; 452 else if(n[a].getNetworkscore()>=75) 453 networkscore = 2.7; 454 else if(n[a].getNetworkscore()>=72) 455 networkscore = 2.3; 456 else if(n[a].getNetworkscore()>=68) 457 networkscore = 2; 458 else if(n[a].getNetworkscore()>=66) 459 networkscore = 1.7; 460 else if(n[a].getNetworkscore()>=64) 461 networkscore = 1.5; 462 else if(n[a].getNetworkscore()>=60) 463 networkscore = 1; 464 else 465 networkscore = 0; 466 if(n[a].getDatabasescore()>=90) 467 databasescore = 4; 468 else if(n[a].getDatabasescore()>=85) 469 databasescore = 3.7; 470 else if(n[a].getDatabasescore()>=82) 471 databasescore = 3.3; 472 else if(n[a].getDatabasescore()>=78) 473 databasescore = 3; 474 else if(n[a].getDatabasescore()>=75) 475 databasescore = 2.7; 476 else if(n[a].getDatabasescore()>=72) 477 databasescore = 2.3; 478 else if(n[a].getDatabasescore()>=68) 479 databasescore = 2; 480 else if(n[a].getDatabasescore()>=66) 481 databasescore = 1.7; 482 else if(n[a].getDatabasescore()>=64) 483 databasescore = 1.5; 484 else if(n[a].getDatabasescore()>=60) 485 databasescore = 1; 486 else 487 databasescore = 0; 488 if(n[a].getSoftwarescore()>=90) 489 softwarescore = 4; 490 else if(n[a].getSoftwarescore()>=85) 491 softwarescore = 3.7; 492 else if(n[a].getSoftwarescore()>=82) 493 softwarescore = 3.3; 494 else if(n[a].getSoftwarescore()>=78) 495 softwarescore = 3; 496 else if(n[a].getSoftwarescore()>=75) 497 softwarescore = 2.7; 498 else if(n[a].getSoftwarescore()>=72) 499 softwarescore = 2.3; 500 else if(n[a].getSoftwarescore()>=68) 501 softwarescore = 2; 502 else if(n[a].getSoftwarescore()>=66) 503 softwarescore = 1.7; 504 else if(n[a].getSoftwarescore()>=64) 505 softwarescore = 1.5; 506 else if(n[a].getSoftwarescore()>=60) 507 softwarescore = 1; 508 else 509 softwarescore = 0; 510 average = ((4*mathematicsscore)+(3*englishiscore)+(4*networkscore) 511 +(3*databasescore)+(2*softwarescore))/(4+3+4+3+2); 512 while(true) 513 { 514 String x; 515 gpalist(); 516 System.out.println(" 学生学号:"+n[a].getStunumber()); 517 System.out.println(" 学生姓名:"+n[a].getName()); 518 System.out.println(" 1、高等数学成绩绩点:"+mathematicsscore); 519 System.out.println(" 2、大学英语成绩绩点:"+englishiscore); 520 System.out.println(" 3、计算机网络成绩绩点:"+networkscore); 521 System.out.println(" 4、 数据库成绩绩点:"+databasescore); 522 System.out.println(" 5、软件工程成绩绩点:"+softwarescore); 523 System.out.println(" 你的平均学分绩点为:"+String.format("%.2f", average)); 524 if(average>=2) 525 System.out.println(" 提示信息:你的学分绩点已达到毕业要求! "); 526 else 527 System.out.println(" 提示信息:你的学分绩点不满足毕业要求! "); 528 System.out.println(" 是否返回系统主界面:(Y/N) "); 529 System.out.println("**********************************************************"); 530 x = in.next(); 531 if(x.equals("Y")) 532 break; 533 } 534 } 535 public static void end() //结束信息 536 { 537 System.out.println("**********************************************************"); 538 System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); 539 System.out.println(" 制作人:庞家恒"); 540 System.out.println("**********************************************************"); 541 } 542 543 public static void main(String[] args) { 544 setting(); 545 boolean t = true; 546 int a; 547 while(t) 548 { 549 list(); 550 a = in.nextInt(); 551 switch (a) { 552 case 1:{ 553 input(); 554 break; 555 } 556 case 2:{ 557 change(); 558 break; 559 } 560 case 3:{ 561 gpa(); 562 break; 563 } 564 case 4:{ 565 end(); 566 t = false; 567 break; 568 } 569 default:{ 570 System.out.println("输入有误请重新输入"); 571 break; 572 } 573 } 574 } 575 } 576 577 }
样例