• 转入软工后第一节java课的作业


    这个作业,鸽了好久。本来大家都在中秋前发了,我摸摸索索加上各种缓慢的学习,终于是将他做完了。

    做完之后,java最基本的输入输出功能都基本学习到了。下面附上代码:

      1 import java.util.*;
      2 import java.util.Scanner;
      3 public class ScoreManagement {
      4     //调用自定义类数组
      5     static ScoreInformation[] a= new ScoreInformation[5];
      6     static Scanner scan = new Scanner(System.in);
      7     static boolean pd = true;
      8     //打印主界面
      9     public static void printmain(){
     10         System.out.println("***********************************************************\r"+
     11 "                            石家庄铁道大学软件工程系\r"+
     12 "                            学生学籍管理系统 2019 版\r"+
     13 "***********************************************************\r"+
     14 "                 1、 学生考试成绩录入\r"+
     15 "                 2、 学生考试成绩修改\r"+
     16 "                 3、 计算学生成绩绩点\r"+
     17 "                 4、 退出学籍管理系统\r"+
     18 "**********************************************************");
     19 }
     20     static void score_enter1(){
     21         boolean pd2=true;
     22         //打印成绩录入界面
     23         System.out.println("***********************************************************\r"+
     24 "                 石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"
     25 + "                                      学生考试成绩录入\r"+
     26 "***********************************************************\r"+
     27 "                               请输入学生学号:XXXXXXXX\r"+
     28 "**********************************************************");
     29         //将用户输入的学号与数组内对比
     30         int sum;
     31         String Stunnumber = scan.next();
     32         for(sum=0;sum<5;sum++){
     33             if((Stunnumber.equals(a[sum].getStunnumber()))){
     34                 break;
     35             }
     36             }
     37         if(sum==5){
     38             pd2=false;
     39             System.out.println("您输入的学号不存在,请重新输入!");
     40             score_enter1();
     41         }
     42         if(pd2){
     43             int i;
     44             score_enter2();
     45             System.out.println("                                   学生学号:"+a[sum].getStunnumber());
     46             System.out.println("                                   学生姓名:"+a[sum].getname());
     47             //用循环挨个刷出成绩结果
     48             for(i=1;i<=7;i++){
     49                 if(i>1)
     50                 {
     51                     score_enter2();
     52                     System.out.println("                                    高等数学成绩:"+a[sum].getmathematicsscore());
     53                 }
     54                 if(i>2)
     55                 {
     56                     System.out.println("                                   大学英语成绩:"+a[sum].getenglishscore());
     57                 }
     58                 if(i>3)
     59                 {
     60                     System.out.println("                                   计算机网络成绩:"+a[sum].getnetworkscore());
     61                 }
     62                 if(i>4)
     63                 {
     64                     System.out.println("                                   数据库成绩:"+a[sum].getdatabasescore());
     65                 }
     66                 if(i>5)
     67                 {
     68                     System.out.println("                                   软件工程成绩:"+a[sum].getsoftwarescore());
     69                 }
     70                 if(i>6)
     71                 {
     72                     System.out.println("           该学生成绩已录入完毕,是否提交(Y/N)");
     73                     System.out.println("**********************************************************");
     74                     String s=scan.next();
     75                     if(s.equals("Y"))
     76                     {
     77                         break;
     78                     }
     79                     if(s.equals("N"))
     80                     {
     81                         a[sum].setdatabasecore(0);
     82                         a[sum].setenglishscore(0);
     83                         a[sum].setmathematicsscore(0);
     84                         a[sum].setnetworkscore(0);
     85                         a[sum].setsoftwarescore(0);
     86                         score_enter1();
     87                     }
     88                     
     89                 }
     90                 //用循环挨个录入成绩
     91                 if(i==1)
     92                 {
     93                     System.out.println("                                   请输入高等数学成绩:XXX");
     94                     System.out.println("**********************************************************");
     95                     double c=scan.nextDouble();
     96                     a[sum].setmathematicsscore(c);
     97 
     98                 }
     99                 else if(i==2)
    100                 {
    101                     System.out.println("                                   请输入大学英语成绩:XXX");
    102                     System.out.println("**********************************************************");
    103                     double c=scan.nextDouble();
    104                     a[sum].setenglishscore(c);
    105                 }
    106                 else if(i==3)
    107                 {
    108                     System.out.println("                                   请输入计算机网络成绩:XXX");
    109                     System.out.println("**********************************************************");
    110                     double c=scan.nextDouble();
    111                     a[sum].setnetworkscore(c);
    112                 }
    113                 else if(i==4)
    114                 {
    115                     System.out.println("                                   请输入数据库成绩:XXX");
    116                     System.out.println("**********************************************************");
    117                     double c=scan.nextDouble();
    118                     a[sum].setdatabasecore(c);
    119                 }
    120                 else if(i==5)
    121                 {
    122                     System.out.println("                                   请输入软件工程成绩:XXX");
    123                     System.out.println("**********************************************************");
    124                     double c=scan.nextDouble();
    125                     a[sum].setsoftwarescore(c);
    126                 }
    127                 }
    128         }
    129     }
    130     static void score_enter2(){
    131         System.out.println("***********************************************************\r"+
    132     "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    133 "                                         学生考试成绩录入界面\r"+
    134 "***********************************************************\r");
    135     }
    136     static void score_revise1(){
    137         score_revise2();
    138         int sum=0;
    139         String Stunnumber = scan.next();
    140         double primary=0;
    141         //将输入的学号与数组内容匹配
    142         for(sum=0;sum<5;sum++){
    143             if(Stunnumber.equals(a[sum].getStunnumber())){
    144                 break;
    145             }
    146         }
    147         if(sum==5){
    148             System.out.println("您输入的学号不正确,请重新输入!");
    149             score_revise1();
    150         }
    151         //输出该学生的各科成绩
    152         System.out.println("***********************************************************\r"+
    153 "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    154 "                                         学生考试成绩录入\r"+
    155 "***********************************************************\r"+
    156 "                                   学生学号:"+a[sum].getStunnumber()+"\r"+
    157 "                                   学生姓名:"+a[sum].getname()+"\r"+
    158 "                 1、高等数学成绩:"+a[sum].getmathematicsscore()+"\r"+
    159 "                 2、大学英语成绩:"+a[sum].getenglishscore()+"\r"+
    160 "                 3、计算机网络成绩:"+a[sum].getnetworkscore()+"\r"+
    161 "                 4、数据库成绩:"+a[sum].getdatabasescore()+"\r"+
    162 "                 5、软件工程成绩:"+a[sum].getsoftwarescore()+"\r"+
    163 "**********************************************************");
    164         int x = scan.nextInt();
    165          System.out.println("***********************************************************\r" + 
    166                     "                  石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r" + 
    167                     "                       学生考试成绩录入界面\r" + 
    168                     "***********************************************************\r"+
    169                     "                             学生学号:"+a[sum].getStunnumber()+"\r"  + 
    170                     "                             学生姓名:"+a[sum].getname() 
    171                     );
    172          //用 Switch语句实现各个成绩的修改操作
    173          switch(x){
    174          case 1 : System.out.println("                             请输入修改后的高等数学成绩:");
    175          System.out.println("**********************************************************");
    176          primary = a[sum].getmathematicsscore();
    177          a[sum].setmathematicsscore(scan.nextDouble());break;
    178          case 2 : System.out.println("                             请输入修改后的大学英语成绩:");
    179          System.out.println("**********************************************************");
    180          primary = a[sum].getenglishscore();
    181          a[sum].setenglishscore(scan.nextDouble());break;
    182          case 3 : System.out.println("                             请输入修改后的计算机网络成绩:");
    183          System.out.println("**********************************************************");
    184          primary = a[sum].getnetworkscore();
    185          a[sum].setnetworkscore(scan.nextDouble());break;
    186          case 4 : System.out.println("                             请输入修改后的数据库成绩:");
    187          System.out.println("**********************************************************");
    188          primary = a[sum].getdatabasescore();
    189          a[sum].setdatabasecore(scan.nextDouble());break;
    190          case 5 : System.out.println("                             请输入修改后的软件工程成绩:");
    191          System.out.println("**********************************************************");
    192          a[sum].setsoftwarescore(scan.nextDouble());break;
    193          }
    194          //输出修改后的各科成绩
    195          System.out.println("***********************************************************\r"+
    196 "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    197 "                                         学生考试成绩录入\r"+
    198 "***********************************************************\r"+
    199 "                                   学生学号:"+a[sum].getStunnumber()+"\r"+
    200 "                                   学生姓名:"+a[sum].getname()+"\r"+
    201 "                 1、高等数学成绩:"+a[sum].getmathematicsscore()+"\r"+
    202 "                 2、大学英语成绩:"+a[sum].getenglishscore()+"\r"+
    203 "                 3、计算机网络成绩:"+a[sum].getnetworkscore()+"\r"+
    204 "                 4、数据库成绩:"+a[sum].getdatabasescore()+"\r"+
    205 "                 5、软件工程成绩:"+a[sum].getsoftwarescore()+"\r"+
    206 "                 该学生成绩已修改完毕,是否提交(Y/N)\r"+
    207 "**********************************************************");
    208          String pan = scan.next();
    209          if(pan.equals("Y")){
    210              return;
    211          }
    212          //还原原成绩
    213          if(pan.equals("N")){
    214              switch(x){
    215              case 1 : a[sum].setmathematicsscore(primary);break;
    216              case 2 : a[sum].setenglishscore(primary);break;
    217              case 3 : a[sum].setnetworkscore(primary);break;
    218              case 4 : a[sum].setdatabasecore(primary);break;
    219              case 5 : a[sum].setsoftwarescore(primary);break;
    220              }
    221              score_revise1();
    222              
    223              
    224          }
    225     }
    226     static void score_revise2(){
    227         //打印修改界面
    228         System.out.println("***********************************************************\r"+
    229     "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    230 "                                         学生考试成绩修改界面\r"+
    231 "***********************************************************\r"+
    232 "                                         请输入学生学号:XXXXXXXX\r"+
    233 "**********************************************************");
    234     }
    235     static void score_countgpa(){
    236         score_printcountgpamain();
    237         String stunumber = scan.next();
    238         int sum;
    239         for(sum=0;sum<5;sum++){
    240             if(stunumber.equals(a[sum].getStunnumber())){
    241                 break;
    242             }
    243         }
    244         boolean pd1=false;
    245         double gpa1=(score_countgpa1(a[sum].getdatabasescore())*3+score_countgpa1(a[sum].getenglishscore())*3+
    246                 score_countgpa1(a[sum].getmathematicsscore())*4+score_countgpa1(a[sum].getnetworkscore())*4+
    247                 score_countgpa1(a[sum].getsoftwarescore())*2)/16;
    248         if(gpa1>=2.0) pd1=true;
    249         if(pd1) {
    250             System.out.println("***********************************************************\r"+
    251 "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    252 "                                         学生考试成绩绩点计算界面\r"+
    253 "***********************************************************\r"+
    254 "                                                     学生学号:"+a[sum].getStunnumber()+"\r"+
    255 "                                                     学生姓名:"+a[sum].getname()+"\r"+
    256 "                     1、高等数学成绩绩点:"+score_countgpa1(a[sum].getmathematicsscore())+"\r"+
    257 "                     2、大学英语成绩绩点:"+score_countgpa1(a[sum].getenglishscore())+"\r"+
    258 "                     3、计算机网络成绩绩点:"+score_countgpa1(a[sum].getnetworkscore())+"\r"+
    259 "                     4、数据库成绩绩点::"+score_countgpa1(a[sum].getdatabasescore())+"\r"+
    260 "                     5、软件工程成绩绩点:"+score_countgpa1(a[sum].getsoftwarescore())+"\r"+
    261 "                     你的平均学分绩点为:"+gpa1+"\r"+
    262 "                     提示信息:您的绩点已经达到毕业要求!"+"\r"+
    263 "                     是否返回系统主界面:(Y/N)"+
    264 "**********************************************************");}
    265             if(!pd1){            System.out.println("***********************************************************\r"+
    266                     "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    267                     "                                         学生考试成绩绩点计算界面\r"+
    268                     "***********************************************************\r"+"\r"+
    269                     "                                         学生学号:"+a[sum].getStunnumber()+"\r"+
    270                     "                                         学生姓名:"+a[sum].getname()+"\r"+
    271                     "                     1、高等数学成绩绩点:"+score_countgpa1(a[sum].getmathematicsscore())+"\r"+
    272                     "                     2、大学英语成绩绩点:"+score_countgpa1(a[sum].getenglishscore())+"\r"+
    273                     "                     3、计算机网络成绩绩点:"+score_countgpa1(a[sum].getnetworkscore())+"\r"+
    274                     "                     4、数据库成绩绩点::"+score_countgpa1(a[sum].getdatabasescore())+"\r"+
    275                     "                     5、软件工程成绩绩点:"+score_countgpa1(a[sum].getsoftwarescore())+"\r"+
    276                     "                                         你的平均学分绩点为:"+gpa1+"\r"+
    277                     "                                         提示信息:您的绩点未达到毕业要求!"+"\r"+
    278                     "                                         是否返回系统主界面:(Y/N)"+"\r"+
    279                     "**********************************************************");
    280             }
    281             String s = scan.next();
    282             if(s.equals("Y")) ;
    283             if(s.equals("N")) pd=false;
    284             }
    285     static void  score_printcountgpamain(){
    286         System.out.println("***********************************************************\r"+
    287 "                    石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    288 "                                         学生考试成绩绩点计算界面\r"+
    289 "***********************************************************\r"+
    290 "                                         请输入学生学号:XXXXXXXX\r"+
    291 "**********************************************************");
    292     }
    293 
    294     public static double score_countgpa1(double x){
    295         double gpa=0.0;
    296         if(x<60) gpa=0.0;
    297         if(x>=60&&x<=63.9) gpa=1.0;
    298         if(x>=64&&x<=65.9) gpa=1.5;
    299         if(x>=66&&x<=67.9) gpa=1.7;
    300         if(x>=68&&x<=71.9) gpa=2.0;
    301         if(x>=72&&x<=74.9) gpa=2.3;
    302         if(x>=75&&x<=77.9) gpa=2.7;
    303         if(x>=78&&x<=81.9) gpa=3.0;
    304         if(x>=82&&x<=84.9) gpa=3.3;
    305         if(x>=85&&x<=89.9) gpa=3.7;
    306         if(x>=90) gpa=4.0;
    307         return gpa;
    308     }
    309     static void exit(){
    310         //打印退出界面
    311         System.out.println("***********************************************************\r"+
    312 "           谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版\r"+
    313 "                                       制作人:刘梦鑫\r"+
    314 "***********************************************************\r");
    315     }
    316 public static void main(String[] args){
    317     //为数组开辟对应的空间
    318     a[0]= new ScoreInformation();
    319     a[1]= new ScoreInformation();
    320     a[2]= new ScoreInformation();
    321     a[3]= new ScoreInformation();
    322     a[4]= new ScoreInformation();
    323     //为数组内容赋值学号与姓名
    324     a[0].setname("一号");
    325     a[0].setStunnumber("20182766");
    326     a[1].setname("二号");
    327     a[1].setStunnumber("20182767");
    328     a[2].setname("三号");
    329     a[2].setStunnumber("20182768");
    330     a[3].setname("四号");
    331     a[3].setStunnumber("20182769");
    332     a[4].setname("五号");
    333     a[4].setStunnumber("20182770");
    334     while(pd)
    335     {
    336         printmain();
    337         int c = scan.nextInt();
    338         switch(c){
    339         case 1:score_enter1();break;
    340         case 2:score_revise1();break;    
    341         case 3:score_countgpa();break;
    342         case 4:exit();pd=false;break;
    343         default:System.out.println("您输入的数字有误,请重新输入!");break;
    344         }
    345     }
    346 }
    347 }
    public class ScoreInformation {/*定义七个变量*/
        private String stunnumber;/*学号*/
        private String name;/*学生姓名*/
        private double mathematicsscore;/*数学成绩*/
        private double englishscore;/*英语成绩*/
        private double networkscore;/*计算机网络成绩*/
        private double databasescore;//数据库成绩
        private double softwarescore;//软件工程成绩
        public String getStunnumber(){
            return stunnumber;//学号的输出
        }
        public void setStunnumber(String n){
            stunnumber=n;//学号的输入
        }
        public String getname(){
            return name;//名字的输出
        }
        public void setname(String a){
            name=a;}//名字的输入
        public double getmathematicsscore(){
            return mathematicsscore;//数学成绩的输入
        }
        public void setmathematicsscore(double b){
            mathematicsscore=b;//数学成绩的输出
        }
        public double getenglishscore(){
            return englishscore;//英语成绩的输入
        }
        public void setenglishscore(double c){
            englishscore=c;//英语成绩的输出
        }
        public double getnetworkscore(){
            return networkscore;//计算机网络成绩的输入
        }
        public void setnetworkscore(double  s){
            networkscore=s;//计算机网络成绩的输出
        }
        public double getdatabasescore(){
            return databasescore;//数据库成绩的输出
        }
        public void setdatabasecore(double e){
            databasescore=e;//数据库成绩的输入
        }
        public double getsoftwarescore(){
            return softwarescore;//软件工程成绩的输入
        }
        public void setsoftwarescore(double s){
            softwarescore=s;//软件工程成绩的输出
        }
    
    }

    总结:

    1.这个程序其实并不具有太强的功能,界面的打印基本都是依靠手工输出。其他各个功能的实现其实就是一堆方法的编写。

    2.在这个小软件中,我们使用了private定义的变量,使得变量的引用变得安全,但使用的方式却略显复杂。

    3.第一个功能,成绩录入,其实就是将学号与姓名和对应的数组匹配起来,然后将输入的成绩存储在数组中,其实也可以通过创建文件的方式进行储存,这样就会使得代码更加便捷。但这么长的程序谁愿意改呢~

    4.成绩的修改,其实就是第一个功能,基本一致。

    5.绩点计算,也比较简单,基本就是基本的计算就好了。

    总的来说,其实就是各个方法的最基本实现。看着代码比较长,其实在理解后编写也是比较的简单。

  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/11605141.html
Copyright © 2020-2023  润新知