用Java实现一个学生管理系统(附源码)

目录

一、题目要求

 二、设计思路

(2)代表课程的类——Course类

(3)具体功能实现类——Function类

(4)测试类——Test类

三、代码实现

(1)Student.java文件

(2)Course.java文件

(3)Function.java文件

(4)Test.java文件


一、题目要求

        编写一个学生成绩管理系统。学生的属性包括学号、姓名、年龄等。每个学生要学习若干课程,每门课程有平时成绩、其中考试成绩、实习成绩、期末考试成绩以及总评成绩等多个成绩,其中平时成绩的数目不定(因为不同课程的教师布置的平时作业不同),而总评成绩是其它成绩的平均值。请先设计合理的类存放这些信息,然后设计程序完成以下功能:

1.列出某个学生的所有成绩

2.列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分

3.分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等

运行效果:

用Java实现一个学生管理系统(附源码)_第1张图片

 二、设计思路

(1)存放学生信息的类——Student类

属性:姓名、学号、年龄、所学课程集合

操作:构造方法,设置课程,查看自身信息,获得和重置学生的某一个信息的方法

(2)代表课程的类——Course类

属性:课程名、平时成绩、期中成绩、实习成绩、期末成绩、总评成绩

操作:构造方法、所有属性的get/set方法、toString方法(返回代表自身信息的字符串方法)

(3)具体功能实现类——Function类

属性:学生集合

操作:根据名字搜索学生信息、列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分、分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等。

(4)测试类——Test类

功能:创建系统菜单

1:创建学生集合,学生信息可以从键盘输入也可以直接在函数中初始化,在这里选择从键盘输入

2:查询学生信息

3:列出某门课程每个学生的总评成绩,及所有学生总评成绩的总评分

4:分区段统计某门课程的学生总评成绩,例如60分以下的学生人数、60至70分的学生人数等

5:退出系统

三、代码实现

(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

(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

(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);
			}
		}
	}
}

如果有疑问欢迎在评论区交流或私聊我哦

你可能感兴趣的:(Java,java)