本次测试我们使用Java编写了一个学生的成绩管理系统:
具体要求如下:
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)赋值。
首先定义一个 ScoreInformation 类 设置私有变量并创建构造方法,get set 方法,进行调试:
具体源代码如下:
1 package 课堂测试试卷; 2 /** 3 * 信1805-2 4 * @author cuixingyu 5 * 20183547 6 */ 7 public class ScoreInformation { 8 9 private String stunumber; //学号 10 private String name; //姓名 11 private double mathematicsscore; //高等数学 12 private double englishiscore; //大学英语 13 private double networkscore; //计算机网络成绩 14 private double databasescore; //数据库成绩 15 private double softwarescore; //软件工程成绩 16 17 public ScoreInformation(String stunumber, String name, double mathematicsscore, double englishiscore, double networkscore, 18 double databasescore, double softwarescore) { 19 super(); 20 this.stunumber = stunumber; 21 this.name = name; 22 this.mathematicsscore = mathematicsscore; 23 this.englishiscore = englishiscore; 24 this.networkscore = networkscore; 25 this.databasescore = databasescore; 26 this.softwarescore = softwarescore; 27 } 28 public String getStunumber() { 29 return stunumber; 30 } 31 public void setStunumber(String stunumber) { 32 this.stunumber = stunumber; 33 } 34 public String getName() { 35 return name; 36 } 37 public void setName(String name) { 38 this.name = name; 39 } 40 public double getMathematicsscore() { 41 return mathematicsscore; 42 } 43 public void setMathematicsscore(double mathematicsscore) { 44 this.mathematicsscore = mathematicsscore; 45 } 46 public double getEnglishiscore() { 47 return englishiscore; 48 } 49 public void setEnglishiscore(double englishiscore) { 50 this.englishiscore = englishiscore; 51 } 52 public double getNetworkscore() { 53 return networkscore; 54 } 55 public void setNetworkscore(double networkscore) { 56 this.networkscore = networkscore; 57 } 58 public double getDatabasescore() { 59 return databasescore; 60 } 61 public void setDatabasescore(double databasescore) { 62 this.databasescore = databasescore; 63 } 64 public double getSoftwarescore() { 65 return softwarescore; 66 } 67 public void setSoftwarescore(double softwarescore) { 68 this.softwarescore = softwarescore; 69 } 70 public static void main(String[] args) { 71 ScoreInformation s=new ScoreInformation("20183547","崔星宇",90.0,90.0,90.0,90.0,90.0); 72 System.out.println(s.getStunumber()+" "+s.getName()+" "+s.getEnglishiscore()+" "+s.getMathematicsscore()+" "+s.getSoftwarescore()+" "+s.getNetworkscore()+" "+s.getDatabasescore()); 73 } 74 75 }
功能要求如下:
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、退出学籍管理系统
**********************************************************
第 3 页 共 8 页
②功能说明
输入数字 1-4 执行相应的功能,输入其他数字提示错误信息(该选项
不存在),并返回主界面。(0.5 分)
2、成绩录入功能操作流程:(3 分)
①在主界面选择成绩录入功能后,进入成绩录入界面,如下图所示: (0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。
②用户输入学号后,显示用户学号和姓名,如果用户学号不存在或信息错
误提示错误信息(该学号不存在),并返回成绩录入界面。(0.5 分)
③用户输入学号正确如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入高等数学成绩:XXX
**********************************************************
提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学
英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当
第 4 页 共 8 页
用户录完所有成绩后,显示如下界面。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
高等数学成绩:XXX
大学英语成绩:XXX
计算机网络成绩:XXX
数据库成绩:XXX
软件工程成绩:XXX
该学生成绩已录入完毕,是否提交(Y/N)
**********************************************************
选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩录入界面。(0.5 分)
3、成绩修改功能操作流程:(2 分)
①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩修改界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。(0.5 分)
第 5 页 共 8 页
②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
**********************************************************
如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回
成绩修改界面。(0.5 分)
③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。(0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入修改后软件工程成绩:XXX
**********************************************************
录入修改后的成绩,则进入下一步。
第 6 页 共 8 页
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
该学生成绩已修改完毕,是否提交(Y/N)
**********************************************************
选择“Y”将修改后成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩修改界面。(0.5 分)
3、计算学生成绩绩点功能操作流程:(2 分)
①在主界面选择计算学生成绩绩点功能后,进入计算学生成绩绩点界面,
如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩绩点计算界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
第 7 页 共 8 页
提示用户输入八位的学号。
②用户输入学号后,显示用户学号、姓名、学分绩点、提示信息。如下图
所示。(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,提示信息显示“你的学分绩点不满足毕业要求!”
第 8 页 共 8 页
学分绩点计算方法:
(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 版
制作人:考生姓名
***********************************************************
代码实现如下:
首先定义一个 jidian类 用于储存绩点,并便于输出
代码实现如下:
1 package 课堂测试试卷; 2 3 public class jidian { 4 private String id; 5 private String name; 6 private double s1; 7 private double s2; 8 private double s3; 9 private double s4; 10 private double s5; 11 private double s6; 12 13 14 public String getId() { 15 return id; 16 } 17 public void setId(String id) { 18 this.id = id; 19 } 20 public String getName() { 21 return name; 22 } 23 public void setName(String name) { 24 this.name = name; 25 } 26 public double getS1() { 27 return s1; 28 } 29 public void setS1(double s1) { 30 this.s1 = s1; 31 } 32 public double getS2() { 33 return s2; 34 } 35 public void setS2(double s2) { 36 this.s2 = s2; 37 } 38 public double getS3() { 39 return s3; 40 } 41 public void setS3(double s3) { 42 this.s3 = s3; 43 } 44 public double getS4() { 45 return s4; 46 } 47 public void setS4(double s4) { 48 this.s4 = s4; 49 } 50 public double getS5() { 51 return s5; 52 } 53 public void setS5(double s5) { 54 this.s5 = s5; 55 } 56 public double getS6() { 57 return s6; 58 } 59 public void setS6(double s6) { 60 this.s6 = s6; 61 } 62 public jidian(String id, String name, double s1, double s2, double s3, double s4, double s5, double s6) { 63 super(); 64 this.id = id; 65 this.name = name; 66 this.s1 = s1; 67 this.s2 = s2; 68 this.s3 = s3; 69 this.s4 = s4; 70 this.s5 = s5; 71 this.s6 = s6; 72 } 73 }
主要代码如下:
1 /** 信1805-2 2 * 崔星宇 3 * 20183547 4 */ 5 package 课堂测试试卷; 6 7 import java.util.Scanner; 8 9 public class ScoreManagement { 10 static Scanner sc=null; 11 //static ScoreInformation s[]=new ScoreInformation[1000]; 12 static ScoreInformation s1=new ScoreInformation("20183547","崔星宇",0,0,0,0,0); 13 static ScoreInformation s2=new ScoreInformation("20183549","张三",0,0,0,0,0); 14 static ScoreInformation s3=new ScoreInformation("20183550","李四",0,0,0,0,0); 15 static ScoreInformation s4=new ScoreInformation("20183551","王五",0,0,0,0,0); 16 static ScoreInformation s5=new ScoreInformation("20183552","赵六",0,0,0,0,0); 17 static ScoreInformation S=new ScoreInformation(null,null,0,0,0,0,0); 18 static jidian s=new jidian(null,null,0,0,0,0,0,0); 19 /** 20 * 主界面 21 */ 22 public static void Menu() { 23 System.out.println("*********************************************************** " + 24 " 石家庄铁道大学软件工程系 " + 25 " 学生学籍管理系统 2019版 " + 26 "*********************************************************** " + 27 " 1、 学生考试成绩录入 " + 28 " 2、 学生考试成绩修改 " + 29 " 3、 计算学生成绩绩点 " + 30 " 4、退出学籍管理系统 " + 31 "********************************************************** "); 32 int i=1; 33 sc=new Scanner(System.in); 34 while(i!=4) { //选择需要的操作 35 i=sc.nextInt(); 36 switch(i) { 37 case 1: 38 addinfo(); 39 break; 40 case 2: 41 updateinfo(); 42 break; 43 case 3: 44 mathinfo(); 45 break; 46 case 4: 47 menuend(); 48 break; 49 default: 50 System.out.println("该选项不存在"); 51 Menu(); 52 break; 53 } 54 } 55 } 56 /** 57 * 结束界面 58 */ 59 60 public static void menuend() { 61 System.out.println("*********************************************************** " + 62 " 谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 63 " 制作人:崔星宇 " + 64 "***********************************************************"); 65 System.exit(0); 66 } 67 /** 68 * 录入界面 69 */ 70 public static String menu1() { 71 System.out.println("*********************************************************** " + 72 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 73 " 学生考试成绩录入 " + 74 "*********************************************************** " + 75 " 请输入学生学号: " + 76 "********************************************************** "); 77 int i=0; 78 sc=new Scanner(System.in); //判断学号是否是八位 79 String q=sc.next(); 80 if(q.length()!=8) { 81 System.out.println("该学号不存在"); 82 menu1(); 83 } 84 int k=0; 85 if(s1.getStunumber().compareTo(q)!=0) { //判断已经录入的学生里面是否由该学生 86 k++; 87 } 88 if(s2.getStunumber().compareTo(q)!=0) { 89 k++; 90 } 91 if(s3.getStunumber().compareTo(q)!=0) { 92 k++; 93 } 94 if(s4.getStunumber().compareTo(q)!=0) { 95 k++; 96 } 97 if(s5.getStunumber().compareTo(q)!=0) { 98 k++; 99 } 100 if(k==5) 101 { 102 System.out.println("该学号不存在"); 103 menu1(); 104 } 105 return q; 106 } 107 108 //录入高等数学成绩 109 public static void menu2() { 110 System.out.println("*********************************************************** " + 111 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 112 " 学生考试成绩录入界面 " + 113 "*********************************************************** " + 114 " 学生学号: " + S.getStunumber()+ " "+ 115 " 学生姓名: " + S.getName()+" "+ 116 " 请输入高等数学成绩: " + 117 "********************************************************** "); 118 } 119 //录入大学英语成绩 120 public static void menu3() { 121 System.out.println("*********************************************************** " + 122 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 123 " 学生考试成绩录入 " + 124 "*********************************************************** " + 125 " 学生学号: " + S.getStunumber()+" "+ 126 " 学生姓名: " + S.getName()+" "+ 127 " 高等数学成绩: " + S.getMathematicsscore()+" "+ 128 " 请输入大学英语成绩: " + 129 "********************************************************** "); 130 131 } 132 //录入计算机网络成绩 133 public static void menu4() { 134 System.out.println("*********************************************************** " + 135 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 136 " 学生考试成绩录入 " + 137 "*********************************************************** " + 138 " 学生学号: " + S.getStunumber()+" "+ 139 " 学生姓名: " + S.getName()+" "+ 140 " 高等数学成绩: " + S.getMathematicsscore()+" "+ 141 " 大学英语成绩: " + S.getEnglishiscore()+" "+ 142 " 请输入计算机网络成绩: " + 143 144 "********************************************************** "); 145 146 } 147 //录入数据库成绩 148 public static void menu5() { 149 System.out.println("*********************************************************** " + 150 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 151 " 学生考试成绩录入 " + 152 "*********************************************************** " + 153 " 学生学号: " + S.getStunumber()+" "+ 154 " 学生姓名: " + S.getName()+" "+ 155 " 高等数学成绩: " + S.getMathematicsscore()+" "+ 156 " 大学英语成绩: " + S.getEnglishiscore()+" "+ 157 " 计算机网络成绩: " + S.getNetworkscore()+" "+ 158 " 请输入数据库成绩: " + 159 "********************************************************** "); 160 } 161 //录入软件工程成绩 162 public static void menu6() { 163 System.out.println("*********************************************************** " + 164 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 165 " 学生考试成绩录入 " + 166 "*********************************************************** " + 167 " 学生学号: " + S.getStunumber()+" "+ 168 " 学生姓名: " + S.getName()+" "+ 169 " 高等数学成绩: " + S.getMathematicsscore()+" "+ 170 " 大学英语成绩: " + S.getEnglishiscore()+" "+ 171 " 计算机网络成绩: " + S.getNetworkscore()+" "+ 172 " 数据库成绩: " + S.getDatabasescore()+" "+ 173 " 请输入软件工程成绩: " + 174 175 "********************************************************** "); 176 177 } 178 //输入完成界面 全部输出成绩并寻求是否保存 179 public static void menu7() { 180 System.out.println("*********************************************************** " + 181 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 182 " 学生考试成绩录入 " + 183 "*********************************************************** " + 184 " 学生学号: " + S.getStunumber()+" "+ 185 " 学生姓名: " + S.getName()+" "+ 186 " 高等数学成绩: " + S.getMathematicsscore()+" "+ 187 " 大学英语成绩: " + S.getEnglishiscore()+" "+ 188 " 计算机网络成绩: " + S.getNetworkscore()+" "+ 189 " 数据库成绩: " + S.getDatabasescore()+" "+ 190 " 软件工程成绩: " + S.getSoftwarescore()+" "+ 191 " 该学生成绩已录入完毕,是否提交(Y/N) " + 192 "********************************************************** "); 193 194 } 195 /** 196 * 修改界面 197 */ 198 public static String menu21() { 199 System.out.println("*********************************************************** " + 200 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 201 " 学生考试成绩修改界面 " + 202 "*********************************************************** " + 203 " 请输入学生学号(输入八位的学号): " + 204 "********************************************************** "); 205 sc=new Scanner(System.in); 206 String q=sc.next(); 207 return q; 208 } 209 //输出所查询的学生所有成绩 210 public static void menu22() { 211 System.out.println("*********************************************************** " + 212 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 213 " 学生考试成绩录入 " + 214 "*********************************************************** " + 215 " 学生学号: " + S.getStunumber()+" "+ 216 " 学生姓名: " + S.getName()+" "+ 217 " 1、高等数学成绩: " + S.getMathematicsscore()+" "+ 218 " 2、大学英语成绩: " + S.getEnglishiscore()+" "+ 219 " 3、计算机网络成绩: " + S.getNetworkscore()+" "+ 220 " 4、数据库成绩: " + S.getDatabasescore()+" "+ 221 " 5、软件工程成绩: " + S.getSoftwarescore()+" "+ 222 "********************************************************** "); 223 int i; 224 sc=new Scanner(System.in); 225 i=sc.nextInt(); 226 switch(i) { 227 case 1: //选择需要修改的成绩 228 menu23(); 229 break; 230 case 2: 231 menu24(); 232 break; 233 case 3: 234 menu25(); 235 break; 236 case 4: 237 menu26(); 238 break; 239 case 5: 240 menu27(); 241 break; 242 } 243 } 244 //修改高数成绩 245 public static void menu23() { 246 System.out.println("*********************************************************** " + 247 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 248 " 学生考试成绩录入界面 " + 249 "*********************************************************** " + 250 " 学生学号: " + S.getStunumber()+" "+ 251 " 学生姓名: " + S.getName()+" "+ 252 " 请输入修改后高等数学成绩: " + 253 "********************************************************** "); 254 sc=new Scanner(System.in); 255 double a=sc.nextDouble(); 256 S.setMathematicsscore(a); 257 258 } 259 //修改大学英语成绩 260 public static void menu24() { 261 System.out.println("*********************************************************** " + 262 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 263 " 学生考试成绩录入界面 " + 264 "*********************************************************** " + 265 " 学生学号: " + S.getStunumber()+" "+ 266 " 学生姓名: " + S.getName()+" "+ 267 " 请输入修改后大学英语成绩: " + 268 "********************************************************** "); 269 sc=new Scanner(System.in); 270 double a=sc.nextDouble(); 271 S.setEnglishiscore(a); 272 } 273 //修改计算机网络成绩 274 public static void menu25() { 275 System.out.println("*********************************************************** " + 276 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 277 " 学生考试成绩录入界面 " + 278 "*********************************************************** " + 279 " 学生学号: " + S.getStunumber()+" "+ 280 " 学生姓名: " + S.getName()+" "+ 281 " 请输入修改后计算机网络成绩: " + 282 "********************************************************** "); 283 sc=new Scanner(System.in); 284 double a=sc.nextDouble(); 285 S.setNetworkscore(a); 286 } 287 //修改数据库成绩 288 public static void menu26() { 289 System.out.println("*********************************************************** " + 290 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 291 " 学生考试成绩录入界面 " + 292 "*********************************************************** " + 293 " 学生学号: " + S.getStunumber()+" "+ 294 " 学生姓名: " + S.getName()+" "+ 295 " 请输入修改后数据库成绩: " + 296 "********************************************************** "); 297 sc=new Scanner(System.in); 298 double a=sc.nextDouble(); 299 S.setDatabasescore(a); 300 301 } 302 //修改软件工程成绩 303 public static void menu27() { 304 System.out.println("*********************************************************** " + 305 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 306 " 学生考试成绩录入界面 " + 307 "*********************************************************** " + 308 " 学生学号: " + S.getStunumber()+" "+ 309 " 学生姓名: " + S.getName()+" "+ 310 " 请输入修改后软件工程成绩: " + 311 "********************************************************** "); 312 sc=new Scanner(System.in); 313 double a=sc.nextDouble(); 314 S.setSoftwarescore(a); 315 316 } 317 //全部输出成绩并寻求是否保存 318 public static void menu28() { 319 System.out.println("*********************************************************** " + 320 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 321 " 学生考试成绩录入 " + 322 "*********************************************************** " + 323 " 学生学号: " + S.getStunumber()+" "+ 324 " 学生姓名: " + S.getName()+" "+ 325 " 1、高等数学成绩: " + S.getMathematicsscore()+" "+ 326 " 2、大学英语成绩: " + S.getEnglishiscore()+" "+ 327 " 3、计算机网络成绩: " + S.getNetworkscore()+" "+ 328 " 4、数据库成绩: " + S.getDatabasescore()+" "+ 329 " 5、软件工程成绩: " + S.getSoftwarescore()+" "+ 330 " 该学生成绩已修改完毕,是否提交(Y/N) " + 331 "********************************************************** "); 332 } 333 334 //计算学生绩点输入学号 335 public static void menu31() { 336 System.out.println("*********************************************************** " + 337 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 338 " 学生考试成绩绩点计算界面 " + 339 "*********************************************************** " + 340 " 请输入学生学号: " + 341 "********************************************************** "); 342 } 343 //输出绩点 344 public static void menu32() { 345 double a=s.getS6(); 346 if(a>2||a==2) { 347 System.out.println("*********************************************************** " + 348 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 349 " 学生考试成绩绩点计算界面 " + 350 "*********************************************************** " + 351 " 学生学号: " + s.getId()+" "+ 352 " 学生姓名: " + s.getName()+" "+ 353 " 1、高等数学成绩绩点: " + s.getS1()+" "+ 354 " 2、大学英语成绩绩点: " + s.getS2()+" "+ 355 " 3、计算机网络成绩绩点: " + s.getS3()+" "+ 356 " 4、数据库成绩绩点: " + s.getS4()+" "+ 357 " 5、软件工程成绩绩点: " + s.getS5()+" "+ 358 " 你的平均学分绩点为: " + String.format("%.2f", s.getS6())+" "+ //输出保留两位小数 359 " 提示信息: " + "你的学分绩点已达到毕业要求!"+" "+ 360 " 是否返回系统主界面:(Y/N) " + 361 "********************************************************** "); 362 } 363 else { 364 System.out.println("*********************************************************** " + 365 " 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 " + 366 " 学生考试成绩绩点计算界面 " + 367 "*********************************************************** " + 368 " 学生学号: " + s.getId()+" "+ 369 " 学生姓名: " + s.getName()+" "+ 370 " 1、高等数学成绩绩点: " + s.getS1()+" "+ 371 " 2、大学英语成绩绩点: " + s.getS2()+" "+ 372 " 3、计算机网络成绩绩点: " + s.getS3()+" "+ 373 " 4、数据库成绩绩点: " + s.getS4()+" "+ 374 " 5、软件工程成绩绩点: " + s.getS5()+" "+ 375 " 你的平均学分绩点为: " + String.format("%.2f", s.getS6())+" "+ //输出保留两位小数 376 " 提示信息: " + "你的学分绩点不满足毕业要求!"+" "+ 377 " 是否返回系统主界面:(Y/N) " + 378 "********************************************************** "); 379 } 380 String f; 381 f=sc.next(); 382 String d=new String("Y"); 383 boolean k; 384 k=f.equals(d); 385 if(k) { 386 Menu(); 387 } 388 else { 389 System.out.println("无操作"); 390 } 391 392 } 393 //求绩点 394 public static double xf(double a) { 395 double x = 0; 396 if(a<60) { 397 x=0; 398 } 399 if(a==60||a>60&&a<63.9) { 400 x=1.0; 401 } 402 if(a==64||a>64&&a<65.9) { 403 x=1.5; 404 } 405 406 if(a==66||a>66&&a<67.9) { 407 x=1.7; 408 } 409 410 if(a==68||a>68&&a<71.9) { 411 x=2.0; 412 } 413 if(a==72||a>72&&a<74.9) { 414 x=2.3; 415 } 416 if(a==75||a>75&&a<77.9) { 417 x=2.7; 418 } 419 if(a==78||a>78&&a<81.9) { 420 x=3.0; 421 } 422 if(a==82||a>82&&a<84.9) { 423 x=3.3; 424 } 425 if(a==85||a>85&&a<89.9) { 426 x=3.7; 427 } 428 if(a==90||a>90) { 429 x=4.0; 430 } 431 return x; 432 } 433 /** 434 * 录入学生成绩 435 */ 436 public static void addinfo() { 437 System.out.println("录入学生成绩"); 438 String id= menu1(); 439 440 if(s1.getStunumber().compareTo(id)==0) { 441 S=s1; 442 } 443 if(s2.getStunumber().compareTo(id)==0) { 444 S=s2; 445 } 446 if(s3.getStunumber().compareTo(id)==0) { 447 S=s3; 448 } 449 if(s4.getStunumber().compareTo(id)==0) { 450 S=s4; 451 } 452 if(s5.getStunumber().compareTo(id)==0) { 453 S=s5; 454 } 455 double a1,a2,a3,a4,a5; 456 menu2(); 457 a1=sc.nextDouble(); 458 S.setMathematicsscore(a1); //添加成绩 459 menu3(); 460 a2=sc.nextDouble(); 461 S.setEnglishiscore(a2); 462 menu4(); 463 a3=sc.nextDouble(); 464 S.setNetworkscore(a3); 465 menu5(); 466 a4=sc.nextDouble(); 467 S.setDatabasescore(a4); 468 menu6(); 469 a5=sc.nextDouble(); 470 S.setSoftwarescore(a5); 471 menu7(); 472 String f; 473 f=sc.next(); 474 String d=new String("Y"); 475 boolean k; 476 k=f.equals(d); //判断 是否成绩录入 477 if(k) { 478 if(s1.getStunumber().compareTo(id)==0) { 479 s1=S; 480 } 481 if(s2.getStunumber().compareTo(id)==0) { 482 s2=S; 483 } 484 if(s3.getStunumber().compareTo(id)==0) { 485 s3=S; 486 } 487 if(s4.getStunumber().compareTo(id)==0) { 488 s4=S; 489 } 490 if(s5.getStunumber().compareTo(id)==0) { 491 s5=S; 492 } 493 Menu(); 494 }else { 495 Menu(); 496 } 497 } 498 /** 499 * 修改学生信息 500 */ 501 public static void updateinfo() { 502 System.out.println("学生成绩修改"); 503 String id=menu21(); //打印界面 504 if(s1.getStunumber().compareTo(id)==0) { 505 S=s1; 506 } 507 if(s2.getStunumber().compareTo(id)==0) { 508 S=s2; 509 } 510 if(s3.getStunumber().compareTo(id)==0) { 511 S=s3; 512 } 513 if(s4.getStunumber().compareTo(id)==0) { 514 S=s4; 515 } 516 if(s5.getStunumber().compareTo(id)==0) { 517 S=s5; 518 } 519 menu22(); 520 menu28(); 521 sc=new Scanner(System.in); 522 String f; 523 f=sc.next(); 524 String d=new String("Y"); //判断 是否成绩录入 525 boolean k; 526 k=f.equals(d); 527 if(k) { 528 if(s1.getStunumber().compareTo(id)==0) { 529 s1=S; 530 } 531 if(s2.getStunumber().compareTo(id)==0) { 532 s2=S; 533 } 534 if(s3.getStunumber().compareTo(id)==0) { 535 s3=S; 536 } 537 if(s4.getStunumber().compareTo(id)==0) { 538 s4=S; 539 } 540 if(s5.getStunumber().compareTo(id)==0) { 541 s5=S; 542 } 543 Menu(); 544 }else { 545 Menu(); 546 } 547 548 } 549 /** 550 * 计算学生绩点 551 */ 552 public static void mathinfo() { 553 System.out.println("计算学生成绩绩点 "); 554 menu31(); 555 sc=new Scanner(System.in); 556 String id=sc.next(); 557 if(s1.getStunumber().compareTo(id)==0) { //判断是否学号是s1 558 s.setId(s1.getStunumber()); 559 s.setName(s1.getName()); 560 double z1,z2,z3,z4,z5,z6; 561 z1=s1.getMathematicsscore(); 562 z2=s1.getEnglishiscore(); 563 z3=s1.getNetworkscore(); 564 z4=s1.getDatabasescore(); 565 z5=s1.getSoftwarescore(); 566 s.setS1(xf(z1)); 567 s.setS2(xf(z2)); 568 s.setS3(xf(z3)); 569 s.setS4(xf(z4)); 570 s.setS5(xf(z5)); 571 double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5(); 572 double b=16; 573 double c=a/b; 574 s.setS6(c); 575 } 576 if(s2.getStunumber().compareTo(id)==0) { //判断是否学号是s2 577 s.setId(s2.getStunumber()); 578 s.setName(s2.getName()); 579 double z1,z2,z3,z4,z5,z6; 580 z1=s2.getMathematicsscore(); 581 z2=s2.getEnglishiscore(); 582 z3=s2.getNetworkscore(); 583 z4=s2.getDatabasescore(); 584 z5=s2.getSoftwarescore(); 585 s.setS1(xf(z1)); 586 s.setS2(xf(z2)); 587 s.setS3(xf(z3)); 588 s.setS4(xf(z4)); 589 s.setS5(xf(z5)); 590 double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5(); 591 double b=16; 592 double c=a/b; 593 s.setS6(c); 594 } 595 if(s3.getStunumber().compareTo(id)==0) { //判断是否学号是s3 596 s.setId(s3.getStunumber()); 597 s.setName(s3.getName()); 598 double z1,z2,z3,z4,z5,z6; 599 z1=s3.getMathematicsscore(); 600 z2=s3.getEnglishiscore(); 601 z3=s3.getNetworkscore(); 602 z4=s3.getDatabasescore(); 603 z5=s3.getSoftwarescore(); 604 s.setS1(xf(z1)); 605 s.setS2(xf(z2)); 606 s.setS3(xf(z3)); 607 s.setS4(xf(z4)); 608 s.setS5(xf(z5)); 609 double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5(); 610 double b=16; 611 double c=a/b; 612 s.setS6(c); 613 } 614 if(s4.getStunumber().compareTo(id)==0) { //判断是否学号是s4 615 s.setId(s4.getStunumber()); 616 s.setName(s4.getName()); 617 double z1,z2,z3,z4,z5,z6; 618 z1=s4.getMathematicsscore(); 619 z2=s4.getEnglishiscore(); 620 z3=s4.getNetworkscore(); 621 z4=s4.getDatabasescore(); 622 z5=s4.getSoftwarescore(); 623 s.setS1(xf(z1)); 624 s.setS2(xf(z2)); 625 s.setS3(xf(z3)); 626 s.setS4(xf(z4)); 627 s.setS5(xf(z5)); 628 double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5(); 629 double b=16; 630 double c=a/b; 631 s.setS6(c); 632 } 633 if(s5.getStunumber().compareTo(id)==0) { //判断是否学号是s5 634 s.setId(s5.getStunumber()); 635 s.setName(s5.getName()); 636 double z1,z2,z3,z4,z5,z6; 637 z1=s5.getMathematicsscore(); 638 z2=s5.getEnglishiscore(); 639 z3=s5.getNetworkscore(); 640 z4=s5.getDatabasescore(); 641 z5=s5.getSoftwarescore(); 642 s.setS1(xf(z1)); 643 s.setS2(xf(z2)); 644 s.setS3(xf(z3)); 645 s.setS4(xf(z4)); 646 s.setS5(xf(z5)); 647 double a=4*s.getS1()+3*s.getS2()+4*s.getS3()+3*s.getS4()+2*s.getS5(); 648 double b=16; 649 double c=a/b; //四舍五入取值 650 s.setS6(c); 651 } 652 menu32(); 653 } 654 /** 655 * 主函数 调用 656 * @param args 657 */ 658 public static void main(String[] args) { 659 Menu(); 660 } 661 }
设计思路:
首先仔细研读题目要求,设置方法满足功能的实现。我第一步实现的是菜单的实现,因为使用的是dos系统,页面不能更新,只能多次更新,所以菜单的实现使用了很多的方法来实现,其次对于是否保存的判断,需要进行判断,我使用的是匹配是否与要求相同,然会返回一个foolean类型数值,依据此数值进行操作。
学生成绩的录入:首先设置菜单的输出,依次录入成绩,并暂时保存,等到录入结束的时候,再根据用户自己判定是否需要保存录入的成绩。
学生成绩的修改:输出菜单,然后选择需要修改的成绩的科目,修改成绩,判断是否保存成绩。
学生学分的计算:输出菜单,选择需要计算学分的同学,输入学号,然后自动输出各科绩点,和平均绩点(保留小数点后两位)。 判读学分绩点需要设计方法来计算每科的成绩,平均成绩也必须寻找方法来判断。
测试截图如下: