首页 学生选课管理系统课程设计报告

学生选课管理系统课程设计报告

举报
开通vip

学生选课管理系统课程设计报告 课程设计报告 题目:学生选课管理系统 课 程 《数据库原理及应用》 班 级 12 信管 姓 名 朱晨 汪杨潇 张厚义 学 号 1206121069 1206121065 1206121042 指导教师 杨慧 铜陵学院 数学与计算机学院 时间: 2014 年 5月 12日 至 2014 年 5 月 16 日 指导教师对课程设计(论文)的评语(工作态度、任务完...

学生选课管理系统课程设计报告
课程设计报告 题目:学生选课管理系统 课 程 《数据库原理及应用》 班 级 12 信管 姓 名 朱晨 汪杨潇 张厚义 学 号 1206121069 1206121065 1206121042 指导教师 杨慧 铜陵学院 数学与计算机学院 时间: 2014 年 5月 12日 至 2014 年 5 月 16 日 指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等): 指 导 教 师 评 审 意 见 评价内容 具 体 要 求 分数类别 评分 调 研 论 证 能独立查阅文献,收集资料;能制定课程设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 和日程安排。 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) 排课子系统主要完成设置选课时段、限制最大选课人数、排课并检测排课冲突、发布选课信息等功能。其业务流程图如下所示:  (4)选课子系统主要完成面向学生的选课功能,包括查询课程信息、提交选申请、撤销申请、查询选课情况等。其业务流程图如下所示:  图3-4选课子系统业务流程图 数据流程分析 4.1数据流程图 网上选课系统顶层数据流图: 图4-1 系统顶层数据流图 网上选课系统第一层数据流图: 图4-2网上选课系统第一层数据流图 (3)根据不同的用户权限,展开登录处理过程,数据流图如下: 图4-3管理员登录数据流图 图4-4 教师登录数据流图 图4-5学生登录数据流图 排课过程的数据流图: 图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); com.Parameters.AddWithValue("mn3", txtId.Text); com.ExecuteNonQuery(); con.Close(); MessageBox.Show("删除成功!"); } } } (3)用户界面 图8-3 用户界面图 代码如下: public static string time = DateTime.Now.ToString(); DateTime time2 = DateTime.Now; private void 前台用户_Load(object sender, EventArgs e) { label1.Text = Formlogin.addname1 + "用户"; logintime.Text = time; this.timer1.Start(); this.Refresh(); } 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 前台用户_MouseMove(object sender, MouseEventArgs e) { label1.Text = Formlogin.addname1 + "用户"; } private void 前台用户_MouseEnter(object sender, EventArgs e) { label1.Text = Formlogin.addname1 + "用户"; } private void toolStripButton16_Click(object sender, EventArgs e) { if (MessageBox.Show("确定退出本系统吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK) { Application.Exit(); //退出系统 } } private void 学生基本档案ToolStripMenuItem_Click(object sender, EventArgs e) { 学生基本档案 form6 = new 学生基本档案(); form6.MdiParent = this; form6.Show(); } private void toolStripButton2_Click(object sender, EventArgs e) { 学生评语 form2 = new 学生评语(); form2.MdiParent = this; form2.Show(); } private void toolStripButton3_Click(object sender, EventArgs e) { 家访记录 form3 = new 家访记录(); form3.MdiParent = this; form3.Show(); } private void toolStripButton4_Click(object sender, EventArgs e) { 班干部管理 form4 = new 班干部管理(); form4.MdiParent = this; form4.Show(); } private void toolStripButton5_Click(object sender, EventArgs e) { 宿舍管理 form5 = new 宿舍管理(); form5.MdiParent = this; form5.Show(); } private void toolStripButton6_Click(object sender, EventArgs e) { 考勤管理 form6 = new 考勤管理(); form6.MdiParent = this; form6.Show(); } private void toolStripButton7_Click(object sender, EventArgs e) { 班级课程表 form7 = new 班级课程表(); form7.MdiParent = this; form7.Show(); } private void toolStripButton8_Click(object sender, EventArgs e) { 班级活动 form8 = new 班级活动(); form8.MdiParent = this; form8.Show(); } private void toolStripButton9_Click(object sender, EventArgs e) { 班级奖惩记录 form9 = new 班级奖惩记录(); form9.MdiParent = this; form9.Show(); } private void toolStripButton10_Click(object sender, EventArgs e) { 班费管理 form10 = new 班费管理(); form10.MdiParent = this; form10.Show(); } private void toolStripButton11_Click(object sender, EventArgs e) { 班级值日消息 form11 = new 班级值日消息(); form11.MdiParent = this; form11.Show(); } private void toolStripButton12_Click(object sender, EventArgs e) { 成绩录入 form12 = new 成绩录入(); form12.MdiParent = this; form12.Show(); } private void toolStripLabel3_Click(object sender, EventArgs e) { 班级主题班会 form13 = new 班级主题班会(); form13.MdiParent = this; form13.Show(); } private void toolStripLabel4_Click(object sender, EventArgs e) { 学生谈话记录 form14 = new 学生谈话记录(); form14.MdiParent = this; form14.Show(); } private void toolStripButton14_Click(object sender, EventArgs e) { 用户密码修改 form15 = new 用户密码修改(); form15.MdiParent = this; form15.Show(); } private void toolStripButton13_Click(object sender, EventArgs e) { 成绩汇总 form18 = new 成绩汇总(); form18.MdiParent = this; form18.Show(); } private void toolStripLabel1_Click(object sender, EventArgs e) { 班主任工作 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf form19 = new 班主任工作总结(); form19.MdiParent = this; form19.Show(); } private void toolStripLabel2_Click(object sender, EventArgs e) { 班主任 工作计划 幼儿园家访工作计划关于小学学校工作计划班级工作计划中职财务部门工作计划下载关于学校后勤工作计划 form20 = new 班主任工作计划(); form20.MdiParent = this; form20.Show(); } private void toolStripButton18_Click(object sender, EventArgs e) { P1.URL = Application.StartupPath + "\\音乐\\胡歌 - 忘记时间.mp3"; label2.Visible = true; } private void 模糊查询ToolStripMenuItem_Click(object sender, EventArgs e) { 模糊查询 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排课子系统业务流程图 选课公告 备份排课信息 备份排课 检测排课冲突 排课信息 选课时间段 设置选课时间段 对课程进行排课 课程信息 院系信息 教师信息 教学楼信息 进入排课系统 学生 选课公告 进入选课系统 选课公告 排课信息 开始选课 检测选课冲突 显示选课结果 完成选课 退课 学生选课信息 _1234567891.vsd � � 学生� 选课� 课程 成绩 m n _1234567892.vsd � � 管理员� 排课� 1 1 n 选课通知 发布 设置 选课时间段 1 n 课程 n 时间 地点 选课 学生 m n 成绩 _1234567890.vsd � � 管理员� 排课� 1 1 n 选课通知 发布 设置 选课时间段 1 n 课程 n 时间 地点
本文档为【学生选课管理系统课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥17.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
北溟愚鱼
暂无简介~
格式:doc
大小:929KB
软件:Word
页数:0
分类:工学
上传时间:2018-09-23
浏览量:118