石家庄铁道大学 2019 年秋季 2018 级课堂测试试卷(一)(15 分)
课程名称: JAVA 语言程序设计 任课教师: 王建民 考试时间: 150 分钟
一、考试要求:
1、按照测试内容要求完成程序的设计与编程;
2、建立学号姓名文件夹,如:“信 1805-1 班 20183557 杨雄豪”,将
源程序文件、accountinformation.txt、accountlist.txt 保存在文件
夹中,压缩成 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 分。
第 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 版
制作人:考生姓名
***********************************************************
//张华锦 20183631 信1805-2
//ScoreInformation类
package java考试;
public class ScoreInformation {
private String stunumber;
private String name;
private Double mathematicsscore;
private Double englishiscore;
private Double networkscore;
private Double databasescore;
private Double softwarescore;
ScoreInformation ()
{
stunumber="";//学号
name="";//姓名
mathematicsscore =0.0;//高数成绩
englishiscore =0.0; //大学英语成绩
networkscore =0.0;//计算机网络成绩
databasescore=0.0;//数据库成绩
softwarescore=0.0;//软件工程成绩
}
/* ScoreInformation (String a,String b,Double c,Double d,Double e,Double f,Double g)
{
stunumber=a;
name=b;
mathematicsscore=c;
englishiscore=d;
networkscore=e;
databasescore=f;
softwarescore=g;
}*/
public void set_stunumber(String stunumber)
{
this.stunumber=stunumber;
}
public void set_name(String name)
{
this.name=name;
}
public void set_mathematicsscore(Double mathematicsscore)
{
this.mathematicsscore=mathematicsscore;
}
public void set_englishiscore(Double englishiscore)
{
this.englishiscore=englishiscore;
}
public void set_networkscore(Double networkscore)
{
this.networkscore=networkscore;
}
public void set_databasescore(Double databasescore)
{
this.databasescore=databasescore;
}
public void set_softwarescore(Double softwarescore)
{
this.softwarescore=softwarescore;
}
public String get_stunumber()
{
return stunumber;
}
public String get_name()
{
return name;
}
public Double get_mathematicsscore()
{
return mathematicsscore;
}
public Double get_englishiscore()
{
return englishiscore;
}
public Double get_networkscore()
{
return networkscore;
}
public Double get_databasescore()
{
return databasescore;
}
public Double get_softwarescore()
{
return softwarescore;
}
}
//张华锦 20183631 信1805-2
//Scoremanagement类
package java考试;
import java.util.Scanner;
public class ScoreManagement {
private static ScoreInformation[] A=new ScoreInformation[5];
public static void main(String[] args) {
for(int i=0;i<5;i++)
{
A[i]=new ScoreInformation();
}
A[0].set_stunumber("20183631");A[0].set_name("张华锦");
A[1].set_stunumber("20183630");A[1].set_name("丁贺雄");
A[2].set_stunumber("20183629");A[2].set_name("苗可卓");
A[3].set_stunumber("20183628");A[3].set_name("做下");
A[4].set_stunumber("20183627");A[4].set_name("自行车");
Scanner input=new Scanner(System.in);
int select=1;
for(;;)
{
shouye();
do
{
select=input.nextInt();
} while(select<1||select>4);
switch(select)
{
case 1:scorein();break;
case 2:scorechange();break;
case 3:jisuan();break;
case 4:back();break;
default:System.out.println("该选项不存在!");
}if(select==4) break;
}
}
//录入成绩
private static void scorein()
{
String a,b;Double c,d,e,f,g;
int flag=0;
Scanner input=new Scanner(System.in);
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩录入 ");
System.out.println("***********************************************************");
System.out.println(" 请输入学生学号: ");
a=input.next();
System.out.println("***********************************************************");
for(int i=0;i<5;i++)
{
if(A[i].get_stunumber().equals(a))
{
String t;
do
{
jiemian(A[i]);
System.out.println("请输入高数成绩:");
c=input.nextDouble();A[i].set_mathematicsscore(c);
jiemian(A[i]);System.out.println("请输入大学英语成绩");
d=input.nextDouble();A[i].set_englishiscore(d);
jiemian(A[i]);System.out.println("请输入计算机网络成绩");
e=input.nextDouble();A[i].set_networkscore(e);
jiemian(A[i]);System.out.println("请输入数据库成绩");
f=input.nextDouble();A[i].set_databasescore(f);
jiemian(A[i]);System.out.println("请输入软件工程成绩");
g=input.nextDouble();A[i].set_softwarescore(g);
jiemian(A[i]);
System.out.println("该学生成绩已录入完毕,是否提交(Y/N) ");
t=input.next();
System.out.println("********************************************************** ");
}while(t.equals("N"));
flag=1;break;
}
}
if(flag==0)
{
System.out.println("找不到该名学生。");
}
}
//修改成绩
private static void scorechange()
{
boolean bool=false;
do
{
String a,b;
Scanner sca=new Scanner(System.in);
xiugai1();
b=sca.next();
for(int i=0;i<5;i++)
{
a=A[i].get_stunumber();
if(a.equals(b))
{
String str;
do
{
int x=0;
xiugai2(A[i]);
x=sca.nextInt();
xiugai3(A[i], x);
str=sca.next();
}while(str.equals("N"));
bool=true;
break;
}
}
if(bool==false)
{
System.out.println("找不到该名学生。");
}
}while(bool==false);
}
//计算绩点
private static void jisuan()
{
Scanner sca=new Scanner(System.in);
boolean bool=false;
do
{
String a,b;
jidian1();
b=sca.next();
for(int i=0;i<5;i++)
{
a=A[i].get_stunumber();
if(a.equals(b))
{
String str;
do
{
jidian2(A[i]);
str=sca.next();
}while(str.equals("N"));
bool=true;
break;
}
}
if(bool==false)
{
System.out.println("找不到该名学生。");
}
}while(bool==false);
}
private static double jidian(double c)
{
double c1=0;
if(c>=75)
{
if(c<90)
{
if(c<82)
{
if(c<78)
{
c1=2.7;
}
else
{
c1=3;
}
}
else
{
if(c<85)
{
c1=3.3;
}
else
{
c1=3.7;
}
}
}
else
{
c1=4;
}
}
else
{
if(c<66)
{
if(c<60)
{
c1=0;
}
else
{
if(c<64)
{
c1=1;
}
else
{
c1=1.5;
}
}
}
else
{
if(c<68)
{
c1=1.7;
}
else
{
if(c<72)
{
c1=2;
}
else
{
c1=2.3;
}
}
}
}
return c1;
} public static void xiugai1()
{
xiugai();
System.out.print("请输入学生学号: ");
}
public static void xiugai2(ScoreInformation S)
{
xiugai();
System.out.println(" 学生学号:"+S.get_stunumber());
System.out.println(" 学生姓名:"+S.get_name());
System.out.println(" 1 、高数成绩:"+S.get_mathematicsscore());
System.out.println(" 2、大学英语成绩:"+S.get_englishiscore());
System.out.println(" 3、 计算机网络成绩:"+S.get_networkscore());
System.out.println(" 4、 数据库成绩:"+S.get_databasescore());
System.out.println(" 5、 软件工程成绩:"+S.get_softwarescore());
System.out.println("***********************************************************");
System.out.print("请输入需要修改的成绩序号:");
}
public static void jidian1()
{
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("***********************************************************");
System.out.print(" 请输入学生学号:");
}
public static void jidian2(ScoreInformation S)
{
double c1,d1,e1,f1,g1,p;
c1=jidian(S.get_mathematicsscore());
d1=jidian(S.get_englishiscore());
e1=jidian(S.get_networkscore());
f1=jidian(S.get_databasescore());
g1=jidian(S.get_softwarescore());
p=(c1*4+d1*3+e1*4+f1*3+g1*2)/16;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("***********************************************************");
System.out.println(" 学生学号:"+S.get_stunumber());
System.out.println(" 学生姓名:"+S.get_name());
System.out.println(" 1 、高数成绩绩点:"+c1);
System.out.println(" 2、大学英语成绩绩点:"+d1);
System.out.println(" 3、 计算机网络成绩绩点:"+e1);
System.out.println(" 4、 数据库成绩绩点:"+f1);
System.out.println(" 5、 软件工程成绩绩点:"+g1);
System.out.print(" 你的平均学分绩点为:");
System.out.printf("%.2f",p);
System.out.println();
if(p>2)
{
System.out.println(" 提示信息:你的学分绩点已达到毕业要求!");
}
else
{
System.out.println(" 提示信息:你的学分绩点不满足毕业要求!");
}
System.out.print(" 是否返回系统主界面:(Y/N)");
System.out.println("***********************************************************");
}
public static void xiugai3(ScoreInformation S,int x)
{
Scanner sca=new Scanner(System.in);
double c1;
xiugai();
if(x==1)
{
System.out.println(" 学生学号:"+S.get_stunumber());
System.out.println(" 学生姓名:"+S.get_name());
System.out.println("请输入修改后的高数成绩:");
c1=sca.nextDouble();
S.set_mathematicsscore(c1);
}
if(x==2)
{System.out.println(" 学生学号:"+S.get_stunumber());
System.out.println(" 学生姓名:"+S.get_name());
System.out.println("请输入修改后的大学英语成绩:");
c1=sca.nextDouble();
S.set_englishiscore(c1); System.out.println("***********************************************************");
}
if(x==3)
{System.out.println("学生学号:"+S.get_stunumber());
System.out.println("学生姓名:"+S.get_name());
System.out.print("请输入修改后的计算机网络成绩:");
c1=sca.nextDouble();
S.set_networkscore(c1); System.out.println("***********************************************************");
}
if(x==4)
{System.out.println("学生学号:"+S.get_stunumber());
System.out.println("学生姓名:"+S.get_name());
System.out.println("请输入修改后的数据库成绩:");
c1=sca.nextDouble();
S.set_databasescore(c1); System.out.println("***********************************************************");
}
if(x==5)
{System.out.println("学生学号:"+S.get_stunumber());
System.out.println("学生姓名:"+S.get_name());
System.out.println("请输入修改后的软件工程成绩:");
c1=sca.nextDouble();
S.set_softwarescore(c1);System.out.println("***********************************************************");
}
xiugai();
System.out.println(" 学生学号:"+S.get_stunumber());
System.out.println(" 学生姓名:"+S.get_name());
System.out.println(" 1 、高数成绩:"+S.get_mathematicsscore());
System.out.println(" 2、大学英语成绩:"+S.get_englishiscore());
System.out.println(" 3、 计算机网络成绩:"+S.get_networkscore());
System.out.println(" 4、 数据库成绩:"+S.get_databasescore());
System.out.println(" 5、 软件工程成绩:"+S.get_softwarescore());
System.out.println("***********************************************************");
System.out.println(" 该学生成绩已修改完毕,是否提交(Y/N)");
System.out.println("********************************************************** ");
}
private static void xiugai()
{
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println("学生考试成绩录入界面 ");
System.out.println("***********************************************************");
}
private static void jiemian(ScoreInformation q)
{
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println("学生考试成绩录入界面 ");
System.out.println("*********************************************************** ");
System.out.println("学生学号:"+q.get_stunumber());
System.out.println("学生姓名:"+q.get_name());
if(q.get_mathematicsscore()!=0.0)
{
System.out.println("高等数学成绩:"+q.get_mathematicsscore());
}
if(q.get_englishiscore()!=0.0)
{System.out.println("大学英语成绩:"+q.get_englishiscore());
}
if(q.get_softwarescore()!=0.0)
{
System.out.println("软件工程成绩:"+q.get_softwarescore());
}
if(q.get_databasescore()!=0.0)
{
System.out.println("数据库成绩:"+q.get_databasescore());
}
if(q.get_networkscore()!=0)
{
System.out.println("计算机网络成绩:"+q.get_networkscore());
}
}
private static void back()
{
System.out.println("***********************************************************");
System.out.println("谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
System.out.println(" 制作人:张华锦");
System.out.println("***********************************************************");
}
private static void shouye()
{
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系 ");
System.out.println(" 学生学籍管理系统 2019 版 ");
System.out.println("***********************************************************");
System.out.println(" 1、 学生考试成绩录入 ");
System.out.println(" 2、 学生考试成绩修改 ");
System.out.println(" 3、 计算学生成绩绩点");
System.out.println(" 4、退出学籍管理系统 ");
System.out.println("***********************************************************");
}
}