数据库原理课程设计-学生成绩管理系统设计.doc

上传人:小小飞 文档编号:3277215 上传时间:2019-08-07 格式:DOC 页数:25 大小:413.01KB
返回 下载 相关 举报
数据库原理课程设计-学生成绩管理系统设计.doc_第1页
第1页 / 共25页
数据库原理课程设计-学生成绩管理系统设计.doc_第2页
第2页 / 共25页
数据库原理课程设计-学生成绩管理系统设计.doc_第3页
第3页 / 共25页
数据库原理课程设计-学生成绩管理系统设计.doc_第4页
第4页 / 共25页
数据库原理课程设计-学生成绩管理系统设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《数据库原理课程设计-学生成绩管理系统设计.doc》由会员分享,可在线阅读,更多相关《数据库原理课程设计-学生成绩管理系统设计.doc(25页珍藏版)》请在三一文库上搜索。

1、数据库课程设计超市物流管理系统课 程 设 计 报 告课程名称 数据库原理课程设计 课题名称 学生成绩管理系统 专 业 班 级 学 号 姓 名 指导教师 2012年 1 月 3 日目 录一、系统定义.1二、需求分析.1三、系统设计.5四、详细设计13五、课程设计总结20六、参考文献21七、附录22一、系统定义学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等。使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查

2、找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样的一套成绩管理系统成为很有必要的事情。 学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询、留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。 二、需求分析(一)系统综合需求1. 教师(管理员)够实现对整个学生信息的添加、修改、删除、查询等操作,对教师(管理员)用户的添加、删除、修改等操作。2. 教师(管理员)可以将学生成绩的数据库发布到网上,学生的信息发布的网上,方

3、便学生教师进行查询,达到资源共享的目的。 3.教师(管理员)能够在一定的权限内对所有学生成绩的查询、删除、修改是、查看等,对,登录密码的修改。4.学生可以在自己的权限内对对自己成绩的查询,以及个人信息的查询,登录密码的修改,的相关操作。 (二)系统逻辑模型1数据流图:用户登录院系查询主界面信息查询系别管理系别查询班级查询教研室查询教师信息成绩查询学生信息课程信息按班级按学号按课程教研室管理班级管理教师管理学生管理课程管理成绩管理菜单栏2数据字典(1)对学生信息的管理编号1名称学生信息管理简述维护学生信息的完整性输入学生姓名、学号、班级号、出生年月、性别、民族、籍贯处理1 新增学生信息的录入2

4、修改学生信息3 删除学生信息记录4 查询个人学生信息及班级学生信息输出学生信息表(2)对系别信息的管理编号2名称系别信息管理简述维护系别信息的完整性输入系别名,班级号等处理1.新增系别信息的录入2.修改系别信息3.删除系别信息记录4.查询系别信息输出系别信息表(3)对学生证注册信息的管理编号3名称学生证注册信息管理简述维护学生证注册信息的完整性输入学号,注册日期,截止日期处理1.新增注册信息的录入2.修改注册信息3.删除注册信息记录4.查询注册信息输出注册信息表三、系统设计(一)概念结构设计系别教研室教师号学分教师号学时教师姓名班级成绩学号课程号性别学生系号系名教研室名教师成绩课程课程号姓名班

5、号班名教研室号教研室号课程名学号班号系号系号系教研室教师号学分教研室号学时教师姓名所属班级成绩学号课程号所属性别学生系号系名教研室名教师成绩课程学习所属所属教课课程号姓名班号班名教研室号教师号课程名学号班号系号系号(二)逻辑结构设计逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。设计学生成绩管理数据库,包括系别、教研室、班级、教师、学生、课程、成绩七个关系,考虑到数据库完整性,其关系模式中对每个实体定义的属性如下:系别表系别:(系号,系名)教研室表教研室:(教研室号,教研室

6、名)班级表班级:(班号,班名,系号)教师表教师:(教师号,姓名,教研室号)学生表学生:(学号,姓名,性别,班号)课程表课程:(课程号,课程名,教师号,学时,学分)成绩表成绩:(学号,课程号,成绩)为了存放前台用户信息再添加一用户表用户表用户:(用户名,密码)四、详细设计1.注册新用户注册用户界面如图所示,新注册的账户存于数据库中的用户表中。通过相关代码设置用户名和密码都不为空,并且弹出提示框。详细代码见附录。2菜单栏设计菜单栏前三个菜单都为查询菜单,通过SQL查询语句显示查询结果。初始化状态为显示全部结果,若记录太多可按主码值查询,若要返回初始状态,点击刷新按钮即可。可以为每个窗口设置适当的图

7、片背景。(1) 院系查询院系查询菜单提供系别、教研室和班级的详细信息。单击相应菜单实现对应的查询功能。(2)信息查询信息查询菜单提供教师信息、学生信息和课程信息的详细查询。单击相应菜单实现对应的查询功能。 (3)成绩查询成绩查询菜单提供按不同方式对学生成绩的详细查询。单击相应菜单实现对应的查询功能。3.管理模块设计管理模块在主界面主面板上,用于对各个数据表的更新操作。数据操作部允许控制操作,若有空值则提示错误。(1) 系别管理系别管理可以通过系号来确定系别,从而对系别信息进行操作。不允许有空值操作。(2) 教研室管理教研室管理通过教研室号来确定教研室,从而对教研室信息进行操作。不允许有空值操作

8、。(3) 班级管理班级管理可以通过班号来确定班级,从而对班级信息进行操作。不允许有空值操作。(4) 教师管理教师管理通过教师号来确定教师,从而对教师信息进行操作。(5) 学生管理学生管理可根据学号唯一确定学生,从而对信息进行添加、删除、修改操作。(一)开发平台及工具l 开发工具Microsoft Visual C+ 6.0l DBMS:Microsoft SQL Server 2000l 建模工具:Microsoft Visio, Sybase PowerDesigner(二)编码设计及触发器1查询学生信息(1)给定学号,查询某位学生的学生证信息创建存储过程QureyInfor,传递参数sno

9、,通过给定学号,判断该学生的学生证信息是否存在,如不存在,则告知不存在该学生证信息;如存在,则显示出该学生的学生证信息.create procedure QureyInfor( sno char(10)asbegin declare cant varchar(50)set cant=信息不存在if exists (select * from Stu_card where SNo=sno)select *from Stu_cardwhere SNo=snoelseprint cantend(2)给定班号,查询该班所有学生的学生证信息创建存储过程DisplayInfor,传递参数classno,通

10、过给定班级号,判断该班学生的学生证信息是否存在,如不存在,则告知不存在该班学生证信息;如存在,则显示出该班全部学生的学生证信息。create procedure DisplayInfor( classno char(6) )asbegin declare cant varchar(50)set cant=无相关信息if exists (select * from Stu_card where ClassNo=classno)select *from Stu_cardwhere ClassNo=classnoelseprint cantend2.修改学生信息对于学生证信息的修改,是先通过给定学生

11、学号,先判断该学生的学生证信息是否存在,如存在,再通过添加表信息来添加学生证信息。(1)首先创建存储过程ModIf,用来判断需修改的学生证信息是否存在,如不存在,则告知不存在该学生证信息;如存在,则将该学生证原本信息显示出来,表明可以进行修改。create procedure ModIf( sno char(10) )asbegindeclare cant varchar(50)set cant=无此学生证信息,不能修改if exists (select * from Stu_card where SNo=sno)beginselect * from Stu_card where SNo=sn

12、oendelse print cantend(2)再创建存储过程ModS,ModC及ModD,通过更新操作update对表进行修改,以修改学生证信息。create procedure ModS /更新表中学生信息(sname varchar(30),sno char(10),classno char(6),sex char(2),birthday datetime,native char(2),birthplace varchar(30)as update S Set stu_name=sname,stu_no=sno,class_no=classno,stu_sexsex,stu_birth

13、day=birthday,stu_native=native,stu_birthplace=birthplacecreate procedure ModD /更新表中学生信息(dept varchar(30),classno char(6),)as update S Set dept=dept,class_no=classnocreate procedure ModC -修改表中信息(sno char(10),logindate datetime,validate datetime)asupdate Cset stu_no=sno,login_date=logindate,validity_d

14、ate=validate3删除学生信息在删除学生证信息时,并不是将学生证中的学生信息及相关系别信息也相应删除,而只是删除该学生证的注册信息。应保证在删除学生证信息同时保留该学生的学生信息及相关的系别信息。(1)判断该学生证信息是否存在 创建存储过程,给定学号参数,判断是否存在该学生的学生证信息,如不存在,则告知不存在该学生证信息,即无法删除;如存在,则告知存在信息,并显示出该条信息。 该操作同样可以使用存储过程ModIf来完成,因此不需再重新创建。(2)删除信息 创建存储过程DelInfor,给出要删除的学生学号,通过delete操作删除注册信息表C中的该条记录,即完成学生证信息的删除工作。c

15、reate procedure DelInfor( sno char(6) )asdelete from Cwhere stu_no=sno(3)显示删除后信息 在删除完成后,通过显示剩余全部学生证信息,确认要删除的学生证信息是否删除成功。 创建触发器DisplayAll,完成删除工作的检验工作,当对表C进行delete操作时,通过查询视图,显示剩余全部学生证信息。create trigger DisplayAllon Cfor deleteasselect *from Stu_card五、课程设计总结经过一周的课程设计,完成了一个简单的学生证管理系统,并成功实现了各要求所需功能。首先,在设计

16、方面,考虑到数据的冗余及冲突等问题,将学生证信息分别存储到三个表中,考虑了系别信息数据,学生信息数据及学生证注册信息数据的独立性问题。其次,在设计表时,注意了数据的数据类型及长度的选择,考虑各种数据的添加情况,在添加该项时将“汉”设置为默认情况,同时还要保证不浪费数据的存储空间。第三,使用了视图,实现数据的保密性,将学生证所需信息以视图方式存放,在数据查询时使用视图查询。第四,对于各功能的实现,均使用了存储过程,通过传递参数得到想要的结果。在实现功能时,注意了条件的判断,根据分析各种情况,实现不同的操作。例如,在实现信息的添加时,总的分两种情况,一是存在信息,另一个则是不存在信息,在不存在信息

17、中又需考虑两种情况,即存在该学生信息,但由于未注册学生证,因此也不存在学生证信息;另一是根本不存在该学生信息。针对这两种情况,在添加信息时就有两种不同的方法。第四,在本系统中使用了触发器,触发器用于响应数据库更新,因此在删除信息时,我使用了触发器,在信息删除后,显示其余信息,用来确认信息是否成功删除。第五,设置了安全性,在数据库中,安全性十分重要,因此,我创建了自己的登录名,并对数据库及各表的访问设置了权限,用以保护数据,防止他人任意修改。在这一周做课程设计中,收获了很多。因为这次课程设计设计的知识面非常广。从数据库方面来说,涉及到数据库设计的五个步骤:需求分析、概念结构设计、逻辑结构设计、物

18、理结构设计和运行调试。数据库的设计严重影响着系统的功能,如果数据库设计不够合理,前台操作就不能正常运行。在运行过程中我发现数据库的设计比较合理,查询时特别方便。这为以后的开发积累了很宝贵的经验。从MFC编程方面来说又对MFC编程有了进一步的提高,让系统不再单调,通过有关设置使系统更为个性化。通过 MFC 程序来访问并修改数据库,从中体会到了编程的乐趣。看到自己开发的系统实现了一个又一个功能,会有一种特别快乐的感觉。学以致用,这才是学习的目的。当然,系统的开发离不开好的资料和同学的交流。在这次课程设计中深深感受到了同学之间交流合作的重要性。交流不但可以发现新的问题,提高解决问题的效率,而且可以快

19、速的学习到新的知识。最后感谢这次课程设计中给予我帮助的老师和同学,是你们的帮助才使我的系统有了突破性的进展。六、参考文献1.数据库系统概论(第三版) 萨师煊等 高等教育出版社七、附录 部分源代码1登录控制:void CNcistSSMDlg:OnEnter() CDatabase database;database.Open(湖南工程学院成绩管理,FALSE,FALSE,ODBC;,FALSE);CRecordset rs(&database); UpdateData(TRUE);CString str;str.Format(select * from 用户 where 用户名=%s,m_na

20、me);CRecordset rs1(&database);rs1.Open(AFX_DB_USE_DEFAULT_TYPE,str);if(rs1.IsEOF()MessageBox(用户名输入错误!);return;str.Format(select * from 用户 where 用户名=%sand 密码=%s,m_name,m_password);rs.Open(AFX_DB_USE_DEFAULT_TYPE,str);if(rs.GetRecordCount()=0)MessageBox(密码输入错误!);else CMainDlg dlg;dlg.DoModal();/进入主界面C

21、NcistSSMDlg:OnCancel();database.Close();2添加记录:UpdateData(true);/ 确定所有输入有效CString sWarning=;if ( =m_CouNo) sWarning=_T(课程号); else if ( =m_CouName) sWarning=_T(课程名);else if ( =m_TeaNO) sWarning=_T(教师号);else if ( =m_xueshi) sWarning=_T(学时);else if ( =m_xuefen) sWarning=_T(学分);if ( !=sWarning ) sWarning

22、 += _T(不能为空); AfxMessageBox(sWarning, MB_ICONEXCLAMATION); return;CDatabase database; database.Open(湖南工程学院成绩管理);CString sql; CString item;sql.Format(insert into 课程(课程号,课程名,教师号,学时,学分) values(+m_CouNo+,+m_CouName+,+m_TeaNO+,+m_xueshi+,+m_xuefen+);trydatabase.ExecuteSQL(sql);/执行sql语句MessageBox(添加成功!);c

23、atch(CDBException e)MessageBox(添加失败!);return;database.Close();show();UpdateData(true);3修改记录:UpdateData(true);CString str,sWarning=;CDatabase database;/CString sWarning=;if ( =m_CouNo) sWarning=_T(课程号); else if ( =m_CouName) sWarning=_T(课程名);else if ( =m_TeaNO) sWarning=_T(教师号);else if ( =m_xueshi) s

24、Warning=_T(学时);else if ( =m_xuefen) sWarning=_T(学分);if ( !=sWarning ) sWarning += _T(不能为空); AfxMessageBox(sWarning, MB_ICONEXCLAMATION); return;database.Open(湖南工程学院成绩管理);trystr.Format(update 课程 set 课程名=+m_CouName+ where (课程号=+m_CouNo+); database.ExecuteSQL(str);str.Format(update 课程 set 教师号=+m_TeaNO+

25、 where (课程号=+m_CouNo+);database.ExecuteSQL(str);str.Format(update 课程 set 学时=+m_xueshi+ where (课程号=+m_CouNo+);database.ExecuteSQL(str);str.Format(update 课程 set 学分=+m_xuefen+ where (课程号=+m_CouNo+);database.ExecuteSQL(str);AfxMessageBox(修改成功!); catch(CDBException e1) AfxMessageBox(修改失败!);database.Close

26、();show();4删除记录:UpdateData(true);CString str,sWarning=;CDatabase database;/CString sWarning=;if ( =m_CouNo) sWarning=_T(课程号);if ( !=sWarning ) sWarning += _T(不能为空); AfxMessageBox(sWarning, MB_ICONEXCLAMATION); return;database.Open(湖南工程学院成绩管理);trystr.Format(delete from 课程 where (课程号=+m_CouNo+); datab

27、ase.ExecuteSQL(str);AfxMessageBox(删除成功!); catch(CDBException e1) AfxMessageBox(删除失败!);database.Close();show();5查询记录:UpdateData(TRUE);/ TODO: Add your control notification handler code hereCDatabase database;database.Open(华北科技学院成绩管理,FALSE,FALSE,ODBC;,FALSE);CString str;CRecordset set(&database);if(m_

28、CKCouNo.IsEmpty()MessageBox(请输入课程号);return;m_ListCouMes.DeleteAllItems();set.Open(CRecordset:dynaset,_T(select 课程.课程号,课程.课程名,教师.教师姓名,课程.学时,课程.学分from 课程,教师 where 课程.教师号=教师.教师号 and 课程.课程号=+m_CKCouNo+);int i=0;while(!set.IsEOF()m_ListCouMes.InsertItem(i,);CString str1,str2,str3,str4,str5;set.GetFieldVa

29、lue(课程号,str1);m_ListCouMes.SetItemText(i,0,str1);set.GetFieldValue(课程名,str2);m_ListCouMes.SetItemText(i,1,str2);set.GetFieldValue(教师姓名,str3);m_ListCouMes.SetItemText(i,2,str3);set.GetFieldValue(学时,str4);m_ListCouMes.SetItemText(i,3,str4);set.GetFieldValue(学分,str5);m_ListCouMes.SetItemText(i,4,str5);set.MoveNext();i+;set.Close();UpdateData(TRUE);database.Close();课程设计评分表课程名称: 数据库原理 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期: (注:1此页附在课程设计报告之后;2综合成绩按优、良、中、及格和不及格五级评定。)- -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1