设计思路:
创建基本的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 }
运行截图:
学生成绩录入:






来源:https://www.cnblogs.com/haheihei/p/11515381.html