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

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

posted @ 2019-09-28 22:05  武神酱丶  阅读(209)  评论(0编辑  收藏  举报