第 1 页 共 8 页
石家庄铁道大学 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 分。变量 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、退出学籍管理系统
**********************************************************
第 2 页 共 8 页②功能说明
输入数字 1-4 执行相应的功能,输入其他数字提示错误信息(该选项
不存在),并返回主界面。(0.5 分)
2、成绩录入功能操作流程:(3 分)
①在主界面选择成绩录入功能后,进入成绩录入界面,如下图所示:(0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。
②用户输入学号后,显示用户学号和姓名,如果用户学号不存在或信息错
误提示错误信息(该学号不存在),并返回成绩录入界面。(0.5 分)
③用户输入学号正确如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入高等数学成绩:XXX
**********************************************************
提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学
英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当
第 3 页 共 8 页用户录完所有成绩后,显示如下界面。(1.5 分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
高等数学成绩:XXX
大学英语成绩:XXX
计算机网络成绩:XXX
数据库成绩:XXX
软件工程成绩:XXX
该学生成绩已录入完毕,是否提交(Y/N)
**********************************************************
选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”,
则忽略上述成绩录入,并返回成绩录入界面。(0.5 分)
3、成绩修改功能操作流程:(2 分)
①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示:
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩修改界面
***********************************************************
请输入学生学号:XXXXXXXX
**********************************************************
提示用户输入八位的学号。(0.5 分)
第 4 页 共 8 页②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩:XXX
2、大学英语成绩:XXX
3、计算机网络成绩:XXX
4、数据库成绩:XXX
5、软件工程成绩:XXX
**********************************************************
如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回
成绩修改界面。(0.5 分)
③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。(0.5
分)
***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
请输入修改后软件工程成绩:XXX
**********************************************************
录入修改后的成绩,则进入下一步。
第 5 页 共 8 页***********************************************************
石家庄铁道大学软件工程系学生学籍管理系统 2019 版
学生考试成绩录入
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
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 版
学生考试成绩绩点计算界面
***********************************************************
学生学号:20183557
学生姓名:杨雄豪
1、高等数学成绩绩点:XXX
2、大学英语成绩绩点:XXX
3、计算机网络成绩绩点:XXX
4、数据库成绩绩点:XXX
5、软件工程成绩绩点:XXX
你的平均学分绩点为:XXX
提示信息:XXX XXX XXX XXX XXX XXX XXX
是否返回系统主界面:(Y/N)
**********************************************************
如果学分绩点大于等于 2,提示信息显示“你的学分绩点已达到毕业要
求!”;
如果学分绩点小于 2,提示信息显示“你的学分绩点不满足毕业要求!”
第 7 页 共 8 页第 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 版
制作人:考生姓名
***********************************************************
//信1805-1 肖凯 20183582 package Scoreinformationx; public class Scoreinformation { private String stunumber; private String name; private double mathematicsscore; private double englishiscore; private double networkscore; private double databasescore; private double softwarescore; public String getstunumber() { return stunumber; } public void setstunumber(String stunumber) { this.stunumber = stunumber; } public String getname() { return name; } public void setname(String name) { this.name = name; } public double getmathematicsscore() { return mathematicsscore; } public void setmathematicsscore(double mathematicsscore) { this.mathematicsscore = mathematicsscore; } public double getenglishiscore() { return englishiscore; } public void setenglishiscore(double englishiscore) { this.englishiscore = englishiscore; } public double getnetworkscore() { return networkscore; } public void setnetworkscore(double networkscore) { this.networkscore = networkscore; } public double getdatabasescore() { return databasescore; } public void setdatabasescore(double databasescore) { this.databasescore = databasescore; } public double getsoftwarescore() { return softwarescore; } public void setsoftwarescore(double softwarescore) { this.softwarescore = softwarescore; } Scoreinformation(String stunumber,String name,double mathematicsscore,double englishiscore,double networkscore,double databasescore,double softwarescore) { this.stunumber = stunumber; this.name = name; this.mathematicsscore = mathematicsscore; this.englishiscore = englishiscore; this.networkscore = networkscore; this.databasescore = databasescore; this.softwarescore = softwarescore; } } package Scoreinformationx; import java.util.Scanner; public class Scoreinformations { static Scoreinformation score1 = new Scoreinformation("20183579","张三",0,0,0,0,0); static Scoreinformation score2 = new Scoreinformation("20183580","李四",0,0,0,0,0); static Scoreinformation score3 = new Scoreinformation("20183581","王五",0,0,0,0,0); static Scoreinformation score4 = new Scoreinformation("20183582","张六",0,0,0,0,0); static Scoreinformation score5 = new Scoreinformation("20183583","陈七",0,0,0,0,0); static Scanner sca=new Scanner(System.in); public static void menu() { 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("****************************************************************"); System.out.println("在1,2,3,4中选择输出:"); } public static void menu1() { int n=0;while(n!=4) { menu(); n=sca.nextInt(); if(n==1)luru(); else if(n==2)xiugai(); else if(n==3)jisuan(); else if(n==4); else System.out.println("该选项不存在"); } System.out.println("***********************************************************"); System.out.println("谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 "); System.out.println(" 制作人:肖凯 "); System.out.println("*********************************************************** "); } public static void shuruxuehao1() {//表示选完1的下一步 System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入 " ); System.out.println ("**************************************************************** "); System.out.println(" 请输入学生学号: " ); System.out.println("****************************************************************"); } public static void chengji(Scoreinformation s) {//录入书友科目的成绩 System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("请输入高数成绩: " ); int g1=sca.nextInt(); System.out.println("请输入大学英语成绩: " ); int g2=sca.nextInt(); System.out.println("请输入计算机网络成绩: " ); int g3=sca.nextInt(); System.out.println("请输入数据库成绩: " ); int g4=sca.nextInt(); System.out.println("请输入软件工程成绩: " ); int g5=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+g1); System.out.println("大学英语成绩: "+g2); System.out.println("计算机网络成绩: "+g3); System.out.println("数据库成绩: "+g4); System.out.println("软件工程成绩: "+g5); System.out.println("该学生成绩已录入完毕,是否提交(Y/N"); String z=sca.next(); char x=z.charAt(0); if(x=='Y') { s.setmathematicsscore(g1); s.setenglishiscore(g2); s.setnetworkscore(g3); s.setdatabasescore(g4); s.setsoftwarescore(g5); } else luru(); } public static void luru() {//录入成绩 boolean flag=true; while(flag) { shuruxuehao1(); String xuehao=sca.next(); if(xuehao.equals(score1.getstunumber())) { chengji(score1); flag=false; } else if(xuehao.equals(score2.getstunumber())) { chengji(score2); flag=false; } else if(xuehao.equals(score3.getstunumber())) { chengji(score3); flag=false; } else if(xuehao.equals(score4.getstunumber())) { chengji(score4); flag=false; } else if(xuehao.equals(score5.getstunumber())) { chengji(score5); flag=false; } else System.out.println("该学号不存在"); } } public static void shuruxuehao2() { System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入 " ); System.out.println ("**************************************************************** "); System.out.println(" 请输入学生学号: " ); System.out.println("****************************************************************"); } public static void chengji2(Scoreinformation s) { System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+s.getmathematicsscore()); System.out.println("大学英语成绩: "+s.getenglishiscore()); System.out.println("计算机网络成绩: "+s.getnetworkscore()); System.out.println("数据库成绩: "+s.getdatabasescore()); System.out.println("软件工程成绩: "+s.getsoftwarescore()); System.out.println("请选择修改内容:"); int g=sca.nextInt(); double p; String l; char a; switch(g) { case 1: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("请输入修改后的高数成绩:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试录入 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+p); System.out.println("大学英语成绩: "+s.getenglishiscore()); System.out.println("计算机网络成绩: "+s.getnetworkscore()); System.out.println("数据库成绩: "+s.getdatabasescore()); System.out.println("软件工程成绩: "+s.getsoftwarescore()); System.out.println("该学生成绩已修改完毕,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setmathematicsscore(p); break; case 2: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("请输入修改后的大学成绩:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试录入 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+s.getmathematicsscore()); System.out.println("大学英语成绩: "+p); System.out.println("计算机网络成绩: "+s.getnetworkscore()); System.out.println("数据库成绩: "+s.getdatabasescore()); System.out.println("软件工程成绩: "+s.getsoftwarescore()); System.out.println("该学生成绩已修改完毕,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setenglishiscore(p); break; case 3: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("请输入修改后的计算机成绩:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试录入 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+s.getenglishiscore()); System.out.println("大学英语成绩: "+s.getenglishiscore()); System.out.println("计算机网络成绩: "+p); System.out.println("数据库成绩: "+s.getdatabasescore()); System.out.println("软件工程成绩: "+s.getsoftwarescore()); System.out.println("该学生成绩已修改完毕,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setnetworkscore(p); break; case 4: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("请输入修改后的数据库成绩:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试录入 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+s.getenglishiscore()); System.out.println("大学英语成绩: "+s.getenglishiscore()); System.out.println("计算机网络成绩: "+s.getnetworkscore()); System.out.println("数据库成绩: "+p); System.out.println("软件工程成绩: "+s.getsoftwarescore()); System.out.println("该学生成绩已修改完毕,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setdatabasescore(p); break; case 5: System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("请输入修改后的软工成绩:"); p=sca.nextInt(); System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试录入 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+s.getenglishiscore()); System.out.println("大学英语成绩: "+s.getenglishiscore()); System.out.println("计算机网络成绩: "+s.getnetworkscore()); System.out.println("数据库成绩: "+s.getdatabasescore()); System.out.println("软件工程成绩: "+p); System.out.println("该学生成绩已修改完毕,是否提交(Y/N)"); System.out.println("****************************************************************"); l=sca.next(); a=l.charAt(0); if(a=='Y') s.setsoftwarescore(p); break; } } public static void xiugai() {//修改成绩 boolean flag=true; while(flag) { shuruxuehao2(); String g=sca.next(); if(g.equals(score1.getstunumber())) { chengji2(score1); flag=false; } if(g.equals(score2.getstunumber())) { chengji2(score2); flag=false; } else if(g.equals(score3.getstunumber())) { chengji2(score3); flag=false; } else if(g.equals(score4.getstunumber())) { chengji2(score4); flag=false; } else if(g.equals(score5.getstunumber())) { chengji2(score5); flag=false; } else System.out.println("该学号不存在"); } } public static void shuruxuehao3() { System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩录入 " ); System.out.println ("**************************************************************** "); System.out.println(" 请输入学生学号: " ); System.out.println("****************************************************************"); } public static void chengji3(Scoreinformation s) { double [] k=new double [5]; k[0]=s.getmathematicsscore(); k[1]=s.getenglishiscore(); k[2]=s.getnetworkscore(); k[3]=s.getdatabasescore(); k[4]=s.getsoftwarescore();//存入5课的成绩 double [] jidian=new double[5]; double []xuefen= {4,3,4,3,2}; double sum=0; for(int i=0;i<k.length;i++) { if(k[i]>=90) jidian[i]=4.0; else if(k[i]>=85&&k[i]<90) jidian[i]=3.7; else if(k[i]>=82&&k[i]<85) jidian[i]=3.3; else if(k[i]>=78&&k[i]<82) jidian[i]=3.0; else if(k[i]>=75&&k[i]<78) jidian[i]=2.7; else if(k[i]>=72&&k[i]<75) jidian[i]=2.3; else if(k[i]>=68&&k[i]<72) jidian[i]=2.0; else if(k[i]>=66&&k[i]<68) jidian[i]=1.7; else if(k[i]>=64&&k[i]<66) jidian[i]=1.5; else if(k[i]>=60&&k[i]<64) jidian[i]=1.0; sum+=jidian[i]*xuefen[i]; } sum=sum/16; boolean flag=true; if(sum<2) flag=false; System.out.println("*************************************************************** ") ; System.out.println (" 石家庄铁道大学软件工程系 "); System.out.println(" 学生考试成绩绩点计算界面 " ); System.out.println ("**************************************************************** "); System.out.println("学生学号: "+s.getstunumber() ); System.out.println("学生姓名: " +s.getname()); System.out.println("高数成绩: "+jidian[0]); System.out.println("大学英语成绩: "+jidian[1]); System.out.println("计算机网络成绩: "+jidian[2]); System.out.println("数据库成绩: "+jidian[3]); System.out.println("软件工程成绩: "+jidian[4]); System.out.println(String.format("%0.2f", sum)); if(flag) System.out.println("提示信息:你的学分绩点已达到毕业要求!"); else System.out.println("你的学分绩点不满足毕业要求!"); System.out.println("是否返回系统主界面:(Y/N)"); String a; char c='2'; while(c!='Y') { a=sca.next(); c=a.charAt(0); } } public static void jisuan() { boolean flag =true; while(flag) { shuruxuehao3(); String k=sca.next(); if(k.equals(score2.getstunumber())) { chengji3(score2); flag=false; } if(k.equals(score2.getstunumber())) { chengji3(score2); flag=false; } if(k.equals(score3.getstunumber())) { chengji3(score3); flag=false; } if(k.equals(score4.getstunumber())) { chengji3(score4); flag=false; } if(k.equals(score5.getstunumber())) { chengji3(score5); flag=false; } else System.out.println("该学号不存在"); } } public static void main(String[] args) { menu1(); } }