JAVA测验—学生学籍管理系统

设计思路:

创建基本的ScoreInfoemation类,创建基本的数据成员以及基本的设置方法、获取数据方法以及有无参的构造方法。

 1 package Test;
 2 
 3 import java.util.*;
 4 
 5 public class ScoreInformation {      
 6 
 7     private String stunumber;
 8     private String name;
 9     private double  mathematicsscore;
10     private double englishisscore;
11     private double networkscore;
12     private double databasescore;
13     private double softwarescore;
14     public void setStunumber(String stu)
15     {
16         this.stunumber=stu;
17     }
18     String getStunumber()
19     {
20         return this.stunumber;
21     }
22     void setName(String name)
23     {
24         this.name=name;
25     }
26     String getName()
27     {
28         return this.name;
29     }
30     void setMathematicsscore(double math)
31     {
32         this.mathematicsscore=math;
33     }
34     double getMathematicsscore()
35     {
36         return this.mathematicsscore;
37     }
38     void setEnglishisscore(double english)
39     {
40         this.englishisscore=english;
41     }
42     double getEnglishisscore()
43     {
44         return this.englishisscore;
45     }
46     void setNetworkscore(double net)
47     {
48         this.networkscore=net;
49     }
50     double getNetworkscore()
51     {
52         return this.networkscore;
53     }
54     void setDatebasescore(double data)
55     {
56         this.databasescore=data;
57     }
58     double getDatabasescore()
59     {
60         return this.databasescore;
61     }
62     void setSoftwarescore(double soft)
63     {
64         this.softwarescore=soft;
65     }
66     double getSoftwarescore()
67     {
68         return this.softwarescore;
69     }
70     public ScoreInformation(String stu,String name,double math,double english,double network,double data,double soft) 
71     {
72         // TODO Auto-generated constructor stub
73         this.stunumber=stu;
74         this.name=name;
75         this.mathematicsscore=math;
76         this.englishisscore=english;
77         this.networkscore=network;
78         this.databasescore=data;
79         this.softwarescore=soft;
80     }
81     ScoreInformation()
82     {
83         this.stunumber=null;
84         this.name=null;
85         this.mathematicsscore=0;
86         this.englishisscore=0;
87         this.networkscore=0;
88         this.databasescore=0;
89         this.softwarescore=0;
90     }
91 
92 }

再创建一个管理类ScoreManagement,并在类里创建实现各功能的函数,以ScoreInformation类的对象并初始化。

  1 package Test;
  2 
  3 import java.util.*;
  4 
  5 public class ScoreManagement {
  6     Scanner in=new Scanner(System.in);
  7     ScoreInformation stu[]=new ScoreInformation[5];
  8     static boolean key=true;                                //设置静态变量用于退出程序
  9     String strChinese[]= {"请输入","学生学号:","学生姓名:","高等数学成绩:","大学英语成绩:","计算机网络成绩:","数据库成绩:","软件工程成绩:"};
 10     public ScoreManagement() {                              //构造五个初始化数据
 11         // TODO Auto-generated constructor stub
 12         stu[0]=new ScoreInformation("20183691","李浩",100,90,90,100,98);
 13         stu[1]=new ScoreInformation("20181000","诸葛钢铁",98,90,90,89,98);
 14         stu[2]=new ScoreInformation("20181001","小沈阳",78,90,90,89,98);
 15         stu[3]=new ScoreInformation("20181002","赵四",56,90,90,20,98);
 16         stu[4]=new ScoreInformation("20181003","刘能",76,90,90,45,98);
 17     }
 18     void setScore()                                            //实现学生成绩录入功能
 19     {
 20         String tempStr=null;
 21         String tempkey=null;
 22         double a[]=new double[5];
 23         do
 24         {
 25             System.out.println("***********************************************************");
 26             System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
 27             System.out.println("学生考试成绩录入");
 28             System.out.println("***********************************************************");
 29             System.out.println("请输入学生学号:XXXXXXXX");
 30             System.out.println("***********************************************************");
 31             tempStr=in.next();
 32             for(int i=0;i<5;i++)
 33             {
 34                 if(tempStr.equals(stu[i].getStunumber()))
 35                 {
 36                     for(int j=1;j<=5;j++)
 37                     {
 38                         System.out.println("***********************************************************");
 39                         System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
 40                         System.out.println("学生考试成绩录入");
 41                         System.out.println("***********************************************************");
 42                         System.out.println("学生学号:"+stu[i].getStunumber());
 43                         System.out.println("学生姓名:"+stu[i].getName());
 44                         System.out.println(strChinese[0]+strChinese[j+2]+"XXX");
 45                         System.out.println("***********************************************************");
 46                         a[j-1]=in.nextDouble();
 47                         if(j==5)
 48                         {
 49                             System.out.println("***********************************************************");
 50                             System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
 51                             System.out.println("学生考试成绩录入");
 52                             System.out.println("***********************************************************");
 53                             System.out.println("学生学号:"+stu[i].getStunumber());
 54                             System.out.println("学生姓名:"+stu[i].getName());
 55                             for(int k=3;k<8;k++)
 56                                 System.out.println(strChinese[k]+a[k-3]);
 57                             System.out.println("该学生成绩已录入完毕,是否提交(Y/N)");
 58                             System.out.println("***********************************************************");
 59                             tempkey=in.next();
 60                             if(tempkey.equals("Y"))
 61                                 stu[i]=new ScoreInformation(stu[i].getStunumber(),stu[i].getName(),a[0],a[1],a[2],a[3],a[4]);    //用构造方法给对象赋值
 62                         }
 63                     }
 64                     break;
 65                 }
 66                 if(i==4)
 67                     {
 68                         tempkey="N";
 69                         System.out.println("********该学号不存在********");
 70                     }
 71             }
 72         }while(tempkey.equals("N"));
 73     }
 74     void updataScore()                                                        //学生成绩更新功能
 75     {
 76         String tempStr=null;
 77         String tempkey=null;
 78         int tempselect;
 79         do
 80         {
 81             System.out.println("***********************************************************");
 82             System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
 83             System.out.println("学生考试成绩修改");
 84             System.out.println("***********************************************************");
 85             System.out.println("请输入学生学号:XXXXXXXX");
 86             System.out.println("***********************************************************");
 87             tempStr=in.next();
 88             for(int i=0;i<5;i++)
 89             {
 90                 if(tempStr.equals(stu[i].getStunumber()))
 91                 {
 92                     double []a= {stu[i].getMathematicsscore(),stu[i].getEnglishisscore(),stu[i].getNetworkscore(),stu[i].getDatabasescore(),stu[i].getSoftwarescore()};
 93                     System.out.println("***********************************************************");
 94                     System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
 95                     System.out.println("学生考试成绩录入");
 96                     System.out.println("***********************************************************");
 97                     System.out.println("学生学号:"+stu[i].getStunumber());
 98                     System.out.println("学生姓名:"+stu[i].getName());
 99                     System.out.println("1、高等数学成绩:"+stu[i].getMathematicsscore());
100                     System.out.println("2、大学英语成绩:"+stu[i].getEnglishisscore());
101                     System.out.println("3、计算机网络成绩:"+stu[i].getNetworkscore());
102                     System.out.println("4、数据库成绩:"+stu[i].getDatabasescore());
103                     System.out.println("5、软件工程成绩:"+stu[i].getSoftwarescore());
104                     System.out.println("***********************************************************");
105                     tempselect=in.nextInt();
106                     System.out.println("***********************************************************");
107                     System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
108                     System.out.println("学生考试成绩录入界面");
109                     System.out.println("***********************************************************");
110                     System.out.println("学生学号:"+stu[i].getStunumber());
111                     System.out.println("学生姓名:"+stu[i].getName());
112                     System.out.println("请输入修改后"+strChinese[tempselect+2]+"XXX");
113                     System.out.println("***********************************************************");
114                     a[tempselect-1]=in.nextDouble();
115                     System.out.println("***********************************************************");
116                     System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
117                     System.out.println("学生考试成绩录入");
118                     System.out.println("***********************************************************");
119                     System.out.println("学生学号:"+stu[i].getStunumber());
120                     System.out.println("学生姓名:"+stu[i].getName());
121                     for(int j=1;j<=5;j++)
122                         System.out.println(j+"、"+strChinese[j+2]+a[j-1]);
123                     System.out.println("该学生成绩已录入完毕,是否提交(Y/N)");
124                     System.out.println("***********************************************************");
125                     tempkey=in.next();
126                     if(tempkey.equals("Y"))
127                     {
128                         stu[i]=new ScoreInformation(stu[i].getStunumber(),stu[i].getName(),a[0],a[1],a[2],a[3],a[4]);
129                     }
130                     break;
131                 }
132                 if(i==4)
133                 {
134                     tempkey="N";
135                     System.out.println("********该学号不存在********");
136                 }
137             }
138         }while(tempkey.equals("N"));
139     }
140     double judgeScore(double score)                               //用于返回学生单科成绩对应的绩点函数
141     {
142         double num=0;
143         if(score<60)
144             num=0;
145         else if(score<64)
146             num=1;
147         else if(score<66)
148             num=1.5;
149         else if(score<68)
150             num=1.7;
151         else if(score<72)
152             num=2;
153         else if(score<75)
154             num=2.3;
155         else if(score<78)
156             num=2.7;
157         else if(score<82)
158             num=3;
159         else if(score<85)
160             num=3.3;
161         else if(score<90)
162             num=3.7;
163         else num=4;
164         return num;
165     }
166     double judgeCerdit(double score,int x)                               //判断单科成绩是否及格,并返回对应学分
167     {
168         double num=0;
169         if(score>=60)
170             switch(x)
171             {
172             case 1:num=4;break;
173             case 2:num=3;break;
174             case 3:num=4;break;
175             case 4:num=3;break;
176             case 5:num=2;
177             }
178         return num;
179     }
180     void countScore()                                                    //用于计算学生绩点并输出的功能
181     {
182         String tempstr=null,tempkey=null;
183         double sum=0;
184         do
185         {
186             System.out.println("***********************************************************");
187             System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
188             System.out.println("学生考试成绩绩点计算界面");
189             System.out.println("***********************************************************");
190             System.out.println("请输入学生学号:XXXXXXXX");
191             System.out.println("***********************************************************");
192             tempstr=in.next();
193             for(int i=0;i<5;i++)
194             {
195                 if(tempstr.equals(stu[i].getStunumber()))
196                 {
197                     double []a= {stu[i].getMathematicsscore(),stu[i].getEnglishisscore(),stu[i].getNetworkscore(),stu[i].getDatabasescore(),stu[i].getSoftwarescore()};
198                     for(int j=0;j<5;j++)
199                         sum+=judgeScore(a[j])*judgeCerdit(a[j],j+1);
200                     System.out.println("***********************************************************");
201                     System.out.println("石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
202                     System.out.println("学生考试成绩绩点计算界面");
203                     System.out.println("***********************************************************");
204                     System.out.println("学生学号:"+stu[i].getStunumber());
205                     System.out.println("学生姓名:"+stu[i].getName());
206                     for(int j=1;j<=5;j++)
207                         System.out.println(j+"、"+strChinese[j+2].substring(0, strChinese[j+2].length()-1)+"绩点:"+judgeScore(a[j-1]));
208                     System.out.println("你的平均学分绩点为:"+(sum/16.0));
209                     System.out.print("提示信息:");
210                     if(sum/16.0>=2)
211                         System.out.println("********你的学分绩点已达到毕业要求!********");
212                     else System.out.println("********你的学分绩点不满足毕业要求!********");
213                     System.out.println("是否返回系统主界面:(Y/N)");
214                     System.out.println("***********************************************************");
215                     tempkey=in.next();
216                     break;
217                 }
218                 if(i==4)
219                 {
220                     tempkey="N";
221                     System.out.println("********该学号不存在********");
222                 }
223             }
224         }while(tempkey.equals("N"));
225     }
226     void exit()                                                                //用于退出程序并输出结尾页
227     {
228         this.key=false;
229         System.out.println("***********************************************************");
230         System.out.println("谢谢使用石家庄铁道大学软件工程系学生学籍管理系统 2019 版");
231         System.out.println("制作人:李浩");
232         System.out.println("***********************************************************");
233     }
234     void windows(ScoreManagement scoreManage)             //将各函数组合构成一个完整的程序
235     {
236         do
237         {
238             System.out.println("***********************************************************");
239             System.out.println("石家庄铁道大学软件工程系");
240             System.out.println("学生学籍管理系统 2019 版");
241             System.out.println("***********************************************************");
242             System.out.println("1、 学生考试成绩录入");
243             System.out.println("2、 学生考试成绩修改");
244             System.out.println("3、 计算学生成绩绩点");
245             System.out.println("4、退出学籍管理系统");
246             System.out.println("***********************************************************");
247             String tempkey;
248             tempkey=in.next();
249             switch(tempkey)
250             {
251             case "1":scoreManage.setScore();break;
252             case "2":scoreManage.updataScore();break;
253             case "3":scoreManage.countScore();break;
254             case "4":scoreManage.exit();break;
255             default:System.out.println("*********该选项不存在*********");
256             }
257         }while(key);
258     }
259 
260 }

创建主类,运行程序。

 1 package Test;
 2 
 3 public class Main {
 4 
 5     public Main() {
 6         // TODO Auto-generated constructor stub
 7     }
 8 
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         ScoreManagement scoreManage=new ScoreManagement();
12         scoreManage.windows(scoreManage);
13     }
14 
15 }

运行截图:

学生成绩录入:

 

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/haheihei/p/11515381.html