• java课堂测试样卷-----简易学籍管理系统


    程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计算等功能的函数)和一个主函数Text类 (通过输入的数字选项进行功能的实现,因为退出系统代码量极少,所以在主函数中实现此功能)

    程序源代码及注释

    ScoreInformation类:

     1 //信1805-3 20183658 王兵兵
     2 package adc;
     3 
     4 public class ScoreInformation 
     5 {
     6         private String stunumber;                   //学生学号
     7         private String name;                        //学生姓名
     8         private double mathematicsscore;            //高等数学
     9         private double englishscore;                //大学英语
    10         private double networkscore;                //计算机网络
    11         private double databasescore;               //数据库
    12         private double softwarescore;                //软件工程
    13         ScoreInformation(String stunumber,String name,double mathematicsscore,double englishscore,double networkscore,double databasescore, double softwarescore)
    14         {  //通过构造函数默认赋值
    15             this.stunumber=stunumber;
    16             this.name=name;
    17             this.mathematicsscore=mathematicsscore;
    18             this.englishscore=englishscore;
    19             this.networkscore=networkscore;
    20             this.databasescore=databasescore;
    21             this.softwarescore=softwarescore;
    22         }
    23         public void setstunumber(String stunumber)              //对学生的学号进行赋值操作
    24         {
    25             this.stunumber=stunumber;
    26         }
    27         public void setname(String name)                   //对学生的姓名进行赋值操作
    28         {
    29             this.name=name;
    30         }
    31         public void setmathematicsscore(double mathematicsscore)         //对学生的高等数学成绩进行赋值操作
    32         {
    33             this.mathematicsscore=mathematicsscore;
    34         }
    35         public void setenglishscore(double englishscore)                //对学生的大学英语成绩进行赋值操作
    36         {
    37             this.englishscore=englishscore;
    38         }
    39         public void setnetworkscore(double networkscore)                 //对学生的计算机网络成绩进行赋值操作
    40         {
    41             this.networkscore=networkscore;
    42         }
    43         public void setdatabasescore(double databasescore)             //对学生的数据库成绩进行赋值操作
    44         {
    45             this.databasescore=databasescore;
    46         }
    47         public void setsoftwarescore(double softwarescore)             //对学生的软件工程成绩进行赋值操作
    48         {
    49             this.softwarescore=softwarescore;
    50         }
    51         public String getstunumber()           //返回学生的学号
    52         {
    53             return this.stunumber;
    54         }
    55         public String getname()                  //返回学生的姓名
    56         {
    57             return this.name;
    58         }
    59         public double getmathematicsscore()         //返回学生的高等数学成绩
    60         {
    61             return this.mathematicsscore;
    62         }
    63         public double getenglishscore()               //返回学生的大学英语成绩
    64         {
    65             return this.englishscore;
    66         }       
    67         public double getnetworkscore()              //返回学生的计算机网络成绩
    68         {
    69             return this.networkscore;
    70         }
    71         public double getdatabasescore()              //返回学生的数据库成绩
    72         {
    73             return this.databasescore;
    74         }
    75         public double getsoftwarescore()              //返回学生的软件工程成绩
    76         {
    77             return this.softwarescore;
    78         }
    79 
    80 }

    ScoreManagement类

      1 package adc;
      2 import java.util.Scanner;
      3 public class ScoreMangerment 
      4 {        
      5          int j=0;
      6         Scanner te=new Scanner(System.in);
      7         ScoreInformation[] SI=new ScoreInformation[100];        //定义一个学生学籍信息的数组
      8         ScoreMangerment() 
      9         {   //利用构造函数初始化5个学生的信息
     10             SI[0]=new ScoreInformation("20183658","王兵兵",0,0,0,0,0);
     11             SI[1]=new ScoreInformation("20183659","张三",0,0,0,0,0);
     12             SI[2]=new ScoreInformation("20183660","李四",0,0,0,0,0);
     13             SI[3]=new ScoreInformation("20183661","王无",0,0,0,0,0);
     14             SI[4]=new ScoreInformation("20183662","李六",0,0,0,0,0);
     15         }
     16         public void meau()           //输出系统主界面函数
     17         {
     18             System.out.println("********************************************************");
     19             System.out.println("             	石家庄铁道大学软件工程系");
     20             System.out.println("             	学籍管理系统系统2019版");
     21             System.out.println("********************************************************");
     22             System.out.println("                1、学生考试成绩录入");
     23             System.out.println("                2、学生考试成绩修改");
     24             System.out.println("                3、计算学生成绩绩点");
     25             System.out.println("                4、退出学籍管理系统");
     26             System.out.println("********************************************************");
     27        }
     28         public void scorerecord()                 //功能1:实现学生信息的录入
     29         {
     30             System.out.println("********************************************************");
     31             System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
     32             System.out.println("             	考生成绩录入");
     33             System.out.println("********************************************************");
     34             System.out.println("                请输入考生学号:");
     35             System.out.println("********************************************************");
     36              while(!getanswer())      //用来保证学生的输入的学号存在,否则一直输入,直到输入学生学号存在为止
     37              {
     38                  System.out.println("你输入的学号有误或不存在!");
     39                  System.out.println("********************************************************");
     40                  System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
     41                  System.out.println("             	考生成绩录入");
     42                  System.out.println("********************************************************");
     43                  System.out.println("                请输入考生学号:");
     44                  System.out.println("********************************************************");
     45              }
     46              scoreluruPrint1(j);
     47              while(!pandun1())      //输入Y或N时对应的程序操作
     48              {
     49                  scoreluruPrint1(j);      //输入N返回录入界面
     50              }
     51              meau();            //输入Y后返回主界面
     52         }
     53         public Boolean getanswer()     //检查学号是否存在
     54         {   
     55             String a=te.next();
     56             Boolean temp=false;
     57             for(int i=0;i<5;i++)
     58             {  
     59                 if(a.equals(SI[i].getstunumber()))
     60                 {
     61                     temp=true;
     62                     j=i;
     63                     break;
     64                 }
     65             }
     66             return temp;
     67         }
     68         public void scoreluruPrint1(int j)                    //实现学生成绩信息的输入,并且在输入完一科成绩后进行学生信息的更新
     69         {   
     70              System.out.println("********************************************************");
     71              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
     72              System.out.println("             	考生成绩录入");
     73              System.out.println("********************************************************");
     74              System.out.println("                学生学号:"+SI[j].getstunumber());
     75              System.out.println("                学生姓名:"+SI[j].getname());
     76              System.out.println("                请输入高等数学成绩:");
     77              System.out.println("********************************************************");
     78              SI[5]=new ScoreInformation(" "," ",0,0,0,0,0);
     79              SI[5].setstunumber(SI[j].getstunumber());
     80              SI[5].setname(SI[j].getname());
     81              double temp1=te.nextDouble();
     82              SI[5].setmathematicsscore(temp1);
     83              System.out.println("********************************************************");
     84              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
     85              System.out.println("             	考生成绩录入");
     86              System.out.println("********************************************************");
     87              System.out.println("                学生学号:"+SI[5].getstunumber());
     88              System.out.println("                学生姓名:"+SI[5].getname());
     89              System.out.println("                高等数学成绩 :"+SI[5].getmathematicsscore());
     90              System.out.println("                请输入大学英语成绩:");
     91              System.out.println("********************************************************");
     92              double temp2=te.nextDouble();
     93              SI[5].setenglishscore(temp2);
     94              System.out.println("********************************************************");
     95              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
     96              System.out.println("             	考生成绩录入");
     97              System.out.println("********************************************************");
     98              System.out.println("                学生学号:"+SI[5].getstunumber());
     99              System.out.println("                学生姓名:"+SI[5].getname());
    100              System.out.println("                高等数学成绩 :"+SI[5].getmathematicsscore());
    101              System.out.println("                大学英语成绩:"+SI[5].getenglishscore());
    102              System.out.println("                请输入计算机网络成绩:");
    103              System.out.println("********************************************************");
    104              double temp3=te.nextDouble();
    105              SI[5].setnetworkscore(temp3);
    106              System.out.println("********************************************************");
    107              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    108              System.out.println("             	考生成绩录入");
    109              System.out.println("********************************************************");
    110              System.out.println("                学生学号:"+SI[5].getstunumber());
    111              System.out.println("                学生姓名:"+SI[5].getname());
    112              System.out.println("                高等数学成绩 :"+SI[5].getmathematicsscore());
    113              System.out.println("                大学英语成绩:"+SI[5].getenglishscore());
    114              System.out.println("                计算机网络成绩:"+SI[5].getnetworkscore());
    115              System.out.println("                请输入数据库成绩:");
    116              System.out.println("********************************************************");
    117              double temp4=te.nextDouble();
    118              SI[5].setdatabasescore(temp4);
    119              System.out.println("********************************************************");
    120              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    121              System.out.println("             	考生成绩录入");
    122              System.out.println("********************************************************");
    123              System.out.println("                学生学号:"+SI[5].getstunumber());
    124              System.out.println("                学生姓名:"+SI[5].getname());
    125              System.out.println("                高等数学成绩 :"+SI[5].getmathematicsscore());
    126              System.out.println("                大学英语成绩:"+SI[5].getenglishscore());
    127              System.out.println("                计算机网络成绩:"+SI[5].getnetworkscore());
    128              System.out.println("                数据库成绩:"+SI[5].getdatabasescore());
    129              System.out.println("                请输入软件工程成绩:");
    130              System.out.println("********************************************************");
    131              double temp5=te.nextDouble();
    132              SI[5].setsoftwarescore(temp5);
    133              System.out.println("********************************************************");
    134              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    135              System.out.println("             	考生成绩录入");
    136              System.out.println("********************************************************");
    137              System.out.println("                学生学号:"+SI[5].getstunumber());
    138              System.out.println("                学生姓名:"+SI[5].getname());
    139              System.out.println("                高等数学成绩 :"+SI[5].getmathematicsscore());
    140              System.out.println("                大学英语成绩:"+SI[5].getenglishscore());
    141              System.out.println("                计算机网络成绩:"+SI[5].getnetworkscore());
    142              System.out.println("                数据库成绩:"+SI[5].getdatabasescore());
    143              System.out.println("                软件工程成绩:"+SI[5].getsoftwarescore());
    144              System.out.println("           该学生生成绩已录入完毕,是否提交(Y/N)");
    145              System.out.println("********************************************************");
    146         }
    147         public Boolean pandun1()     //输入Y或N并返回Boolean值
    148         {
    149             String temp6=te.next();
    150             if(temp6.equals("Y"))
    151             {
    152                 SI[j]=SI[5];
    153                 return true;
    154             }
    155             else
    156             {
    157                 return false;
    158             }
    159         }
    160         public void modifyscore()      //功能2:实现学生成绩的修改
    161         {
    162             System.out.println("********************************************************");
    163             System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    164             System.out.println("             	考生成绩修改界面");
    165             System.out.println("********************************************************");
    166             System.out.println("                请输入考生学号:");
    167             System.out.println("********************************************************");
    168              while(!getanswer())          //通过while 判断输入的学号是否存在
    169              {
    170                  System.out.println("你输入的学号有误或不存在!");
    171                  System.out.println("********************************************************");
    172                  System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    173                  System.out.println("             	考生成绩修改界面");
    174                  System.out.println("********************************************************");
    175                  System.out.println("                请输入考生学号:");
    176                  System.out.println("********************************************************");
    177              }
    178              System.out.println("********************************************************");         //输出学生的全部信息
    179              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    180              System.out.println("             	考生成绩录入");
    181              System.out.println("********************************************************");
    182              System.out.println("                学生学号:"+SI[j].getstunumber());
    183              System.out.println("                学生姓名:"+SI[j].getname());
    184              System.out.println("              1、高等数学成绩 :"+SI[j].getmathematicsscore());
    185              System.out.println("              2、大学英语成绩:"+SI[j].getenglishscore());
    186              System.out.println("              3、计算机网络成绩:"+SI[j].getnetworkscore());
    187              System.out.println("              4、数据库成绩:"+SI[j].getdatabasescore());
    188              System.out.println("              5、软件工程成绩:"+SI[j].getsoftwarescore());
    189              System.out.println("********************************************************");
    190              modifyspecialscore();    //修改成绩
    191              System.out.println("********************************************************");
    192              System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    193              System.out.println("             	考生成绩录入");
    194              System.out.println("********************************************************");
    195              System.out.println("                学生学号:"+SI[6].getstunumber());
    196              System.out.println("                学生姓名:"+SI[6].getname());
    197              System.out.println("               1、高等数学成绩 :"+SI[6].getmathematicsscore());
    198              System.out.println("               2、大学英语成绩:"+SI[6].getenglishscore());
    199              System.out.println("               3、计算机网络成绩:"+SI[6].getnetworkscore());
    200              System.out.println("               4、数据库成绩:"+SI[6].getdatabasescore());
    201              System.out.println("               5、软件工程成绩:"+SI[6].getsoftwarescore());
    202              System.out.println("           该学生生成绩已录入完毕,是否提交(Y/N)");
    203              System.out.println("********************************************************");
    204              while(!pandun2())
    205              {
    206                  modifyscore() ;
    207              }
    208               meau();
    209         }
    210        public void modifyspecialscore()      //修改选定的成绩
    211        {
    212            SI[6]=new ScoreInformation(" "," ",0,0,0,0,0);
    213            SI[6]=SI[j];
    214            System.out.println("请输入你要修改的成绩对应的数字选项:");
    215            int temp7=te.nextInt();
    216            if(temp7==1)
    217            {
    218              System.out.println("********************************************************");
    219                System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    220                System.out.println("             	考生成绩录入");
    221                System.out.println("********************************************************");
    222                System.out.println("                学生学号:"+SI[j].getstunumber());
    223                System.out.println("                学生姓名:"+SI[j].getname());
    224                System.out.println("            请输入修改后高等数学成绩 :");
    225                System.out.println("********************************************************");
    226                double index1=te.nextDouble();
    227                SI[6].setmathematicsscore(index1);
    228            }
    229            else if(temp7==2)
    230            {
    231              System.out.println("********************************************************");
    232                System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    233                System.out.println("             	考生成绩录入");
    234                System.out.println("*******************************************************");
    235                System.out.println("                学生学号:"+SI[j].getstunumber());
    236                System.out.println("                学生姓名:"+SI[j].getname());
    237                System.out.println("            请输入修改后大学英语成绩 :");
    238                System.out.println("********************************************************");
    239                double index2=te.nextDouble();
    240                SI[6].setenglishscore(index2);
    241            }
    242            else if(temp7==3)
    243            {
    244              System.out.println("********************************************************");
    245                System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    246                System.out.println("             	考生成绩录入");
    247                System.out.println("*******************************************************");
    248                System.out.println("                学生学号:"+SI[j].getstunumber());
    249                System.out.println("                学生姓名:"+SI[j].getname());
    250                System.out.println("            请输入修改后计算机网络成绩 :");
    251                System.out.println("********************************************************");
    252                double index3=te.nextDouble();
    253                SI[6].setnetworkscore(index3);
    254            }
    255            else if(temp7==4)
    256            {
    257              System.out.println("********************************************************");
    258                System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    259                System.out.println("             	考生成绩录入");
    260                System.out.println("*******************************************************");
    261                System.out.println("                学生学号:"+SI[j].getstunumber());
    262                System.out.println("                学生姓名:"+SI[j].getname());
    263                System.out.println("            请输入修改后数据库成绩 :");
    264                System.out.println("********************************************************");
    265                double index4=te.nextDouble();
    266                SI[6].setdatabasescore(index4);
    267            }
    268            else if(temp7==5)
    269            {
    270              System.out.println("********************************************************");
    271                System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    272                System.out.println("             	考生成绩录入");
    273                System.out.println("*******************************************************");
    274                System.out.println("                学生学号:"+SI[j].getstunumber());
    275                System.out.println("                学生姓名:"+SI[j].getname());
    276                System.out.println("            请输入修改后软件工程成绩 :");
    277                System.out.println("********************************************************");
    278                double index5=te.nextDouble();
    279                SI[6].setsoftwarescore(index5);
    280            }
    281        }
    282        public Boolean pandun2()         //输入Y或N并返回Boolean值
    283        {
    284            String temp8=te.next();
    285            if(temp8.equals("Y"))
    286            {
    287                SI[j]=SI[6];
    288                return true;
    289            }
    290            else
    291            {
    292                return false;
    293            }
    294        }
    295        public void calulatescorepoint()        //功能3:计算学生考试成绩对应的绩点
    296        {
    297         System.out.println("********************************************************");
    298         System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    299         System.out.println("             	学生考试成绩绩点计算界面");
    300         System.out.println("********************************************************");
    301         System.out.println("                      请输入考生学号:");
    302         System.out.println("********************************************************");
    303            while(!getanswer())
    304            {
    305                System.out.println("你输入的学号有误或不存在!");
    306                System.out.println("********************************************************");
    307                System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    308                System.out.println("             	考生成绩录入");
    309                System.out.println("********************************************************");
    310             System.out.println("                  请输入考生学号:");
    311             System.out.println("********************************************************");
    312        }
    313            System.out.println("********************************************************");
    314            System.out.println("    	石家庄铁道大学软件工程系学籍管理2019版");
    315            System.out.println("           	学生成绩绩点计算界面");
    316            System.out.println("********************************************************");
    317            System.out.println("                   学生学号:"+SI[j].getstunumber());
    318            System.out.println("                   学生姓名:"+SI[j].getname());
    319            System.out.println("              1、高等数学成绩 :"+SI[j].getmathematicsscore());
    320            System.out.println("              2、大学英语成绩:"+SI[j].getenglishscore());
    321            System.out.println("              3、计算机网络成绩:"+SI[j].getnetworkscore());
    322            System.out.println("              4、数据库成绩:"+SI[j].getdatabasescore());
    323            System.out.println("              5、软件工程成绩:"+SI[j].getsoftwarescore());
    324             concullate();
    325            System.out.println("                是否返回主界面(Y/N)");
    326            System.out.println("********************************************************");
    327            pandun3();
    328        }
    329        public void concullate()           //判断学生绩点是否满足毕业要求
    330        {   double sum=0;
    331            sum+=scorepoint(SI[j].getmathematicsscore())*5.0;
    332            sum+=scorepoint(SI[j].getenglishscore())*3.0;
    333            sum+=scorepoint(SI[j].getnetworkscore())*4.0;
    334            sum+=scorepoint(SI[j].getdatabasescore())*3.0;
    335            sum+=scorepoint(SI[j].getsoftwarescore())*4.0;
    336            sum=sum/19;
    337            String result=String.format("%.2f", sum);
    338            System.out.println("           你的平均学分绩点为:"+result);
    339            if(sum>=2.0)
    340                System.out.println("     提示信息:你的学分绩点已达到毕业要求!");
    341            else
    342                System.out.println("     提示信息:你的学分绩点不满足毕业要求!");
    343        }
    344        public double scorepoint(double sdc)          //返回学生成绩对应的绩点
    345        {  
    346            double index0=0;
    347         if(sdc<60)
    348         {
    349             index0=0;
    350         }
    351         else if(sdc>=60&&sdc<=63.9)
    352         {
    353             index0=1.0;
    354         }
    355         else if(sdc>=64&&sdc<=65.9)
    356         {
    357             index0=1.5;
    358         }
    359         else if(sdc>=66&&sdc<=67.9)
    360         {
    361             index0=1.7;
    362         }
    363         else if(sdc>=68&&sdc<=71.9)
    364         {
    365             index0=2.0;
    366         }
    367         else if(sdc>=72&&sdc<=74.9)
    368         {
    369             index0=2.3;
    370         }
    371         else if(sdc>=75&&sdc<=77.9)
    372         {
    373             index0=2.7;
    374         }
    375         else if(sdc>=78&&sdc<=81.9)
    376         {
    377             index0=3.0;
    378         }
    379         else if(sdc>=82&&sdc<=84.9)
    380         {
    381             index0=3.3;
    382         }
    383         else if(sdc>=85&&sdc<=88.9)
    384         {
    385             index0=3.7;
    386         }
    387         else
    388             index0=4.0;
    389         return index0;
    390        }
    391        public void pandun3()            //输入Y或N后进行相应的操作
    392     {
    393         String temp9=te.next();
    394         if(temp9.equals("Y"))
    395         {
    396             meau();
    397         }
    398         else;
    399     }
    400 }

    主函数

     1 package adc;
     2 import java.util.*;
     3 public class Text {
     4 
     5     public static void main(String[] args) 
     6     {
     7         Scanner input=new Scanner(System.in);
     8         ScoreMangerment SM=new ScoreMangerment();
     9         SM.meau();                  //显示系统主界面
    10         while(true)
    11         {
    12             int a=input.nextInt();
    13             if(a==1)
    14             {
    15                 SM.scorerecord();        //调用成绩录入函数
    16                 
    17             }
    18             else if(a==2)
    19             {
    20                 SM.modifyscore();    //调用成绩修改函数
    21             }
    22             else if(a==3)
    23             {
    24                 SM.calulatescorepoint();     //调用计算学生绩点函数
    25             }
    26             else if(a==4)             //退出系统
    27             {
    28                 System.out.println("********************************************************");
    29                 System.out.println("             	石家庄铁道大学软件工程系学籍管理2019版");
    30                 System.out.println("             	制作人:王兵兵");
    31                 System.out.println("********************************************************");
    32                 break;
    33             }
    34             else      //防止输入的选项不存在
    35             {
    36                 System.out.println("该选项不存在!");
    37                 SM.meau();
    38             }
    39         }
    40         input.close(); 
    41     }
    42     
    43 }

    心得体会:在写复杂且代码量庞大的程序时,一定要保证自己的逻辑思维清楚,一旦混乱,就会条理不清,调试寻找代码错误就会花费很长时间,所以逻辑思维很重要。

    再者自己要保持良好的心态,一定要把题读懂读透,不要看一遍题后就立即开始做,先构造下自己的思路和框架。

    最后就是基本功不扎实:对键盘不熟悉,敲代码的速度过慢以及准确率低,日后要多加练习。

  • 相关阅读:
    《剑指offer》第五十五题(平衡二叉树)
    《剑指offer》第五十五题(二叉树的深度)
    《剑指offer》第五十四题(二叉搜索树的第k个结点)
    《剑指offer》第五十三题(数组中数值和下标相等的元素)
    《剑指offer》第五十三题(0到n-1中缺失的数字)
    《剑指offer》第五十三题(数字在排序数组中出现的次数)
    《剑指offer》第五十二题(两个链表的第一个公共结点)
    《剑指offer》第五十一题(数组中的逆序对)
    http://www.cnblogs.com/amylis_chen/archive/2010/07/15/1778217.html
    在做百度地图开发
  • 原文地址:https://www.cnblogs.com/weixiao1717/p/11506441.html
Copyright © 2020-2023  润新知