MySQL学生成绩管理系统设计实验报告一、概述主要介绍学生成绩管理系统项目开发的背景、目的、对象和研究内容。 1.1项目背景 每所学校都需要在期末对考试成绩进行统计分析,这些任务必须在考试结束后的一周内完成。大量性能数据的统计工作如果仅靠人工完成,既费时费力,又容易出错。随着随机计算机技术的飞速发展和计算机在日常管理应用中的迅速普及,利用计算机来管理学生的成绩势在必行。因此,有必要开发一套功能完善、安全、可靠、快捷、方便的分数管理系统,以满足学校对分数的录入、查询和修改的需要。 1.2写的目的是为了开发一个操作简单,界面友好,灵活实用,
大家好,我是建筑师,一个会写代码,会背诗的建筑师。今天就来说说MySQL学生成绩管理系统设计的实验报告,希望能帮助大家提高!!!
一、概述
主要介绍学生成绩管理系统项目开发的背景、目的、对象及研究内容。
1.1 项目背景
每个学校都需要在期末进行考试成绩的统计分析工作,而这些工作都必须在考试结束后一个星期的时间内完成。大量的成绩数据的统计工作如果只靠人工完成,费时费力,还容易出错。随机计算机技术的快速发展,计算机在日常管理应用中迅速普及,利用计算机进行学生成绩管理势在必行。因此需要开发出一个满足学校进行成绩的录入、查询、修改等需求的功能完善,安全可靠,迅速便捷的成绩管理系统。
我只听到建筑师办公室传来建筑师的声音:
现在他们都是陌生人,没有理由见面。谁来检查上层或下层链接?
1.2 写作目的
开发一个操作简单、界面友好、灵活实用、安全可靠的学生成绩管理系统。该系统的开发旨在为教师和学生服务。可以提高学校对学生成绩统计分析的效率,减轻教育管理者对学生成绩管理和统计的负担,提高学校对学生成绩的规范化管理。
成绩系统可以及时收集和整理学生成绩,以便学校相关部门及时获得可靠的学生成绩信息,方便管理。方便教师在课堂上记录和统计学生的成绩,提高工作效率,减轻负担,提高教学质量。可以快速、便捷地处理大量等级数据信息,完成等级录入、修改、删除、查询等处理需求。方便学生查看各科成绩。
1.3 软件定义
学生成绩管理系统是一个记录学生成绩的系统,可以实现查询、更新、插入、删除等功能。根据不同的用户设置不同的权限,保证学生成绩信息的安全性和完整性。
1.4 开发环境
windows10操作系统,mysql5.6.17数据库服务器,Eclipse4.12.0mysql数据库设计报告,Navicat。
二、可行性分析
由于本系统管理的对象是单一的,而且各个数据内容之间具有很强的相关性,所涉及的计算过程并不是很复杂。因此,更适合使用数据库管理。技术难度方面,由于导师的指导和相关参考资料,尤其是网上资料,尤其是其他程序的功能,完全可以实现。
2.1 经济可行性分析
随着科学技术的不断发展和创新,计算机的作用日益突出,计算机软件已成为人们解决问题的有效手段。当然,它的作用也越来越重要。当今信息时代,国民经济和国防建设、社会发展、人民生活都离不开软件,软件无处不在。软件产业也是一个新兴产业。虽然起步较晚,但发展迅速,已成为发展最快的行业。是高投入、高产出、无污染、低能耗的绿色产业。学生成绩管理系统是基于教务处数据库的管理系统。它对已使用的类似系统进行调查、分析和类比。本项目的特点是:开发工作量小,可以两人联合开发,也可以一人独立开发。 , 开发周期短,熟练的开发人员可以在一个月内完成系统的开发和测试。
2.2 技术可行性分析
从技术上讲,Eclipse 是一个开源、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。 Eclipse 附带一组标准插件,包括 Java 开发工具包 (JDK)。可以利用学过的Java知识进行编程,然后连接数据库,通过SQL语句就可以方便的查询和更新后台数据库中的数据。
三、需求分析3.1 功能需求
根据用户需求,系统需要为用户提供以下功能:
1、系统登录功能:根据师生两种身份设计不同用户的操作权限和登录方式。
2、类管理功能:类的添加、修改、删除功能。
3、成绩管理功能:学生成绩的录入、修改、删除、查询、统计,可一次录入一个班级所有学生的成绩。
4、信息管理功能:添加、修改、删除、查询学生基本信息,一次导入一个班级的所有学生信息。
5、成绩查询功能:每个学生可以查询所有课程的成绩。教师可以查询所带班级的成绩,并可以对成绩进行排序和统计。
图3-1-1 学生成绩管理系统功能结构图
3.2 性能要求
1、易于操作:开发的系统应易于操作,并尽量使系统操作不受用户计算机知识水平的限制。
2、可维护性:系统应易于修改、扩展和维护,并能够适应业务不断变化的需求。
3、可靠性:如果系统在运行过程中出现故障或很少出现故障,在发生意外事故和操作错误时,系统应具有很强的推理能力,不应造成信息丢失或破坏。
4、安全:保证系统的物理安全,数据存储和获取的安全保密,做好用户的授权管理。
5、实用性:系统的设计应最大限度地发挥计算机的高速处理和海量存储能力。
6、开放性:系统可以在开放的硬件架构中运行,并且可以与其他系统平滑连接,无需因外部系统的不同方面而进行大量的修改工作。
四、数据库设计4.1 数据库需求分析
数据库在系统运行和数据处理的综合管理中发挥着作用,在信息管理的系统中占有非常重要的地位。数据库结构设计的好坏将直接影响应用系统的执行效率和实现的效果。 合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。
数据库需求分析是对用户的需求进行分析,根据用户的需求,分析确定系统将要运行和处理的数据,并根据它们之间的关系设计确定的数据的结构。需求分析结果直接反映了客户的需求,需求分析结果是否准确将直接影响后续阶段的设计结果是否合理、正确。因此,数据库的需求分析是非常重要的一环。
数据库需求分析的任务是通过对现实中要处理的对象的详细调查,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑未来可能的扩展和变化,不能只根据当前的应用需求来设计数据库。
根据系统需求,详细分析系统的数据库需求。基于学生成绩管理系统的数据库功能主要体现在多用户登录信息、学生基本信息、教师基本信息、学生成绩信息的管理。
4.2 用户对系统的要求4.2.1 信息要求
教师可以查询所有年级相关信息,包括学生的学号、成绩等详细信息,学生可以查询自己的具体信息,包括每门课程的成绩、学院、专业、班级等。
4.2.2 处理请求
1、需要查询学生相关信息时可以查询;
2、当学生的成绩信息发生变化时,可以进行修改、插入、删除等操作;
3、学生信息发生变化时可以更新或删除。
4.2.3 安全性和完整性要求
安全要求:
1、系统要设置访问用户的身份来识别是否是合法用户,并设置密码保证用户的身份不被盗用;
2、为不同的数据设置不同的访问级别,限制用户可以查询和处理的数据的类别和内容;
3、为不同的用户设置不同的权限,以区分不同的用户,例如学生和年级管理员。
4.3 数据需求说明
数据流程图:
图4-3-1 顶层数据流程图
数据字典:
①学生(学号Sno、姓名Sname、性别Sex、专业编号Mno、班级编号Cnum)
属性名称字段类型长度主键或外键描述
SNO INT 5 主键学号
SNAME CHAR 20 名称
SEX CHAR 2 性别
MNO INT 5 外键专业号码
CNUM INT 5 外键类号
②教师(员工编号Tno,姓名Tname,职称Title)
属性名称字段类型长度主键或外键描述
TNO INT 5 主键员工编号
TNAME CHAR 20 名称
TITLE CHAR 5 标题
③Course课程(Course Number Cno、Course Name Cname、Credit Credit)
属性名称字段类型长度主键或外键描述
CNO INT 5 主键课程编号
CNAME CHAR 30 课程名称
CREDIT CHAR 2 个学分
④班级(班级编号Cnum,人数Num)
属性名称字段类型长度主键或外键描述
CNUM INT 5 主键类号
NUM INT 5 人
⑤部门(部门编号Dno,部门名称Dname)
属性名称字段类型长度主键或外键描述
DNO INT 5 主键序列号
DNAME CHAR 30 系列名称
⑥专业专业(专业编号Mno,专业名称Mname,编号Dno)
属性名称字段类型长度主键或外键描述
MNO INT 5 主键专业号
MNAME CHAR 20 专业名称
DNO INT 5 外键序列号
⑦选课CV(学号Sno、课程号Cno、成绩成绩)
属性名称字段类型长度主键或外键描述
SNO INT 5 学号
CNO INT 5 课程编号
RESULT CHAR 5 级
⑧Student-Teacher ST(学生号Sno,员工号Tno,课程号Cno)
属性名称字段类型长度主键或外键描述
SNO INT 5 学号
TNO INT 5 员工编号
CNO INT 5 课程编号
4.4 逻辑结构设计
此代码由Java架构师必看网-架构君整理一个系有若干个专业,一个专业有若干个班级,一个学生可以选修多门课程。
关系模式表:
①学生(学号Sno、姓名Sname、性别Sex、专业编号Mno、班级编号Classno)
学号->姓名、学号->性别、学号->专业ID、班级ID->专业ID;
②教师(员工编号Tno,姓名Tname,职称Title)
员工编号->姓名、员工编号->职称;
③Course课程(Course Number Cno、Course Name Cname、Credit Credit)
课程ID->课程名称、课程ID->学分;
④班级(班级编号Cnum,人数Num)
班级人数->人数;
⑤部门(部门编号Dno,部门名称Dname)
序列号->部门名称;
⑥专业专业(专业编号Mno,专业名称Mname,编号Dno)
专业编号->专业名称、专业编号->系列编号;
⑦选课CV(学号Sno、课程号Cno、成绩成绩)
学生ID、课程ID->成绩;
⑧Student-Teacher ST(学生号Sno,员工号Tno,课程号Cno)
学生 ID、员工 ID->课程 ID
其中①是第三范式,②③④⑤⑥⑦⑧都是BCNF范式
4.5 物理设计4.5.1 索引设计:
创建表 Student1 (
名字 CHAR(20),
Sno INT(5),
性别 CHAR(2),
Mno INT(5),
类 INT(5),
主键(Sno),
索引学生1(Sno)
);
创建表 Teacher1 (
Tno INT(5),
Tname CHAR(20),
标题 CHAR(5),
索引教师1(Tno)
);
创建表课程 1 (
Cname CHAR(20),
Cno INT(5),
信用 CHAR(2),
索引课程1(Cno)
);
创建表 Class1 (
Cnum INT(5),
整数 INT(5),
索引 Class1(Cnum)
);
创建表 Depart1 (
名称 CHAR(20),
Dno INT(5),
索引 Depart1(Dno)
);
创建表 Major1 (
Mname CHAR(20),
Mno INT(5),
Dno INT(5),
索引 Major1(Mno)
);
创建表 CV1 (
Sno INT(5),
Cno INT(5),
结果 CHAR(5),
指数 CV1(Sno,Cno)
);
创建表 ST1 (
Sno INT(5),
Tno INT(5),
Cno INT(5),
索引 ST1(Sno,Tno)
);
4.5.2触发器设计:
1、删除课程表中的课程号,相应地删除选课表和学生-教师表中的课程号:
DELIMITER %%
创建触发器删除顺序
在课程中删除后
每一行
开始
从 Cno=old.Cno 的 CV 中删除;
从 ST 中删除,其中 Cno=old.Cno;
结束 %%
DELIMITER %%
4.6 数据库实现4.6.1 用户模式设计
查看设计:
1、结果查询
创建视图 Rselect
作为
选择 cnum,CV.sno,sname,cno,result
来自学生,简历
其中 Student.sno=CV.sno;
2、学生课程和学分统计
创建视图总计
作为
选择 Sno,CV.Cno,Cname,Credit
来自课程,简历
哪里 Course.Cno=CV.Cno;
3、学生GPA,GPA
创建视图总和
作为
选择CV.Sno学号、姓名、sum(result)总成绩、avg(result)平均成绩
来自学生,简历
在哪里 Student.Sno=CV.Sno;
存储过程设计:
1、修改成绩
分隔符 C r e a t e p r o c e d u r e x i u g a (i n n n o 1 i n t (5), I n c n o 1 i n t (5), I n r e s u l t 1 c h a r (5)) B e g i n u p d e c v s e t n o = C n o 1 ; E N D CREATE PROCEDURE Xiugai (IN Sno1 INT(5), IN Cno1 INT(5),IN Result1 CHAR(5)) BEGIN update CV set Result=Result1 where Sno =Sno1 and Cno=Cno1 ; END CREATEPROCEDUREXiugai(INSno1INT(5),INCno1INT(5),INResult1CHAR(5))BEGINupdateCVsetResult=Result1whereSno=Sno1andCno=Cno1;END
分隔符;
2、查看总学分
分隔符 C r e a t e p r o c e d u e x u e f e n (I n s n o 1 i n t (5), I n s n a m e c h a r (20)) b e g .s n o G r o u p b y S n o ; E N D CREATE PROCEDURE Xuefen (IN Sno1 INT(5),IN Sname CHAR(20)) BEGIN Select Sno,Sname,Sum(Credit) as Total CreditsFrom student,CV where Student.sno=CV.sno按 Sno 分组;END CREATEPROCEDUREXuefen(INSno1INT(5),INSnameCHAR(20))BEGINSelectSno,Sname,Sum(Credit)asTotal creditsFromstudent,CVWhereStudent.sno=CV .snoGroupbySno;END
分隔符;
4.6.2 安全设计
新表
创建表用户(用户名 varchar(10),passw1 varchar(40),passw2 varchar(40)));
插入用户值(’user1′,MD5(‘110’),SHA1(‘110’));
插入用户值(’user2′,MD5(‘120’),SHA1(‘120’));
插入用户值(’user3′,MD5(‘112’),SHA1(‘112’));
创建由’110’标识的用户’cu1’@’localhost’;
创建由’120’标识的用户’cu2’@’localhost’;
创建由’112’标识的用户’cu3’@’localhost’;
授权cus1@localhost,即管理员权限
使用授予选项将所有 Stu.Student 授予 ‘cu1’@’localhost’;
使用授予选项将 Stu.Teacher 上的所有内容授予 ‘cu1’@’localhost’;
使用授权选项将 Stu.Course 上的所有内容授予 ‘cu1’@’localhost’;
使用授权选项将 Stu.Depart 上的所有内容授予 ‘cu1’@’localhost’;
使用授予选项将 Stu.Major 上的所有内容授予 ‘cu1’@’localhost’;
使用授予选项将 Stu.CV 上的所有内容授予 ‘cu1’@’localhost’;
使用授予选项将 Stu.ST 上的所有内容授予 ‘cu1’@’localhost’;
授权cus2@localhost,学生的权限
通过授予选项将 Stu.CV 上的选择授予 ‘cu2’@’localhost’;
授权cus3@localhost,即老师的权限
授予选择,将 Stu.CV 更新为 ‘cu3’@’localhost’ 并带有授予选项;
4.6.3 事务设计
1、修改课程学分:
分隔符 //
创建过程 BB(IN Cno1 INT(5),IN Cname1 CHAR(20),IN Credit1 CHAR(2)))
开始
declare t_err int default 0;
声明 CONTINUE HANDLER FOR SQLEXCEPTION SET t_err = 1;
开始交易;
从 Cno=Cno1 的课程中选择 Cno;
Select Cname from Course where Cname=Cname1;
从 Cno=Cno1 的课程中选择学分;
do sleep(20);/暂停20秒/
更新课程集 Credit = Credit1 其中 Cno=Cno1;
从 Cno=Cno1 的课程中选择 Credit Modified Credit;
如果 t_err =1 则
回滚; /* sql错误回滚/
其他
提交; / 提交没有 sql 错误 */
如果结束;
结束 //
分隔符;
2、编辑成绩:
分隔符 //
创建过程 BC(IN Sno1 INT(5),IN Cno1 INT(5),IN Result1 CHAR(5)))
开始
declare t_err int default 0;
声明 CONTINUE HANDLER FOR SQLEXCEPTION SET t_err = 1;
开始交易;
从CV中选择sum(Result)修改前的总分 where Sno=Sno1;
Select avg(Result) 从 CV 修改前的平均分数 where Sno=Sno1;
选择Result,从CV中查询要修改的课程号的成绩,其中Sno=Sno1 and Cno=Cno1;
do sleep(20);/暂停20秒/
更新 CV 集 Result = Result1 其中 Sno=Sno1 和 Cno=Cno1;
选择Result从CV中查询修改后的课号成绩,其中Sno=Sno1 and Cno=Cno1;
Select sum(Result)从CV修改后的总分 where Sno=Sno1;
从CV中选择修改后的avg(Result)平均分 where Sno=Sno1;
if t_err =1 then
Rollback; /* 有sql 错误 回滚 */
else
commit; /* 无 sql 错误 提交 */
end if;
结束 //
分隔符;
五、软件设计5.1 登录界面
图5-1-1 登录界面
图5-1-2 登录成功界面
5.2学生成绩查询界面
图5-2-1学生成绩查询界面
5.3教师界面
图5-3-1教师界面示意图
图5-3-2 新建学生信息界面示意图
图5-3-3 更新学生信息界面示意图
图5-3-4 删除学生信息界面示意图
六、项目设计总结
通过学生成绩管理系统的项目设计,加深了对数据库设计的理解,对设计一个数据库项目的流程有了一定的概念。在这个项目的设计中,我复习了很多以前的知识点mysql数据库设计报告,也发现了很多问题,最终解决了,也收获不少。
本项目的设计让我们对Mysql数据库有了更深入的了解,学习到更多的知识点,对Navicat软件有一定的了解。在整个设计过程中,通过连接各种管理信息的分析,锻炼了分析事物的能力,通过如何解决过程中遇到的问题,提高了文献检索能力、网络使用能力。资源。与学生交流的能力。项目最终开发出来的程序功能比较简单,但基本满足项目设计的要求。看得出来,设计程序的团队成员花了不少心思。
最重要的是,这个数据库项目的设计,为我们以后的程序开发打下了坚实的基础。
需要源码的可以点击下方链接下载
猜你喜欢:
暂无评论内容