Java开课的第一次测试(挑战)

      假期软工留的预习Java作业,说实话看Java视频的发现好多和C++相似,看《尚学堂》视频就也看了100集左右就结束了。周一下午测的时候还是有一些慌,遗憾的是最后没有做完,还差一项。下次继续努力把。

 

  思路:最先开始还是觉得挺简单的,实际操作起来有些难度,最新卡壳的地方在只有输入成绩才能显示,比如你输数学,它只显示数学,然后输英语,再把数学和英语一块输出来。再这费了好长时间,一开是一个一个输,最后换了方法,用if和for循环来输入(详细的看代码),还有麻烦的是各种界面,不过老师上课点了一下,可以构造一些界面函数,到时候再输入的时候就可以之间调用函数,不用一一重复输入。还有再结束while循环的时候,用int定义的x,不能将输入的n赋值给x,这我搞不懂,但是最后我把x改成static int x,就可以了。总体来说,这次测试难度适中,时间没有把握好,稍微欠火。下面看代码

这是ScoreInformation类


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 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;
}
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;
}
public void show() {
System.out.print("学生学号:");
System.out.println(stunumber);
System.out.print("学生姓名:");
System.out.println(name);
System.out.print("1、高等数学成绩");
System.out.println(mathematicsscore);
System.out.print("2、大学英语成绩:");
System.out.println(englishiscore);
System.out.print("3、计算机网络成绩:");
System.out.println(networkscore);
System.out.print("4、数据库成绩:");
System.out.println(databasescore);
System.out.print("5、软件工程成绩:");
System.out.println(softwarescore);
}
}

这是ScoreManagement类

import java.util.Scanner;
public class ScoreManagement {
static int x=0; //结束while循环
double b[]=new double[6];//用来存放绩点数
ScoreInformation stu[]=new ScoreInformation[5];
// 建立5个学生信息
public void setStudent() {
stu[0]=new ScoreInformation("20183546","杨晓",0,0,0,0,0);
stu[1]=new ScoreInformation("20183547","杨",0,0,0,0,0);
stu[2]=new ScoreInformation("20183548","张",0,0,0,0,0);
stu[3]=new ScoreInformation("20183549","王",0,0,0,0,0);
stu[4]=new ScoreInformation("20183550","谷",0,0,0,0,0);
}
Scanner scanner=new Scanner(System.in);
// 打印系统主界面
public void show() {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系 ");
System.out.println(" 学生学籍管理系统 2019 版");
System.out.println(" 1、 学生考试成绩录入");
System.out.println(" 2、 学生考试成绩修改");
System.out.println(" 3、 计算学生成绩绩点");
System.out.println(" 4、退出学籍管理系统");
System.out.println("***********************************************************");
}
// 打印退出学籍管理系统界面
public void breakSM() {
System.out.println("***********************************************************");
System.out.println(" 谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 制作人:杨晓");
System.out.println("***********************************************************");
}
//学生考试成绩录入
public void setScore() {
show1();
String num=scanner.next();
int a=0; //检测是否存在正确学号
for(int i=0;i<5;i++) {
if(num.equals(stu[i].getStunumber())) {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("***********************************************************");
System.out.print(" 学生学号:");
System.out.println(stu[i].getStunumber());
System.out.print(" 学生姓名:");
System.out.println(stu[i].getName());
System.out.println(" 请输入高数成绩:");
System.out.println("***********************************************************");
for(int j=1;j<=5;j++) {
if(j==1) {
double maths=scanner.nextDouble();
stu[i].setMathematicsscore(maths);
}
if(j==2) {
System.out.println(" 请输入英语成绩:");
double englishs=scanner.nextDouble();
stu[i].setEnglishiscore(englishs);
}
if(j==3) {
System.out.println(" 计算机网络成绩:");
double networks=scanner.nextDouble();
stu[i].setNetworkscore(networks);
}
if(j==4) {
System.out.println(" 数据库成绩:");
double databases=scanner.nextDouble();
stu[i].setDatabasescore(databases);
}
if(j==5) {
System.out.println(" 软件工程成绩:");
double softwares=scanner.nextDouble();
stu[i].setSoftwarescore(softwares);
}
if(j>0) {
System.out.print("高等数学成绩");
System.out.println(stu[i].getMathematicsscore());
}
if(j>1) {
System.out.print("大学英语成绩:");
System.out.println(stu[i].getEnglishiscore());
}
if(j>2) {
System.out.print("计算机网络成绩:");
System.out.println(stu[i].getNetworkscore());
}
if(j>3) {
System.out.print("数据库成绩:");
System.out.println(stu[i].getDatabasescore());
}
if(j>4) {
System.out.print("软件工程成绩:");
System.out.println(stu[i]. getSoftwarescore());
}
}
System.out.println("该学生成绩已录入完毕,是否提交(Y/N)");
String s=scanner.next();
if(s.equals("Y")) {
show();
break;
}
if(s.equals("N")) {
stu[i].setDatabasescore(0);
stu[i].setEnglishiscore(0);
stu[i].setMathematicsscore(0);
stu[i].setNetworkscore(0);
stu[i].setSoftwarescore(0);
setScore();
break;
}
}
else a++;
}
if(a==5) {
System.out.println("该学号不存在");
setScore();
}
}
// 打印学生成绩和学生信息录入界面
public void show1(int i,int num1) {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("***********************************************************");
System.out.print(" 学生学号:");
System.out.println(stu[i].getStunumber());
System.out.print(" 学生姓名:");
System.out.println(stu[i].getName());
}
// 科目成绩修改
public double changeSubject(int i,int num1) {
double temp = 0;
show1(i,num1);
if(num1==1) {
temp=stu[i].getMathematicsscore();
System.out.println(" 请输入修改后的高等数学成绩:");
double math1=scanner.nextDouble();
stu[i].setMathematicsscore(math1);
}
if(num1==2){
temp=stu[i].getEnglishiscore();
System.out.println(" 请输入修改后的大学英语成绩:");
double e1=scanner.nextDouble();
stu[i].setEnglishiscore(e1);
}
if(num1==3) {
temp=stu[i].getNetworkscore();
System.out.println(" 请输入修改后的计算机网络成绩:");
double w1=scanner.nextDouble();
stu[i].setNetworkscore(w1);

}
if(num1==4) {
temp=stu[i].getDatabasescore();
System.out.println(" 请输入修改后的数据库成绩:");
double d1=scanner.nextDouble();
stu[i].setDatabasescore(d1);
}
if(num1==5) {
temp=stu[i].getSoftwarescore();
System.out.println(" 请输入修改后的软件工程成绩:");
double s1=scanner.nextDouble();
stu[i].setSoftwarescore(s1);
}
stu[i].show();
return temp;
}
//打印学生成绩录入界面
public void show1() {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("***********************************************************");
System.out.println(" 请输入学生学号: 学生学号为8位");
System.out.println("***********************************************************");
}
//打印学生学号界面
public void show2() {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩修改界面 ");
System.out.println("***********************************************************");
System.out.println(" 请输入学生学号: 学生学号为8位");
System.out.println("***********************************************************");
}
//打印学生绩点计算界面
public void show3() {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("***********************************************************");
System.out.println(" 请输入学生学号: 学生学号为8位");
System.out.println("***********************************************************");
}
//学生成绩修改
public void change() {
show2();
String num=scanner.next();
int a=0;
for(int i=0;i<5;i++) {
if(num.equals(stu[i].getStunumber())) {
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩录入界面 ");
System.out.println("***********************************************************");
stu[i].show();
System.out.print("请输入你选择的项目序号:");
int num1=scanner.nextInt();
double temp=changeSubject(i,num1);
System.out.println("该学生成绩已修改完成,是否提交(Y/N)");
String s=scanner.next();
if(s.equals("Y")) {
show();
break;
}
if(s.equals("N")) {
if(num1==1) {
stu[i].setMathematicsscore(temp);
}
if(num1==2) {
stu[i].setEnglishiscore(temp);
}
if(num1==3) {
stu[i].setNetworkscore(temp);
}
if(num1==4) {
stu[i].setDatabasescore(temp);
}
if(num1==5) {
stu[i].setSoftwarescore(temp);
}
change();
}
}
else a++;
}
if(a==5) {
System.out.println("不存在该学号");
change();
}
}
//计算学科成绩绩点
public double calculateSubjectPoint(double score) {
double JD=0.0;
if(score>=90) {
JD=4.0;
}
else if(score>=85) {
JD=3.7;
}
else if(score>=82) {
JD=3.3;
}
else if(score>=78) {
JD=3.0;
}
else if(score>=75) {
JD=2.7;
}
else if(score>=72) {
JD=2.3;
}
else if(score>=68) {
JD=2.0;
}
else if(score>=66) {
JD=1.7;
}
else if(score>=64) {
JD=1.5;
}
else if(score>=60) {
JD=1.0;
}
else JD=0;
return JD;
}
// 计算学生绩点函数
public void calculatePoint() {
show3();
int a=0;
String num=scanner.next();
for(int i=0;i<5;i++) {
if(num.equals(stu[i].getStunumber())){
b[0]=calculateSubjectPoint(stu[i].getMathematicsscore());
b[1]=calculateSubjectPoint(stu[i].getEnglishiscore());
b[2]=calculateSubjectPoint(stu[i].getNetworkscore());
b[3]=calculateSubjectPoint(stu[i].getDatabasescore());
b[4]=calculateSubjectPoint(stu[i].getSoftwarescore());
b[5]=(b[0]*4+b[1]*3+b[2]*4+b[3]*3+b[4]*2)/16;
System.out.println("***********************************************************");
System.out.println(" 石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
System.out.println(" 学生考试成绩绩点计算界面 ");
System.out.println("***********************************************************");
System.out.print(" 学生学号:");
System.out.println(stu[i].getStunumber());
System.out.print(" 学生姓名:");
System.out.println(stu[i].getName());
System.out.print(" 1、高等数学成绩绩点:");
System.out.println(b[0]);
System.out.print(" 2、大学英语成绩绩点:");
System.out.println(b[1]);
System.out.print(" 3、计算机网络成绩绩点:");
System.out.println(b[2]);
System.out.print(" 4、数据库成绩绩点:");
System.out.println(b[3]);
System.out.print(" 5、软件工程成绩绩点:");
System.out.println(b[4]);
System.out.print(" 你的平均学分绩点为:");
System.out.println((String.format("%.2f", b[5])));
if(b[5]>=2) {
System.out.print(" 你的学分绩点已达到毕业要求!");
}else
System.out.println(" 提示信息:你的学分绩点不满足毕业要求!");
System.out.println("是否返回系统主界面:(Y/N)");
String s=scanner.next();
if(s.equals("Y")) {
show();
break;
}
if(s.equals("N")) {
calculatePoint();
}
}
else a++;
}
if(a==5) {
System.out.println("不存在该学号");
calculatePoint();
}
}
public static void main(String agrs[]) {
Scanner scanner=new Scanner(System.in);
ScoreManagement sm=new ScoreManagement(); //建立ScoreManagement类对象
sm.setStudent();
sm.show(); //调用界面函数
do {
System.out.print("请输入你选择的项目序号:");
int n=scanner.nextInt();
switch(n) {
case 1:sm.setScore();break;
case 2:sm.change();break;
case 3:sm.calculatePoint();break;
case 4:sm.breakSM();break;
default:System.out.println("该选项不存在:");sm.show();break;
}
x=n;
}while(x!=4);
}
}

这是界面管理系统:

 

考试成绩录入管理系统:

 

成绩输入:

 

 

 

 

 

 

 

 按Y返回管理系统界面

 

 这是学生成绩修改界面:

 

 

 

 

 

 

 

 输入N返回修改界面

 

 

 

修改高数成绩:

 

 计算绩点界面:

 

 

 

 

 

输入Y返回

 

 输入4退出:

 

posted @ 2019-09-10 20:28  littlemelon  阅读(110)  评论(0编辑  收藏  举报