数据库管理系统开发论文书.doc

上传人:仙人指路1688 文档编号:2395507 上传时间:2023-02-17 格式:DOC 页数:36 大小:1.15MB
返回 下载 相关 举报
数据库管理系统开发论文书.doc_第1页
第1页 / 共36页
数据库管理系统开发论文书.doc_第2页
第2页 / 共36页
数据库管理系统开发论文书.doc_第3页
第3页 / 共36页
数据库管理系统开发论文书.doc_第4页
第4页 / 共36页
数据库管理系统开发论文书.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《数据库管理系统开发论文书.doc》由会员分享,可在线阅读,更多相关《数据库管理系统开发论文书.doc(36页珍藏版)》请在三一办公上搜索。

1、课程设计(论文)任务书信 息 工程 学 院 07计算机科学与技术 专业 (2)班一、课程设计(论文)题目学生学籍管理系统的设计与实现二、课程设计(论文)工作自 2010 年 1 月 6 日起至2010年 1 月 15 日止。三、课程设计(论文) 地点: 宿舍 、 教5 信息学院机房 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生掌握数据库系统的设计与分析; (2)使学生掌握数据库系统的基于宿主语言的开发与运行; (3)培养学生分析、解决问题的能力;(4)提高学生的科技论文写作能力。 2课程设计的任务及要求1)基本要求:建立学生档案,设计学生入学、管理及查询界面;设计学生各学期、学

2、年成绩输入及查询界面,并打印各项报表;根据各年度总成绩,查询、输出学生学籍管理方案(优秀、合格、试读、退学);毕业管理;系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等; 2)创新要求: 主码采用系统自动编码技术,数据库备份采用自行编写的存储过程来进行。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课设论文(2)论文包括目录、绪论、正文、小结、参考文献、谢辞、附录等(3)毕业论文装订按学校的统一要求完成4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程(含翻译):40分; (3)完成调试:20分;(4)回答问题:20分。5)参考文献:(1)张仁才等.

3、 C#课程设计案例精编.清华大学出版社.2008年 (2)米海生等. 信息系统开发案例精粹(C#版).电子工业出版社.2006年(3)王珊、萨师煊等.数据库系统概论.高等教育出版社.2008年6)课程设计进度安排内容 天数 地点构思及收集资料 2北区图书馆编写代码与调试 4实验室撰写论文 2南区图书馆、实验室学生签名: 年 月 日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(20分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()

4、、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人: 职称: 年 月 日目 录第1章引言五1.1课程设计目的五1.2设计要求五1.3课程设计环境五1.4同组员工及分工六第2章概要设计六2.1 系统设计六2.1.1 系统设计思想六2.1.2 系统结构设计六2.1.3 系统功能模块设计七2.2 数据库设计七2.2.1数据库需求分析七2.2.2 数据库概念结构设计八2.2.3 数据库逻辑结构设计九2.2.4 数据库代码运行实现十第3章详细设计十二3.1数据库环境配置十二3.2用户登录模块十三3

5、.21添加用户名十三3.2.2 系统登录十四3.3 学生学籍管理十六3.3.1 添加学生信息十六3.3.2浏览学生信息十八3.3.3删除学生信息二十一3.3.4 学生选课系统二十二3.3.5 添加学生成绩二十四3.3.6 成绩查询系统二十五3.3.7 学生学籍查询二十八3.4 毕业管理三十一3.5 数据库备份三十一第4章调试与运行三十三4.1登录系统三十三4.2 用户管理三十三4.3 学院管理三十四4.4专业管理三十四4.6 班级管理三十五4.7 课程管理三十六第5章 课程设计总结三十六附录一 说明三十六附录二 参考文献三十六学生学籍管理系统的设计与实现第1章 引言1.1课程设计目的(1)使学

6、生掌握数据库系统的设计与分析; (2)使学生掌握数据库系统的基于宿主语言的开发与运行; (3)培养学生分析、解决问题的能力;(4)提高学生的科技论文写作能力。1.2设计要求(1) 基本要求:建立学生档案,设计学生入学、管理及查询界面;设计学生各学期、学年成绩输入及查询界面,并打印各项报表;根据各年度总成绩,查询、输出学生学籍管理方案(优秀、合格、试读、退学);毕业管理;系统维护:如数据安全管理(含备份)、操作员管理、权限设置等。(2) 创新要求:主码采用系统自动编码技术,数据库备份采用自行编写的存储过程来进行(3) 课程论文要求: 针对系统进行需求分析,设计系统结构图和系统功能模块图; 针对需

7、求分析,画出E-R图表示的概念模型,并将其转换为至少满足3NF的关系模式,设计较为合理的数据库模式; 系统能对数据库的保护(数据恢复、并发控制、安全性和完整性); 系统应该有较为友好的用户界面。1.3课程设计环境操作系统:Windows7,数据库系统:Sql Server 2008,C#环境:VS 2008。1.4同组员工及分工同组员工由07计算机(1)班的祝振飞(学号:)与07计算机(2)班的罗桂林(学号:20070610040212)。我们自行设计了各自的信息系统。设计过程之中,我们一起讨论各自数据库的设计与功能代码参考。第2章 概要设计2.1 系统设计2.1.1 系统设计思想本系统采用了

8、应用程序结合后台SQL Server 数据库的C/S结构开发模式,由于采用论文较为流行的C#作为开发语言,程序代码及结构都得到了优化,同时又能提高程序运行的效率。该系统在Visual Studio 2008中开发,该环境中提供了大量可供选择的控件,开发人员又可以通过数据组件对数据库进行操作,如SqlConnection,SqlCommand,SqlDataReader,SqlDataAdapter,DataSet等设计数据组件资源。本系统中,采用了自行编写的Sqlconnection类来设置数据库创建连接,所有针对数据库的操作,如添加数据、修改数据、删除数据及数据查询都需要利用SqlConne

9、ction作为数据库的连接。程序所涉及的SQL语句可以根据不同的需要采用SqlCommand,SqlDataAdapter,SqlDataReader进行操作。2.1.2 系统结构设计本系统中,需要解决的核心问题为如何通过最合理的方式对数据库中的数据进行存取,以及针对不同的需要,应该选择何种数据组件的搭配来达到特定的目的。本系统采用的数据库为基于Sql Server建立的Students关系数据库,系统结构如图2-1所示。图2-1 学生学籍管理系统系统结构与系统功能模块图2.1.3 系统功能模块设计本系统分系统管理、学院管理、专业管理、班级管理、课程管理、学生管理、学籍管理七大模块。系统功能子

10、模块见于图2-1所示。2.2 数据库设计2.2.1数据库需求分析在设计数据库结构时,应尽可能地满足用户所提出的各项要求,同时又要避免冗余数据产生。完成本数据库的需求分析方法是查阅相关系统开发资料,及结合个人作为学生的经验设计数据库中的数据字典的。在学生学籍管理系统中,需要大量的信息,包括学生信息、班级信息、课程信息、成绩信息、专业信息(学院信息),以及管理学生和学生需要完成诸如添加学院、添加专业、添加班级、添加课程、添加学生等包括相关查询的各项基于数据库的操作,并有一下规律:l 一个学院可以包含多个专业;l 一个专业可以包含多个班级;l 一个班级可以包含多个学生;l 一个学生可以选修多门课程,

11、一门课程也可以被多名学生选修;l 学生或是登录用户可以查询学生学籍状态;l 一个角色对应一个或是多个用户。根据以上数据之间的对应急依赖关系,可以确定数据库中所必备的信息表应该有以下几个方面:l 院系信息表,包括院系名称、院长等基本信息;l 专业信息表,包括专业名、所属院系等基本信息;l 班级信息表,包括班级名称、所属专业等基本信息;l 学生信息表,包括学号、姓名、所在班级等学生信息;l 课程信息表,包括开设的课程名,所属专业,学分,学时等信息;l 选课信息表,也是成绩表,包括学生学号、课程名、学生成绩、及其记得的选修学期基本信息;l 用户信息表,包括用户名,口令,角色信息;l 角色信息表,包括

12、角色名,与该角色有关的权限。图2-2 数据库E-R图2.2.2 数据库概念结构设计根据数据分析得到的结果,接下来可以确定并概括出数据库中所包含的实体、实体属性及实体之间的联系E-R图,如图2-2所示。2.2.3 数据库逻辑结构设计数据库的逻辑结构设计的作用为最终确定出数据中所需要的各种信息表以及表中所包含的字段。本系统中所包含的各项信息表名称及描述如下:表2-1 学生学籍管理系统数据库结构表名称表描述表名称表描述SCHOOL学院信息表STUDENT学生信息表MAJOR专业信息表CS选课信息表CLASS班级信息表USERINFO用户信息表COURSE课程信息表ROLES角色信息表接下来分别对主要

13、部分表结构的介绍,学院信息表中所包含的字段如表2-2所示。表2-3为学生信息表,用于存储较为详细的学生信息。表2-2 SCHOOL班级信息表结构字段表字 段类 型描 述SCHOOLID自动编号学院编号(主键)SCHOOLNAME字符型学院名称MANAGER变长字符型学院院长表2-3 STUDENT学生基本信息表字 段类 型描 述SNO字符型学号(主键)SNAME变长字符型姓名SAGE数字年龄SSEX字符型性别CLASSNAME变长字符型班级名称(外码)PICTURE变长字符型学生头像EMAIL变长字符型联系方式(EMAIL)REGISTER日期注册日期GRADUATE字符型毕业生标注数据库的安

14、全性与完整性控制与实现参照完整性控制:根据E-R模型进行分析从而确定一些表之间的字段需要进行关联,分析结果如下:l 专业信息中的所属学院需要参照于学院中学院名。l 班级信息中所属学院需要参照于专业表中的专业名。l 学生信息中所属班级需要参照于班级表中的班级名。l 选修信息中学生选修的所属课程参照学生信息和课程信息。l 用户角色信息需要参照角色信息表。据此可以设置各表中的外码,从而实现参照完整性控制。完整性控制:l 学生信息表中年龄大于等于12且小于等于60岁;l 学生信息表中性别只能是“男”或“女”;l 毕业生标注属性只能是“是”或“否”,且默认属性是“否”。2.2.4 数据库代码运行实现CR

15、EATE DATABASE STUDENTS -Create创建Students数据库USE STUDENTS CREATE TABLE ROLES( -创建角色信息表ROLENAME VARCHAR(10) PRIMARY KEY, -角色名SYSTEMMANAGE BIT, -系统管理员MAJORMANAGE BIT, -专业管理员COURSEMANAGE BIT, -课程管理员GRADEMANAGE BIT -成绩管理员)USE STUDENTS CREATE TABLE USERINFO(-创建用户信息表,主键实现自动编码USERNAME VARCHAR(16) PRIMARY KEY

16、, -用户名,自动编码,主键PWD VARCHAR(16), -用户口令ROLENAME VARCHAR(10) , -用户角色,外码FOREIGN KEY (ROLENAME) REFERENCES ROLES(ROLENAME)USE STUDENTS CREATE TABLE SCHOOL(-创建学院信息表,主键实现自动编码SCHOOLID INT IDENTITY(1000,1) PRIMARY KEY, -学院编号,主键SCHOOLNAME VARCHAR(16), -学院名称MANAGER VARCHAR(10) -学院院长)USE STUDENTS CREATE TABLE MA

17、JOR(-创建专业信息表,主键实现自动编码MAJORID INT IDENTITY(2000,1) PRIMARY KEY,-专业号,主键MAJORNAME VARCHAR(16), -专业名SCHOOLNO INT, -所属院校,外码FOREIGN KEY(SCHOOLNO) REFERENCES SCHOOL(SCHOOLID)USE STUDENTS CREATE TABLE CLASS(-创建班级信息表,主键实现自动编码CLASSID INT IDENTITY(1000,1) PRIMARY KEY,-班级号,主键CLASS VARCHAR(16), -班级名称MAJORNO INT,

18、-所属专业,外码FOREIGN KEY(MAJORNO) REFERENCES MAJOR(MAJORID)USE STUDENTS CREATE TABLE STUDENT(-创建学生信息表SNO CHAR(14) PRIMARY KEY, -学号,主键SNAME VARCHAR(10), -姓名SAGE SMALLINT CHECK(SAGE12 AND SAGE=0 AND CSGRADE=100),SEMESTER CHAR(8), -学期PRIMARY KEY(COURSENO,STUDENTNO),FOREIGN KEY(COURSENO) REFERENCES COURSE(CO

19、URSEID),FOREIGN KEY(STUDENTNO) REFERENCES STUDENT(SNO) )完整控制性实现:ALTER TABLE STUDENT ADD CONSTRAINT GRADUATES DEFAULT 否 FOR GRADUATE 第3章 详细设计3.1数据库环境配置在编写实现功能,同时需要实现对数据库的操作,需要连接服务器旗下的数据库,为了避免重复定义数据库连接语句,本人将数据库连接语句通过Sqlconnection类来返回,例程3-1为Sqlconnetion的代码部分。例程3-1 数据库连接环境设置类Sqlconnection.csusing System

20、;using System.Collections.Generic;using System.Linq;using System.Text;namespace studentsystem.database public class Sqlconnection public Sqlconnection() public static string connection get return Server=LUOGUILIN;Database=STUDENTS;Integrated Security=SSPI; 在以后需要连接数据库的地方可通过以下两条语句实现即可。private SqlConne

21、ction myconn = null;myconn = new SqlConnection(studentsystem.database.Sqlconnection.connection);注:C#程序可通过命名进行组织,其优点是为能够层次化的方式组织程序,从而简化程序,提高代码利用率。图3-1 添加用户窗口3.2用户登录模块3.21添加用户名在学生学籍管理系统中,需要添加用户需要指定赋予用户的角色,从而决定了用户的操作权限,界面如3-1所示。在注册信息录入的过程之中,需要解决的问题包括用户名重复或输入为空及两次密码不一致的问题。在添加用户之前判断是否已有同名的用户,程序当中采用了SqlCo

22、mmand的ExecuteScalar()方法,获取用于指定sql语句查询的结果,当查询结果返回一个集合时,进返回第一条记录,当查询结果为空时,返回结果为null。例程3-2为此模块的参考代码。例程3-2 添加用户窗口程序AddUser.csprivate void AddUser_Load(object sender, EventArgs e) DataSet ds = new DataSet(); SqlDataAdapter adp = new SqlDataAdapter(,mysqlconnection); adp.SelectCommand.CommandText = SELECT

23、 ROLENAME FROM ROLES; adp.Fill(ds); comRole.DataSource=ds.Tables0.DefaultView; comRole.DisplayMember = ROLENAME; comRole.ValueMember = ROLENAME;/初始化下拉控件comRoles的选项private void btAdd_Click(object sender, EventArgs e) if (textName.Text.Trim() = | textPassword.Text.Trim() = | textPWDNew.Text.Trim() = |

24、 comRole.Text.Trim() = ) MessageBox.Show(请输入完整信息!, 警告);else if (textPassword.Text.Trim() != textPWDNew.Text.Trim() /两次输入密码不一致时,弹出警告窗口对话框MessageBox.Show(两次密码输入不一致!, 警告); elsemysqlconnection.Open();SqlCommand cmd = new SqlCommand(, mysqlconnection); string sql = select * from userinfo where UserName =

25、 + textName.Text.Trim() + ; /插入元祖Sql语句 cmd.CommandText = sql; if (null = cmd.ExecuteScalar() string sql1 = insert into userinfo (UserName,PWD,RoleName) + values ( + textName.Text.Trim() + , + textPWDNew.Text.Trim() + , + comRole.Text.Trim() + ); cmd.CommandText = sql1; cmd.ExecuteNonQuery(); Message

26、Box.Show(添加用户成功!, 提示); this.Close(); else MessageBox.Show(用户名 + textName.Text.Trim() + 已经存在!, 提示); /添加用户名发生重复时处理 mysqlconnection.Close();3.2.2 系统登录在系统登录模块中,为了方便课程设计实验,我初始化了用户名与密码,这样就可以直接登录学生学籍管理系统,登录对应的代码实现文件为Form1.cs,其界面如下图:图3-2 系统登录界面登录模块的实现代码参考如例程3-3所示,这里略去了InitializeCompoent()方法的实现。例程3-3登录模块的参考代

27、码Form1.csprivate void btAdd_Click(object sender, EventArgs e)if (name.Text.Trim()= | password.Text.Trim()=) MessageBox.Show(你好,请输入用户名或密码!, 提示,); else try Mysqlconnection.Open(); catch(Exception ex) MessageBox.Show(数据库连接失败! + ex, 出错了,); SqlCommand cmd = new SqlCommand(CommandText, Mysqlconnection);Co

28、mmandText = SELECT ROLENAME FROM USERINFO WHERE USERNAME= + name.Text.Trim() + AND PWD= + password.Text.Trim() + ; cmd.CommandText = CommandText; tring rolename = null; if (null != cmd.ExecuteScalar() rolename = cmd.ExecuteScalar().ToString(); FileStream fs = new FileStream(UserInfo.txt, FileMode.Op

29、enOrCreate, FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.Flush(); / 使用StreamWriter来往UserInfo.txt文件中写入内容 m_streamWriter.BaseStream.Seek(0, SeekOrigin.Begin); / 把 登录用户信息的内容写入文件UserInfo.txt m_streamWriter.Write(name.Text.Trim()+ 角色:+rolename); m_streamWriter.Flu

30、sh(); m_streamWriter.Close(); /关闭此文件 this.Hide(); /隐藏Form1界面 Main mainView = new Main(); this.Owner = mainView; mainView.Show(); else MessageBox.Show(用户名或者是密码错误!, 警告); this.name.Text = ; this.password.Text = ; Mysqlconnection.Close(); /闭关数据库连接当用户输入用户名和密码后,单击【登录】按钮时,触发void btAdd_Click(object sender,

31、EventArgs e),将实现数据库验证,经验证后方可登录操作界面。按【取消】便可退出登录界面。3.3 学生学籍管理就开发整个系统而言,学生学籍管理模块几乎集成了本系统所有功能模块,诸如学生注册、学生信息修改、浏览学生信息、学生选课信息管理、学生成绩信息管理、学生学籍信息管理及毕业管理等。下面将各功能实现方法一一阐述。3.3.1 添加学生信息添加学生信息界面主要是完成对学生各项基本信息的录入。此模块需要解决的问题包括:班级应该由用户在下拉列表框中选择,而不是手工输入;还有需要解决的问题就是将学生的照片插入数据库中,添加学生信息界面如3-3所示。图3-3 学生注册窗口1. 在下拉列表框中绑定数

32、据为了在下拉列表框中显示所有班级信息,程序采用了数据绑定的方法。具体操作:首先定义数据适配器对象SqlDataAdapter,由于执行查询语句;其次是定义DataSet数据集对象,将对班级信息表的查询结果填充到该数据集中;最后将班级下拉列表框与该数据集进行绑定。此部分功能包含在对窗口的初始化事件中,参考例程3-4。例程3-4 学生注册窗口的Register_Load事件private void Register_Load(object sender, EventArgs e) DataSet ds = new DataSet(); myconn.Open(); SqlDataAdapter a

33、dp = new SqlDataAdapter(, myconn); adp.SelectCommand.CommandText = SELECT class FROM class; adp.Fill(ds); comClass.DataSource = ds.Tables0.DefaultView; comClass.DisplayMember = class; comClass.ValueMember = class; myconn.Close(); string s = 男, 女 ; comSex.DataSource = s;功能:对comClass进行班级信息绑定,对comSex进行

34、性别数据绑定。2. 上传照片功能实现在解决照片上传到数据库,在程序中,将对照片的存储转化为对照片的路径的存储,该函数可参考例程3-4。例程3-5 学生界面上传照片Picture_Click事件private void Picture_Click(object sender, EventArgs e) openFileDialog1.Filter = bmp | *.bmp|gif|*.gif|jpg|*.jpg|jpeg|*.jpeg|ico|*.ico; openFileDialog1.Title = 打开 | 请选择一张照片作为头像; openFileDialog1.ShowDialog(

35、); if (openFileDialog1.FileName!=null) address = openFileDialog1.FileName.ToString().Trim(); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.Image = Image.FromFile(openFileDialog1.FileName); openFileDiaglog1控件的Filter属性用于确定可选择图片的类型,此处包含了以下5种类型,拓展名分别为

36、*.bmp、*.gif、*.jpg、*.jpeg、*.ico。3. 实现学生信息的添加在添加学生信息时,首先需要对录入的数据惊醒判断,判断一些必要参数是否为空值外,还得判断学生的学号是否已经被注册,否则不能完成添加操作。添加学生信息的主要代码参考例程3-6。例程3-6 添加学生信息界面btOk_Click事件代码private void btOk_Click(object sender, EventArgs e) myconn.Open(); SqlCommand cmd = new SqlCommand(,myconn); string sql = select * from student

37、 where sno= + scno.Text.Trim() + ; cmd.CommandText = sql; if (null=cmd.ExecuteScalar() sql = insert into student(sno,sname,sage,ssex,classname,email,register) + values ( + scno.Text.Trim() + , + textName.Text.Trim() + , + textSage.Text.Trim() + , + comSex.Text.Trim() + , + comClass.Text.Trim() + , +

38、 address.Trim() + ,GETDate(); cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(恭喜您,注册成功!, 提示); this.Close(); else MessageBox.Show(对不起,此学号已经被注册!,警告); myconn.Close();注:由于学生信息表中照片数据位对象类型,那么此处存储照片信息为照片的路径,而用PictureBox控件可以读到该路径的对象数据,程序中定义的address为数据字符串型。3.3.2浏览学生信息该界面中主要应用道德知识点仍为数据库绑定技术。在学生信

39、息浏览窗口中,将学院信息、专业信息、班级信息通过绑定方式绑定到TreeView控件上,然后通过TreeView控件点击触发事件来检索出符合条件的查询结果,如果查询结果不为空,那么查询得出的结果即为点击选项,如图3-4所示浏览学生界面。图3-4 浏览学生信息界面在进行绑定石需要确定DataSource属性,即数据源的属性,以及显示成员属性DisplayMemberhe 值成员属性ValueMemeber,而检索出来的数据,并绑定到DataGrid控件。此部分所对应的代码如例程3-7所示。 例程3-7 浏览学生信息界面Student.CS的主要程序DataSet ds;private void Student_Load(object sender, EventArgs e) myconn.Open(); string sql = select SNO as 学号,SNAME as 姓名,SAGE as 年龄,SSEX AS 性别,CLASSNAME as

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号