数据库课程设计——班级事务管理系统
- 格式:doc
- 大小:593.42 KB
- 文档页数:36
学校教务管理的数据库设计I.需求分析:随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长.面对庞大的信息量,就需要有学生教务信息管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
学校为方便教务管理,需开发一个教务管理系统。
为便于学生,老师,教务管理人员信息查询,注册以及信息修改,学校把学生的信息,包括姓名、性别、年龄,成绩等信息输入教务管理系统的数据库,然后在管理终端可以对数据进行查询和修改操作。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求系统界面要简单明了,易于操作,程序利于维护。
一、信息分析:(1)学校教务管理的数据库,包含以下信息:学校有若干个系,每个系有若干名教师和学生,每个教师可以担任若干门课程,并参加多个项目,每个学生可以同时选修多门课程,每门课程每学期可能有多名教师教授,课程分为必修、选修、任选三种。
(2)学校的教务管理的信息包括:学生姓名、学号、班级、性别、班号,籍贯、出生日期、所属系编号、所属系名称、系主任,教师编号,教师姓名,教师职称,教师所授课程、课程编号,课程名,课程学分,项目编号,项目名称,项目负责人,学生选修课程及成绩。
学生如果课程及格,可以取得该课程的学分。
学生的各类型课程学分和总学分累计到一定程度,学生可以毕业。
根据成绩高低,可以计算学分积。
及格学生的学分积公式:课程学分积=(该课程成绩-50)/10×该课程学分。
二、功能分析:(1)用户能够使用友好的图形用户界面实现对系、班级、学生、教师、课程、选课等内容进行增、删、改,以及对信息的查询。
对于查询要实现比较强大的功能,包括精确查询、模糊查询以及统计查询。
(2)具体查询在数据库中要实现以下的功能:1)所有来自某省的男生2)所有某课程成绩〉90的同学3)教授某课程的老师4)某班年龄最大的5名同学5)某年以后出生的男同学6)选修某课程的学生及其成绩7)没有授课的教师8)某学生所选课程的总学分9)教授某学生必修课程的老师情况10)某学生选修了哪些系的课程11)某系学生所学的所有课程12)按总学分找出某系学习最好的5名同学13)按总学分积找出某系学习最好的5名同学14)可以毕业的学生三、软、硬件配置程序运行的环境:具体运行环境为软件方面,操作系统为windows2000/XP,并且系统装有SQL Server2000数据库管理系统.硬件方面,CPU主频500MHz以上,内存128M或更高。
目录1.数据库设计内容 (1)1.1.课程设计任务与要求 (1)1.1.1.任务 (1)1.1.2.设计要求 (1)1.1.3.运行环境 (1)1.2需求分析 (1)1.2.1.数据需求 (1)1.2.2事物需求 (2)1.2.3关系模式 (2)1.3概念结构设计 (3)1.3.1. E-R图 (3)1.4.逻辑结构设计 (4)1.4.1表结构 (4)1.4.2数据库设计及完整性约束 (6)1.4.3.数据库用户权限管理 (7)2.应用系统设计 (8)2.1.需求分析 (8)2.1.1数据需求 (8)2.1.2事物需求 (8)2.1.3关系模式 (8)2.1.5数据字典 (9)2.2.概念结构设计 (11)2.3.详细设计 (12)2.3.1流程图 (12)2.4.运行界面 (13)2.4.1管理员登陆界面 (13)2.4.2管理员查询、添加、修改、删除学生基本信息表 (13)2.4.3.成绩查询、添加、删除 (17)2.4.4.课程的查询、添加、删除 (19)2.4.5.学生详细信息的查询、添加、删除 (21)2.4.6.普通用户登录界面 (24)2.4.7.个人事务管理登录界面 (24)2.4.8.生活委员管理特殊权限 (25)2.4.9.个人事务事件管理界面 (29)3.课程设计心得体会 (32)4.参考文献 (33)1.数据库设计内容1.1.课程设计任务与要求1.1.1.任务班级事务管理系统问题描述:班级管理信息系统的任务是收集、存储、管理班级同学的相关信息,以及班级日常管理中的相关信息。
为班级信息公开、增进同学交流了解服务,同时加强班级管理、提高班级管理与服务的效率和质量。
1.1.2.设计要求①、实现用户登录。
②、实现管理员管理班级事务。
(学生信息、成绩、课程、详细信息的增、删、改、查)③、实现学生成绩查询。
④、实现个人事务管理。
⑤、实现生活委员班费管理。
1.1.3.运行环境WindowsXP、SQL Server5.0、Myeclipse6.0、Tomcat5.5.28、IE 浏览器、JDK1.2需求分析1.2.1.数据需求班级事务管理系统需要完成功能主要有:①学生基本信息的输入,包括学号、姓名、担任职务等。
课程设计设计题目:系部专业和班级管理系统的数据库设计与实现课程名称:数据库管理系统B学期: 2011-2012学年第一学期专业班级:信科1021学号:姓名:任课老师:陈荣元M N1 1NN N1MMN N1 1E-R 图向关系模型转换 (注以下主码为下划直线的属性)系部:(系部编号,系部名称,工号)外码:工号班级:(班级编号,班级名称,系部编号,专业编号,入学年度,学制,工号) 外码:工号,系部编号教师:(工号,姓名,系部编号,专业编号,学历,毕业学校,性别)外码:系部编号,专业编号系专业:(专业编号,专业名称,排名,所属系部)外码:系部编号学生基本信息:(学号,名称,性别,班级编号,政治面貌,出生日期,民族,籍贯,家庭地址,电话)外码:班级编号课程:(课程编号,课程名称,学分,工号,类别) 外码:工号 选课—成绩(课程编号,学号,成绩,学分)根据总体结构图设计表的结构: 系部表课程 学生 班级教师 系专业系部属于学习 任教教授属于属于任课班级表教师表系专业表学生基本信息表课程表选课—成绩教授表数据库的实施和运行建立数据库yanghuan输入以上Excel表到数据库yanghuan数据表中具体如下:设好主码后保存并建立表名如下:班级表教师信息表系专业表学生信息表课程表课程-成绩表教授表表中输入数据:数据库的试运行在原有系统的数据有一小部分已输入数据库后,就可以开始对数据库系统进行联合调试,这又称为数据库的试运行。
这一阶段要实际运行数据库应用程序,执行对数据库的备种操作,测试应用程序的功能是否满足设计要求。
如果不满足,对应用程序部成绩评定表题目: 64题 <系部专业和班级管理子系统>。
数据库课程设计—学生管理系统哎呀,说到学生管理系统,真是个有趣的话题!你想想啊,学校里的学生像一盘散沙,老师们真是忙得不可开交。
要是有个系统能把这些小家伙们的资料管理得妥妥的,简直就像给他们穿上了整齐的校服,嘿,谁不想要这样的系统呢?想象一下,系统里记录着每个学生的基本信息,成绩、出勤率,全都一目了然,老师们再也不需要像打仗一样找资料了。
说到这里,感觉我自己都快成系统的一部分了,哈哈!现在说到设计这个系统,首先得考虑用户体验,毕竟,大家都不想跟复杂的界面死磕。
要是界面看起来像是上个世纪的产物,估计没人愿意用。
我们可以把颜色搭配得活泼一些,按钮做得大方一点,让人一眼就能看出在哪里点。
就像是给一杯清茶加点糖,立马就香甜可口。
系统里的功能也得简化,让老师和学生都能轻松上手,毕竟“笨鸟先飞”可不适合现代化的管理。
再说数据存储,哇,真是一个大工程。
得想办法把这些数据都安全地保存起来,别让它们跑了。
要是数据丢失,老师们的心里肯定得像猫抓一样难受。
可以用数据库来管理,像是给这些数据建了个温暖的小家,时刻都能让人找到。
使用关系型数据库,哎呀,简单明了,查找起来快得像闪电。
老师们再也不用为找不到学生资料而抓耳挠腮了。
学生的成绩也很重要啊!设计个成绩管理模块,老师们只需点几下,成绩就能轻松录入和查询。
就像是把成绩从脑海里搬到屏幕上,简直太方便了。
为了让学生们更有积极性,成绩的统计分析功能也得有,能看到自己的进步,哦,那感觉绝对不一样!这就像是登山,看到峰顶的风景,心里美滋滋的。
出勤率管理也是个关键,学生们有时候调皮捣蛋,迟到早退的现象时有发生。
嘿,别担心,系统可以记录每个学生的出勤情况,老师们只要一看,就能掌握情况。
这就好比在操场上看着孩子们玩耍,心里踏实得很。
能及时发现那些“逃课小能手”,好让老师们在关键时刻给予“点拨”。
系统的安全性不能忽视,毕竟这可是学生们的隐私嘛。
得保证信息不被随便外泄,就像守卫着一座金库,保密工作做得严严实实。
课程设计IV设计说明书高校班级管理系统的数据库设计与数据操作学生姓名李成学号**********班级网络1102班成绩指导教师肖海蓉数学与计算机科学学院2014年 6 月 27 日课程设计任务书2013 —2014 学年第二学期设计内容:针对我校目前班级管理的现状,设计并实现高效班级管理系统,以提高班级管理的效率和质量。
具体要求如下:1.系统功能要求:(1)学生基本信息管理功能:该模块负责管理学生的个人档案信息,教师可通过它来查阅和更新学生的个人信息。
(2)班务管理功能:该模块包括奖惩管理、学校和班级相关通知和公告的发布功能以及班委日常管理功能,其中奖惩管理包括奖学金、助学金的评定,违纪学生的处理等。
(3)班费管理功能:此模块用来管理班费收入支出情况,以及重大开支的申请和审批管理。
(4)考勤管理功能:该模块负责学生的考勤登记,请假管理(申请与审批),自动生成假条编号,生成假条,假条打印,以及记录学生请假信息。
(5)成绩管理功能:该模块可以直接与教务管理系统中的成绩管理模块相连接,具有成绩查询,学生成绩单打印等功能。
(6)用户权限管理:该模块负责用户的权限管理。
根据高校的实际情况,系统设置五类用户,包括:管理员、班主任、辅导员(学办负责人)和学生。
2.具体要求如下:(1)在小组内进行分工,进行系统调查,搜集资料。
(2)系统的需求分析:根据自己的选题,确定系统的功能需求,性能需求,绘制的DFD,DD图表以及书写相关的文字说明。
(3)概念结构设计:绘制所选课题详细的E-R图。
(4)逻辑结构设计:将E-R图转换数据库的逻辑结构,并进行优化。
(5)物理结构设计:选定实施环境,确定系统数据库的存储结构和存取方法等。
(6)数据实施和维护:用DBMS建立数据库结构,加载数据,实现各种查询,链接应用程序,设计库中触发器、存储过程等对象,并能对数据库做简单的维护操作。
教师评阅摘要采用Mysql作为软件开发环境开发数据库,设计了一个班级管理系统,该系统具有学生基本信息管理功能、班务管理功能、班费管理功能、考勤管理功能、成绩管理功能、用户权限管理功能等。
班级管理系统后台数据库设计设计人:xxx一、需求分析班级是我们生活的大集体,现在的手工处理方式比起计算机数据库来,不方便保存与查阅,不方便录入和查询,处理麻烦,效率不高,并且观看很难查找。
班级管理系统后台数据库方便辅导员管理学生,了解学生的各种信息,记录学生在学校期间的活动和成长过程。
班级管理系统后台数据库也方便学生们,找到自己的信息,了解自己做学校期间的各种活动,班委可以方便的知道自己的职责所在。
班级管理系统后台数据库比起手工处理方式好处很多,方便资料的保存,方便信息的查询,录入。
方便观看和处理。
二、系统功能经调研,我们认为本系统应具备以下功能:(1)学生基本信息管理(2)学生成绩管理(3)记录学生出勤情况(4)记录偶发事件情况(5)记录班委的信息和职责(6)助学金管理三、数据库设计(1)学生基本信息表(2)学生成绩表(3)日常考勤表(4)考勤类别表(5)偶发事件表(6)班委信息表(7)助学金信息表四、实施步骤(1)数据库的创建Creat database 班级管理系统(2)表对象的创建create table 学生基本信息表(学号 varchar(20) primary key, 姓名 varchar(20),性别 cahr(2) default '男',民族 char(2) default '汉',出生日期 datetime,籍贯 char(10) default '中国', 联系电话 varcahr(20),家庭住址 varchar(50),父母电话 char(20),是否团员 char(10),入学成绩 int(5))create table 学生成绩表(学号varchar(20) primary key,姓名varchar(20),C语言 float(10) default 0,计算机基础 float(10) default 0, 电脑美术 float(10) default 0, 大学英语 float(10) default 0, 国学 float(10) default 0,思政 float(10) default 0,体育 float(10) default 0)create table 日常考勤表(日期datetime,学号varchar(20) primary key, 早训 int(2),第一节 int(2),第二节 int(2),第三节 int(2),第四节 int(2),第五节 int(2),第六节 int(2),第七节 int(2),第八节 int(2),晚训 int(2),晚点名 int(2))create table 考勤类别表(类别代码int(2),类别说明varchar(20))create table 偶发事件表(日期datetime,情况说明varchar(100), 处理结果varchar(100))create table 班委信息表(职务varchar(20),学号varchar(20),姓名varchar(20),工作职责varchar(50))create table 助学金信息表(学号varchar(20),姓名varchar(20),收入证明varchar(10),政府证明char(10),是否合格char(5),金额int(10),卡号char(20),是否领取char(2))(3)表数据的编辑-- 添加insert into 学生信息表values('123456789','哈哈','','','2012-04-10','','130********','中国四川','','共青团员','')go-- 删除delete 学生信息表where 姓名='哈哈'-- 修改update 学生信息表set 姓名='呵呵'where 姓名='哈哈'(4)数据查询--查询每个学生学号、姓名、年龄和联系电话。
班级数据库课程设计一、教学目标本课程的教学目标是使学生掌握数据库的基本概念、原理和操作方法,能够使用数据库管理系统进行数据的、存储、查询和维护。
具体包括:1.知识目标:理解数据库的基本概念,掌握数据库管理系统的基本原理和操作方法,了解数据库设计的基本步骤。
2.技能目标:能够使用数据库管理系统进行数据的创建、修改、删除和查询,能够进行简单的数据库设计。
3.情感态度价值观目标:培养学生对数据库技术的兴趣,认识到数据库技术在信息社会中的重要性和应用前景。
二、教学内容本课程的教学内容主要包括数据库的基本概念、数据库管理系统的基本原理和操作方法、数据库设计的基本步骤。
具体包括:1.数据库的基本概念:数据库的定义、特点、分类和发展历程。
2.数据库管理系统的基本原理和操作方法:数据库管理系统的结构、功能和操作方法。
3.数据库设计的基本步骤:需求分析、概念设计、逻辑设计和物理设计。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法和实验法。
具体包括:1.讲授法:通过讲解数据库的基本概念、原理和操作方法,使学生掌握基本知识。
2.案例分析法:通过分析实际案例,使学生了解数据库管理系统的应用和数据库设计的过程。
3.实验法:通过上机实验,使学生掌握数据库管理系统的基本操作和数据库设计的方法。
四、教学资源本课程的教学资源主要包括教材、多媒体资料和实验设备。
具体包括:1.教材:选用权威、实用的数据库教材,为学生提供系统的理论知识。
2.多媒体资料:制作课件、演示文稿等多媒体资料,提高学生的学习兴趣和效果。
3.实验设备:配置数据库管理系统软件和实验设备,为学生提供实践操作的机会。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
具体包括:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的表现,以反映学生的学习态度和理解程度。
2.作业:布置适量的作业,评估学生的知识掌握和应用能力。
3.考试:进行期中和期末考试,全面评估学生的知识掌握和应用能力。
洛阳理工学院课程设计报告课程名称数据库课程设计设计题目教务管理系统专业计算机科学与技术班级学号姓名完成日期课程设计任务书设计题目:教务管理系统设计内容与要求:设计教务管理系统,类似于我校教务管理系统,有四类用户:教务员、学生、教师、管理员教务员可以输入学生、教师、班级、课程信息。
一个班级只属于一个专业,一个学生只属于一个班级。
教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。
教师可以查看学习该课程的学生名单。
课程结束后,教师可以录入课程成绩。
一个教师可以教授多个班的多门课程,每门课由多位老师讲授。
课程分两类,必修课和选修课。
系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。
学生可以查看自己各门课程的成绩。
学生还可以进行评教,给老师打分。
管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。
要求:1.完成本系统的需求分析,写出功能需求和数据需求描述;2.完成数据库的概念结构设计、逻辑结构设计、物理结构设计;3.完成本系统的部分功能模块的程序界面设计。
指导教师:2017 年12 月29 日课程设计评语成绩:指导教师:_______________年月日目录一、概述 (2)1.1、本设计的目的与意义 (2)1.2、数据库开发工具和应用程序开发工具 (2)二、需求分析 (2)2.1功能需求 (2)2.2数据需求 (2)三、概念结构设计 (2)3.1、E-R模型设计 (2)3.2、总体E-R图描述 (4)四、逻辑结构设计 (4)4.1、关系模型 (4)4.2、关系模式的优化与说明 (4)五、物理结构设计 (5)5.1建立数据库 (5)5.2表与表结构 (5)六、应用程序设计 (6)6.1、系统总体结构 (6)6.2、系统界面与源代码 (7)6.2.1、界面 (8)6.2.2、功能描述 (9)6.2.3、程序源代码 (10)七、设计总结 (23)一、概述本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2008数据库无缝链接。
课程设计说明书课程名称:《数据库原理课程设计》课程代码:题目:教室管理系统数据库设计年级/专业/班:目录摘要 (1)一、引言 (2)二、设计目的与任务 (2)三、设计方案 (2)1、需求分析 (2)1.1教室管理子系统数据库的数据需求 (2)1.2数据字典 (3)2、概念设计 (5)2.1教室管理系统数据库中的实体集 (5)2.2教室管理系统数据库中的联系集 (6)2.3教室管理系统数数据库中的E-R图 (6)3、逻辑设计 (8)4、数据库实现 (9)4.1 建立数据库模式、视图及索引 (9)4.2 装载数据 (11)四、结论 (12)五、致谢 (12)六、参考文献 (13)摘要在校园生活中,教室仍然是教学活动和学生课余活动中最主要的场所之一,然而,由于学生数目过大,教室资源有限限制了师生使用教室。
以前,一些学校对教室的管理仅限于人工管理,处理起来比较复杂,容易出错,而且不利于删除和添加,更加不利于查找,凸显出建立教室安排系统的紧迫性。
本系统着力于整合教室管理中的课程安排,教室调课,设备损坏及维修以及单位借用等影响教室使用的环节,实现统一管理。
在此基础上提供方便有效的课表查询,空教室查询,学生出勤次数查询,设备维护记录查询。
本系统针对教室管理不统一的问题,着力于将教室管理中的课程安排,教师调课,单位借用等联系起来,建立一个统一的管理系统,以提高处理效率,方便统一管理,同时为师生提供方便的查询。
教室安排系统使得教室的安排变得更加简单,添加与删除变得更加容易,特别是教室查找。
此系统提高了信息处理的速度与准确性,能够及时准确有效的查询和修改教室的安排情况,以及更有效的对设备维护进行管理。
关键词:数据库教室管理自动化处理Abstractin campus life, the classroom is still teaching activities and students after school activity of one of the most main place, however, because the number of students is too big, the classroom limited resources, limit the use of the classroom teachers and students. Before, some schools to the classroom management is limited to artificial management, processing up more complex and error-prone, and not delete and add, more detrimental to find, highlights the urgency of the system set up the classroom arrangement. This system focused on integration in the management of the classroom course arrangement, the classroom the class, damage of equipment and maintenance and unit on the use of the classroom use link, realize unified management. Based on this provide convenient and effective schedule query, an empty classroom inquires the, the student attendance number query, equipment maintenance record inquires the. This system in the classroom management is not the problem of unity, focused on the management of teachers will be curriculum, teacher adjusts the class, the unit use associate, establish a unified management system management system, in order to improve the treatment efficiency, convenient unified management, and provide convenience for the teachers and students of the inquiry. The classroom arrangement system makes the arrangement of the classroom becomes more simple, add and delete become more easy, especially in the classroom to search. This system improves the speed and accuracy of information processing, can prompt, accurate and valid inquires the classroom arrangements and modification, and more effective to equipment maintenance management.Key words: database class management Automatic processing《数据库原理课程设计》--教室管理系统课程设计一、引言信息管理作为计算机应用的一个分支,已经渗透到了人们生活中的各个方面,如飞机订票系统,银行存储系统,校园学生信息管理系统等都需要将信息进行系统化的管理,而这就与数据库密不可分。
齐齐哈尔大学数据库课程设计报告题目:班级事务管理系统班级:计本095姓名:张珅学号:2009021163指导教师:潘海珠2012年 6 月 24 日数据库课程设计评分表在90~100为优,80~89为良,70~79为中,60~69为及格,60分以下为不及格。
目录1.数据库设计内容 (3)1.1课程设计任务与要求 (3)1.1.1任务 (3)1.1.2设计要求 (3)1.1.3运行环境 (3)1.2需求分析 (3)1.2.1数据需求 (3)1.2.2事物需求 (4)1.2.3关系模式 (4)1.3概念结构设计 (5)1.3.1 E-R图 (5)1.4.逻辑结构设计 (6)1.4.1表结构 (6)1.4.2数据库设计及完整性约束 (8)1.4.3数据库用户权限管理 (9)2.应用系统设计 (10)2.1需求分析 (10)2.1.1数据需求 (10)2.1.2事物需求 (10)2.1.3关系模式 (11)2.1.5数据字典 (11)2.2概念结构设计 (13)2.3详细设计 (14)2.3.1流程图 (14)2.4运行界面 (15)2.4.1管理员登陆界面 (15)2.4.2管理员查询、添加、修改、删除学生基本信息表 (15)2.4.3成绩查询、添加、删除 (19)2.4.4课程的查询、添加、删除 (21)2.4.5学生详细信息的查询、添加、删除 (23)2.4.6.普通用户登录界面 (26)2.4.7个人事务管理登录界面 (27)2.4.8生活委员管理特殊权限 (27)2.4.9个人事务事件管理界面 (31)3.课程设计心得体会 (34)4.参考文献 (35)1.数据库设计内容1.1.课程设计任务与要求1.1.1.任务班级事务管理系统问题描述:班级管理信息系统的任务是收集、存储、管理班级同学的相关信息,以及班级日常管理中的相关信息。
为班级信息公开、增进同学交流了解服务,同时加强班级管理、提高班级管理与服务的效率和质量。
1.1.2.设计要求1.实现用户登录。
2.实现管理员管理班级事务。
(学生信息、成绩、课程、详细信息的增、删、改、查)3.实现学生成绩查询。
4.实现个人事务管理。
5.实现生活委员班费管理。
1.1.3.运行环境WindowsXP、SQL Server5.0、Myeclipse6.0、Tomcat5.5.28、IE 浏览器、JDK 1.2需求分析1.2.1.数据需求班级事务管理系统需要完成功能主要有:1.学生基本信息的输入,包括学号、姓名、担任职务等。
2.学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、角色等。
3.学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。
4.课程的添加、删除,包括课程号、课程名、学分、任课老师。
5.生活委员对班费的管理,包括班费的收入、支出。
6.个人对本人事务的管理,包括时间和事件。
1.2.2事物需求1.管理员对学生事务管理部分,要求:a.可以查询学生基本、详细信息、课程信息以及成绩。
b.可以对学生基本信息、详细信息进行添加、修改及删除操作。
c.可以对课程信息进行添加、删除操作。
d.可以对学生成绩进行添加、删除操作。
2.生活委员对班费的管理,要求:a.可以查询班费收入支出的详细信息。
b.可以对班费信息进行添加、修改、删除操作。
1.2.3关系模式学生用户表(学号、姓名、密码、担任职务、角色)课程表(课程号、课程名、学分、任课老师)成绩表(主键、学号、课程号、成绩)学生详细信息表(id、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)生活委员事物表(ID、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果)其它管理页面(ID、时间、内容、结果)1.3概念结构设计1.3.1. E-R图1.4逻辑结构设计1.4.1表结构1.4.2数据库设计及完整性约束学生用户表:create table user(id int auto_increment primary key,username varchar(10),userpass varchar(20),userjob varchar(10),userrole varchar(10))课程表:create table course(id int auto_increment primary key,cname varchar(20),ccredit int,cteacher varchar(20))成绩表:create table Sc(id int auto_increment primary key,uid int,cid int,sgrade varchar(5))ALTER TABLE Sc ADD CONSTRAINT fk_Sc_uid FOREIGN KEY(uid) REFERENCES user(id);ALTER TABLE Sc ADD CONSTRAINT fk_Sc_cid FOREIGN KEY(cid) REFERENCEScourse(id);学生详细信息表:create table stuinfo(id int auto_increment primary key,stuid int,stubirth varchar(20),stuidentity varchar(30),stuaddr varchar(200),studorm varchar(20),stucard varchar(20))ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo_stuid FOREIGN KEY(stuid) REFERENCES user(id);生活委员事物表:create table shwy(id int auto_increment primary key,time varchar(20),addr varchar(100),stunum int ,startmoney decimal,expense decimal,endmoney decimal,actmeaning text,actresult varchar(10))其它管理页面:create table qita(id int auto_increment primary key,qtime varchar(20),qcontent text,qresult varchar(20))1.4.3.数据库用户权限管理该系统设置三种类型的用户1.管理员(admin) 即系统管理员拥有对学生基本信息、详细信息、成绩、课程的管理权限。
2.生活委员(shwy) 可以对班级班费收入支出的详细信息进行管理;3.其他个人(qita)对个人事务事件进行管理。
2.应用系统设计2.1.需求分析2.1.1数据需求班级事务管理系统需要完成功能主要有:1.学生基本信息的输入,包括学号、姓名、担任职务等。
2.学生基本信息的添加、查询、修改、删除,包括学生学号、姓名、职务、角色等。
3.学生成绩的添加、查询、修改、删除,包括学号、课程号、分数。
4.课程的添加、删除,包括课程号、课程名、学分、任课老师。
5.生活委员对班费的管理,包括班费的收入、支出。
6.个人对本人事务的管理,包括时间和事件。
2.1.2事物需求1.管理员对学生事务管理部分,要求:a.可以查询学生基本、详细信息、课程信息以及成绩。
b.可以对学生基本信息、详细信息进行添加、修改及删除操作。
c.可以对课程信息进行添加、删除操作。
d.可以对学生成绩进行添加、删除操作。
2.生活委员对班费的管理,要求:a.可以查询班费收入支出的详细信息。
b.可以对班费信息进行添加、修改、删除操作。
2.1.3关系模式学生用户表(学号、姓名、密码、担任职务、角色)课程表(课程号、课程名、学分、任课老师)成绩表(主键、学号、课程号、成绩)学生详细信息表(id、学生学号、出生日期、身份证号码、家庭往址、宿舍号、银行卡号)生活委员事物表(ID、时间、活动地点、活动人数、消费前班费余额、消费金额、消费后班费余额、活动意义、活动结果)其它管理页面(ID、时间、内容、结果)2.1.5数据字典为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供供有关元素一致性定义和详细的描述:1.数据流字典数据流名称:管理员登录(P3)来源:管理员去向:查询学生基本信息数据组成:姓名+密码+登录权限数据流名称:学生个人登录来源:个人去向:查询个人信息数据组成:姓名+密码+登录权限数据流名称:生活委员登录来源:生活委员去向:班费管理数据组成:姓名+密码+登录权限数据流名称:所有学生基本信息查询来源:管理员去向:查询处理过程数据组成:学号|姓名|密码|担任职务|角色数据流名称:所有学生详细信息查询来源:管理员去向:查询处理过程数据组成:学生学号|出生日期|身份证号码|家庭往址|宿舍号|银行卡号数据流名称:成绩和课程查询来源:学生去向:查询处理过程数据组成:主键|学号|课程号|成绩数据流名称:班费管理查询来源:生活委员去向:查询处理过程(P3)数据组成:ID|时间|活动地点|活动人数|消费前班费余额|消费金额|消费后班费余额|活动意义|活动结果数据流名称:个人事务查询来源:学生去向:查询处理过程数据组成:ID|时间|内容|结果2.2.概念结构设计2.3.详细设计2.3.1流程图2.4.运行界面2.4.1管理员登陆界面2.4.2管理员查询、添加、修改、删除学生基本信息表程序代码说明package .dao;import java.io.UnsupportedEncodingException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import erBean;import .util.DBConnection;public class StudentDao {public List queryAllStudent(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement ("select * from user");ResultSet rs = ps.executeQuery();while (rs.next()) {UserBean student = new UserBean();student.setId(rs.getInt("id"));student.setUsername(rs.getString("username"));student.setUserpass(rs.getString("userpass"));student.setUserjob(rs.getString("userjob"));student.setUserrole(rs.getString("userrole"));list.add(student);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public UserBean queryById(int id){Connection conn = DBConnection.getConnection();UserBean student=null;try {PreparedStatement ps = conn.prepareStatement("select * from user where id=?");ps.setInt(1, id);ResultSet rs = ps.executeQuery();while (rs.next()) {student = new UserBean();student.setId(rs.getInt("id"));student.setUsername(rs.getString("username"));student.setUserpass(rs.getString("userpass"));student.setUserjob(rs.getString("userjob"));student.setUserrole(rs.getString("userrole"));}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return student;}public int updateStuInfo(UserBean stu){Connection conn = DBConnection.getConnection();UserBean student=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("update user set username=?,userpass=?,userjob=?,userrole=? where id=?");ps.setString(1,stu.getUsername() );ps.setString(2,stu.getUserpass() );ps.setString(3,stu.getUserjob());ps.setString(4,stu.getUserrole() );ps.setInt(5, stu.getId());flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int deleteInfo(int id){Connection conn = DBConnection.getConnection();UserBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement ("delete from user where id=?");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addStudentInfo(UserBean ub) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;String username=ub.getUsername();try {username=newString(username.getBytes("ISO-8859-1"),"UTF-8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}try {ps = conn.prepareStatement("insert into user(username,userpass,userjob,userrole) values(?,?,?,?)");ps.setString(1, ub.getUsername());ps.setString(2, ub.getUserpass());ps.setString(3,ub.getUserjob());ps.setString(4, ub.getUserrole());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}}2.4.3.成绩查询、添加、删除程序代码说明:package .dao;import java.io.UnsupportedEncodingException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import .bean.CoursBean;import .bean.ScBean;import erBean;import .util.DBConnection;public class ScDao {public List queryAllSc(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from sc");ResultSet rs = ps.executeQuery();while (rs.next()) {ScBean scb= new ScBean();scb.setId(rs.getInt("id"));scb.setUid(rs.getInt("uid"));scb.setCid(rs.getInt("cid"));scb.setSgrade(rs.getString("sgrade"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteScInfo(int id){Connection conn = DBConnection.getConnection();ScBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement ("delete from sc where id=?;");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addScInfo(ScBean ub) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insert into sc(uid,cid,sgrade) values(?,?,?)");ps.setInt(1, ub.getUid());ps.setInt(2, ub.getCid());ps.setString(3,ub.getSgrade());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}}2.4.4课程的查询、添加、删除程序代码说明:package .dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import .bean.CoursBean;import .bean.ScBean;import .util.DBConnection;public class CourseDao {public List queryAllCourse(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from course");ResultSet rs = ps.executeQuery();while (rs.next()) {CoursBean scb= new CoursBean();scb.setId(rs.getInt("id"));scb.setCname(rs.getString("cname"));scb.setCcredit(rs.getInt("ccredit"));scb.setCteacher(rs.getString("cteacher"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteCourseInfo(int id){Connection conn = DBConnection.getConnection();ScBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from course where id=?;");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addCourseInfo(CoursBean cb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insert into course(cname,ccredit,cteacher) values(?,?,?)");ps.setString(1, cb.getCname());ps.setInt(2, cb.getCcredit());ps.setString(3,cb.getCteacher());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}}2.4.5.学生详细信息的查询、添加、删除程序代码说明:package .dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import .bean.StuInfoBean;import .util.DBConnection;public class StuInfoDao {public List queryAllStuInfo(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from stuinfo");ResultSet rs = ps.executeQuery();while (rs.next()) {StuInfoBean sfb= new StuInfoBean();sfb.setId(rs.getInt("id"));sfb.setId(rs.getInt("stuid"));sfb.setStubirth(rs.getString("stubirth"));sfb.setStuidentity(rs.getString("stuidentity"));sfb.setStuaddr(rs.getString("stuaddr"));sfb.setStudorm(rs.getString("studorm"));sfb.setStucard(rs.getString("stucard"));list.add(sfb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}//管理员删除学生详细信息public int deleteStuInfo(int id){Connection conn = DBConnection.getConnection();StuInfoBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from stuinfo where id=?;");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}//添加学生详细信息public int addStuInfo(StuInfoBean cb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insertintostuinfo(stuid,stubirth,stuidentity,stuaddr,studorm,stucar d) values(?,?,?,?,?,?)");ps.setInt(1, cb.getStuid());ps.setString(2, cb.getStubirth());ps.setString(3, cb.getStuidentity());ps.setString(4,cb.getStuaddr());ps.setString(5, cb.getStudorm());ps.setString(6,cb.getStucard());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}}2.4.6.普通用户登录界面2.4.7.个人事务管理登录界面2.4.8.生活委员管理特殊权限程序代码说明:package .dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import .bean.ShwyBean;import .util.DBConnection;public class ActivityDao {public List queryAllActivity(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from shwy");ResultSet rs = ps.executeQuery();while (rs.next()) {ShwyBean scb= new ShwyBean();scb.setId(rs.getInt("id"));scb.setTime(rs.getString("time"));scb.setAddr(rs.getString("addr"));scb.setStunum(rs.getInt("stunum"));scb.setStartmoney(rs.getDouble("startmoney"));scb.setExpense(rs.getDouble("expense"));scb.setEndmoney(rs.getDouble("endmoney"));scb.setActmeaning(rs.getString("actmeaning"));scb.setActresult(rs.getString("actresult"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteArrInfo(int id){Connection conn = DBConnection.getConnection();ShwyBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("delete from shwy where id=?");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addArrInfo(ShwyBean cb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insertintoshwy(time,addr,stunum,startmoney,expense,endmoney,actmean ing,actresult) values(?,?,?,?,?,?,?,?)");ps.setString(1, cb.getTime());ps.setString(2, cb.getAddr());ps.setInt(3, cb.getStunum());ps.setDouble(4, cb.getStartmoney());ps.setDouble(5,cb.getExpense());ps.setDouble(6,cb.getEndmoney());ps.setString(7,cb.getActmeaning());ps.setString(8,cb.getActresult());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}public ShwyBean queryById(int id){Connection conn = DBConnection.getConnection();ShwyBean sb=null;try {PreparedStatement ps = conn.prepareStatement("select * from shwy where id=?");ps.setInt(1, id);ResultSet rs = ps.executeQuery();while (rs.next()) {sb = new ShwyBean();sb.setId(rs.getInt("id"));sb.setTime(rs.getString("time"));sb.setAddr(rs.getString("addr"));sb.setStunum(rs.getInt("stunum"));sb.setStartmoney(rs.getDouble("startmoney"));sb.setExpense(rs.getDouble("expense"));sb.setEndmoney(rs.getDouble("endmoney"));sb.setActmeaning(rs.getString("actmeaning"));sb.setActresult(rs.getString("actresult"));}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return sb;}public int updateArrInfo(ShwyBean sb){Connection conn = DBConnection.getConnection();ShwyBean student=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement("updateshwysettime=?,addr=?,stunum=?,startmoney=?,expense=?,endmoney=?,actmeaning=?,actresult=? where id=?");ps.setString(1,sb.getTime() );ps.setString(2,sb.getAddr() );ps.setInt(3,sb.getStunum());ps.setDouble(4,sb.getStartmoney() );ps.setDouble(5,sb.getExpense() );ps.setDouble(6,sb.getEndmoney() );ps.setString(7,sb.getActmeaning());ps.setString(8,sb.getActresult() );ps.setInt(9, sb.getId());flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}}2.4.9.个人事务事件管理界面程序代码说明:package .dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import .bean.QitaBean;import .util.DBConnection;public class QitaDao {public List queryAllQita(){List list = new LinkedList();Connection conn = DBConnection.getConnection();try {PreparedStatement ps = conn.prepareStatement("select * from qita");ResultSet rs = ps.executeQuery();while (rs.next()) {QitaBean scb= new QitaBean();scb.setId(rs.getInt("id"));scb.setQtime(rs.getString("qtime"));scb.setQcontent(rs.getString("qcontent"));scb.setQresult(rs.getString("qresult"));list.add(scb);}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public int deleteQitaArrInfo(int id){Connection conn = DBConnection.getConnection();QitaBean lb=null;int flag=0;try {PreparedStatement ps = conn.prepareStatement ("delete from qita where id=?");ps.setInt(1, id);flag= ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return flag;}public int addQitaArrInfo(QitaBean qb) {int flag = 0;Connection conn = DBConnection.getConnection();PreparedStatement ps;try {ps = conn.prepareStatement("insert into qita(qtime,qcontent,qresult) values(?,?,?)");ps.setString(1, qb.getQtime());ps.setString(2, qb.getQcontent());ps.setString(3, qb.getQresult());flag=ps.executeUpdate();conn.close();} catch (SQLException e) {e.printStackTrace();}return flag;}public QitaBean queryById(int id){Connection conn = DBConnection.getConnection();QitaBean qb=null;try {PreparedStatement ps = conn.prepareStatement("select * from qita where id=?");ps.setInt(1, id);ResultSet rs = ps.executeQuery();while (rs.next()) {qb = new QitaBean();qb.setId(rs.getInt("id"));qb.setQtime(rs.getString("qtime"));qb.setQcontent(rs.getString("qcontent"));qb.setQresult(rs.getString("qresult"));}} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}return qb;}}3.课程设计心得体会在本次课程设计的软件开发的过程中,不仅学到了很多知识,还认识了很多事情全面实践一个面向数据库的应用系统的开发过程,这样的项目对我们学过的数据结构,程序设计,数据库,软件工程等课程是一个综合性很高的实践。