大学毕业设计---学生选课管理系统课程报告.doc
《大学毕业设计---学生选课管理系统课程报告.doc》由会员分享,可在线阅读,更多相关《大学毕业设计---学生选课管理系统课程报告.doc(35页珍藏版)》请在咨信网上搜索。
课程设计报告 题目:学生选课管理系统 课 程 《数据库原理及应用》 班 级 12 信管 姓 名 朱晨 汪杨潇 张厚义 学 号 1206121069 1206121065 1206121042 指导教师 杨慧 铜陵学院 数学与计算机学院 时间: 2014 年 5月 12日 至 2014 年 5 月 16 日 指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等): 指 导 教 师 评 审 意 见 评价内容 具 体 要 求 分数类别 评分 调 研 论 证 能独立查阅文献,收集资料;能制定课程设计方案和日程安排。 10 8 6 4 工作能力态度 工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作。 20 16 12 8 工作量 按期圆满完成规定的设计任务,工作量饱满,难度适宜。 20 16 12 8 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。 50 40 30 20 课程设计成绩 指 导 教 师 签 名: 目 录 第一章 开发背景 4 第二章 功能描述 5 第三章 业务流程分析 6 第四章 数据流程分析 7 4.1数据流程图 7 4.2数据字典 7 第五章 概念模型设计 13 第六章 逻辑模型设计和优化 14 第七章 物理设计和实施 15 第八章 系统测试 17 第九章 课程设计心得体会 29 参考文献 30 第一章 开发背景 随着计算机应用的日益普及,教务管理自动化是提高工作效率的有效途径,随着各高校学分制的实施,实现信息化管理学生选课势在必行。 学生选课管理系统是教学管理的重要组成部分,其开发主要包括后台、数据库的建立和维护以及前端应用程序的开发两个方面,前者要求建立起数据的一致性、完整性和安全性好的数据库,而对于后者则要求应用程序功能完备、易使用及界面友好等特点。 系统实现后,极大的方便对学生进行选课和选课后临时班级的安排管理,学生选课信息的管理。避免在安排课程信息的滞后,减少信息交流的烦琐过程及其带来的开销。促进高校教育的计算机信息化进程,提高学校的工作效率。对于系统的本身而言,应该具有较高的实用性、安全性。能够极大的满足学生选课,以及学校对选课信息的管理。 第二章 功能描述 (1)在选课管理过程中,实现信息自动化管理; (2)实现各种信息的修改、删除、录入等管理功能; (3)实现对各种信息的查询、统计,支持模糊查询; (4)管理员可以设置学生什么时间开始选课,什么时间结束选课;学生根据开设课程进行选课操作,可以选课、退课、查询课程和课表;根据身份不同,权限也不相同; (5)当选课结束后,可以导出所有教师课程表,学生课程表; (6)对学生选课的结果,实现汇总、归纳和分析;按年份统计课程的学生选课人数及名单,按年份统计学生的选课内容; (7)按系统实际情况,数据量不低于200条记录。 第三章 业务流程分析 根据本系统需要实现的功能,管理职能分析以及设计管理员、教师与学生之间的关系流程图如下: 管理职能分析: 选课管理 课程管理 课程查询管理 课程编排管理 统计分析 选课人数 查询条件 课程表 退出管理 选入管理 (1) 网上选课系统总体业务流程图如下所示: 系统管理员 登录 排课信息 选课公告 教师 登录 教师反馈 学生 选课 登录 学生选课系统 与排课相关的信息 排课 图3-1 系统总体业务流程图 学生 教师 管理员 (2) 登录子系统主要验证不同的用户身份并取得不同的用户权限,进行不同的系统操作。其业务流程图如下所示: 学生信息 输入登录信息 输入登录信息 验证登录信息 用户信息 输入登录信息 验证登录信息 教师信息 验证登录信息 显示验证信息 修改密码 进入系统 登录失败、退出 退出系统 图3-2 登录子系统业务流程图 系统管理员 (3) 排课子系统主要完成设置选课时段、限制最大选课人数、排课并检测排课冲突、发布选课信息等功能。其业务流程图如下所示: 图3-3排课子系统业务流程图 选课公告 备份排课信息 备份排课 检测排课冲突 排课信息 选课时间段 设置选课时间段 对课程进行排课 课程信息 院系信息 教师信息 教学楼信息 进入排课系统 学生 (4)选课子系统主要完成面向学生的选课功能,包括查询课程信息、提交选申请、撤销申请、查询选课情况等。其业务流程图如下所示: 选课公告 进入选课系统 选课公告 排课信息 开始选课 检测选课冲突 显示选课结果 完成选课 退课 学生选课信息 图3-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 系统名:网上选课系统 条目名:选课 输入:排课表,选课通知表,教师反馈表 输出:学生选课表 描述:学生可以在规定的时间段内选课。该规定时间段由排课者通过发布消息通知教师和学生。选课过程如下:学生在选课表上单击课程号,则该信息被提交到服务器,并显示学生的选课结果。选课表的内容包括排课表的全部内容。如果一门课程已经达到最大选课人数,则不能再选择这门课程。如果有学生退课,则该门课程的已选人数减1。 (3) 设定选课时间段 数据流编号:A03 系统名:网上选课系统 条目名:设定选课时间段 输入:选课时间段表 输出:选课时间段表 描述:排课者应该设定选课时间段。学生只能在此设定的时间段内选课和退课。 第五章 概念模型设计 根据需求分析与关系模式画出系统的E-R图如下: 图5-1排课过程实体及其属性 图5-2排课过程E-R图 图5-3选课过程实体及其属性E-R图 图5-4选课过程E-R图 图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为SQL SERVER2010,有关创建数据库和关系表的SQL语句如下所示: (1)创建数据库 /*==============================================================*/ /* DataBase: , 学生选课管理,创建数据库,数据库名称为学生选课管理 */create database 学生选课管理; (2)创建表 Create table 学生基本档案 (学号 char (10), 姓名 char (10), 年龄 int, 性别 char (2 ), 班级 char (10 ), 院部 char (15 ) 密码 char (10 ); Create table 教师基本信息 教师号 char (10), 姓名 char (10), 性别 char (2), 年龄 int, 密码 char (10); Create table 课程信息 课程号 char (10), 课程名 char (10), 先行课 char (10), 学 分 char int, 班 级 char (10), 年 龄 char (10); Create table 选课表 课程号 char (10), 课程名 char (10), 先行课 char (10), 学 分 char int; 第八章 系统测试 (1)登录界面 图8-1登陆界面图 代码如下: 后台维护 form =new 后台维护(); 前台用户 form1 = new 前台用户(); public static string addname, addname1; private void formlogin_Load(object sender, EventArgs e) { this.skinEngine1.SkinFile = Application.StartupPath + "//皮肤//MSN.ssk"; } private void Exit_Click(object sender, EventArgs e) { if (MessageBox.Show("确定退出本系统吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK) { this.Close(); //退出系统 } } private void button1_Click(object sender, EventArgs e) { if (txtUser.Text == "" || txtPwd.Text == "" || txtId.Text == "") MessageBox.Show("所有项不能为空!"); else { SqlConnection con = 连接.createCon(); con.Open(); SqlCommand com = con.CreateCommand(); com.CommandText = "select * from 用户表 where 用户名=@mn1"; com.Parameters.AddWithValue("mn1", txtUser.Text); SqlDataReader reader = com.ExecuteReader(); if (reader.Read()) { if (txtPwd.Text != reader.GetString(1).ToString()) { MessageBox.Show("密码输入错误!"); con.Close(); } else if (txtId.Text != reader.GetString(2).ToString()) { MessageBox.Show("身份输入有误!"); con.Close(); } else { this.Hide(); if (txtId.Text == "managers ") { string time=DateTime.Now.ToString(); MessageBox.Show("登录成功,你是管理员!"); form.Show(); addname = txtUser.Text; SqlConnection con1 = 连接.createCon(); con1.Open(); SqlCommand com1 = con1.CreateCommand(); com1.CommandText = "insert into 登录管理 values (@mn1,@mn2,@mn3);"; com1.Parameters.AddWithValue("mn1", addname); com1.Parameters.AddWithValue("mn2", "managers"); com1.Parameters.AddWithValue("mn3", time); com1.ExecuteNonQuery(); con1.Close(); } else { string time = DateTime.Now.ToString(); MessageBox.Show("登录成功,你是用户!"); form1.Show(); addname1 = txtUser.Text; SqlConnection con2 = 连接.createCon(); con2.Open(); SqlCommand com2 = con2.CreateCommand(); com2.CommandText = "insert into 登录管理 values (@mn1,@mn2,@mn3);"; com2.Parameters.AddWithValue("mn1", addname1); com2.Parameters.AddWithValue("mn2", "users"); com2.Parameters.AddWithValue("mn3", time); com2.ExecuteNonQuery(); con2.Close(); } } } else { MessageBox.Show("不存在该用户名!"); } } } private void txtUser_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue== 40) { txtPwd.Focus(); } } private void txtPwd_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == 38) { txtUser.Focus(); } else if (e.KeyValue == 40) { txtId.Focus(); } } } } (2)管理员界面 图8-2 管理员界面图 代码如下: string time = DateTime.Now.ToString(); DateTime time2=DateTime.Now; private void check_Click(object sender, EventArgs e) { SqlConnection con = 连接.createCon(); SqlDataAdapter data = new SqlDataAdapter("select * from 用户表", con); DataTable table = new DataTable(); data.Fill(table); bindingSource1.DataSource = table; dataGridView1.DataSource = bindingSource1; bindingNavigator1.BindingSource = this.bindingSource1; } private void increasetime(double seconds) { this.time2 = this.time2.AddSeconds(seconds); this.time1.Text = time2.Year+"/"+time2.Month+"/"+time2.Day+"/"+ time2.Hour + ":" + time2.Minute + ":" + time2.Second; } private void timer1_Tick(object sender, EventArgs e) { this.increasetime(0.1); } private void dataGridView1_SelectionChanged(object sender, EventArgs e) { txtUser.Text = this.dataGridView1.CurrentRow.Cells[0].Value.ToString(); txtPwd.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString(); txtId.Text = this.dataGridView1.CurrentRow.Cells[2].Value.ToString(); } private void toolStripButton2_Click(object sender, EventArgs e) { addbtn.Visible = true; txtId.Text = ""; txtPwd.Text = ""; txtUser.Text = ""; } private void addbtn_Click(object sender, EventArgs e) { if (txtId.Text == ""||txtPwd.Text == ""||txtUser.Text== "") { MessageBox.Show("所有项必须填写!"); } else if (txtId.Text != "users" && txtId.Text != "managers") { MessageBox.Show("身份只能输入users或managers!"); } else { SqlConnection con3 = 连接.createCon(); con3.Open(); SqlCommand com3 = con3.CreateCommand(); com3.CommandText = "select * from 用户表 where 用户名=@mn7;"; com3.Parameters.AddWithValue("mn7", txtUser.Text); SqlDataReader reader1 = com3.ExecuteReader(); if (reader1.Read()) { MessageBox.Show("已存在该用户名!"); con3.Close(); } else { con3.Close(); SqlConnection con2 = 连接.createCon(); con2.Open(); SqlCommand com2 = con2.CreateCommand(); com2.CommandText = "insert into 用户表 values (@mn4,@mn5,@mn6);"; com2.Parameters.AddWithValue("mn4", txtUser.Text); com2.Parameters.AddWithValue("mn5", txtPwd.Text); com2.Parameters.AddWithValue("mn6", txtId.Text); com2.ExecuteNonQuery(); con2.Close(); MessageBox.Show("登录名增加成功!"); } } } private void toolStripButton4_Click(object sender, EventArgs e) { udBtn.Visible = true; txtId.Text = ""; txtPwd.Text = ""; txtUser.Text = ""; } private void udBtn_Click(object sender, EventArgs e) { if (txtUser.Text != Formlogin.addname) { MessageBox.Show("你只能为自己修改密码!"); } } private void check2_Click(object sender, EventArgs e) { 条件查找 form3 = new 条件查找(); this.Hide(); form3.Show(); } private void 后台维护_Load(object sender, EventArgs e) { Label3.Text = time; this.timer1.Start(); this.Refresh(); } private void toolStripButton7_Click(object sender, EventArgs e) { Application.Exit(); } private void 登录管理ToolStripMenuItem_Click(object sender, EventArgs e) { 登录管理 form6 = new 登录管理(); this.Close(); form6.Show(); } private void 后台维护_Move(object sender, EventArgs e) { addname.Text = Formlogin.addname + "管理员"; } private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e) { SqlConnection con = 连接.createCon(); con.Open(); SqlCommand com = con.CreateCommand(); com.CommandText = "delete from 用户表 where 用户名=@mn1 and 密码=@mn2 and 身份=@mn3 "; com.Parameters.AddWithValue("mn1", txtUser.Text); com.Parameters.AddWithValue("mn2", txtPwd.Text);- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 毕业设计 学生 选课 管理 系统 课程 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文