设计思路:
创建基本的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
时间: 2024-11-07 07:37:18