目录
一、题目要求
二、设计思路
(2)代表课程的类——Course类
(3)具体功能实现类——Function类
(4)测试类——Test类
三、代码实现
(1)Student.java文件
(2)Course.java文件
(3)Function.java文件
(4)Test.java文件
一、题目要求
编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、其中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业不同),而总评成绩是其它成绩的平均值。请先设计合理的类存放这些信息,然后设计程序完成以下功能:
1.列出某个学生的所有成绩
2.列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分
3.分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等
运行效果:
二、设计思路
(1)存放学生信息的类——Student类
属性:姓名、学号、年龄、所学课程集合
操作:构造方法,设置课程,查看自身信息,获得和重置学生的某一个信息的方法
(2)代表课程的类——Course类
属性:课程名、平时成绩、期中成绩、实习成绩、期末成绩、总评成绩
操作:构造方法、所有属性的get/set方法、toString方法(返回代表自身信息的字符串方法)
(3)具体功能实现类——Function类
属性:学生集合
操作:根据名字搜索学生信息、列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分、分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。
(4)测试类——Test类
功能:创建系统菜单
1:创建学生集合,学生信息可以从键盘输入也可以直接在函数中初始化,在这里选择从键盘输入
2:查询学生信息
3:列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分
4:分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等
5:退出系统文章来源:https://www.toymoban.com/news/detail-476690.html
三、代码实现
(1)Student.java文件
package 学生管理系统;
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);
//构造方法
public Student(String Sname) {
courselist = new Course[Maxcoursenum];
boolean flag=true;
String course;
this.Sname=Sname;
System.out.println("请输入学号:");
this.id=sc.next();
System.out.println("请输入年龄:");
this.age=sc.nextInt();
while(coursenum<Maxcoursenum) {
flag=true;
System.out.println("请输入所修课程:(输入end结束)");
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("学生:"+this.Sname+"创建成功");
System.out.println("共修"+this.coursenum+"门课程");
}
//设置课程
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("该学生的成绩是:");
for(int i=0;i<this.coursenum;i++) {
System.out.println(courselist[i].toString());
}
}
//重置学生姓名
public void SetSname() {
String new_name;
System.out.println("请输入学生姓名:");
new_name=sc.next();
this.Sname=new_name;
System.out.println("姓名修改成功");
}
//获得学生姓名
public String GetName() {
return this.Sname;
}
//重置学生年龄
public void SetAge() {
int new_age;
System.out.println("请输入学生年龄:");
new_age=sc.nextInt();
this.age=new_age;
System.out.println("年龄修改成功");
}
//获得学生年龄
public int GetAge() {
return this.age;
}
//重置学生学号
public void SetId() {
String new_id;
System.out.println("请输入学生学号:");
new_id=sc.next();
this.id=new_id;
System.out.println("学号修改成功");
}
//获得学生学号
public String GetId() {
return this.id;
}
//获得学生所修课程
public Course[] GetCourse() {
return this.courselist;
}
//获得学生所修课程数目
public int GetCourseNum() {
return this.coursenum;
}
}
(2)Course.java文件
package 学生管理系统;
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 学生管理系统;
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];
}
//添加学生
public boolean AddStudent() {
String name;
System.out.println("请输入学生姓名:");
name=sc.next();
for(int i=0;i<studentnum;i++) {
if(studentlist[i].GetName().equals(name)) {
System.out.println("学生已存在!");
return false;
}
}
studentlist[studentnum]=new Student(name);
studentnum++;
return true;
}
//根据名字搜索学生信息
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("学生不存在!");
}
}
//列出某门课程每个学生的总评成绩和所有学生的总评成绩的总评分(平均值)
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("没有学生选修该课程!");
}
else {
System.out.println("所有学生的总评成绩的总评分为:"+sumgrade/sum);
}
}
//分区段统计某门课程学生的总评成绩
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("学生"+studentlist[i].GetName()+"的总评成绩为"+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("没有学生选修该课程!");
}
}
}
(4)Test.java文件
package 学生管理系统;
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("请选择服务:1.添加学生 2.列出某个学生的所有成绩 3.列出某门课程的总评分 4.分区段统计某门课程的学生总评成绩 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("请输入学生姓名:");
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);
}
}
}
}
如果有疑问欢迎在评论区交流或私聊我哦文章来源地址https://www.toymoban.com/news/detail-476690.html
到了这里,关于用Java实现一个学生管理系统(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!