基于java实现学生信息管理系统单机对话版

实验要求

控制类(主类):Manage

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Manage{
	static List<Student> studentList=new ArrayList<>();
	static List<Allscore> allscores=new ArrayList<>();
	 static Scanner in=new Scanner(System.in);
	public static void main(String[] args) {
		int ty = 10;
	 while(ty!=0) {
		 System.out.println("1.添加学生");
		 System.out.println("2.删除学生");
		 System.out.println("3.修改学生");
		 System.out.println("4.查看学生");
		 System.out.println("5.增加学生课程学习记录");
		 System.out.println("6.查看所有学生信息(排序)");
		 System.out.println("7.平均分、最高分、最低分");
		 System.out.println("8.成绩单");
		 System.out.println("0.退出系统");
		 ty=in.nextInt();
		 switch(ty) {
		 case 1: addStudent();
		 		 break;
		 case 2: remove();
		 		 break;
		 case 3:fix();
		 		 break;
		 case 4:find();
		 		 break;
		 case 5:addscore();
		 		 break;
		 case 6:sort();
		 		 break;
		 case 7:printscore();
		 		break;
		 case 8:findall();
		         break;
		 case 0:break;
		 default:System.out.println("请重新输入");
		 }
	 }
	 System.out.println("系统退出成功!");

	}
	
	public static void addStudent() {
		Student student=new Student();
		System.out.println("请输入名字:");
		student.getname(in.next());
		System.out.println("请输入学号:");
		student.getnum(in.nextInt());
		studentList.add(student);
		studentList.get(studentList.size()-1).studentScores.add(new Score());
		System.out.println("添加成功!");
	}
	public static void addscore() {
		System.out.println("请输入要增加课程成绩记录学生学号:");
		int p=in.nextInt();
		int t=0;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				studentList.get(i).studentScores.add(new Score());
				System.out.println("添加课程成绩成功");
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
	}
		
	public static void remove() {
		System.out.println("请输入要删除学生的学号:");
		int p=in.nextInt();
		int t=0;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				studentList.remove(i);
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
	}
	public static void fix() {
		System.out.println("请输入要修改信息的学生学号:");
		int p=in.nextInt();
		int t=0;
		int t1=0;
		String scString;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				System.out.println("请输入要修改课程(全称):");
				scString=in.next();
				for (int j = 0; j < studentList.get(i).studentScores.size(); j++) {
					if (scString.equals(studentList.get(i).studentScores.get(j).course)) {//scString==(studentList.get(i).studentScores.get(j).course恶意出错
						System.out.println("请输入要修改此门课:"+scString+"的成绩:");
						studentList.get(i).studentScores.get(j).score=in.nextInt();
						t1=1;
					}
				}
				if (t1==0) {
					System.out.println("没有找到课程为:"+scString+"的课程");
				}
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
	}
	public static void find() {
		System.out.println("请输入要查找信息的学生学号:");
		int p=in.nextInt();
		int t=0;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				System.out.println("该生信息如下:");
				System.out.println("学号:"+studentList.get(i).tonum());
				System.out.println("姓名:"+studentList.get(i).toname());
				for (int j = 0; j < studentList.get(i).studentScores.size(); j++) {
					System.out.println("课程:"+studentList.get(i).studentScores.get(j).course);
					System.out.println("成绩:"+studentList.get(i).studentScores.get(j).score);
				}
				
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
		
	}
	public static void sort() {
	for (int i = 0; i < studentList.size(); i++) {
	Collections.sort(studentList.get(i).studentScores,new Comparator<Score>() {

		@Override
		public int compare(Score o1, Score o2) {
			// TODO 自动生成的方法存根
			return -o1.score+o2.score;
		}
	});
	}		
	findall();
	
	}
	public static void findall() {
		for (int i = 0; i < studentList.size(); i++) {
			System.out.println("学号:"+studentList.get(i).num+" "+"姓名:"+studentList.get(i).name);
			for (int j = 0; j < studentList.get(i).studentScores.size(); j++) {
				System.out.println("课程:"+studentList.get(i).studentScores.get(j).course+" "+"成绩:"+studentList.get(i).studentScores.get(j).score);
			}
			
		}
	}

	public static void printscore() {
		System.out.println(allscores.size());
		for (int i = 0; i < allscores.size(); i++) {
			System.out.println("课程:"+allscores.get(i).course+" "+"人数:"+allscores.get(i).pepnumsum+" "+"总分:"+allscores.get(i).scoresum+" "+"平均分:"+allscores.get(i).scoresum/allscores.get(i).pepnumsum+" "+"最高分:"+allscores.get(i).heightest+" "+"最低分:"+allscores.get(i).lowest);
		}
	}
}```

> 学生类:Student

```java
import java.util.ArrayList;
import java.util.List;

public class Student {
	public String name;
	public int num;
	public List<Score> studentScores=new ArrayList<>();
	public void getname(String name) {
		this.name=name;
	}
	public void getnum(int num) {
		this.num=num;
	}

	public String toname() {
		return name;
	}
	public int tonum() {
		return num;
	}

}

添加成绩记录类:Score

import java.util.Scanner;

public class Score extends Manage{
	public String course;
	public int score;
	Score() {
		Scanner scannerin=new Scanner(System.in);
		System.out.println("请输入要添加的课程:");
		this.course=scannerin.next();
		System.out.println("请输入此门课程的成绩:");
		this.score=scannerin.nextInt();
		Allscore h=new Allscore(this.course, this.score);
		if (h.p==1) {
			allscores.add(h);
		}
	}
	
}

统计平均分,最高分,最低分类:Allscore


public class Allscore extends Manage{
	public String course;
	public int scoresum;
	public int pepnumsum;
	public int heightest;
	public int lowest;
	public int p=1;
	public Allscore(String course, int score) {
		
		for (int i = 0; i < allscores.size(); i++) {
			if (course.equals(allscores.get(i).course)) {
				allscores.get(i).scoresum+=score;
				allscores.get(i).pepnumsum+=1;
				if (allscores.get(i).heightest<score) {
					allscores.get(i).heightest=score;
				}
				if (allscores.get(i).lowest>score) {
					allscores.get(i).lowest=score;
				}
				p=0;
			}
		}
		if (p==1) {
			this.course=course;
			this.scoresum=score;
			this.heightest=score;
			this.lowest=score;
			this.pepnumsum=1;
		}
	}

}


之后我会实现一个界面版,敬请期待

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java课程设计学生信息管理系统 第 5 页 共43页 目录 1 需求分析 2 1.1 设计任务要求 2 1.2 系统功能需求分析 2 2 概要设计 2 2.1 图形用户界面的设计 2 2.2 用数据库建立学生信息表 3 2.3 数据库的连接 3 2.4 模块功能的实现 3 3 详细设计 3 3.1 图形用户界面的设计 3 3.2 用数据库建立学生信息表 3 3.3 数据库的连接 3 3.4 模块功能的实现 3 4 调试分析 3 4.1 系统功能测试 3 4.2 系统调试常见错误 3 4.3 实验小结 3 5 用户使用说明 3 6 测试数据和数据结果 3 参考文献 3 附件 3 java课程设计学生信息管理系统全文共44页,当前为第1页。 java课程设计学生信息管理系统全文共44页,当前为第1页。 1 需求分析 利用计算机进行学生信息管理,不仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。要科学地实现信息管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的信息管理系统是十分重要的。我这次的课题就是设计与实现一个学生信息管理系统。 1.1 设计任务要求 该学生信息管理系统的设计要求主要有以下几点: (1)使用图形用户界面; (2)用数据库建立1或2个学生信息表;(不限使用哪种数据库) (3)能连接数据库并实现学生信息查询、增、删、改等功能。 1.2 系统功能需求分析 系统主要包括以下几项功能: (1)添加学生信息; (2)查询学生信息; (3)删除学生信息; (4)修改学生信息java课程设计学生信息管理系统全文共44页,当前为第2页。 java课程设计学生信息管理系统全文共44页,当前为第2页。 2 概要设计 2.1 图形用户界面的设计 图形用户界面中,设置窗口大小、显示位置和窗口标题,设置窗口关闭之后其后台程序同时关闭,设置窗口可拉伸且为可见的。同时设置了用户输入文本框,文本框的窗口大小等属性也进行设置,文本框中可输入用户需要输入的学生信息。 2.2 用数据库建立学生信息表 在这里我用的是数据库mysql,建立的数据库名字为student,而且程序使用的是单表形式,表名为 st ,st表的字段,各个字段分别对应学生的学号,名字,性别,年龄,籍贯,系别。 2.3 数据库的连接 数据库的连接只需通过jdbc驱动,即可实现用户操作与数据资源的连接,并可对相关的数据库信息进行操作。 2.4 模块功能的实现 以下是学生信息管理系统功能模块关系图,主要包含查询、添加、修改、删除学生信息等功能。 学生信息管理系统查询学生信息添加学生信息修改学生信息删除学生信息 学生信息管理系统 查询学生信息 添加学生信息 修改学生信息 删除学生信息 java课程设计学生信息管理系统全文共44页,当前为第3页。图2.1 系统功能模块关系图 java课程设计学生信息管理系统全文共44页,当前为第3页。 根据功能的需要,我设想了主窗口界面的大体布置图,并在设计与实现的过程中尽量去按照设想图的图样去实现。设想图如下图所示,图中也大概地标明了部分标语与说明。 主模块外出容器:Panel3:用来显示 按钮(添加) 按钮(修改) 按钮(删除)jscrollPane:用来显示数据库调出的数据表 主模块外出容器: Panel3:用来显示 按钮(添加) 按钮(修改) 按钮(删除) jscrollPane:用来显示数据库调出的数据表 Panel1:标签(学生姓名) 输入框(学生姓名) 按钮(查询) Panel1:标签(学生姓名) 输入框(学生姓名) 按钮(查询) 图2.2 设想的主界面 图2.2中组件功能的实现: (1)当用户点击查询按钮 ,系统创建一个数据库连接,从数据库调出用户所输入要查询学生信息,并显示到jscrollPane中,即主模块的中部; (2)当用户点击添加按钮时,系统创建一个数据连接,弹出一个添加学生信息的文本框,文本框可输入要添加的学生信息,并可存入数据库。 (3)当用户点击修改按钮时,系统创建一个数据连接,从数据库中调出你所选行的学生信息,并弹出修改该学生信息文本框,文本框可进行学生信息修改,修改完确认后,该学生信息会重新存入数据库。 (4)当用户点击删除按钮时,系统创建一个数据连接,根据你所选行的学生学号,在数据库中找到该学生信息,并删除。 java课程设计学生信息管理系统全文共44页,当前为第4页。 java课程设计学生信息管理系统全文共44页,当前为第4页。 3 详细设计 3.1 图形用户界面的设计 (1)主界面窗口设计函数代码程序如下: //定义用户界面用到的组件 JLabel userName = null; //要查询的学生的名字 JTex
才子信息学生综合管理系统为在线多用户管理系统,采用PHP MYSQL AJAX开发,支持在单机、局域网、虚拟**上运行。 共分四个部分(功能模块) 学籍管理 成绩管理 评价(学生素质管)管理 家校沟通管理 具体功能如下: 提供8种权限用户:校长室(可查询所有学生成绩信息),班主任(可录入、查询所任班级的所有学生成绩信息),任课老师(可录入、查询所任班级课程的所有学生成绩信息),学生学生家长(可查询本学生的成绩信息),管理员(最高权限),年级组长(年级中的管理员权限),督察人员(专门针对学生评价系统内容的用户类型)。老师可在网络中录入、修改学生成绩,老师、学生学生家长登录系统,可查询某一个或多个班的成绩情况,自动排名,自动生成**均分、最高分、最低分;同时可比较多次考试中某个学生的一门或多门程成绩情况(可生成柱状图),学生成绩进步或退步一目了然。支持学生信息、老师信息、任课信息、成绩数据的EXCEL导入功能,支持将所有查询结果输出到EXCEL、WORD、PDF进行保存或输出到打印机,支持生成饼状图、直线图便于查询者进行分段统计查看结果。支持"两率一分"查询,支持按考号进行成绩录入。可查询学生单科及总分的年级名次、班级名次,查询结果为静态显示,大大降低用户查询对系统资源的占用,可支持数百位用户同时进行查询。支持留言,老师可对任班主任和任课的班级或对学校进行留言,学生学生家长可对所在班级或学校进行留言,增强学校、老师、学生学生家长之间的互动。支持学校发布最新公告及动态信息,老师、学生学生家长登录本系统后,在第一页面即可看到此信息,方便学校信息的发布。本软件可广泛适用于大、中、小学校及部队或其它一些需要进行成绩统计、管理的单位,我们亦可根据客户的要求进行相应的模块增减。 增强新增功能,新增班级公告功能,班主任可发布班级公告,方便与本班学生/家长沟通,同时班主任可利用此功能布置每天的家庭作业;新增了学籍功能,丰富了学生信息,支持批量上传班级学生照片;新增站内信,本校所有用户均可相互点对点发送站内信,方便各用户之间的沟通;新增评价模块,可以用于学校对学生素质分的管理;新增飞信功能,在发布公告与发送站内信的同时,可发送飞信,以短信方式通知接收方。 用户登录 类型 用户名 密码 管理员 admin admin 校长室 老师帐号 老师帐号 班主任 老师帐号 老师帐号 任课老师 老师帐号 老师帐号 年级组长 老师帐号 老师帐号 督察人员 老师帐号 老师帐号 学生 学生学号 学生学号 家长 学生学号 学生学号 'jz' 比如学生学号为20080101 则家长登录密码为20080101jz

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值