还剩33页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计报告题目学生选课管理系统课程《数据库原理及应用》班级12信管姓名朱晨汪杨潇张厚义学号120612106912061210651206121042指导教师杨慧铜陵学院数学与计算机学院时间2014年5月12日至2014年5月16日指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等)指导教师评审意见评价内容具体要求分数类别评分调研论证能__查阅文献收集资料;能制定课程设计方案和日程安排10864工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够__完成设计工作2016128工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜2016128说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范50403020课程设计成绩指导教师签名目录TOC\o1-2\h\z\u第一章__背景4第二章功能描述5第三章业务流程分析6第四章数据流程分析
74.1数据流程图
74.2数据字典7第五章概念模型设计13第六章逻辑模型设计和优化14第七章物理设计和实施15第八章系统测试17第九章课程设计心得体会29____30第一章__背景随着计算机应用的日益普及,教务管理自动化是提高工作效率的有效途径,随着各高校学分制的实施,实现信息化管理学生选课势在必行学生选课管理系统是教学管理的重要组成部分,其__主要包括后台、数据库的建立和维护以及前端应用程序的__两个方面,前者要求建立起数据的一致性、完整性和安全性好的数据库,而对于后者则要求应用程序功能完备、易使用及界面友好等特点系统实现后,极大的方便对学生进行选课和选课后临时班级的安排管理学生选课信息的管理避免在安排课程信息的滞后,减少信息交流的烦琐过程及其带来的开销促进高校教育的计算机信息化进程,提高学校的工作效率对于系统的本身而言,应该具有较高的实用性、安全性能够极大的满足学生选课,以及学校对选课信息的管理 第2章功能描述
(1)在选课管理过程中,实现信息自动化管理;
(2)实现各种信息的修改、删除、录入等管理功能;
(3)实现对各种信息的查询、统计,支持模糊查询;
(4)___可以设置学生什么时间开始选课,什么时间结束选课;学生根据开设课程进行选课操作,可以选课、退课、查询课程和课表;根据身份不同,权限也不相同;
(5)当选课结束后,可以导出所有教师课程表,学生课程表;
(6)对学生选课的结果,实现汇总、归纳和分析;按年份统计课程的学生选课人数及__,按年份统计学生的选课内容;
(7)按系统实际情况,数据量不低于200条记录 第三章业务流程分析根据本系统需要实现的功能,管理职能分析以及设计___、教师与学生之间的关系流程图如下管理职能分析 1 网上选课系统总体业务流程图如下所示图3-1系统总体业务流程图2 登录子系统主要验证不同的用户身份并取得不同的用户权限,进行不同的系统操作其业务流程图如下所示图3-2登录子系统业务流程图3 排课子系统主要完成设置选课时段、限制最大选课人数、排课并检测排课冲突、发布选课信息等功能其业务流程图如下所示
(4)选课子系统主要完成面向学生的选课功能,包括查询课程信息、提交选申请、撤销申请、查询选课情况等其业务流程图如下所示 图3-4选课子系统业务流程图第4章数据流程分析
4.1数据流程图
(1)网上选课系统顶层数据流图图4-1系统顶层数据流图
(2)网上选课系统第一层数据流图图4-2网上选课系统第一层数据流图
(3)根据不同的用户权限,展开登录处理过程,数据流图如下:图4-3___登录数据流图图4-4教师登录数据流图图4-5学生登录数据流图
(4)排课过程的数据流图图4-6排课过程数据流图
(5)选课过程的数据流图如图图4-7选课过程数据流图
4.2数据字典根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典下面列出部分数据字典内容1排课数据流编号A01系统名网上选课系统条目名排课输入课程信息表,教学楼信息表,教师信息表,院系信息表输出排课表,选课通知表描述排课者按年级排课排课表内容包括课程代号,课程名称,受课院系,专业代码,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最大上课人数和课程选则限制(必修或选修)等在排课过程中,排课者可以查询教室使用情况和院系课程设置在排课者提交排课表以后,系统应当确保该排课方案中没有时间冲突和教室冲突如果有冲突,系统应该提示排课者具体冲突产生的原因2选课数据流编号A02系统名网上选课系统条目名选课输入排课表,选课通知表,教师反馈表输出学生选课表描述学生可以在规定的时间段内选课该规定时间段由排课者通过发布消息通知教师和学生选课过程如下学生在选课表上单击课程号,则该信息被提交到服务器,并显示学生的选课结果选课表的内容包括排课表的全部内容如果一门课程已经达到最大选课人数,则不能再选择这门课程如果有学生退课,则该门课程的已选人数减13设定选课时间段数据流编号A03系统名网上选课系统条目名设定选课时间段输入选课时间段表输出选课时间段表描述排课者应该设定选课时间段学生只能在此设定的时间段内选课和退课第五章概念模型设计根据需求分析与关系模式画出系统的E-R图如下图5-1排课过程实体及其属性��管理员�排课�11n选课通知发布设置选课时间段1n课程n时间地点图5-2排课过程E-R图图5-3选课过程实体及其属性E-R图��学生�选课�课程成绩mn图5-4选课过程E-R图��管理员�排课�11n选课通知发布设置选课时间段1n课程n时间地点选课学生mn成绩图5-5系统的总E-R图第六章逻辑模型设计和优化逻辑设计(概念模型向关系模型的转换)根据E-R图,通过对实体的属性和之间的__的分析,我们将其由概念模型向关系模型转化,并且根据范式化理论进行优化1:N__的转化的关系模式
(1)教师课程__概念模型向关系模型的转化教师表(教师号,教师名性别,年龄,身份,__,课程号)课程表(课程号,课程名学分上课时间,开课时间,结束时间)
(2)教师临时班级__概念模型向关系模型的转化教师表(教师号,教师名性别,年龄身份,__)临时班级表(班级号,班级名,人数,地点,教师号)
(3)课程临时班级__概念模型向关系模型的转化临时班级表(班级号,班级名,人数,地点,课程号)课程表(课程号,课程名学分上课时间,开课时间,结束时间)M:N__的转化的关系模式
(1)学生选课__概念模型向关系模型的转化学生表(学号,姓名,性别,年龄,系部,__)课程表(课程号,课程名学分上课时间,开课时间,结束时间)选课表(学号,课程号,成绩)
(2)学生班级__概念模型向关系模型的转化学生表(学号,姓名,性别,年龄,系部,__)临时班级表(班级号,班级名,人数,地点)学生班级关系表(学生号,班级号)优化确定范式级别根据上述分析所归结出来的数据依赖的种类和在本系统实际的__过程中,需要涉及多表的查询及表的修改和删除,且存在多值依赖的实际情况下,其关系模式应达到BCNF实施规范化处理由于学生选课__的关系模式、学生班级的关系模式和教师_____的关系模式已经不存非平凡且非函数依赖额多值依赖,所以在这里不需要做处理各个关系模式的函数依赖集如下教师课程__F={教师号→教师名,教师号→性别,教师号→年龄,教师号→身份,教师号→__,教师号→课程号}班级临时班级__F={班级号→班级名,班级号→人数,班级号→地点,班级号→教师号}课程临时班级__F={班级号→班级名,班级号→人数,班级号→地点,班级号→课程号}选课__F={(学号,课程号)→成绩}学生班级__F={(学生号,班级号)}
(1)教师课程__概念模型向关系模型的优化教师表(教师号,教师名性别,年龄,身份,__)课程表(课程号,课程名学分上课时间,开课时间,结束时间)教师课程__(教师号,课程号)
(2)教师临时班级__概念模型向关系模型的优化教师表(教师号,教师名性别,年龄身份,__)临时班级表(班级号,班级名,人数,地点)教师临时班级关系(班级号,教师号)
(3)课程临时班级__概念模型向关系模型的优化临时班级表(班级号,班级名,人数,地点)课程表(课程号,课程名学分上课时间,开课时间,结束时间)经过规范化处理后的所有关系模如下学生表(学号,姓名,性别,年龄,系部,__)课程表(课程号,课程名学分上课时间,开课时间,结束时间)教师表(教师号,教师名性别,年龄__)教师课程关系教师号课程号选课表(学号,课程号,成绩)第七章物理设计和实施得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本设计所选用的DBMS为SQLSERVER2010,有关创建数据库和关系表的SQL语句如下所示
(1)创建数据库/*==============================================================*//*DataBase:学生选课管理,创建数据库,数据库名称为学生选课管理*/createdatabase学生选课管理;
(2)创建表Createtable学生基本档案学号char10姓名char10年龄int性别char2班级char10院部char15__char10;Createtable教师基本信息教师号char10姓名char10性别char2年龄int__char10;Createtable课程信息课程号char10课程名char10先行课char10学分charint班级char10年龄char10;Createtable选课表课程号char10课程名char10先行课char10学分charint;第八章系统测试
(1)登录界面图8-1登陆界面图代码如下后台维护form=new后台维护;前台用户form1=new前台用户;publicstaticstringaddnameaddname1;privatevoidformlogin_Loado__ectsenderEventArgse{this.skinEngine
1.SkinFile=Application.StartupPath+//皮肤//___.ssk;}privatevoidExit_Clicko__ectsenderEventArgse{ifMessageBox.Show确定退出本系统吗?提示MessageBoxButtons.OKCan__lMessageBoxIcon.Asterisk==DialogResult.OK{this.Close;//退出系统}}privatevoidbutton1_Clicko__ectsenderEventArgse{if___User.Text==||___Pwd.Text==||___Id.Text==MessageBox.Show所有项不能为空!;else{SqlConnectioncon=连接.createCon;con.Open;SqlCom__ndcom=con.CreateCom__nd;com.Com__ndText=select*from用户表where用户名=@mn1;com.Parameters.AddWithValuemn1___User.Text;SqlDataReaderreader=com.ExecuteReader;ifreader.Read{if___Pwd.Text!=reader.GetString
1.ToString{MessageBox.Show__输入错误!;con.Close;}elseif___Id.Text!=reader.GetString
2.ToString{MessageBox.Show身份输入有误!;con.Close;}else{this.Hide;if___Id.Text==__nagers{stringtime=DateTime.Now.ToString;MessageBox.Show登录成功,你是___!;form.Show;addname=___User.Text;SqlConnectioncon1=连接.createCon;con
1.Open;SqlCom__ndcom1=con
1.CreateCom__nd;com
1.Com__ndText=insertinto登录管理values@mn1@mn2@mn3;;com
1.Parameters.AddWithValuemn1addname;com
1.Parameters.AddWithValuemn2__nagers;com
1.Parameters.AddWithValuemn3time;com
1.ExecuteNonQuery;con
1.Close;}else{stringtime=DateTime.Now.ToString;MessageBox.Show登录成功,你是用户!;form
1.Show;addname1=___User.Text;SqlConnectioncon2=连接.createCon;con
2.Open;SqlCom__ndcom2=con
2.CreateCom__nd;com
2.Com__ndText=insertinto登录管理values@mn1@mn2@mn3;;com
2.Parameters.AddWithValuemn1addname1;com
2.Parameters.AddWithValuemn2users;com
2.Parameters.AddWithValuemn3time;com
2.ExecuteNonQuery;con
2.Close;}}}else{MessageBox.Show不存在该用户名!;}}}privatevoid___User_KeyDowno__ectsenderKeyEventArgse{ife.KeyValue==40{___Pwd.Focus;}}privatevoid___Pwd_KeyDowno__ectsenderKeyEventArgse{ife.KeyValue==38{___User.Focus;}elseife.KeyValue==40{___Id.Focus;}}}}
(2)___界面图8-2___界面图代码如下stringtime=DateTime.Now.ToString;DateTimetime2=DateTime.Now;privatevoidcheck_Clicko__ectsenderEventArgse{SqlConnectioncon=连接.createCon;SqlDataAdapterdata=newSqlDataAdapterselect*from用户表con;DataTabletable=newDataTable;data.Filltable;bindingSour__
1.DataSour__=table;dataGridView
1.DataSour__=bindingSour__1;bindingN__igator
1.BindingSour__=this.bindingSour__1;}privatevoidincreasetimedoubleseconds{this.time2=this.time
2.AddSecondsseconds;this.time
1.Text=time
2.Year+/+time
2.Month+/+time
2.Day+/+time
2.Hour+:+time
2.Minute+:+time
2.Second;}privatevoidtimer1_Ticko__ectsenderEventArgse{this.increasetime
0.1;}privatevoiddataGridView1_SelectionChangedo__ectsenderEventArgse{___User.Text=this.dataGridView
1.CurrentRow.__lls
[0].Value.ToString;___Pwd.Text=this.dataGridView
1.CurrentRow.__lls
[1].Value.ToString;___Id.Text=this.dataGridView
1.CurrentRow.__lls
[2].Value.ToString;}privatevoidtoolStripButton2_Clicko__ectsenderEventArgse{addbtn.Visible=true;___Id.Text=;___Pwd.Text=;___User.Text=;}privatevoidaddbtn_Clicko__ectsenderEventArgse{if___Id.Text==||___Pwd.Text==||___User.Text=={MessageBox.Show所有项必须填写!;}elseif___Id.Text!=users___Id.Text!=__nagers{MessageBox.Show身份只能输入users或__nagers!;}else{SqlConnectioncon3=连接.createCon;con
3.Open;SqlCom__ndcom3=con
3.CreateCom__nd;com
3.Com__ndText=select*from用户表where用户名=@mn7;;com
3.Parameters.AddWithValuemn7___User.Text;SqlDataReaderreader1=com
3.ExecuteReader;ifreader
1.Read{MessageBox.Show已存在该用户名!;con
3.Close;}else{con
3.Close;SqlConnectioncon2=连接.createCon;con
2.Open;SqlCom__ndcom2=con
2.CreateCom__nd;com
2.Com__ndText=insertinto用户表values@mn4@mn5@mn6;;com
2.Parameters.AddWithValuemn4___User.Text;com
2.Parameters.AddWithValuemn5___Pwd.Text;com
2.Parameters.AddWithValuemn6___Id.Text;com
2.ExecuteNonQuery;con
2.Close;MessageBox.Show登录名增加成功!;}}}privatevoidtoolStripButton4_Clicko__ectsenderEventArgse{udBtn.Visible=true;___Id.Text=;___Pwd.Text=;___User.Text=;}privatevoidudBtn_Clicko__ectsenderEventArgse{if___User.Text!=Formlogin.addname{MessageBox.Show你只能为自己修改__!;}}privatevoidcheck2_Clicko__ectsenderEventArgse{条件查找form3=new条件查找;this.Hide;form
3.Show;}privatevoid后台维护_Loado__ectsenderEventArgse{Label
3.Text=time;this.timer
1.Start;this.Refresh;}privatevoidtoolStripButton7_Clicko__ectsenderEventArgse{Application.Exit;}privatevoid登录管理ToolStripMenuItem_Clicko__ectsenderEventArgse{登录管理form6=new登录管理;this.Close;form
6.Show;}privatevoid后台维护_Moveo__ectsenderEventArgse{addname.Text=Formlogin.addname+___;}privatevoidbindingN__igatorDeleteItem_Clicko__ectsenderEventArgse{SqlConnectioncon=连接.createCon;con.Open;SqlCom__ndcom=con.CreateCom__nd;com.Com__ndText=deletefrom用户表where用户名=@mn1and__=@mn2and身份=@mn3;com.Parameters.AddWithValuemn1___User.Text;com.Parameters.AddWithValuemn2___Pwd.Text;com.Parameters.AddWithValuemn3___Id.Text;com.ExecuteNonQuery;con.Close;MessageBox.Show删除成功!;}}}
(3)用户界面图8-3用户界面图代码如下publicstaticstringtime=DateTime.Now.ToString;DateTimetime2=DateTime.Now;privatevoid前台用户_Loado__ectsenderEventArgse{label
1.Text=Formlogin.addname1+用户;logintime.Text=time;this.timer
1.Start;this.Refresh;}privatevoidincreasetimedoubleseconds{this.time2=this.time
2.AddSecondsseconds;this.time
1.Text=time
2.Year+/+time
2.Month+/+time
2.Day+/+time
2.Hour+:+time
2.Minute+:+time
2.Second;}privatevoidtimer1_Ticko__ectsenderEventArgse{this.increasetime
0.1;}privatevoid前台用户_MouseMoveo__ectsenderMouseEventArgse{label
1.Text=Formlogin.addname1+用户;}privatevoid前台用户_MouseEntero__ectsenderEventArgse{label
1.Text=Formlogin.addname1+用户;}privatevoidtoolStripButton16_Clicko__ectsenderEventArgse{ifMessageBox.Show确定退出本系统吗?提示MessageBoxButtons.OKCan__lMessageBoxIcon.Asterisk==DialogResult.OK{Application.Exit;//退出系统}}privatevoid学生基本档案ToolStripMenuItem_Clicko__ectsenderEventArgse{学生基本档案form6=new学生基本档案;form
6.MdiParent=this;form
6.Show;}privatevoidtoolStripButton2_Clicko__ectsenderEventArgse{学生评语form2=new学生评语;form
2.MdiParent=this;form
2.Show;}privatevoidtoolStripButton3_Clicko__ectsenderEventArgse{家访记录form3=new家访记录;form
3.MdiParent=this;form
3.Show;}privatevoidtoolStripButton4_Clicko__ectsenderEventArgse{班干部管理form4=new班干部管理;form
4.MdiParent=this;form
4.Show;}privatevoidtoolStripButton5_Clicko__ectsenderEventArgse{宿舍管理form5=new宿舍管理;form
5.MdiParent=this;form
5.Show;}privatevoidtoolStripButton6_Clicko__ectsenderEventArgse{考勤管理form6=new考勤管理;form
6.MdiParent=this;form
6.Show;}privatevoidtoolStripButton7_Clicko__ectsenderEventArgse{班级课程表form7=new班级课程表;form
7.MdiParent=this;form
7.Show;}privatevoidtoolStripButton8_Clicko__ectsenderEventArgse{班级活动form8=new班级活动;form
8.MdiParent=this;form
8.Show;}privatevoidtoolStripButton9_Clicko__ectsenderEventArgse{班级奖惩记录for__=new班级奖惩记录;for__.MdiParent=this;for__.Show;}privatevoidtoolStripButton10_Clicko__ectsenderEventArgse{班费管理form10=new班费管理;form
10.MdiParent=this;form
10.Show;}privatevoidtoolStripButton11_Clicko__ectsenderEventArgse{班级值日消息form11=new班级值日消息;form
11.MdiParent=this;form
11.Show;}privatevoidtoolStripButton12_Clicko__ectsenderEventArgse{成绩录入form12=new成绩录入;form
12.MdiParent=this;form
12.Show;}privatevoidtoolStripLabel3_Clicko__ectsenderEventArgse{班级主题班会form13=new班级主题班会;form
13.MdiParent=this;form
13.Show;}privatevoidtoolStripLabel4_Clicko__ectsenderEventArgse{学生谈话记录form14=new学生谈话记录;form
14.MdiParent=this;form
14.Show;}privatevoidtoolStripButton14_Clicko__ectsenderEventArgse{用户__修改form15=new用户__修改;form
15.MdiParent=this;form
15.Show;}privatevoidtoolStripButton13_Clicko__ectsenderEventArgse{成绩汇总form18=new成绩汇总;form
18.MdiParent=this;form
18.Show;}privatevoidtoolStripLabel1_Clicko__ectsenderEventArgse{班主任工作总结form19=new班主任工作总结;form
19.MdiParent=this;form
19.Show;}privatevoidtoolStripLabel2_Clicko__ectsenderEventArgse{班主任工作计划form20=new班主任工作计划;form
20.MdiParent=this;form
20.Show;}privatevoidtoolStripButton18_Clicko__ectsenderEventArgse{P
1.URL=Application.StartupPath+\\音乐\\胡歌-忘记时间.mp3;label
2.Visible=true;}privatevoid模糊查询ToolStripMenuItem_Clicko__ectsenderEventArgse{模糊查询form=new模糊查询;form.MdiParent=this;form.Show;}}}第九章课程设计心得体会通过这次课程设计,我们把已经就快遗忘的数据库知识重新复习一遍,这也让我们认识到了经常总结之前学到知识的重要性这次看似简单的课程设计,将我们身上的很多不足之处都暴露了出来,也让我们认识到了自己想要提高自己需要往哪方面继续努力这次课程设计是我们团队一起完成的,大家都有明确的分工,当然在这个过程中我们遇到了很多问题,并不是一个人去埋头苦干,而是提出来大家一起帮忙想办法去解决在解决问题的过程中,我们不断发现错误,不断改正,不断领悟,不断获取,终于顺利完成课程设计此次课设让大家都有了一定的进步,更让我们明白了团队的重要性课程设计诚然是一门专业课,给我们很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我们许多道,给了我们很多思,给了我们莫大的空间同时,设计让我们感触很深使我对们抽象的理论有了具体的认识因为能力有限,系统还有很多不足之处,如程序中错误处理和输入控制不够全面,可能导致输入无效引发错误但在整个__过程中我们学到了很多的知识,增强了动手能力,积累了解决各种难题的经验同时也让我们发现了自己的许多不足之处,有待在将来的工作中进一步的学习和完善,掌握和运用更多的知识 课程设计在老师指导下完成的,让我们对学生选课系统有了较深刻的认识,也具备了一定的实际__经验认识到__系统首先要明确用户的需求,然后进行系统分析,其次构建系统模型、建立完善的数据库,接着编写代码,最后测试系统最后,课设让我们明白了许多,团队的不可替代性,知识的重要性,以及,对于不明白的问题,要积极的动脑、动手、当然还要及时的请教懂问题的人____
[1]陆琳,刘桂林.数据库技术与应用-SQLServer2005[M].长沙:中南大学出版社2010
[2]何旭洪余建英.PowerBuilder数据库__实例导航[M].北京:人民邮电出版社2003
[3]王小玲,刘卫国.数据库应用基础教程[M].北京中国铁道出版社,2008
[4]施伯乐,丁宝康,汪卫.数据库系统教程[M].第3版.北京高等教育出版社,2008
[5]程云志,张帆,崔翔.数据库原理与SQLServer2005应用教程[M].北京机械工业出版社,2006
[6] 李伟波.软件工程.武汉 武汉大学出版社. 2006
[7] 郑人杰.实用软件工程.北京 清华大学出版社. 2003
[8] 张海藩.软件工程导论.北京 清华大学出版社.2008 选课管理课程管理课程查询管理课程编排管理统计分析选课人数查询条件课程表退出管理选入管理系统___登录排课信息选课公告教师登录教师反馈学生选课登录学生选课系统与排课相关的信息排课学生教师___学生信息输入登录信息输入登录信息验证登录信息用户信息输入登录信息验证登录信息教师信息验证登录信息显示验证信息修改__进入系统登录失败、退出退出系统系统___图3-3排课子系统业务流程图选课公告备份排课信息备份排课检测排课冲突排课信息选课时间段设置选课时间段对课程进行排课课程信息院系信息教师信息教学楼信息进入排课系统学生选课公告进入选课系统选课公告排课信息开始选课检测选课冲突显示选课结果完成选课退课学生选课信息。