• 石家庄铁道大学2019 年秋季 2018级JAVA课堂测试试卷(一)


    题目

     

    数据结构要求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)赋值。 
    功能要求:
    该系统完成学生成绩录入,修改,计算学分积点和查询学生成绩的简单
    功能,定义 ScoreManagement 类完成下列功能。 
    1、利用数组实现至少存储五个学生的信息; (将考生信息作为第一条记
    录)。 
    2、学生成绩管理系统的主界面如下图所示: 
    ①界面要求; 
    ***********************************************************
             石家庄铁道大学软件工程系 
             学生学籍管理系统 2019*********************************************************** 
               1、 学生考试成绩录入 
               2、 学生考试成绩修改 
               3、 计算学生成绩绩点 
               4、退出学籍管理系统 
    ********************************************************** 
    ②功能说明 
    输入数字 1-4 执行相应的功能,输入其他数字提示错误信息(该选项
    不存在),并返回主界面。 
    2、成绩录入功能操作流程: 
    ①在主界面选择成绩录入功能后,进入成绩录入界面,如下图所示: 
    ***********************************************************
          石家庄铁道大学软件工程系学生学籍管理系统 2019 版 
                学生考试成绩录入 
    *********************************************************** 
              请输入学生学号:XXXXXXXX 
    ********************************************************** 
    提示用户输入八位的学号。 
    ②用户输入学号后,显示用户学号和姓名,如果用户学号不存在或信息错
    误提示错误信息(该学号不存在),并返回成绩录入界面。 
    ③用户输入学号正确如下图所示: 
    ***********************************************************
          石家庄铁道大学软件工程系学生学籍管理系统 2019 版 
              学生考试成绩录入界面 
    *********************************************************** 
                学生学号:20183557 
                学生姓名:杨雄豪 
             请输入高等数学成绩:XXX 
    ********************************************************** 
    提示用户输入高等数学成绩,用户输入正确的数字;则提示用户输入大学 英语成绩,依次类推,提示用户录入计算机网络、数据库、软件工程成绩,当 用户录完所有成绩后,显示如下界面。
    ***********************************************************       石家庄铁道大学软件工程系学生学籍管理系统 2019 版             学生考试成绩录入 ***********************************************************          学生学号:20183557          学生姓名:杨雄豪          高等数学成绩:XXX          大学英语成绩:XXX          计算机网络成绩:XXX          数据库成绩:XXX          软件工程成绩:XXX       该学生成绩已录入完毕,是否提交(Y/N) ********************************************************** 选择“Y”将录入成绩保存到相应的数组中,并返回主界面。选择“N”, 则忽略上述成绩录入,并返回成绩录入界面。 3、成绩修改功能操作流程: ①在主界面选择成绩修改功能后,进入考试成绩修改界面,如下图所示: ***********************************************************       石家庄铁道大学软件工程系学生学籍管理系统 2019 版             学生考试成绩修改界面 ***********************************************************           请输入学生学号:XXXXXXXX ********************************************************** 提示用户输入八位的学号。 ②用户输入学号后,显示用户学号、姓名和全部成绩信息,如下图所示。 ***********************************************************     石家庄铁道大学软件工程系学生学籍管理系统 2019 版            学生考试成绩录入 ***********************************************************          学生学号:20183557           学生姓名:杨雄豪         1、高等数学成绩:XXX         2、大学英语成绩:XXX         3、计算机网络成绩:XXX         4、数据库成绩:XXX         5、软件工程成绩:XXX ********************************************************** 如果用户学号不存在或信息错误提示错误信息(该学号不存在),并返回 成绩修改界面。 ③用户选择相应的数字键,切换到如下界面(假如选择数字“5”)。 ***********************************************************     石家庄铁道大学软件工程系学生学籍管理系统 2019 版           学生考试成绩录入界面 ***********************************************************          学生学号:20183557           学生姓名:杨雄豪        请输入修改后软件工程成绩:XXX ********************************************************** 录入修改后的成绩,则进入下一步。 ***********************************************************     石家庄铁道大学软件工程系学生学籍管理系统 2019 版              学生考试成绩录入 ***********************************************************            学生学号:20183557            学生姓名:杨雄豪         1、高等数学成绩:XXX         2、大学英语成绩:XXX         3、计算机网络成绩:XXX         4、数据库成绩:XXX         5、软件工程成绩:XXX       该学生成绩已修改完毕,是否提交(Y/N) ********************************************************** 选择“Y”将修改后成绩保存到相应的数组中,并返回主界面。选择“N”, 则忽略上述成绩录入,并返回成绩修改界面。 3、计算学生成绩绩点功能操作流程: ①在主界面选择计算学生成绩绩点功能后,进入计算学生成绩绩点界面, 如下图所示: ***********************************************************       石家庄铁道大学软件工程系学生学籍管理系统 2019 版            学生考试成绩绩点计算界面 ***********************************************************          请输入学生学号:XXXXXXXX ********************************************************** 提示用户输入八位的学号。 ②用户输入学号后,显示用户学号、姓名、学分绩点、提示信息。如下图 所示。 ***********************************************************     石家庄铁道大学软件工程系学生学籍管理系统 2019 版           学生考试成绩绩点计算界面 ***********************************************************           学生学号:20183557           学生姓名:杨雄豪         1、高等数学成绩绩点:XXX         2、大学英语成绩绩点:XXX         3、计算机网络成绩绩点:XXX         4、数据库成绩绩点:XXX         5、软件工程成绩绩点:XXX           你的平均学分绩点为:XXX       提示信息:XXX XXX XXX XXX XXX XXX XXX          是否返回系统主界面:(Y/N) ********************************************************** 如果学分绩点大于等于 2,提示信息显示“你的学分绩点已达到毕业要 求!”; 如果学分绩点小于 2,提示信息显示“你的学分绩点不满足毕业要求!” 学分绩点计算方法: (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”,无操作。 
    
    4、用户选择数字“4”, 显示如下界面,退出当前程序。 
    ***********************************************************
      谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版 
              制作人:考生姓名 
    ***********************************************************

    分析

    题目的第一个类仅需要创建2个公有成员变量和4个私有成员变量并创建对应的setter和getter,可使用source选项下的自动创建setter与getter的选项自动生成。第二个类中包含了很多方法,首先每个方法都有菜单模板,可以创建函数来存储模板。其次是方法中有很多循环,可以用while(true)语句执行,并在条件合适的情况下使用break语句退出循环。每个方法都用函数实现,在主函数中使用switch语句根据输入调用相应的函数并最终输出即可。

    可能出现的问题:

    (1)由于函数中存在许多循环和条件判断,注意嵌套时的逻辑问题。

    (2)注意平均学分绩点要保留2为小数,语法为:String.format(".%2f",x)。

    (3)String类型读入时.next()和.nextLine()的区别在于.next()以空格和回车为间断区分字符串而.nextLine()只以回车为间断。

    (4)如果用对象数组存取数据的话,要注意数组的初始化和数组元素中的对象的初始化是要分别进行的,即创建数组之后,存取数据时对每个元素要分别进行对象初始化,否则将会出现空指针错误。

    源代码

    ScoreInformation类

     1 public class ScoreInformation {
     2     String stunumber;
     3     String name;
     4     private double mathematicsscore;
     5     private double englishiscore;
     6     private double networkscore;
     7     private double databasescore;
     8     private double softwarescore;
     9     public String getStunumber() {
    10         return stunumber;
    11     }
    12     public void setStunumber(String stunumber) {
    13         this.stunumber = stunumber;
    14     }
    15     public String getName() {
    16         return name;
    17     }
    18     public void setName(String name) {
    19         this.name = name;
    20     }
    21     public double getMathematicsscore() {
    22         return mathematicsscore;
    23     }
    24     public void setMathematicsscore(double mathematicsscore) {
    25         this.mathematicsscore = mathematicsscore;
    26     }
    27     public double getEnglishiscore() {
    28         return englishiscore;
    29     }
    30     public void setEnglishiscore(double englishiscore) {
    31         this.englishiscore = englishiscore;
    32     }
    33     public double getNetworkscore() {
    34         return networkscore;
    35     }
    36     public void setNetworkscore(double networkscore) {
    37         this.networkscore = networkscore;
    38     }
    39     public double getDatabasescore() {
    40         return databasescore;
    41     }
    42     public void setDatabasescore(double databasescore) {
    43         this.databasescore = databasescore;
    44     }
    45     public double getSoftwarescore() {
    46         return softwarescore;
    47     }
    48     public void setSoftwarescore(double softwarescore) {
    49         this.softwarescore = softwarescore;
    50     }
    51 }

    ScoreManagement类

      1 import java.util.Scanner;
      2 
      3 public class ScoreManagement {
      4     static ScoreInformation n[]=new ScoreInformation[5];
      5     static int k=5;
      6     static Scanner in = new Scanner(System.in);
      7     public static void setting()    //赋初值
      8     {
      9         n[0] = new ScoreInformation();
     10         n[0].setStunumber("20183713");
     11         n[0].setName("庞家恒");
     12         n[1] = new ScoreInformation();
     13         n[1].setStunumber("20183766");
     14         n[1].setName("ABC");
     15         n[2] = new ScoreInformation();
     16         n[2].setStunumber("20183777");
     17         n[2].setName("DEF");
     18         n[3] = new ScoreInformation();
     19         n[3].setStunumber("20183788");
     20         n[3].setName("GHI");
     21         n[4] = new ScoreInformation();
     22         n[4].setStunumber("20183799");
     23         n[4].setName("JKL");
     24     }
     25     public static void list()    //菜单
     26     {
     27         System.out.println("***********************************************************");
     28         System.out.println("                  石家庄铁道大学软件工程系  ");
     29         System.out.println("                  学生学籍管理系统 2019 版 ");
     30         System.out.println("**********************************************************");
     31         System.out.println("                  1、 学生考试成绩录入 ");
     32         System.out.println("                  2、 学生考试成绩修改 ");
     33         System.out.println("                  3、 计算学生成绩绩点");
     34         System.out.println("                  4、退出学籍管理系统 ");
     35         System.out.println("********************************************************** ");
     36     }
     37     public static void inputlist1()    //成绩录入界面模板1
     38     {
     39         System.out.println("***********************************************************");
     40         System.out.println("       石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     41         System.out.println("                  学生考试成绩录入");
     42         System.out.println("*********************************************************** ");
     43     }
     44     public static void inputlist2()    //成绩录入界面模板2
     45     {
     46         System.out.println("***********************************************************");
     47         System.out.println("       石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
     48         System.out.println("                  学生考试成绩录入界面 ");
     49         System.out.println("*********************************************************** ");
     50     }
     51     public static void input()    //成绩录入功能实现
     52     {
     53         while(true)
     54         {
     55             String stunumber;
     56             double mathematicsscore,englishiscore,networkscore,databasescore,softwarescore;
     57             int a=0;
     58             boolean t = true;
     59             String b;
     60             while(t)    //读入学号并判断是否正确
     61             {
     62                 inputlist1();
     63                 System.out.println("             请输入学生学号:XXXXXXXX ");
     64                 System.out.println("*********************************************************** ");
     65                 stunumber = in.next();
     66                 for(int i=0;i<k;i++)    //判断学号是存在
     67                 {
     68                     if(stunumber.equals(n[i].getStunumber()))
     69                     {
     70                         a = i;
     71                         t = false;
     72                         break;
     73                     }
     74                     if(i==k-1)
     75                     {
     76                         System.out.println("该学号不存在请重新输入");
     77                     }
     78                 }
     79             }
     80             while(true)    //读入高等数学成绩
     81             {
     82                 inputlist2();
     83                 System.out.println("                     学生学号:"+n[a].getStunumber());
     84                 System.out.println("                      学生姓名:"+n[a].getName());
     85                 System.out.println("                 请输入高等数学成绩:XXX ");
     86                 System.out.println("**********************************************************");
     87                 mathematicsscore = in.nextDouble();
     88                 if(mathematicsscore>=0&&mathematicsscore<=100)
     89                 {
     90                         break;
     91                 }
     92                 else
     93                 {
     94                     System.out.println("成绩无效请重新输入");
     95                 }
     96             }
     97             while(true)    //读入大学英语成绩
     98             {
     99                 inputlist2();
    100                 System.out.println("                     学生学号:"+n[a].getStunumber());
    101                 System.out.println("                      学生姓名:"+n[a].getName());
    102                 System.out.println("                    高等数学成绩:"+mathematicsscore);
    103                 System.out.println("                 请输入大学英语成绩:XXX ");
    104                 System.out.println("**********************************************************");
    105                 englishiscore = in.nextDouble();
    106                 if(englishiscore>=0&&englishiscore<=100)
    107                 {
    108                         break;
    109                 }
    110                 else
    111                 {
    112                     System.out.println("成绩无效请重新输入");
    113                 }
    114             }
    115             while(true)    //读入计算机网络成绩
    116             {
    117                 inputlist2();
    118                 System.out.println("                     学生学号:"+n[a].getStunumber());
    119                 System.out.println("                      学生姓名:"+n[a].getName());
    120                 System.out.println("                    高等数学成绩:"+mathematicsscore);
    121                 System.out.println("                    大学英语成绩:"+englishiscore);
    122                 System.out.println("                请输入计算机网络成绩:XXX ");
    123                 System.out.println("**********************************************************");
    124                 networkscore = in.nextDouble();
    125                 if(networkscore>=0&&networkscore<=100)
    126                 {
    127                         break;
    128                 }
    129                 else
    130                 {
    131                     System.out.println("成绩无效请重新输入");
    132                 }
    133             }
    134             while(true)    //读入数据库成绩
    135             {
    136                 inputlist2();
    137                 System.out.println("                     学生学号:"+n[a].getStunumber());
    138                 System.out.println("                      学生姓名:"+n[a].getName());
    139                 System.out.println("                    高等数学成绩:"+mathematicsscore);
    140                 System.out.println("                    大学英语成绩:"+englishiscore);
    141                 System.out.println("                   计算机网络成绩:"+networkscore);
    142                 System.out.println("                  请输入数据库成绩:XXX ");
    143                 System.out.println("**********************************************************");
    144                 databasescore = in.nextDouble();
    145                 if(databasescore>=0&&databasescore<=100)
    146                 {
    147                     break;
    148                 }
    149                 else
    150                 {
    151                     System.out.println("成绩无效请重新输入");
    152                 }
    153             }
    154             while(true)    //读入软件工程成绩
    155             {
    156                 inputlist2();
    157                 System.out.println("                     学生学号:"+n[a].getStunumber());
    158                 System.out.println("                      学生姓名:"+n[a].getName());
    159                 System.out.println("                    高等数学成绩:"+mathematicsscore);
    160                 System.out.println("                    大学英语成绩:"+englishiscore);
    161                 System.out.println("                   计算机网络成绩:"+networkscore);
    162                 System.out.println("                     数据库成绩:"+databasescore);
    163                 System.out.println("                 请输入软件工程成绩:XXX ");
    164                 System.out.println("**********************************************************");
    165                 softwarescore = in.nextDouble();
    166                 if(softwarescore>=0&&softwarescore<=100)
    167                 {
    168                         break;
    169                 }
    170                 else
    171                 {
    172                     System.out.println("成绩无效请重新输入");
    173                 }
    174             }
    175             inputlist2();
    176             System.out.println("                     学生学号:"+n[a].getStunumber());
    177             System.out.println("                      学生姓名:"+n[a].getName());
    178             System.out.println("                    高等数学成绩:"+mathematicsscore);
    179             System.out.println("                    大学英语成绩:"+englishiscore);
    180             System.out.println("                   计算机网络成绩:"+networkscore);
    181             System.out.println("                     数据库成绩:"+databasescore);
    182             System.out.println("                    软件工程成绩:"+softwarescore);
    183             System.out.println("            该学生成绩已录入完毕,是否提交(Y/N)");
    184             System.out.println("**********************************************************");
    185             b = in.next();
    186             if(b.equals("Y"))    //判断成绩是否提交
    187             {
    188                 n[a].setMathematicsscore(mathematicsscore);
    189                 n[a].setEnglishiscore(englishiscore);
    190                 n[a].setNetworkscore(networkscore);
    191                 n[a].setDatabasescore(databasescore);
    192                 n[a].setSoftwarescore(softwarescore);
    193                 break;
    194             }
    195         }
    196     }
    197     public static void changelist()    //成绩修改菜单模板
    198     {
    199         System.out.println("***********************************************************");
    200         System.out.println("       石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    201         System.out.println("                  学生考试成绩修改界面 ");
    202         System.out.println("***********************************************************");
    203     }
    204     public static void showscore(int a)
    205     {
    206         inputlist1();
    207         System.out.println("                     学生学号:"+n[a].getStunumber());
    208         System.out.println("                      学生姓名:"+n[a].getName());
    209         System.out.println("                   1、高等数学成绩:"+n[a].getMathematicsscore());
    210         System.out.println("                   2、大学英语成绩:"+n[a].getEnglishiscore());
    211         System.out.println("                  3、计算机网络成绩:"+n[a].getNetworkscore());
    212         System.out.println("                    4、数据库成绩:"+n[a].getDatabasescore());
    213         System.out.println("                   5、软件工程成绩:"+n[a].getSoftwarescore());
    214         System.out.println("**********************************************************");
    215     }
    216     public static void change()    //成绩修改功能实现
    217     {
    218         String stunumber;
    219         boolean t = true;
    220         double mathematicsscore,englishiscore,networkscore,databasescore,softwarescore;
    221         int a=0;
    222         int b=0;
    223         String c;
    224         while(t)    //读入学号并判断是否正确
    225         {
    226             changelist();
    227             System.out.println("             请输入学生学号:XXXXXXXX ");
    228             System.out.println("*********************************************************** ");
    229             stunumber = in.next();
    230             for(int i=0;i<k;i++)    //判断学号是存在
    231             {
    232                 if(stunumber.equals(n[i].getStunumber()))
    233                 {
    234                     a = i;
    235                     t = false;
    236                     break;
    237                 }
    238                 if(i==k-1)
    239                 {
    240                     System.out.println("该学号不存在请重新输入");
    241                 }
    242             }
    243         }
    244         mathematicsscore = n[a].getMathematicsscore();
    245         englishiscore = n[a].getEnglishiscore();
    246         networkscore = n[a].getNetworkscore();
    247         databasescore = n[a].getDatabasescore();
    248         softwarescore = n[a].getSoftwarescore();
    249         while(true)
    250         {
    251             showscore(a);
    252             b = in.nextInt();
    253             if((b<=0)&&(b>5))
    254                 System.out.println("输入错误请重新输入");
    255             else
    256             {
    257                 switch(b)
    258                 {
    259                     case 1:{
    260                         while(true)
    261                         {
    262                             inputlist2();
    263                             System.out.println("                     学生学号:"+n[a].getStunumber());
    264                             System.out.println("                      学生姓名:"+n[a].getName());
    265                             System.out.println("                请输入修改后的高等数学成绩:XXX");
    266                             mathematicsscore = in.nextDouble();
    267                             if(mathematicsscore>=0&&mathematicsscore<=100)
    268                             {
    269                                     break;
    270                             }
    271                             else
    272                             {
    273                                 System.out.println("成绩无效请重新输入");
    274                             }
    275                         }
    276                         break;
    277                     }
    278                     case 2:{
    279                         while(true)
    280                         {
    281                             inputlist2();
    282                             System.out.println("                     学生学号:"+n[a].getStunumber());
    283                             System.out.println("                      学生姓名:"+n[a].getName());
    284                             System.out.println("                请输入修改后的大学英语成绩:XXX");
    285                             englishiscore = in.nextDouble();
    286                             if((englishiscore>=0)&&(englishiscore<=100))
    287                             {
    288                                 break;
    289                             }
    290                             else
    291                             {
    292                                 System.out.println("成绩无效请重新输入");
    293                             }
    294                         }
    295                         break;
    296                     }
    297                     case 3:{
    298                         inputlist2();
    299                         System.out.println("                     学生学号:"+n[a].getStunumber());
    300                         System.out.println("                      学生姓名:"+n[a].getName());
    301                         System.out.println("               请输入修改后的计算机网络成绩:XXX");
    302                         networkscore = in.nextDouble();
    303                         if((networkscore>=0)&&(networkscore<=100))
    304                         {
    305                             break;
    306                         }
    307                         else
    308                         {
    309                             System.out.println("成绩无效请重新输入");
    310                         }
    311                     }
    312                     case 4:{
    313                         inputlist2();
    314                         System.out.println("                     学生学号:"+n[a].getStunumber());
    315                         System.out.println("                      学生姓名:"+n[a].getName());
    316                         System.out.println("                 请输入修改后的数据库成绩:XXX");
    317                         databasescore = in.nextDouble();
    318                         if((databasescore>=0)&&(databasescore<=100))
    319                         {
    320                             break;
    321                         }
    322                         else
    323                         {
    324                             System.out.println("成绩无效请重新输入");
    325                         }
    326                     }
    327                     case 5:{
    328                         inputlist2();
    329                         System.out.println("                     学生学号:"+n[a].getStunumber());
    330                         System.out.println("                      学生姓名:"+n[a].getName());
    331                         System.out.println("                请输入修改后的软件工程成绩:XXX");
    332                         softwarescore = in.nextDouble();
    333                         if((softwarescore>=0)&&(softwarescore<=100))
    334                         {
    335                             break;
    336                         }
    337                         else
    338                         {
    339                             System.out.println("成绩无效请重新输入");
    340                         }
    341                     }
    342                 }
    343             }
    344             inputlist1();
    345             System.out.println("                     学生学号:"+n[a].getStunumber());
    346             System.out.println("                      学生姓名:"+n[a].getName());
    347             System.out.println("                  1、高等数学成绩:"+mathematicsscore);
    348             System.out.println("                  2、大学英语成绩:"+englishiscore);
    349             System.out.println("                 3、计算机网络成绩:"+networkscore);
    350             System.out.println("                  4、 数据库成绩:"+databasescore);
    351             System.out.println("                  5、软件工程成绩:"+softwarescore);
    352             System.out.println("            该学生成绩已修改完毕,是否提交(Y/N) ");
    353             System.out.println("**********************************************************");
    354             c = in.next();
    355             if(c.equals("Y"))
    356             {
    357                 n[a].setMathematicsscore(mathematicsscore);
    358                 n[a].setEnglishiscore(englishiscore);
    359                 n[a].setNetworkscore(networkscore);
    360                 n[a].setDatabasescore(databasescore);
    361                 n[a].setSoftwarescore(softwarescore);
    362                 break;
    363             }
    364         }
    365     }
    366     public static void gpalist()    //绩点菜单模板
    367     {
    368         System.out.println("**********************************************************");
    369         System.out.println("       石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    370         System.out.println("                  学生考试成绩绩点计算界面 ");
    371         System.out.println("**********************************************************");
    372     }
    373     public static void gpa()    //计算学分绩点
    374     {
    375         boolean t = true;
    376         String stunumber;
    377         double mathematicsscore,englishiscore,networkscore,databasescore,softwarescore;
    378         double average;
    379         int a=0;
    380         while(t)    //读入学号并判断是否正确
    381         {
    382             gpalist();
    383             System.out.println("             请输入学生学号:XXXXXXXX ");
    384             System.out.println("*********************************************************** ");
    385             stunumber = in.next();
    386             for(int i=0;i<k;i++)    //判断学号是存在
    387             {
    388                 if(stunumber.equals(n[i].getStunumber()))
    389                 {
    390                     a = i;
    391                     t = false;
    392                     break;
    393                 }
    394                 if(i==k-1)
    395                 {
    396                     System.out.println("该学号不存在请重新输入");
    397                 }
    398             }
    399         }
    400         if(n[a].getMathematicsscore()>=90)    //计算绩点
    401             mathematicsscore = 4;
    402         else if(n[a].getMathematicsscore()>=85)
    403             mathematicsscore = 3.7;
    404         else if(n[a].getMathematicsscore()>=82)
    405             mathematicsscore = 3.3;
    406         else if(n[a].getMathematicsscore()>=78)
    407             mathematicsscore = 3;
    408         else if(n[a].getMathematicsscore()>=75)
    409             mathematicsscore = 2.7;
    410         else if(n[a].getMathematicsscore()>=72)
    411             mathematicsscore = 2.3;
    412         else if(n[a].getMathematicsscore()>=68)
    413             mathematicsscore = 2;
    414         else if(n[a].getMathematicsscore()>=66)
    415             mathematicsscore = 1.7;
    416         else if(n[a].getMathematicsscore()>=64)
    417             mathematicsscore = 1.5;
    418         else if(n[a].getMathematicsscore()>=60)
    419             mathematicsscore = 1;
    420         else 
    421             mathematicsscore = 0;
    422         if(n[a].getEnglishiscore()>=90)
    423             englishiscore = 4;
    424         else if(n[a].getEnglishiscore()>=85)
    425             englishiscore = 3.7;
    426         else if(n[a].getEnglishiscore()>=82)
    427             englishiscore = 3.3;
    428         else if(n[a].getEnglishiscore()>=78)
    429             englishiscore = 3;
    430         else if(n[a].getEnglishiscore()>=75)
    431             englishiscore = 2.7;
    432         else if(n[a].getEnglishiscore()>=72)
    433             englishiscore = 2.3;
    434         else if(n[a].getEnglishiscore()>=68)
    435             englishiscore = 2;
    436         else if(n[a].getEnglishiscore()>=66)
    437             englishiscore = 1.7;
    438         else if(n[a].getEnglishiscore()>=64)
    439             englishiscore = 1.5;
    440         else if(n[a].getEnglishiscore()>=60)
    441             englishiscore = 1;
    442         else 
    443             englishiscore = 0;
    444         if(n[a].getNetworkscore()>=90)
    445             networkscore = 4;
    446         else if(n[a].getNetworkscore()>=85)
    447             networkscore = 3.7;
    448         else if(n[a].getNetworkscore()>=82)
    449             networkscore = 3.3;
    450         else if(n[a].getNetworkscore()>=78)
    451             networkscore = 3;
    452         else if(n[a].getNetworkscore()>=75)
    453             networkscore = 2.7;
    454         else if(n[a].getNetworkscore()>=72)
    455             networkscore = 2.3;
    456         else if(n[a].getNetworkscore()>=68)
    457             networkscore = 2;
    458         else if(n[a].getNetworkscore()>=66)
    459             networkscore = 1.7;
    460         else if(n[a].getNetworkscore()>=64)
    461             networkscore = 1.5;
    462         else if(n[a].getNetworkscore()>=60)
    463             networkscore = 1;
    464         else 
    465             networkscore = 0;
    466         if(n[a].getDatabasescore()>=90)
    467             databasescore = 4;
    468         else if(n[a].getDatabasescore()>=85)
    469             databasescore = 3.7;
    470         else if(n[a].getDatabasescore()>=82)
    471             databasescore = 3.3;
    472         else if(n[a].getDatabasescore()>=78)
    473             databasescore = 3;
    474         else if(n[a].getDatabasescore()>=75)
    475             databasescore = 2.7;
    476         else if(n[a].getDatabasescore()>=72)
    477             databasescore = 2.3;
    478         else if(n[a].getDatabasescore()>=68)
    479             databasescore = 2;
    480         else if(n[a].getDatabasescore()>=66)
    481             databasescore = 1.7;
    482         else if(n[a].getDatabasescore()>=64)
    483             databasescore = 1.5;
    484         else if(n[a].getDatabasescore()>=60)
    485             databasescore = 1;
    486         else 
    487             databasescore = 0;
    488         if(n[a].getSoftwarescore()>=90)
    489             softwarescore = 4;
    490         else if(n[a].getSoftwarescore()>=85)
    491             softwarescore = 3.7;
    492         else if(n[a].getSoftwarescore()>=82)
    493             softwarescore = 3.3;
    494         else if(n[a].getSoftwarescore()>=78)
    495             softwarescore = 3;
    496         else if(n[a].getSoftwarescore()>=75)
    497             softwarescore = 2.7;
    498         else if(n[a].getSoftwarescore()>=72)
    499             softwarescore = 2.3;
    500         else if(n[a].getSoftwarescore()>=68)
    501             softwarescore = 2;
    502         else if(n[a].getSoftwarescore()>=66)
    503             softwarescore = 1.7;
    504         else if(n[a].getSoftwarescore()>=64)
    505             softwarescore = 1.5;
    506         else if(n[a].getSoftwarescore()>=60)
    507             softwarescore = 1;
    508         else 
    509             softwarescore = 0;
    510         average = ((4*mathematicsscore)+(3*englishiscore)+(4*networkscore)
    511                 +(3*databasescore)+(2*softwarescore))/(4+3+4+3+2);
    512         while(true)
    513         {
    514             String x;
    515             gpalist();
    516             System.out.println("                     学生学号:"+n[a].getStunumber());
    517             System.out.println("                      学生姓名:"+n[a].getName());
    518             System.out.println("                1、高等数学成绩绩点:"+mathematicsscore);
    519             System.out.println("                2、大学英语成绩绩点:"+englishiscore);
    520             System.out.println("               3、计算机网络成绩绩点:"+networkscore);
    521             System.out.println("                4、 数据库成绩绩点:"+databasescore);
    522             System.out.println("                5、软件工程成绩绩点:"+softwarescore);
    523             System.out.println("                 你的平均学分绩点为:"+String.format("%.2f", average));
    524             if(average>=2)
    525                 System.out.println("         提示信息:你的学分绩点已达到毕业要求! ");
    526             else
    527                 System.out.println("         提示信息:你的学分绩点不满足毕业要求! ");
    528             System.out.println("            是否返回系统主界面:(Y/N) ");
    529             System.out.println("**********************************************************");
    530             x = in.next();
    531             if(x.equals("Y"))
    532                 break;
    533         }
    534     }
    535     public static void end()    //结束信息
    536     {
    537         System.out.println("**********************************************************");
    538         System.out.println("       石家庄铁道大学软件工程系学生学籍管理系统 2019 版 ");
    539         System.out.println("                 制作人:庞家恒");
    540         System.out.println("**********************************************************");
    541     }
    542     
    543     public static void main(String[] args) {
    544         setting();
    545         boolean t = true;
    546         int a;
    547         while(t)
    548         {
    549             list();
    550             a = in.nextInt();
    551             switch (a) {
    552                 case 1:{
    553                     input();
    554                     break;
    555                     }
    556                 case 2:{
    557                     change();
    558                     break;
    559                     }
    560                 case 3:{
    561                     gpa();
    562                     break;
    563                     }
    564                 case 4:{
    565                     end();
    566                     t = false;
    567                     break;
    568                 }
    569                 default:{
    570                     System.out.println("输入有误请重新输入");
    571                     break;
    572                     }
    573             }
    574         }
    575     }
    576 
    577 }

    样例

     

     

     

     

     

     

     

     

  • 相关阅读:
    Nth Highest Salary
    第二高的薪水
    组合两个表
    牛客(66)机器人的运动范围
    牛客(65)矩阵中的路径
    牛客(64)滑动窗口的最大值
    牛客(63)数据流中的中位数
    牛客(62)二叉搜索树的第k个结点
    牛客(61)序列化二叉树
    mybits(2)增删改查
  • 原文地址:https://www.cnblogs.com/52bb/p/11507119.html
Copyright © 2020-2023  润新知