




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北联合大学数据库课设河 北 联 合大 学数据库课程设计说明书设计题目:学生选课系统姓 名:张力学 号:201214430120专 业:地理信息系统班 级:一班指导教师:黄丽王晓红王政矿业工程学院2015年 1月 8日目录1概述-3 1.1 选题背景-3 1.2 系统简介-32需求分析设计-33结构设计-4 3.1 e-r图结构分析-4 3.2 数据库结构设计-54行为设计 -65系统主要说明及主要代码 -7 5.1结构信息- 7 5.2系统界面-7 5.3系统功能-76开发流程图 -327实习心得及体会-338参考文献 -331.概述本系统的目标是实现选课系统需所需的各种基本功能,包括学生选课,教师查看选修的课程以及添加学生信息,添加教师信息,添加课程信息等。1.1选题背景随着社会的进步,尤其是计算机技术与网络的发展,人们对于数据传输,远程控制的实时性要求越来越高,这就使得计算机技术的发展越来越面向网络。现代学校管理无疑成为网络应用的典型代表,学生在校期间需要进行大量课程的学习,除学校安排的基本课程之外,还要进行部分选修课的学习。为了达到选课的方便、快捷,高等学校都提供网上选课平台供学生使用。本次课程设计选做学生选课系统就是建立在面向网络的基础之上,选用visual studio 2010 开发工具 和sql server2008 数据库。所开发出的系统能够方面学生选课、教师查询和管理员管理。具有较强的实时性,在面向网络的基础上可以方便在外用户进行各种操作。但是本人的知识和能力有限,时间有限,所做的系统只实现了基本的选课系统的功能,数据导入导出功能和数据库的基本维护功能。我会在以后的学习过程中继续完善该系统。1.2 系统简介本系统面向全校师生,是高校日常教学、教务管理的应用软件。该系统的目的主要是实现学生选择选修课的公平性和方便性,让他们可以选择课程,删除选课,修改密码,查询选修课程信息;对于教师,可以修改、删除、添加需要选课的课程信息,查看学生的选课情况,以及修改密码等。2. 需求分析学生选课系统的主要满足来自三个方面的需求,这三个方面分别是学生用户,教师用户和管理员用户,也即是三类用户角色。 (1)学生用户是主要的需求者,主要的需求功能是选课、退课以及查看自己的选课情况。 (2) 教师用户主要需求功能是查看自己所教授的课程,课程有哪些学生选修。(3)管理员用户的功能需求较为复杂,包括对学生的信息,教师的信息,课程 的信息进行管理。在学生信息管理子模块中实现对学生的信息的添加,删除操作。还可以输入查询条件进行查询操作。在教室管理模块中实现对教师信息的添加,删除和查询操作。在课程管理的子模块中实现对课程的添加,删除操作和查询操作。 本系统将管理员用户,教师用户,学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看,维护系统中的所有信息,如添加学生,添加课程,修改课程的信息等;让教师拥有查看自己开设的课程的信息的权限;让学生拥有选课的权限。3.结构设计本系统实在microsoft sql server 2008和microsoft visual studio 2010 的支持下进行的。数据库是网站的核心,数据库设计的合理与否对网站的建设有着至关重要的影响。数据库的设计是指对于一个给定的应用环境,构造最有效的数据库模式,建立数据及应用系统,实质能够有效地存储数据,满足用户的需求。3.1 学生选课系统e-r图分析3.2 数据库结构设计学生表教师表管理员表课程表学生选课信息表4. 行为设计1.登陆模块:使用登陆界面进行用户管理,使不同权限用户进行系统的登录,从而实现用户的登陆管理。登陆后进入主界面,进行权限操作。2.学生选课模块:学生用户登陆后进入主操作界面进行课程查询,修改密码,选课课程,删除课程,查看选课情况等。3.教师管理模块:包括查看学生选课信息和打印功能。4.管理员模块:管理员登陆进入后可以进行学生信息管理、教师信息管理、课程信息管理以及备份和还原功能。5. 系统说明和主要代码5.1 结构信息包括系统总体设计审查、系统设计审查和程序编码审查。测试结果表明,整个系统结构合理,易读易维护,编码正确,达到了设计要求。5.2 系统界面主要测试了系统界面是否美观,操作是否灵活、简洁、方便、实用,是否符合学校的要求。测试结果表明,系统界面友好,完全达到了设计的要求。5.3 系统功能(1)登陆界面登陆界面显示如下图,输入正确的用户名和密码,选择正确的身份登陆,进入相应的界面。namespace 学生选课系统 public partial class 登陆界面 : form public 登陆界面() initializecomponent(); public static string user; private void button4_click(object sender, eventargs e) messagebox.show(退出成功); this.hide(); private void button1_click_1(object sender, eventargs e) user = this.textbox1.text; string pwd = this.textbox2.text; string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection conn = new sqlconnection(strconn); conn.open(); string strsql = select * from 学生表 where 学号= + user + and 密码= + pwd + ; sqlcommand cmd = new sqlcommand(strsql, conn); sqldatareader dr = cmd.executereader(); if (dr.read() = false) messagebox.show(密码不正确,请再次确认!); else /messagebox.show(登陆成功); this.hide(); 学生界面 b = new 学生界面(); b.show(); private void button2_click_1(object sender, eventargs e) user = this.textbox1.text; string pwd = this.textbox2.text; string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection conn = new sqlconnection(strconn); conn.open(); string strsql = select * from 教师表 where 教师编号= + user + and 密码= + pwd + ; sqlcommand cmd = new sqlcommand(strsql, conn); sqldatareader dr = cmd.executereader(); if (dr.read() = false) messagebox.show(密码不正确,请再次确认!); else /messagebox.show(登陆成功); this.hide(); 教师界面 b = new 教师界面(); b.show(); private void button3_click_1(object sender, eventargs e) user = this.textbox1.text; string pwd = this.textbox2.text; string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection conn = new sqlconnection(strconn); conn.open(); string strsql = select * from 管理员表 where 管理员编号= + user + and 密码= + pwd + ; sqlcommand cmd = new sqlcommand(strsql, conn); sqldatareader dr = cmd.executereader(); if (dr.read() = false) messagebox.show(密码不正确,请再次确认!); else /messagebox.show(登陆成功); this.hide(); 管理员界面 b = new 管理员界面(); b.show(); private void button4_click_1(object sender, eventargs e) messagebox.show(退出成功); this.hide(); (2)登陆之后回进入相应的身份界面学生界面教师界面管理员界面(3)学生的选课与退课namespace 学生选课系统 public partial class 选课界面 : form public 选课界面() initializecomponent(); private void 选课界面_load_1(object sender, eventargs e) this.课程表tableadapter.fill(this.学生选课系统dataset1.课程表); private void button1_click_1(object sender, eventargs e) string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection sqlcon = new sqlconnection(strconn); sqlcon.open(); string gly = combobox1.text; string sql; if (combobox1.text = 课程名称) sql = select * from 课程表 where 课程名称 like% + textbox1.text + %; sqldataadapter zl = new sqldataadapter(sql, sqlcon); dataset myset = new dataset(); zl.fill(myset, 课程表); datagridview1.datasource = myset.tables课程表; sqlcommand cmd = new sqlcommand(sql, sqlcon); sqldatareader dr = cmd.executereader(); if (dr.read() & dr课程名称.tostring().trim() != gly) /messagebox.show(查询成功); else messagebox.show(您查找的内容不存在, 查询错误); else if (combobox1.text = 教师姓名) sql = select * from 课程表 where 任课教师 like% + textbox1.text + %; sqldataadapter zl = new sqldataadapter(sql, sqlcon); dataset myset = new dataset(); zl.fill(myset, 课程表); datagridview1.datasource = myset.tables课程表; sqlcommand cmd = new sqlcommand(sql, sqlcon); sqldatareader dr = cmd.executereader(); if (dr.read() & dr任课教师.tostring().trim() != gly) /messagebox.show(查询成功); else messagebox.show(您查找的内容不存在, 查询错误); private void button4_click_1(object sender, eventargs e) if (textbox2.text = & textbox3.text = ) messagebox.show(信息不完整!); else if (textbox2.text != & textbox3.text != ) /messagebox.show(!); string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection con = new sqlconnection(strconn); con.open(); string sql = select 课程名称 from 课程表 where 课程编号= + textbox2.text + ; sqldataadapter b = new sqldataadapter(sql, con); dataset s = new dataset(); b.fill(s, uer1); textbox5.text = s.tablesuer1.rows00.tostring(); string sql2 = select 姓名 from 学生表 where 学号= + textbox3.text + ; sqldataadapter c = new sqldataadapter(sql2, con); dataset m = new dataset(); c.fill(m, uer2); textbox4.text = m.tablesuer2.rows00.tostring(); private void button3_click_1(object sender, eventargs e) if (textbox2.text = & textbox3.text = & textbox4.text = ) messagebox.show(请输入完整信息!, 提示, messageboxbuttons.ok, messageboxicon.information);/提示框 else string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection con = new sqlconnection(strconn); con.open(); string sql = insert into 学生选课信息表(学生学号,学生姓名,课程编号,课程名称) values( + textbox3.text + , + textbox4.text + , + textbox2.text + , + textbox5.text + ); sqlcommand com = new sqlcommand(sql, con); com.executenonquery(); con.close(); messagebox.show(选课成功!, 信息提示, messageboxbuttons.ok, messageboxicon.information); private void button2_click_1(object sender, eventargs e) this.hide(); 学生界面 b = new 学生界面(); b.show(); private void combobox1_selectedindexchanged(object sender, eventargs e) if (combobox1.text = 教师姓名) label2.visible = true; label3.visible = false; else if (combobox1.text = 课程名称) label2.visible = false; label3.visible = true; namespace 学生选课系统 public partial class 退课界面 : form public 退课界面() initializecomponent(); private void datagridview1_cellcontentclick(object sender, datagridviewcelleventargs e) private void button2_click(object sender, eventargs e) this.hide(); 学生界面 b = new 学生界面(); b.show(); private void 退课界面_load(object sender, eventargs e) private void button3_click(object sender, eventargs e) string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection sqlcon = new sqlconnection(strconn); sqlcon.open(); string gly = 登陆界面.user; string sql; sql = select * from 学生选课信息表 where 学生学号 like% + 登陆界面.user + %; sqldataadapter zl = new sqldataadapter(sql, sqlcon); dataset myset = new dataset(); zl.fill(myset, 学生选课信息表); datagridview1.datasource = myset.tables学生选课信息表; sqlcommand cmd = new sqlcommand(sql, sqlcon); sqldatareader dr = cmd.executereader(); if (dr.read() & dr学生学号.tostring().trim() != gly) messagebox.show(查询失败); else /messagebox.show(您查找的内容不存在, 查询错误); private void button1_click(object sender, eventargs e) if (textbox1.text = | textbox2.text = ) messagebox.show(请选择并输入要删除的课程条件!); else if (textbox1.text != & textbox2.text !=) string con = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection conn = new sqlconnection(con); conn.open(); string sql1 = delete 学生选课信息表 where 学生学号= + textbox1.text + and 课程编号= + textbox2.text + ; sqlcommand mycommm = new sqlcommand(sql1, conn); int n=mycommm.executenonquery(); conn.close(); if(n0) messagebox.show(删除成功); this.hide(); 退课界面 b = new 退课界面(); b.show(); else messagebox.show(删除失败,请确认信息!); (4)密码修改namespace 学生选课系统 public partial class 学生密码修改 : form public 学生密码修改() initializecomponent(); private void button1_click(object sender, eventargs e) if (textbox1.text = ) messagebox.show(请输入原密码, 警告, messageboxbuttons.ok, messageboxicon.warning); else if (textbox2.text = ) messagebox.show(请输入新密码, 警告, messageboxbuttons.ok, messageboxicon.warning); else if (textbox3.text = ) messagebox.show(请确定新密码, 警告, messageboxbuttons.ok, messageboxicon.warning); else if (textbox2.text != textbox3.text) messagebox.show(两次输入不一样, 警告, messageboxbuttons.ok, messageboxicon.warning); else string str = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection conn = new sqlconnection(str); /string user= 登陆界面.user; string jiumima = this.textbox1.text; string xinmima = this.textbox2.text; string quedingxinmima = this.textbox3.text; string strsql = select * from 学生表 where 学号= + 登陆界面.user + ; sqlcommand cmd1 = new sqlcommand(strsql, conn); conn.open(); sqldatareader reader = cmd1.executereader(); /reader.read(); if (reader.read() if (jiumima != reader密码.tostring().trim() label1.text = 密码有误!请确认。; textbox1.text = ; else if (xinmima != quedingxinmima) label2.text = 确认密码有误!请重新输入。; textbox3.text = ; textbox2.text = ; else reader.close(); conn.close(); string sql2 = string.format(update 学生表 set 密码=0 where 学号= + 登陆界面.user + , this.textbox3.text.trim(); sqlcommand cmd2 = new sqlcommand(sql2, conn); conn.open(); cmd2.executenonquery(); conn.close(); messagebox.show(密码修改成功!, 提示, messageboxbuttons.ok); this.hide(); 学生界面 b = new 学生界面(); b.show(); private void button2_click(object sender, eventargs e) this.hide(); 学生界面 b = new 学生界面(); b.show(); private void 学生密码修改_load(object sender, eventargs e) (5)教师查询功能namespace 学生选课系统 public partial class 教师查询 : form public 教师查询() initializecomponent(); private void 教师查询_load(object sender, eventargs e) / todo: 这行代码将数据加载到表“学生选课系统dataset4.学生选课信息表”中。您可以根据需要移动或删除它。 this.学生选课信息表tableadapter.fill(this.学生选课系统dataset4.学生选课信息表); private void button1_click(object sender, eventargs e) string strconn = data source=.;initial catalog=学生选课系统;integrated security=true; sqlconnection sqlcon = new sqlconnection(strconn); sqlcon.open(); string gly = textbox1.text; string sql; if (textbox1.text != ) sql = select * from 学生选课信息表 where 课程编号 like% + textbox1.text + %; sqldataadapter zl = new sqldataadapter(sql, sqlcon); dataset myset = new dataset(); zl.fill(myset, 学生选课信息表); datagridview1.datasource = myset.tables学生选课信息表; sqlcommand cmd = new sqlcommand(sql, sqlcon); sqldat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论