zoukankan      html  css  js  c++  java
  • Java测试题简易学生成绩系统

      刚刚接触Java不久,写法上和一些术语还不是很熟悉,如有不对的地方,希望指正。本次学生成绩系统要求能实现成绩录入,修改成绩,绩点计算,退出系统四个功能,在进行思路分析后,我构建了三个大类:ScoreInformation类;Surface类;Main类。

      一,ScoreInformation类:

     1 public class ScoreInformation {
     2     private String stunumber;         //学号
     3     private String name;              //姓名
     4     private double mathematicsscore;  //高数成绩
     5     private double englishscore;      //大学英语成绩
     6     private double networkscore;      //计算机网络成绩
     7     private double databasescore;     //数据库成绩
     8     private double softwarescore;     //软件工程成绩
     9     
    10     public void setStunumber(String stunumber){
    11         this.stunumber = stunumber;
    12     }
    13     public String getStunumber(){
    14         return stunumber;
    15     }
    16     public void setName(String name){
    17         this.name = name;
    18     }
    19     public String getName(){
    20         return name;
    21     }
    22     public void setMath(double mathematicssore){
    23         this.mathematicsscore = mathematicssore;
    24     }
    25     public double getMath(){
    26         return mathematicsscore;
    27     }
    28     public void setEng(double englishscore){
    29         this.englishscore = englishscore;
    30     }
    31     public double getEng(){
    32         return englishscore;
    33     }
    34     public void setNet(double networkscore){
    35         this.networkscore = networkscore;
    36     }
    37     public double getNet(){
    38         return networkscore;
    39     }
    40     public void setData(double databasescore){
    41         this.databasescore = databasescore;
    42     }
    43     public double getData(){
    44         return databasescore;
    45     }
    46     public void setSoft(double softwarescore){
    47         this.softwarescore = softwarescore;
    48     }
    49     public double getSoft(){
    50         return softwarescore;
    51     }
    52     
    53     public ScoreInformation(){
    54         stunumber = "XXXXXXXX";//原代码录入的是我个人的信息,暂改为X
    55         name = "XXX";
    56         mathematicsscore = 0;
    57         englishscore = 0;
    58         networkscore = 0;
    59         databasescore = 0;
    60         softwarescore = 0;
    61     }
    62     public ScoreInformation(String stunumber,String name){
    63         this.stunumber = stunumber;
    64         this.name = name;
    65         this.mathematicsscore = 0;
    66         this.englishscore = 0;
    67         this.networkscore = 0;
    68         this.databasescore = 0;
    69         this.softwarescore = 0;
    70     }
    71 }

    ScoreInformation类用于存储信息,按题目要求,含7个私有变量。其中set和get函数分别用来设置和读取对应变量的值。本类中设置了两个构造方法,应老师的要求,无参默认我自己的学号和姓名,有参则自行设置学号和姓名,成绩均默认为0。

      二,Surface类:

      1 public class Surface {
      2     public void mainsur(){
      3         System.out.println("***********************************************************");
      4         System.out.println("           石家庄铁道大学软件工程系 ");
      5         System.out.println("           学生学籍管理系统 2019 版 ");
      6         System.out.println("***********************************************************");
      7         System.out.println("           1、 学生考试成绩录入 ");
      8         System.out.println("           2、 学生考试成绩修改 ");
      9         System.out.println("           3、 计算学生成绩绩点 ");
     10         System.out.println("           4、 退出学籍管理系统 ");
     11         System.out.println("***********************************************************");
     12     }
     13     public void inStun(){
     14         System.out.println("***********************************************************");
     15         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     16         System.out.println("                学生考试成绩录入");
     17         System.out.println("***********************************************************");
     18         System.out.println("                请输入学生学号:");
     19         System.out.println("***********************************************************");
     20     }
     21     public void inMath(ScoreInformation s){
     22         System.out.println("***********************************************************");
     23         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     24         System.out.println("                学生考试成绩录入界面");
     25         System.out.println("***********************************************************");
     26         System.out.println("                学生学号:"+s.getStunumber());
     27         System.out.println("                  学生姓名:"+s.getName());
     28         System.out.println("             请输入高等数学成绩:");
     29         System.out.println("***********************************************************");
     30     }
     31     public void inEng(ScoreInformation s){
     32         System.out.println("***********************************************************");
     33         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     34         System.out.println("                学生考试成绩录入界面");
     35         System.out.println("***********************************************************");
     36         System.out.println("                学生学号:"+s.getStunumber());
     37         System.out.println("                  学生姓名:"+s.getName());
     38         System.out.println("                高等数学成绩:"+s.getMath());
     39         System.out.println("             请输入大学英语成绩:");
     40         System.out.println("***********************************************************");
     41     }
     42     public void inNet(ScoreInformation s){
     43         System.out.println("***********************************************************");
     44         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     45         System.out.println("                学生考试成绩录入界面");
     46         System.out.println("***********************************************************");
     47         System.out.println("                学生学号:"+s.getStunumber());
     48         System.out.println("                  学生姓名:"+s.getName());
     49         System.out.println("                高等数学成绩:"+s.getMath());
     50         System.out.println("                大学英语成绩:"+s.getEng());
     51         System.out.println("             请输入计算机网络成绩:");
     52         System.out.println("***********************************************************");
     53     }
     54     public void inData(ScoreInformation s){
     55         System.out.println("***********************************************************");
     56         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     57         System.out.println("                学生考试成绩录入界面");
     58         System.out.println("***********************************************************");
     59         System.out.println("                学生学号:"+s.getStunumber());
     60         System.out.println("                  学生姓名:"+s.getName());
     61         System.out.println("                高等数学成绩:"+s.getMath());
     62         System.out.println("                大学英语成绩:"+s.getEng());
     63         System.out.println("              计算机网络成绩:"+s.getNet());
     64         System.out.println("              请输入数据库成绩:");
     65         System.out.println("***********************************************************");
     66     }
     67     public void inSoft(ScoreInformation s){
     68         System.out.println("***********************************************************");
     69         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     70         System.out.println("                学生考试成绩录入界面");
     71         System.out.println("***********************************************************");
     72         System.out.println("                学生学号:"+s.getStunumber());
     73         System.out.println("                  学生姓名:"+s.getName());
     74         System.out.println("                高等数学成绩:"+s.getMath());
     75         System.out.println("                大学英语成绩:"+s.getEng());
     76         System.out.println("              计算机网络成绩:"+s.getNet());
     77         System.out.println("                  数据库成绩:"+s.getData());
     78         System.out.println("             请输入软件工程成绩:");
     79         System.out.println("***********************************************************");
     80     }
     81     public void inall(ScoreInformation s){
     82         System.out.println("***********************************************************");
     83         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     84         System.out.println("                  学生考试成绩录入");
     85         System.out.println("***********************************************************");
     86         System.out.println("                学生学号:"+s.getStunumber());
     87         System.out.println("                  学生姓名:"+s.getName());
     88         System.out.println("                高等数学成绩:"+s.getMath());
     89         System.out.println("                大学英语成绩:"+s.getEng());
     90         System.out.println("              计算机网络成绩:"+s.getNet());
     91         System.out.println("                  数据库成绩:"+s.getData());
     92         System.out.println("                软件工程成绩:"+s.getSoft());
     93         System.out.println("             该学生成绩已录入完毕,是否提交(Y/N)");
     94         System.out.println("***********************************************************");
     95     }
     96     public void changeStun(){
     97         System.out.println("***********************************************************");
     98         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     99         System.out.println("                学生考试成绩修改界面");
    100         System.out.println("***********************************************************");
    101         System.out.println("                请输入学生学号:");
    102         System.out.println("***********************************************************");
    103     }
    104     public void outscore(ScoreInformation s){
    105         System.out.println("***********************************************************");
    106         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    107         System.out.println("                  学生考试成绩录入");
    108         System.out.println("***********************************************************");
    109         System.out.println("                学生学号:"+s.getStunumber());
    110         System.out.println("                  学生姓名:"+s.getName());
    111         System.out.println("         1,高等数学成绩:"+s.getMath());
    112         System.out.println("         2,大学英语成绩:"+s.getEng());
    113         System.out.println("        3,计算机网络成绩:"+s.getNet());
    114         System.out.println("          4,数据库成绩:"+s.getData());
    115         System.out.println("         5,软件工程成绩:"+s.getSoft());
    116         System.out.println("***********************************************************");
    117     }
    118     public void changeMath(ScoreInformation s){
    119         System.out.println("***********************************************************");
    120         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    121         System.out.println("                学生考试成绩录入界面");
    122         System.out.println("***********************************************************");
    123         System.out.println("                学生学号:"+s.getStunumber());
    124         System.out.println("                  学生姓名:"+s.getName());
    125         System.out.println("             请输入修改后高等数学成绩:");
    126         System.out.println("***********************************************************");
    127     }
    128     public void changeEng(ScoreInformation s){
    129         System.out.println("***********************************************************");
    130         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    131         System.out.println("                学生考试成绩录入界面");
    132         System.out.println("***********************************************************");
    133         System.out.println("                学生学号:"+s.getStunumber());
    134         System.out.println("                  学生姓名:"+s.getName());
    135         System.out.println("             请输入修改后大学英语成绩:");
    136         System.out.println("***********************************************************");
    137     }
    138     public void changeNet(ScoreInformation s){
    139         System.out.println("***********************************************************");
    140         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    141         System.out.println("                学生考试成绩录入界面");
    142         System.out.println("***********************************************************");
    143         System.out.println("                学生学号:"+s.getStunumber());
    144         System.out.println("                  学生姓名:"+s.getName());
    145         System.out.println("             请输入修改后计算机网络成绩:");
    146         System.out.println("***********************************************************");
    147     }
    148     public void changeData(ScoreInformation s){
    149         System.out.println("***********************************************************");
    150         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    151         System.out.println("                学生考试成绩录入界面");
    152         System.out.println("***********************************************************");
    153         System.out.println("                学生学号:"+s.getStunumber());
    154         System.out.println("                  学生姓名:"+s.getName());
    155         System.out.println("             请输入修改后数据库成绩:");
    156         System.out.println("***********************************************************");
    157     }
    158     public void changeSoft(ScoreInformation s){
    159         System.out.println("***********************************************************");
    160         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    161         System.out.println("                学生考试成绩录入界面");
    162         System.out.println("***********************************************************");
    163         System.out.println("                学生学号:"+s.getStunumber());
    164         System.out.println("                  学生姓名:"+s.getName());
    165         System.out.println("             请输入修改后软件工程成绩:");
    166         System.out.println("***********************************************************");
    167     }
    168     public void overchange(ScoreInformation s){
    169         System.out.println("***********************************************************");
    170         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    171         System.out.println("                  学生考试成绩录入");
    172         System.out.println("***********************************************************");
    173         System.out.println("                学生学号:"+s.getStunumber());
    174         System.out.println("                  学生姓名:"+s.getName());
    175         System.out.println("         1,高等数学成绩:"+s.getMath());
    176         System.out.println("         2,大学英语成绩:"+s.getEng());
    177         System.out.println("        3,计算机网络成绩:"+s.getNet());
    178         System.out.println("          4,数据库成绩:"+s.getData());
    179         System.out.println("         5,软件工程成绩:"+s.getSoft());
    180         System.out.println("             该学生成绩已修改完毕,是否提交(Y/N)");
    181         System.out.println("***********************************************************");
    182     }
    183     public void startgrade(){
    184         System.out.println("***********************************************************");
    185         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    186         System.out.println("                学生考试成绩绩点计算界面");
    187         System.out.println("***********************************************************");
    188         System.out.println("                请输入学生学号:");
    189         System.out.println("***********************************************************");
    190     }
    191     public void endscore1(ScoreInformation s, double a){
    192         System.out.println("***********************************************************");
    193         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    194         System.out.println("                  学生考试成绩绩点计算界面");
    195         System.out.println("***********************************************************");
    196         System.out.println("                学生学号:"+s.getStunumber());
    197         System.out.println("                  学生姓名:"+s.getName());
    198         System.out.println("         1,高等数学成绩:"+s.getMath());
    199         System.out.println("         2,大学英语成绩:"+s.getEng());
    200         System.out.println("        3,计算机网络成绩:"+s.getNet());
    201         System.out.println("          4,数据库成绩:"+s.getData());
    202         System.out.println("         5,软件工程成绩:"+s.getSoft());
    203         System.out.print("                   你的平均学分绩点为:");
    204         System.out.println(String.format("%.2f", a));
    205         System.out.println("         提示信息:你的学分绩点已达到毕业要求!");
    206         System.out.println("        是否返回系统主界面:(Y/N)");
    207         System.out.println("***********************************************************");
    208     }
    209     public void endscore2(ScoreInformation s, double a){
    210         System.out.println("***********************************************************");
    211         System.out.println("      石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    212         System.out.println("                  学生考试成绩绩点计算界面");
    213         System.out.println("***********************************************************");
    214         System.out.println("                学生学号:"+s.getStunumber());
    215         System.out.println("                  学生姓名:"+s.getName());
    216         System.out.println("         1,高等数学成绩:"+s.getMath());
    217         System.out.println("         2,大学英语成绩:"+s.getEng());
    218         System.out.println("        3,计算机网络成绩:"+s.getNet());
    219         System.out.println("          4,数据库成绩:"+s.getData());
    220         System.out.println("         5,软件工程成绩:"+s.getSoft());
    221         System.out.print("                   你的平均学分绩点为:");
    222         System.out.println(String.format("%.2f", a));
    223         System.out.println("         提示信息:你的学分绩点不满足毕业要求!");
    224         System.out.println("        是否返回系统主界面:(Y/N)");
    225         System.out.println("***********************************************************");
    226     }
    227     public void endsur(){
    228         System.out.println("***********************************************************");
    229         System.out.println("          谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    230         System.out.println("                  制作人:朴远东");
    231         System.out.println("***********************************************************");
    232     }
    233 }

    为了能让代码更容易检查,我特意将所有关于界面显示的方法归类到Surface类里。这个类里只有显示界面的功能代码,无其他作用

      三,Main类:

      1 import java.util.Scanner;
      2 
      3 public class Main {
      4     static Surface x = new Surface();              //调用界面类
      5     static Scanner in = new Scanner(System.in);
      6     
      7     public void stem1(ScoreInformation a[]){      //执行学生成绩录入操作
      8         int temp1 = 0;
      9         x.inStun();
     10         String m = in.next();
     11         for(int i = 0; i < 5; i++){
     12             if(a[i].getStunumber().equals(m))
     13             {
     14                 x.inMath(a[i]);
     15                 double d1 = in.nextDouble();
     16                 a[i].setMath(d1);
     17                 x.inEng(a[i]);
     18                 double d2 = in.nextDouble();
     19                 a[i].setEng(d2);
     20                 x.inNet(a[i]);
     21                 double d3 = in.nextDouble();
     22                 a[i].setNet(d3);
     23                 x.inData(a[i]);
     24                 double d4 = in.nextDouble();
     25                 a[i].setData(d4);
     26                 x.inSoft(a[i]);
     27                 double d5 = in.nextDouble();
     28                 a[i].setSoft(d5);
     29                 x.inall(a[i]);
     30                 String c = in.next();
     31                 if(c.equals("N")){
     32                     a[i].setMath(0);
     33                     a[i].setEng(0);
     34                     a[i].setNet(0);
     35                     a[i].setData(0);
     36                     a[i].setSoft(0);
     37                 }
     38                 x.mainsur();
     39                 temp1 = 1;
     40                 break;
     41             }
     42         }
     43         if(temp1 == 0)
     44         {
     45             System.out.println("该学号不存在");
     46             x.mainsur();
     47         }
     48     }
     49     
     50     public void stem2(ScoreInformation a[]){          //执行学生成绩修改操作。
     51         int temp1 = 0;
     52         double r1,r2,r3,r4,r5;
     53         x.changeStun();
     54         String m = in.next();
     55         for(int i = 0; i < 5; i++){
     56             if(a[i].getStunumber().equals(m))
     57             {
     58                 r1 = a[i].getMath();
     59                 r2 = a[i].getEng();
     60                 r3 = a[i].getNet();
     61                 r4 = a[i].getData();
     62                 r5 = a[i].getSoft();
     63                 x.outscore(a[i]);
     64                 int c = in.nextInt();
     65                 switch(c){
     66                 case 1:
     67                     x.changeMath(a[i]);
     68                     double d1 = in.nextDouble();
     69                     a[i].setMath(d1);
     70                     break;
     71                 case 2:
     72                     x.changeEng(a[i]);
     73                     double d2 = in.nextDouble();
     74                     a[i].setEng(d2);
     75                     break;
     76                 case 3:
     77                     x.changeNet(a[i]);
     78                     double d3 = in.nextDouble();
     79                     a[i].setNet(d3);
     80                     break;
     81                 case 4:
     82                     x.changeData(a[i]);
     83                     double d4 = in.nextDouble();
     84                     a[i].setData(d4);
     85                     break;
     86                 case 5:
     87                     x.changeSoft(a[i]);
     88                     double d5 = in.nextDouble();
     89                     a[i].setSoft(d5);
     90                     break;
     91                 default:
     92                     System.out.println("无该选项,返回主界面");
     93                     x.mainsur();
     94                     break;
     95                 }
     96                 x.overchange(a[i]);
     97                 String h = in.next();
     98                 if(h.equals("N")){
     99                     a[i].setMath(r1);
    100                     a[i].setEng(r2);
    101                     a[i].setNet(r3);
    102                     a[i].setData(r4);
    103                     a[i].setSoft(r5);
    104                 }
    105                 x.mainsur();
    106                 temp1 = 1;
    107                 break;
    108             }
    109         }
    110         if(temp1 == 0)
    111         {
    112             System.out.println("该学号不存在");
    113             x.mainsur();
    114         }
    115     }
    116     
    117     public void stem3(ScoreInformation a[]){              //执行绩点计算操作
    118         Main v = new Main();
    119         double R;
    120         double r1,r2,r3,r4,r5;
    121         double x1,x2,x3,x4,x5;
    122         x.startgrade();
    123         String m = in.next();
    124         for(int i = 0; i < 5; i++){
    125             if(a[i].getStunumber().equals(m))
    126             {
    127                 r1 = a[i].getMath();x1 = v.Gpoint(r1);
    128                 r2 = a[i].getEng();x2 = v.Gpoint(r2);
    129                 r3 = a[i].getNet();x3 = v.Gpoint(r3);
    130                 r4 = a[i].getData();x4 = v.Gpoint(r4);
    131                 r5 = a[i].getSoft();x5 = v.Gpoint(r5);
    132                 R = (x1*r1+x2*r2+x3*r3+x4*r4+x5*r5)/(r1+r2+r3+r4+r5);
    133                 if(R>=2){
    134                     x.endscore1(a[i], R);
    135                 }else{
    136                     x.endscore2(a[i], R);
    137                 }
    138                 String q = in.next();
    139                 if(q.equals("Y")){
    140                     x.mainsur();
    141                 }
    142                 break;
    143             }
    144         }
    145     }
    146     
    147     public double Gpoint(double d){              //返回学分对应的绩点
    148         double e = 0;
    149         if(d>=90.0)
    150             e = 4.0;
    151         else if(d>=85&&d<=89.9)
    152             e = 3.7;
    153         else if(d>=82&&d<=84.9)
    154             e = 3.3;
    155         else if(d>=78&&d<=81.9)
    156             e = 3.0;
    157         else if(d>=75&&d<=77.9)
    158             e = 2.7;
    159         else if(d>=72&&d<=74.9)
    160             e = 2.3;
    161         else if(d>=68&&d<=71.9)
    162             e = 2.0;
    163         else if(d>=66&&d<=67.9)
    164             e = 1.7;
    165         else if(d>=64&&d<=65.9)
    166             e = 1.5;
    167         else if(d>=60&&d<=63.9)
    168             e = 1.0;
    169         else if(d<60)
    170             e = 0;
    171         return e;
    172     }
    173     
    174     public static void main(String[] args) {
    175         Main u = new Main();
    176         ScoreInformation a[] = new ScoreInformation[5];
    177         a[0] = new ScoreInformation();
    178         a[1] = new ScoreInformation("20180001","小赵");
    179         a[2] = new ScoreInformation("20180002","小张");
    180         a[3] = new ScoreInformation("20180003","小王");
    181         a[4] = new ScoreInformation("20180004","小李");
    182         int temp = 0;
    183         x.mainsur();
    184         int T = in.nextInt();
    185         while(temp == 0){                   //重复调用
    186             switch(T){
    187             case 1:
    188                 u.stem1(a);
    189                 T = in.nextInt();
    190                 break;
    191             case 2:
    192                 u.stem2(a);
    193                 T = in.nextInt();
    194                 break;
    195             case 3:
    196                 u.stem3(a);
    197                 T = in.nextInt();
    198                 break;
    199             case 4:
    200                 x.endsur();
    201                 temp = 1;
    202                 break;
    203             default:
    204                 System.out.println("该选项不存在");
    205                 x.mainsur();
    206                 temp = 1;
    207                 break;
    208             }
    209         }
    210             in.close();
    211     }
    212 }

    这个类就是主函数类了,用于实现各种操作。因为涉及到输入的问题,所以使用了Scanner。老师为我们放宽了要求,输入5位同学的信息即可,更改也是比较方便的,可以根据实际情况来进行对象数组的分配,在此就不多说了。题目中的系统是要重复调用的,又有4个选项,因此我选择while+switch两个结构来实现。代码中声明的Main和Surface类的对象,主要目的是在于调用MaIn和Surface类中的方法,操作数据都是ScoreInformation类的对象。在Main类中,stem1,stem2,stem3三个方法对应的是1-3的选项,将不同的实现操作分装在不同的方法里,目的是让代码看着更加清晰。最后,代码中多次出现的int型变量temp/temp1是我用来作为if判断的标志,根据它的值来决定接下来的操作,这是我个人的编写习惯,退出循环或者其他情况都会设置一个变量进行判断。

  • 相关阅读:
    网络连接的基本概念,中继系统(网络)
    qnorm 函数 , with 函数(R)
    关于 paste 函数 (R)
    对数据的探索,数据框中是否有大于某个数的值,返回大于的具体的数值,或者数值的坐标(R)
    查看内存占用情况,查看进程,终止进程(cmd)
    查询校园网外网的ip
    二进制的减法(汇编)(数字电路)
    画出箱线图(R)
    排比句(文章写作)
    react中的TS理解
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/11506245.html
Copyright © 2011-2022 走看看