zoukankan      html  css  js  c++  java
  • 转入软工后第一节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.绩点计算,也比较简单,基本就是基本的计算就好了。

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

  • 相关阅读:
    2019.1.8兔子问题和汉诺塔问题的解决代码
    REST
    存储过程和函数练习
    十六、性能优化
    十五、MySQl日志
    Shell入门
    十四、数据备份
    十三、MySQL触发器
    十二、视图
    十一、MySQL锁
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/11605141.html
Copyright © 2011-2022 走看看