用Java实现一个学生管理系统(附源码)
目錄
一、題目要求
?二、設(shè)計思路
(2)代表課程的類——Course類
(3)具體功能實現(xiàn)類——Function類
(4)測試類——Test類
三、代碼實現(xiàn)
(1)Student.java文件
(2)Course.java文件
(3)Function.java文件
(4)Test.java文件
一、題目要求
????????編寫一個學(xué)生成績管理系統(tǒng)。學(xué)生的屬性包括學(xué)號、姓名、年齡等。每個學(xué)生要學(xué)習(xí)若干課程,每門課程有平時成績、其中考試成績、實習(xí)成績、期末考試成績以及總評成績等多個成績,其中平時成績的數(shù)目不定(因為不同課程的教師布置的平時作業(yè)不同),而總評成績是其它成績的平均值。請先設(shè)計合理的類存放這些信息,然后設(shè)計程序完成以下功能:
1.列出某個學(xué)生的所有成績
2.列出某門課程每個學(xué)生的總評成績,及所有學(xué)生總評成績的總評分
3.分區(qū)段統(tǒng)計某門課程的學(xué)生總評成績,例如60分以下的學(xué)生人數(shù)、60至70分的學(xué)生人數(shù)等
運行效果:
?二、設(shè)計思路
(1)存放學(xué)生信息的類——Student類
屬性:姓名、學(xué)號、年齡、所學(xué)課程集合
操作:構(gòu)造方法,設(shè)置課程,查看自身信息,獲得和重置學(xué)生的某一個信息的方法
(2)代表課程的類——Course類
屬性:課程名、平時成績、期中成績、實習(xí)成績、期末成績、總評成績
操作:構(gòu)造方法、所有屬性的get/set方法、toString方法(返回代表自身信息的字符串方法)
(3)具體功能實現(xiàn)類——Function類
屬性:學(xué)生集合
操作:根據(jù)名字搜索學(xué)生信息、列出某門課程每個學(xué)生的總評成績,及所有學(xué)生總評成績的總評分、分區(qū)段統(tǒng)計某門課程的學(xué)生總評成績,例如60分以下的學(xué)生人數(shù)、60至70分的學(xué)生人數(shù)等。
(4)測試類——Test類
功能:創(chuàng)建系統(tǒng)菜單
1:創(chuàng)建學(xué)生集合,學(xué)生信息可以從鍵盤輸入也可以直接在函數(shù)中初始化,在這里選擇從鍵盤輸入
2:查詢學(xué)生信息
3:列出某門課程每個學(xué)生的總評成績,及所有學(xué)生總評成績的總評分
4:分區(qū)段統(tǒng)計某門課程的學(xué)生總評成績,例如60分以下的學(xué)生人數(shù)、60至70分的學(xué)生人數(shù)等
5:退出系統(tǒng)
三、代碼實現(xiàn)
(1)Student.java文件
package 學(xué)生管理系統(tǒng); import java.util.Scanner;public class Student {private int age;private String id;private String Sname;private Course[] courselist;private int coursenum = 0;private static final int Maxcoursenum = 10;Scanner sc = new Scanner(System.in);//構(gòu)造方法public Student(String Sname) {courselist = new Course[Maxcoursenum];boolean flag=true;String course;this.Sname=Sname;System.out.println("請輸入學(xué)號:");this.id=sc.next();System.out.println("請輸入年齡:");this.age=sc.nextInt();while(coursenum<Maxcoursenum) {flag=true;System.out.println("請輸入所修課程:(輸入end結(jié)束)");course=sc.next();if("end".equals(course)) {break;}else {for(int i=0;i<coursenum;i++) {if(courselist[i].GetCname().equals(course)) {System.out.println("課程已存在"); flag=false;}}if(flag==true) {courselist[coursenum]=new Course(course);this.coursenum++;} }}System.out.println("學(xué)生:"+this.Sname+"創(chuàng)建成功");System.out.println("共修"+this.coursenum+"門課程");}//設(shè)置課程public boolean SetCourse() {String Cname;Cname=sc.next();System.out.println("請輸入課程名:");for(int i=0;i<this.coursenum;i++) {if(courselist[i].GetCname().equals(Cname)) {System.out.println("課程已存在");return false;}}Course course = new Course(Cname);courselist[coursenum]=course;coursenum++;return true;}//查看自身信息public void GetMessasge() {System.out.println("該學(xué)生的成績是:");for(int i=0;i<this.coursenum;i++) {System.out.println(courselist[i].toString());}}//重置學(xué)生姓名public void SetSname() {String new_name;System.out.println("請輸入學(xué)生姓名:");new_name=sc.next();this.Sname=new_name;System.out.println("姓名修改成功");}//獲得學(xué)生姓名public String GetName() {return this.Sname;}//重置學(xué)生年齡public void SetAge() {int new_age;System.out.println("請輸入學(xué)生年齡:");new_age=sc.nextInt();this.age=new_age;System.out.println("年齡修改成功");}//獲得學(xué)生年齡public int GetAge() {return this.age;}//重置學(xué)生學(xué)號public void SetId() {String new_id;System.out.println("請輸入學(xué)生學(xué)號:");new_id=sc.next();this.id=new_id;System.out.println("學(xué)號修改成功");}//獲得學(xué)生學(xué)號public String GetId() {return this.id;}//獲得學(xué)生所修課程public Course[] GetCourse() {return this.courselist;}//獲得學(xué)生所修課程數(shù)目public int GetCourseNum() {return this.coursenum;} }(2)Course.java文件
package 學(xué)生管理系統(tǒng); import java.util.Scanner;public class Course {private String Cname;private int dailyGrade;private int doGrade;private int midGrade;private int endGrade;private double sumGrade;Scanner sc = new Scanner(System.in);//初始化public Course(String Cname) { this.Cname=Cname;System.out.println("請輸入平時成績:");this.dailyGrade=sc.nextInt();System.out.println("請輸入實踐成績:");this.doGrade=sc.nextInt();System.out.println("請輸入期中成績:");this.midGrade=sc.nextInt();System.out.println("請輸入期末成績:");this.endGrade=sc.nextInt();this.sumGrade=(this.dailyGrade+this.doGrade+this.midGrade+this.endGrade)/4;}//獲得課程名public String GetCname() {return this.Cname;}//修改課程名public void SetName() {System.out.println("請輸入新的課程名:");this.Cname=sc.next();System.out.println("課程名修改成功");}//獲得平時成績public int GetDailyGrade() {return this.dailyGrade;}//修改平時成績public void SetDailyGrade() {System.out.println("請輸入新的平時成績:");this.dailyGrade=sc.nextInt();System.out.println("平時成績修改成功");}//獲得實踐成績public int GetDoGrade() {return this.doGrade;}//修改實踐成績public void SetDoGrade() {System.out.println("請輸入新的實踐成績:");this.doGrade=sc.nextInt();System.out.println("實踐成績修改成功");}//獲得期中成績public int GetMidGrade() {return this.midGrade;}//修改期中成績public void SetMidGrade() {System.out.println("請輸入新的期中成績:");this.midGrade=sc.nextInt();System.out.println("期中成績修改成功");}//獲得期末成績public int GetEndGrade() {return this.endGrade;}//修改期末成績public void SetEndGrade() {System.out.println("請輸入新的實踐成績:");this.endGrade=sc.nextInt();System.out.println("實踐成績修改成功");}//獲得總評成績public double GetSumGrade() {return this.sumGrade;}//以字符串的形式返回自身信息public String toString() {return ("Grade [course="+this.Cname+",dailyGrade="+this.dailyGrade+",doGrade="+this.doGrade+",midGrade="+this.midGrade+",endGrade="+this.endGrade+",sumGrade="+this.sumGrade+"]");} }(3)Function.java文件
package 學(xué)生管理系統(tǒng); import java.util.Scanner;public class Function {private Student[] studentlist;private int studentnum=0;Scanner sc=new Scanner(System.in);public Function() {studentlist=new Student[100];}//添加學(xué)生public boolean AddStudent() {String name;System.out.println("請輸入學(xué)生姓名:");name=sc.next();for(int i=0;i<studentnum;i++) {if(studentlist[i].GetName().equals(name)) {System.out.println("學(xué)生已存在!");return false;}} studentlist[studentnum]=new Student(name);studentnum++;return true;}//根據(jù)名字搜索學(xué)生信息public void GetStuByName(String Sname) {boolean flag=false;for(int i=0;i<studentnum;i++) {if(studentlist[i].GetName().equals(Sname)) {studentlist[i].GetMessasge();flag=true;}}if(flag==false) {System.out.println("學(xué)生不存在!");}}//列出某門課程每個學(xué)生的總評成績和所有學(xué)生的總評成績的總評分(平均值)public void GetSumByCname(String Cname) {int sumgrade=0;int sum=0;for(int i=0;i<studentnum;i++) {for(int j=0;j < studentlist[i].GetCourseNum();j++) {if(studentlist[i].GetCourse()[j].GetCname().equals(Cname)) {System.out.println(studentlist[i].GetName()+"的總評分是"+studentlist[i].GetCourse()[j].GetSumGrade());sumgrade+=studentlist[i].GetCourse()[j].GetSumGrade();sum+=1;break;}}}if(sum==0) {System.out.println("沒有學(xué)生選修該課程!");}else {System.out.println("所有學(xué)生的總評成績的總評分為:"+sumgrade/sum);}}//分區(qū)段統(tǒng)計某門課程學(xué)生的總評成績public void GetSumByCnameAndSector(String Cname) {boolean flag=false;int[] grade=new int[5];for(int i=0;i<studentnum;i++) {for(int j=0;j < studentlist[i].GetCourse().length;j++) {if(studentlist[i].GetCourse()[j].GetCname().equals(Cname)) {System.out.println("學(xué)生"+studentlist[i].GetName()+"的總評成績?yōu)?#34;+studentlist[i].GetCourse()[j].GetSumGrade());flag=true;if(studentlist[i].GetCourse()[j].GetSumGrade()<60) {grade[0]+=1;break;}if(studentlist[i].GetCourse()[j].GetSumGrade()<70) {grade[1]+=1;break;}if(studentlist[i].GetCourse()[j].GetSumGrade()<80) {grade[2]+=1;break;}if(studentlist[i].GetCourse()[j].GetSumGrade()<90) {grade[3]+=1;break;}if(studentlist[i].GetCourse()[j].GetSumGrade()<100) {grade[4]+=1;break;}}}}if(flag==true) {System.out.println("60分以下的有"+grade[0]+"人");System.out.println("60~70分以下的有"+grade[1]+"人");System.out.println("70~80分以下的有"+grade[2]+"人");System.out.println("80~90分以下的有"+grade[3]+"人");System.out.println("90分以上的有"+grade[4]+"人");}else {System.out.println("沒有學(xué)生選修該課程!");}} }(4)Test.java文件
package 學(xué)生管理系統(tǒng); import java.util.Scanner;public class Test {public static void main(String[] args) {boolean flag=true;String Sname;String Cname;Scanner sc = new Scanner(System.in);Function clbum=new Function();int choice;while(flag==true) {try {System.out.println("請選擇服務(wù):1.添加學(xué)生 2.列出某個學(xué)生的所有成績 3.列出某門課程的總評分 4.分區(qū)段統(tǒng)計某門課程的學(xué)生總評成績 5.退出");choice = sc.nextInt();switch(choice) {case 1:if(clbum.AddStudent()==true) {System.out.println("添加成功");}else {System.out.println("添加失敗!");}break;case 2: System.out.println("請輸入學(xué)生姓名:");Sname=sc.next();clbum.GetStuByName(Sname);break;case 3: System.out.println("請輸入課程名稱:");Cname=sc.next();clbum.GetSumByCname(Cname);break;case 4:System.out.println("請輸入課程名稱:");Cname=sc.next();clbum.GetSumByCnameAndSector(Cname);break;case 5:flag=false;break;default:System.out.println("1");System.out.println("輸入不符合要求!");break;}}catch(Exception e) {System.out.println("輸入不符合要求!");sc = new Scanner(System.in);}}} }如果有疑問歡迎在評論區(qū)交流或私聊我哦
總結(jié)
以上是生活随笔為你收集整理的用Java实现一个学生管理系统(附源码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重学java基础第十六课:jdk jre
- 下一篇: React开发(235):react可以