版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、物联网工程学院数据库应用系统开发课程设计论文题 目:数据库课程设计学生选课管理系统学 号: 2013203090专业班级: 物联网3班姓 名: 李洪佳指导老师: 符志军目录1. 系统概括31.1. 课程设计选题31.2. 项目背景31.3. 课设报告编写目的31.4. 课设报告的组织42. 系统需求分析42.1. 系统管理员42.2. 学生用户42.3. 教师用户53. 数据库设计53.1. 概念结构设计53.1.1. 分E-R图53.1.2. 局部E-R图63.1.3. 合并E-R图73.2. 逻辑结构设计83.2.1. 逻辑转换83.2.2. 细化表结构83.3. 物理结构设计及实施93.
2、3.1. 创建表93.3.2. 建立视图113.3.3. 建立索引123.3.4. 存储过程的建立133.3.5. 创建触发器134. 界面设计与实现154.1. 功能模块界面分析154.2. 登录界面154.3. 管理学生、课程、教师信息界面154.4. 教师管理界面164.5. 学生选课管理界面165. 系统测试175.1. 用户登陆测试175.2. 管理员管理信息测试175.2.1. 添加学生信息175.2.2. 修改学生信息185.2.3. 删除学生信息185.2.4. 管理教师课、程信息195.3. 学生选、退课程测试196. 总结207. 主要参考文献208. 附录218.1. 源
3、代码218.2. 系统使用说明251. 系统概括1.1. 课程设计选题考虑到学生选课这个时间与我们大学生活是如此贴近,兵器额在我们平时选课时也经常出现一些不足,所以我选择“学生选课管理系统”这个课题。除了他比较贴近生活之外,这个项目也会让我对数据库有更新一步的认识与巩固,对身边的各种选课系统有一个更直观的了解。1.2. 项目背景随着科技的发展,高科技技术的不断开发,数据的处理在我们的生活中尤为重要。教育的不断改革和素质教育的不断加强,学分制的实施,选修课在一个学生的培养计划中的比重越来越大。现在我们选课以及成绩查询都是在网上进行的,这个对于学生来说更加的自主、便捷。但是由于一般高校的学生比较多
4、,因此就带来的诸多如信息管理等问题。鉴于需要将学生信息、选课信息等信息数字化以便于维护管理,我们便想到了利用数据库更加准确的解决此类问题。所以我决定设计一个适用于高校学生选课系统一共参考并且更进一步的了解高校选课的流程以及数据的保存。1.3. 课设报告编写目的无纸化办公的模式现在已经普遍存在,信息自动化处理以及网络式信息交互方式已经普及并且被人们广泛应用,计算机管理学生信息在各大高校都在积极进行,也是高校管理工作的重要内容之一。网上选课与传统的选课方式相比更加的智能便捷并且节约资源,也增加了学生学习过程中的自主权。学生选课系统无疑是一个比较现代化的教学技术,并且受到人们的重视,是学校管理中不可
5、获取额的一部分。有了学生选课可系统不仅方便了学生、教师,更重要的是学校在管理数据方面会更加的方便以及准确。学生选课系统使选课管理工作规范化、系统化、程序化,避免数据丢失,提高信息处理的速度,能够准确及时的查询及更改学生的选课情况。编写课设报告的目的就在于将学生选课管理系统的设计与实现以及管理维护等工作更加有条理的呈现出来,对开发设计学生选课系统的过程进行记录并且概括,帮助更好的理解、操作、运用学生选课系统。1.4. 课设报告的组织课设报告从学生选课系统的需求分析到数据库的设计,包括逻辑设计、物理设计等,在倒最后的实现与维护一一呈现出来,包括最初的设计理念,数据库具体觉得建立以及数据的输入、管理
6、及更新。包括实现学生选课功能、教师录入成绩功能,管理员对数据库信息的增删改查功能一应俱全。2. 系统需求分析该系统应该能管理学校的教师信息、学生信息、专业信息、学校开设的所有课程信息、学生选修课程的信息等。选课系统主要满足三类用户的要求,这三类用户分别是教务处的系统管理员、教师和学生。他们所具有的操作权限以及操作内容是不同的。具体的需求分析如下:2.1. 系统管理员1) 维护学生的个人基本信息,实现对学生个人信息的增、删、改、查,学生信息包括学号、姓名、性别、年龄、入学时间、系别、专业、密码。2) 维护教师的个人基本信息,实现对教师个人信息的增、删、改、查,教师信息包括教师工号、姓名、性别、密
7、码。3) 维护课程的个人基本信息,实现对课程个人信息的增、删、改、查,课程信 息包括课程号、课程名、学分。2.2. 学生用户1) 查询和修改个人信息。2) 进行选课操作3) 学生可以查看自己所选课程信息及以前所选课程的成绩信息。2.3. 教师用户1) 查询和修改个人信息2) 课程结束后,登记成绩3) 教师可查看自己的教学安排。3. 数据库设计3.1. 概念结构设计根据需求分析,设计出“学生选课系统”的E-R图,该E-R图包括四个实体:学生信息实体、教师信息实体、管理员信息实体、课程信息实体,还有选课信息E-R图和授课信息E-R图。3.1.1. 分E-R图 各个实体的分E-R图分别如下图所示:&
8、#216; 管理员登录实体图用户登录用户名密码 图1Ø 学生信息实体图学生信息姓名学号年龄入学时间系别性别密码专业图2Ø 教师信息实体图教师信息姓名工号性别密码 图3Ø 课程信息实体图课程信息课程号课程名学分 图4Ø 选课信息实体图选课信息学号课程号学生成绩图5Ø 授课信息实体图授课信息课程号学时教师工号图63.1.2. 局部E-R图Ø 学生课程关系E-R图nmm课程学生选修成绩图7Ø 教师课程关系E-R图nm1教师课程教授课时图8Ø 教师学生关系E-R图nm1教师学生教授学分图9Ø 管理员学生关系E-R
9、图nmm管理员学生管理图103.1.3. 合并E-R图本系统的数据库实体主要有“学生”、“教师”、“课程”、“管理员”等。其中“教师”与“课程”存在“开设”联系,并且一个教师可以开设N门课程,即“教师”与“课程”之间是一对多的关系。同样“学生”与“成绩”也存在一对多的关系。一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。同样“学生”与“成绩”之间也是多对多的关系。整个数据库可以用一个E-R图表示总的ER图nn1mnnn11管理员课程学生选课管理管理管理教师开设教授1n图113.2. 逻辑结构设计根据上节E-R图可以将系统中的概念模型转换为具体的表(
10、即关系)结构。3.2.1. 逻辑转换本系统共设计6个关系,详细信息如下所示:学生(学号、姓名、性别、年龄、入学时间、系别、专业、密码)教师(教师工号、姓名、性别、密码)管理员(管理员工号 密码)课程(课程号、课程名、学分)选课(学号、课程号、成绩)授课(教师工号、课程号、课时)3.2.2. 细化表结构为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:Ø 用户登录信息表adm表1:Admin列名数据类型是否为空说明UsernameChar(20)Notnull(主键)用户名UserpasswordChar(20)n
11、otnull密码Ø 学生信息表student表2:student列名数据类型是否为空说明Sno Char(20)Notnull(主键)学号SnameChar(20)notnull姓名SsexChar(20)null性别SageIntnull年龄SenttimeDatetimenull入学时间SmajorChar(20)null专业SsdeptChar(20)null系别SpassChar(20)null密码Ø 课程信息表course表3:course列名数据类型是否为空说明CnoChar(20)Notnull(主键)课程号CnameChar(20)notnull课程名Ccr
12、edtfloatnull学分Ø 选课信息表sc表4:sc列名数据类型是否空说明SnoChar(20)Notnull(外主键)学号Cno Char(20)Notnull(外主键)课程号Grade intnull成绩Ø 教师表teacher 表5:teacher列名数据类型是否空说明TnoChar(20)Notnull(主键)教师工号Tname Char(20)notnull教师姓名Tsex Char(20)null教师性别TpassChar(20)null密码Ø 授课表tc表6:tc列名数据类型是否空说明TnoChar(20)Notnull(外主键)学号Cno Ch
13、ar(20)Notnull(外主键)课程号CtimeChar(20)null课时3.3. 物理结构设计及实施经过数据库系统分析和逻辑设计后,数据库的结果已经非常清晰,剩下的就是用数据库软件实现这样的结构。本章节主要是对表、视图、索引、存储过程、触发器等一系列数据库内容的建立以及实施。本系统中的数据库采用SQL Server 2005作为数据库。首先创建一个名为“学生选课数据库”的数据库。3.3.1. 创建表考虑到各个表之间的约束条件以及外键索引等要求,在创建表的时候应该按照一定的次序进行创建,否则会很容易出现错误。本报告册中采用的是先创建各个基本表,然后在对特定的表添加列和外码约束。本系统共创
14、建了六个表:管理员信息表、教师信息表、学生信息表、课程信息表、学生选课表、教师授课表。Ø 创建adm管理员表如下图:图12Ø 创建教师表teacher如图:图13Ø 创建学生表student如图:图14Ø 创建课程表course如图:图15Ø 创建选课表sc如图:图16Ø 创建授课表tc如图:图17各表之间的关系如图:图183.3.2. 建立视图共建立十个视图图19以下是本系统的主要视图:学生平均成绩视图如下图20教师总课时视图如下图213.3.3. 建立索引索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度
15、和完整性检查,主键都会自动生成。为了更快的查找索引我又建立了以下索引。课程名的索引如下图:图22学生名的索引如下图:图23教师名的索引如下图:图243.3.4. 存储过程的建立存储过程是多条sql集合,并要求集合中的sql全部成功执行,不然就全部不执行,有利于进行同步操作。由于本人对存储过程的运用并不在行,所以本系统只建立一个存储过程。图253.3.5. 创建触发器课程表更新触发器。功能:一旦对课程表进行添加、删除、修改等操作,选课表进行同步更新。图26学生表更新触发器。功能:一旦对学生表进行添加、删除、修改等操作,选课表进行同步更新。图27教师表更新触发器。功能:一旦对教师表进行添加、删除、
16、修改等操作,教师授课表进行同步更新。图284. 界面设计与实现4.1. 功能模块界面分析根据“学生选课管理系统”的功能设计出了总体的界面模块图如下:登陆界面管理员教师学生管理学生管理教师个人信息管理课程个人信息修改密码录入成绩查看成绩个人信息选课退选查看成绩修改密码图294.2. 登录界面登陆界面是每个用户在进入“学生选课管理系统”的必经之路,需要用户确定身份,输入用户名、密码。其界面如下图:图304.3. 管理学生、课程、教师信息界面管理员登陆成功后,进入管理模块,就可以对教师、学生、课程等信息进行管理,其界面如下:图314.4. 教师管理界面以教师身份成功登陆后,进入教师权利,可以查看非人
17、信息,修改密码,录入学生成绩以及查看成绩和所有学生的平均成绩,如下图:图324.5. 学生选课管理界面以学生身份登陆后,就进入学生权利模块,学生可以选课、退选、查看选课结果,以及查看个人信息、修改密码,界面如下图:图335. 系统测试5.1. 用户登陆测试登陆信息验证测试。如管理员登陆,管理员号:1密码:1,当正确输入信息就会进入管理员界面,当输入错误密码:123,系统就会提示出错,出错界面如下:图345.2. 管理员管理信息测试管理员进入系统后,选择管理学生信息,对学生信息进行增、删、改、查等操作。5.2.1. 添加学生信息如添加一个学号为“01024100”,姓名为“张天天”,性别“男”,
18、18岁,计算机系,数媒专业2011年9月一日入学的学生,出事密码设置为123,添加成功后如下图:图355.2.2. 修改学生信息点击修改进入修改界面如下:图36将张天天的性别改为“女”,按修改键,返回再刷新,就会出现修改过后的页面如下图:图375.2.3. 删除学生信息只需输入学生学号,就可以删掉该生信息。如下图:图385.2.4. 管理教师课、程信息在管理教师页面跟管理课程页面,进行测试,如管理学生页面一样,都可以进行增、删、改、查等行为,并且成功运行。5.3. 学生选、退课程测试Ø 学生选课测试进入学生界面后,点击选课,会进入选课页面,显示所有课程信息,点击选课返回刷新已选课程就
19、胡显示。图39Ø 学生退选测试进入退选页面,显示所有自己的已选课程,点击退选,运行完成。6. 总结本学期我们开设了数据库原理与应用这门课,经过学习,我对数据库的原理和使用有了一定的了解,但是对于数据库的实际应用并不是那么清晰的明白,但是有了这三个星期数据库的课程设计,我对数据库有了新的认识。“学生选课管理系统”这个课题确实给我带来了很大的挑战,开始以为只是建立几个表,后来才知道数据库的设计是一个系统,还存在着表与表之间的联系,因此我必须要有一个宏观上的认识。在本次课程设计中,我学到了很多新的知识,比如如何使用SQL Server2005创建完整的数据库、如何使用vs2008设计页面、
20、如何将页面合理的与数据库进行连接等等。在课程设计的过程当中也会遇到很多自己不能解决的问题,通过自己查阅资料,向同学老师寻求帮助,最终这些问题都解决了,我的“学生选课系统”也更加的完整合理。同时也提高了我的自学能力,在设计过程中,查阅了不少资料,包括网络资料和书籍等,让我收获了许多意想不到的东西,对以后数据库的学习与应用有了很大程度上的提高!7. 主要参考文献数据库系统概论(第四版 高等教育出版社)ASP.NET 3.5 网站开发实例教程)(清华大学出版社)数据结构(C语言版 清华大学出版社)计算机操作系统(第三版 西安电子科技大学出版社)C/C+程序设计教程(电子工业出版社)8. 附录8.1.
21、 源代码Ø 登陆代码: sqconn.Open(); sqcommand.CommandText = "select Sno,Spass from student where Sno='" + textBox1.Text + "' and Spass='" + textBox2.Text + "'" if (sqcommand.ExecuteScalar() != null) xuesheng xuesheng = new xuesheng(textBox1.Text); this.Hide(
22、); xuesheng.ShowDialog(); Application.ExitThread(); MessageBox.Show("用户不存在或密码错误!") else if (comboBox1.Text = "教师登陆") sqconn.Open(); sqcommand.CommandText = "select Tno,Tpass from teacher where Tno='" + textBox1.Text + "' and Tpass='" + textBox2.Tex
23、t + "'" if (sqcommand.ExecuteScalar() != null) jiaoshi jiaoshi = new jiaoshi(textBox1.Text); this.Hide(); jiaoshi.ShowDialog(); Application.ExitThread(); MessageBox.Show("用户不存在或密码错误!"); else sqconn.Open(); sqcommand.CommandText = "select Username,Userpassword from adm wh
24、ere Username='" + textBox1.Text + "' and Userpassword='" + textBox2.Text + "'" if (sqcommand.ExecuteScalar() != null) guanliyuan guanliyuan = new guanliyuan(textBox1 .Text); this.Hide(); guanliyuan.ShowDialog(); Application.ExitThread();Ø 管理员查看个人信息代码: st
25、ring sqlstr = "select * from adm where username='" + label2.Text + "'" string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,""); string db = (path.Substring(0, path.IndexOf('b') + "学生选课数据库.mdf" string sqlconn = "Data
26、source = .SQLEXPRESS;AttachDBFilename='" + db + "'Integrated Security=True;User Instance=True" SqlConnection con = new SqlConnection(sqlconn); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(sqlstr, con); DataSet ds = new DataSet(); sda.Fill(ds, "View_teacher");
27、this.dataGridView1.DataSource = ds.Tables"View_teacher".DefaultView;Ø 添加课程代码: string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,""); string k = (path.Substring(0, path.IndexOf('b') + "学生选课数据库.mdf" string s = "Data source = .SQL
28、EXPRESS;AttachDBFilename='" + k + "'Integrated Security=True;User Instance=True" SqlConnection sqconn = new SqlConnection(s); SqlCommand sqcommand = new SqlCommand(); sqcommand.Connection = sqconn; sqconn.Open(); sqcommand.CommandText = "Insert into course(Cno,Cname,Ccred
29、t) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "')" sqcommand.ExecuteNonQuery(); textBox1.Text = "" textBox2.Text = "" textBox3.Text = "" MessageBox.Show("添加成功!");Ø
30、 删除课程代码: string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,""); string k = (path.Substring(0, path.IndexOf('b') + "学生选课数据库.mdf" string s = "Data source = .SQLEXPRESS;AttachDBFilename='" + k + "'Integrated Security=True;User
31、Instance=True" SqlConnection sqconn = new SqlConnection(s); SqlCommand sqcommand = new SqlCommand(); sqcommand.Connection = sqconn; sqconn.Open(); sqcommand.CommandText = "delete from course where Cno='" + textBox1.Text "'" sqcommand.ExecuteNonQuery(); Ø 修改课程信息代
32、码: string bj = "ok" StringCnodataGridView1.Rowse.RowIndex.Cells"cnoDataGridViewTextBoxColumn".Value.ToString();stringCname dataGridView1.Rowse.RowIndex.Cells"cnameDataGridViewTextBoxColumn".Value.ToString();stringCcredt = dataGridView1.Rowse.RowIndex.Cells"ccredtDa
33、taGridViewTextBoxColumn".Value.ToString();string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ""); string k = (path.Substring(0, path.IndexOf('b') + "学生选课数据库.mdf" string s = "Data source = .SQLEXPRESS;AttachDBFilename='" + k + &q
34、uot;'Integrated Security=True;User Instance=True" SqlConnection sqconn = new SqlConnection(s); SqlCommand sqcommand = new SqlCommand(); sqcommand.Connection = sqconn; sqconn.Open(); sqcommand.CommandText = "select * from course where Cno='" + Cno + "'and Cname='&q
35、uot; + Cname + "'and Ccredt='" + Ccredt + "'" if (sqcommand.ExecuteScalar() != null) bj = "no" sqconn.Close(); if (bj = "ok") sqconn.Open(); sqcommand.CommandText = "update course set Cname='" + Cname + "'where Cno='"
36、; + Cno + "'" sqcommand.ExecuteNonQuery(); sqconn.Close(); sqconn.Open(); sqcommand.CommandText = "update course set Ccredt='" + Ccredt + "'where Cno='" + Cno + "'" sqcommand.ExecuteNonQuery(); sqconn.Close(); MessageBox.Show("修改成功!&qu
37、ot;); Ø 录入学生成绩代码:string abc = dataGridView1.Rowse.RowIndex.Cells"cnoDataGridViewTextBoxColumn".Value.ToString(); string Grade=dataGridView1.Rowse.RowIndex.Cells"gradeDataGridViewTextBoxColumn".Value.ToString() ; string sno = dataGridView1.Rowse.RowIndex.Cells"snoDataGri
38、dViewTextBoxColumn".Value.ToString(); string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ""); string k = (path.Substring(0, path.IndexOf('b') + "学生选课数据库.mdf" string s = "Data source = .SQLEXPRESS;AttachDBFilename='" + k + "
39、'Integrated Security=True;User Instance=True" SqlConnection sqconn = new SqlConnection(s); SqlCommand sqcommand = new SqlCommand(); sqcommand.Connection = sqconn; sqconn.Open(); sqcommand.CommandText = "update sc set Grade= '" + dataGridView1.Rowse.RowIndex.Cells"gradeDat
40、aGridViewTextBoxColumn".Value.ToString() + "'where sno= '" + sno+ "'and cno='" + abc+ "'" sqcommand.ExecuteNonQuery(); sqconn.Close();Ø 选课代码:string Cno = dataGridView1.Rowse.RowIndex.Cells"课程号".Value.ToString(); string Sno = label2.Text; string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专项烟囱拆除施工协议版
- 雨污分流工程安全施工协议
- 2024年办公楼装修协议范本2篇
- 2024合作事项细化执行协议
- 通信企业文秘招聘协议
- 2024办公楼的租赁协议书
- 2024商业空间装饰设计与施工协议版B版
- 服装公司设计师聘用合同样本
- 独立产权二手房买卖合同模板
- 建筑施工安装分包合同:住宅装修
- 湘教版初中数学知识点总复习
- 手机电子围栏侦码系统解决方案产品介绍汇编
- 供应商管理的目标及战略
- 沥青MSDS安全技术说明书(共6页)
- 中药、天然药物综述资料撰写的格式和内容的技术指导原则——临床
- 201809早教商业模式与竞争力专题光明地平线bfam剖析中国2b业务实践思考
- 水驱气藏开发特点与开发技术
- 桥架支架计算表格-精准版
- 常远鄂博小品视频-常远鄂博小品《玲儿想丁当》台词剧本
- 9_公司中层干部能力素质360度评估表
- CP243-1使用指南
评论
0/150
提交评论