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

这篇具有很好参考价值的文章主要介绍了用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)存放学生信息的类——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<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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    (解析+源码)基于JAVA Swing+MySQL实现学生信息管理系统(增、删、改、查)数据库/文件存储

    本文适合 有一定JAVA编程基础(听过一点课的同学) 的同学“食用”,源代码都在文末 源代码(点击跳转) ,第四部分是各个模块的实现,新建一个工程把下面代码添加进去,然后在数据库里按id-username-password和id-name-sex-telephone-number-birthday-note创建两个表,在Connect.java里面将us

    2024年02月04日
    浏览(18)
  • Java实现一个简单的图书管理系统(内有源码)

    Java实现一个简单的图书管理系统(内有源码)

    哈喽哈喽大家好啊,之前作者也是讲了Java不少的知识点了,为了巩固之前的知识点再为了让我们深入Java面向对象这一基本特性,就让我们完成一个图书管理系统的小项目吧。 项目简介: 通过管理员和普通用户的两种操作界面,利用其中的方法以及对象之间的交互,来实现对

    2024年02月11日
    浏览(11)
  • 用Java创建一个学生成绩管理系统登陆界面(初级)

    用Java创建一个学生成绩管理系统登陆界面(初级)

    目录 任务与要求 代码部分 部分代码: 完整代码: 使用eclipse.exe创建一个登录界面,如图1所示,当用户名输入“lili”,密码输入“123456”后,弹出主菜单窗体,如图2(a)所示。鼠标箭头在主菜单窗体点“操作菜单”会弹出操作子菜单窗体,如图2(b)所示。鼠标箭头在主菜单

    2024年02月11日
    浏览(18)
  • 毕业设计-基于java的学生管理系统(源码+论文)

    毕业设计-基于java的学生管理系统(源码+论文)

    学籍管理系统是一个用于管理和记录学生信息的应用程序。其主要背景是教育机构,包括学校、大学或其他教育机构。其目的是为教育工作者、学生和家长提供一个中央管理系统,以便查看和更新学生的课程、考试成绩、学生等信息。这个系统是一个非常重要的工具,因为它

    2024年02月04日
    浏览(12)
  • Java 学生成绩管理系统 带详细设计报告 功能非常齐全 完整源码

    Java 学生成绩管理系统 带详细设计报告 功能非常齐全 完整源码

    今天为大家分享一个java语言编写的学生成绩管理系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步 开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程

    2024年02月11日
    浏览(16)
  • ChatGPT实现用C语言写一个学生成绩管理系统

    随着ChatGPT爆火,大家都在使用ChatGPT来帮助自己提高效率,对于程序员来说使用它来写代码怎么样呢?今天尝试让ChatGPT,写了一个学生成绩管理系统。 问题是:使用C语言写一个学生成绩管理系统,要求使用链表,实现增删改查功能。 下面是ChatGPT写的代码,用时不到30秒,速

    2023年04月13日
    浏览(50)
  • 学生管理系统(Java实现)

    学生管理系统(Java实现)

    学生管理系统效果图 使用Java提供的Javax库来实现图形化界面,在使用这个库的时候,我发现它和Qt十分相似,但和Qt相比感觉更方便使用。 效果图: 1.主页面 2.添加学生页面 3.查找学生页面 4.总结 该图形化界面核心代码其实和第一个在控制台操作的管理系统基本一样,只是进

    2024年02月09日
    浏览(8)
  • 【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏

    【Golang项目实战】用Go写一个学生信息管理系统,真的太酷啦| 保姆级详解,附源码——建议收藏

    博主简介: 努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标: 写好专栏的每一篇文章 学习了Go的基础语法知识,如何巩固和提升呢?跟着瑶瑶子写一个

    2024年02月02日
    浏览(14)
  • 学生成绩管理系统的设计与实现(论文+源码)_kaic

    学生成绩管理系统的设计与实现(论文+源码)_kaic

     摘要 该系统在开发过程中,要注意使其与业务流程的运作相一致,力争使该系统全面,通用,以便该系统不仅适用于教育机构。在开发方法的选择上,选择生命周期方法和原型方法,并按照四个主要阶段的系统研究,系统分析,系统设计和系统实施进行设计,并在具体设计

    2024年02月12日
    浏览(12)
  • 【毕业设计】基于java+mysql的学生信息管理系统源码(测试跑通)

    【毕业设计】基于java+mysql的学生信息管理系统源码(测试跑通)

    目录 1、前言介绍 2、主要技术 3、系统基本功能需求 3.1 系统结构 3.2 数据库需求分析 3.3 系统目标 4、数据库表的设计 5、系统的详细设计与实现 5.1 系统设计实现 5.1.1 登录界面实现 5.1.2 系统主界面  5.1.3 学生信息管理实现 5.1.4 班级信息管理 5.1.5 年级信息管理 5.1.6 数据字典

    2024年02月08日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包