《数据库课程设计-学生信息管理系统(共14页).doc》由会员分享,可在线阅读,更多相关《数据库课程设计-学生信息管理系统(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库程序设计说明书一 引言本程序是一个学生信息数据库系统的程序,随着效率和质量提出了越来越高的要求。 学生管理信息系统广泛地应用于各大中院校的学生管理工作过程中,几乎每个进行了信息化建设的学校都建设了学生管理信息系统。对于大型和结构复杂、内容繁多的学生数据库,都要实现方便的管理。数据管理离不开数据库系统的支持。由于数据库系统一般用户难以熟悉和正确操作,所以开发数据库连接程序提供友好的界面,方便用户提高效率和操作的准确性。二 编写目的本说明数据库程序设计需要解决的问题以及问题的性质、程序目标、程序规模等。并且为了用户对系统的要求,使编程人员可以及时发现软件的缺点和不足
2、,进一步认识问题所在。该说明书可供设计人员和开发人员参考,也可供用户阅读,对系统的需求提出意见。开发本软件的目的是给学生数据库提供一个操作控制系统,可以对数据库进行查询、添加、删除、修改、SQL语言高级操作。三 背景学校部门中有着相当庞大的数据内容,而这些数据只是作为单纯数据摆放在电脑里,并没有真正使这些数据起到更大的作用。大量数据的手工操作也会是数据操作错误增加,而且还使得相关的工作更加冗长、繁锁,为了使这些数据为使用者起到更多的作用,为管理人员提供依据与分析,建立起了自己的数据库系统,由计算机管理代替手工操作,进行收集、管理业务数据,从而提高操作人员的工作效率。数据库技术是当今信息管理的最
3、新技术,其核心就是数据库管理系统(简称DBMS)。DBMS是各类管理信息系统的支撑平台,也是信息化建设中需求量最大、应用最广泛的基础性软件。四、系统需求分析1 要求系统可以准确地记录和查询学生信息,包括学生的姓名、单位、年龄、性别等。2 要求系统可以准确地记录学生地每一次奖惩情况以及每次的缺勤情况。3系统可以对课程情况进行管理,包括设置课程名称、修改课程的名称等。4系统应该可以对基础数据进行维护。5系统应该有很好的可扩展性。学生成绩管理工作是学校学生管理工作的重要组成部分,现在相当一部分学校的学生成绩管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越
4、不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生成绩管理系统已成为学生管理部门的迫切需要。本实验实现的学生成绩管理系统主要包括以下功能:1. 完成数据的录入和修改,并提交数据库保存。其中的数据包括:学生信息、课程设置、学生成绩以及操作员信息等;2. 实现信息查询。主要包括:学生信息查询、课程信息查询和成绩查询等;3. 具备一定的安全性管理功能。包括操作员的权限设置、密码设置、重新登录等功能。分析需求就是描述系统的需求,通过定义系统中的关键域类来建立模型。学生管理信息系统的需求分析也应该是开发人员和用户或者客户一起完成的。分析需求的第一步描述学生管理信息系统的功能,即定义用例,以此
5、确定系统的功能需求。学生管理信息系统的用例分析主要涉及规格说明的阅读和分析,需要和学生管理信息系统的潜在用户进行讨论。学生管理系统的角色是管理者和系统管理员。管理者是管理学生的人员,如教务处或者学生处的员工,他也是系统的用户,而系统管理员是系统管理者,虽然系统管理员也是一个员工,但这并不影响本系统的功能。同样,管理者也可能是一个学生,但这也不影响系统的功能。学生管理信息系统的用例主要包括如下内容。 记录学生情况 修改学生信息查询学生情况 记录学生奖惩情况 设置选修情况情况设计选修课程五系统设计1系统总体设计本程序客户端负责提供表达逻辑、显示用户界面信息、访问数据库服务器,采用CBuilder6
6、作为开发工具;服务器端则用于提供数据服务,采用SQL Server2000作为数据库管理系统。本系统按照功能划分为以下四个模块:学生管理(包括学生信息录入和学生信息查询)、课程管理(包括课程设置和课程查询)、成绩管理(包括成绩录入和成绩查询)和系统管理(包括重新登录和操作员管理等)。系统的功能模块图如图1所示:学生成绩管理系统六 数据定义1数据表说明1Student表:学号(Sno),姓名(Sname),性别(Ssex),年龄(Sage),专业(Sdept)2Course表课程号(Cno),课程名(Cname),先行课号(Cpno),学分(Ccredit)3SC表学号(Sno),课程号(Cno
7、),学分(Grade)七 结构设计1概念结构设计说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图。本系统主要有学生和课程两个实体集,一个学生可以选修若干门课程,一门课程也可以被多个学生选修,两个实体集之间是多对多联系,联系上有选课成绩。本系统的E-R图如下图:由于数据要求简单,没有什么冗余过多的数据,所以数据库没有为程序建立视图,直接在表中操作,提高效率。2逻辑结构设计数据库逻辑结构设计根据关系模型的转换原则,上面的ER图可转换为如下所示的关系模型:Student(Sno,
8、Sname,Sex ,Sdept)其中各项含义分别为:学生(学号,姓名,性别,所在系)Course(Cno,Cname,Cpno,Credit)其中各项含义分别为:课程(课程号,课程名称,先行课号,学分)SC(Sno,Cno,Grade)其中各项含义分别为:选修(学号,课程号,成绩)说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系。ER图所在系年龄性别姓名学号学生N选修成绩M1先行课程1课程号学分课程名3物理结构设计4数据字典设计1学生信息表Student的表结构主码列 名数据类型宽度小数
9、位空否备 注PkSnoChar10N学号SnameChar20Y姓名SexChar2Y性别SageInt4Y年龄SdeptChar20Y所在系2课程信息表Course的表结构主码列 名数据类型宽度空否备 注PkCnoChar5N课程代码CnameChar20Y课程名称CpnoChar5Y先行课号CreditSmallint2Y学分3 选课成绩表SC的表结构主码列 名数据类型宽度小数位空否备 注PkSnoChar10N学号CnoChar5N课程代码GradeDecimal41Y成绩系统的功能模块图6系统设计一结合CBuilder进行数据库,设计过程可按如下步骤进行:l 创建应用库及应用对象;l
10、创建全局变量;l 创建菜单;l 创建数据窗口;l 创建窗口并在窗口中放置所需控件。l 创建应用库及应用对象1 创建登陆窗体2 创建主窗体l 加入连接数据库控件,DBGrid,ADODataSet,ADODataCommand,DataSource。l 设置数据库连接,设置控件属性。l 设计窗体界面3创建查询窗体l 连接主窗体控件l 设置查询条件l 对查询条件优化l 多表查询设置4修改窗体设置l 连接数据库属性l 设置修改项l 确认修改5高级查询功能l 高级查询功能提示l 查询窗体设计八程序流程图1以下是程序功能的主要流程:开始选择登陆类型,输入密码密码正确登陆系统,权限设置查询添加修改确认连接
11、数据库,数据库操作结束选择操作NoYesNoYes3 数据查询流程图查询开始输入查询条件判断查询查询语句生成连接数据库,执行语句结束NoYes查询查询Button1Click(TObject *Sender)读取查询条件;转化为String形式语句;读取查询显示列;转化为String形式语句;判断 查询语句关系,确定查询要连接的表;语句连接优化-生成SQL;输入ADODataSet-CommandText=SQL;执行成功;输出结果;修改 修改ButtonClick(TObject *Sender)读取要修改的数据;显示数据了;直接修改;修改确认;if(确定)修改数据库 else 放弃修改;退
12、出查询实现代码如下:void _fastcall TForm6:Button1Click(TObject *Sender)String sno,sname,ssex,sage,sdept,cno,cname,cgrade,ccredit,cpno;/snoif(Edit1-Text!=)sno= and student.sno=+Edit1-Text+; else sno=;/snameif(Edit2-Text!=)sname= and student.sname=+Edit2-Text+; else sname=;/ssexif(Edit3-Text!=)ssex= and student
13、.ssex=+Edit3-Text+; else ssex=; /sageString ageSel;ageSel=ComboBox1-Text;if(ageSel!=)if(Edit4-Text!=)sage= and student.sage+ageSel+Edit4-Text;else sage=;/sdept if(Edit5-Text!=)sdept= and student.sdept=+Edit5-Text+; else sdept=; /cnoif(Edit6-Text!=)cno= and o=+Edit6-Text+; else cno=; /cname,if(Edit7-
14、Text!=)cname= and cname=+Edit1-Text+; else cname=; /cgrade,String gradeSel;gradeSel=ComboBox2-Text;if(gradeSel!=)if(Edit8-Text!=)cgrade= and sc.grade+gradeSel+Edit8-Text;else cgrade=;/ccreditString creditSel;creditSel=ComboBox3-Text;if(creditSel!=)if(Edit9-Text!=)ccredit= and ccredit+creditSel+Edit9
15、-Text;else ccredit=;/,cpno;if(Edit10-Text!=)cpno= and course.cpno=+Edit10-Text+; else cpno=; /getCheckedString SnoShow,snameShow,ssexShow,sageShow,sdeptShow;String cnoShow,cnameShow,cgradeShow,ccreditShow,cpnoShow,allShow;if(CheckBox1-Checked)SnoShow=student.Sno 学号,;else SnoShow=;if(CheckBox2-Checke
16、d)snameShow=student.sname 姓名,;else snameShow=;if(CheckBox3-Checked)ssexShow=student.ssex 性别,;else ssexShow=;if(CheckBox4-Checked)sageShow=student.sage 年龄,;else sageShow=;if(CheckBox5-Checked)sdeptShow=student.sdept 专业,;else sdeptShow=;if(CheckBox6-Checked)cnoShow=o 课程号,;else cnoShow=;if(CheckBox7-Ch
17、ecked)cnameShow=ame 课程名,;else cnameShow=;if(CheckBox8-Checked)cgradeShow=sc.grade 分数,;else cgradeShow=;if(CheckBox9-Checked)ccreditShow=course.Ccredit 学分,;else ccreditShow=;if(CheckBox10-Checked)cpnoShow=course.cpno 先行课号,;else cpnoShow=;if(sno.Length()|sname.Length()|ssex.Length()|sage.Length()|sdep
18、t.Length()|SnoShow.Length()|snameShow.Length()|sageShow.Length()|sdeptShow.Length()CheckBox14-Checked=true;else CheckBox14-Checked=false;if(cno.Length()|cgrade.Length()|cnoShow.Length()|cgradeShow.Length()CheckBox16-Checked=true; else CheckBox16-Checked=false;if(cname.Length()|cpno.Length()|ccredit.
19、Length()|cnameShow.Length()|cpnoShow.Length()|ccreditShow.Length()CheckBox15-Checked=true; else CheckBox15-Checked=false;String cb1,cb2,cb3 ;if(CheckBox14-Checked=true & CheckBox16-Checked=true)cb1= and student.sno=sc.sno ;else cb1=;if(CheckBox15-Checked=true & CheckBox16-Checked=true)cb2= and o=o ;
20、else cb2=;if(CheckBox14-Checked & CheckBox15-Checked=true)cb3= and o=o and student.sno=sc.sno ;else cb3=;allShow=SnoShow+snameShow+ssexShow+sageShow+sdeptShow+cnoShow+cnameShow+cgradeShow+ccreditShow+cpnoShow;allShow.SetLength(allShow.Length()-1);Form2-ADODataSet1-Close();Form2-ADODataSet1-CommandTe
21、xt=select distinct +allShow+ FROM Student, SC , Course Where student.sno!=zzzzzzzz+cb1+cb2+cb3+sno+sname+ssex+sage+sdept+cno+cname+cgrade+ccredit+cpno;/ShowMessage(Form2-ADODataSet1-CommandText);Form2-ADODataSet1-Open();Form2-ADODataSet1-Active=true;十安全保密设计用户登陆软件系统需要分级权限,只有管理员可以对数据库文件进行修改,删除,插入;普通用户
22、只能对数据库信息进行查询;用户通过输入密码进入系统。提供操作系统级的保护。用户还可以通过设计数据库进行数据库操作权限的控制。本程序只是简单的划分了两个等级用户:管理员,普通用户。十一使用过程:1选择用户,输入密码:2进行插入、修改、删除操作3查询界面如下:十二心得体会:这次课程设计运用了CBuilder和SQL server2000编译工具,使用了DBGrid,ADODateSet,ADODateCommand,DataSourcede等控件,熟悉了两个系统的使用。使用过程中,碰到了许多的问题。如:SQL语句的提交到数据库,然后执行SQL语句经常会有一点小错误,直接读取程序差错困难大。数据库连接出现错误等问题。想到放弃但最终还是坚持下来,完成了整个设计过程。设计尽量以方便用户为最先考虑,所以操作界面友好,简单易用,而且有体贴周到的操作提示。即使你是第一次打开它,只要点击启动程序中的”按钮(如图),根据提示很快就可以建立你的管理系统。可以方便的进行查询,修改,删除等操作。专心-专注-专业