学生管理系统设计与开发.docx
《学生管理系统设计与开发.docx》由会员分享,可在线阅读,更多相关《学生管理系统设计与开发.docx(19页珍藏版)》请在冰豆网上搜索。
![学生管理系统设计与开发.docx](https://file1.bdocx.com/fileroot1/2023-1/9/79160575-251e-48ff-90d5-1ff848bee650/79160575-251e-48ff-90d5-1ff848bee6501.gif)
学生管理系统设计与开发
《数据库系统原理与应用》课程设计
成果报告
学生管理系统设计与开发
学生学号:
学生姓名:
学院:
计算机学院
专业班级:
计算机科学与技术1241班
专业课程:
数据库系统原理与应用
指导教师:
2015年1月4日
课程设计指导教师评分表
课程设计题目
学生管理系统设计与开发
成员
姓名
学号
任务分工
数据库的连接以及学生信息的查询删除
登陆界面的设计及编写代码,代码的调试
触发器的设计和学生信息的增加修改
评分项目及分值要素
成绩评定
项目
最高分
评分要素
成绩
1.学习态度
20
上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等
2.软件设计质量
40
采用的算法、设计方案,设计结果,界面友好等方面进行综合评定
3.答辩过程
20
能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题
4.设计报告书写
10
内容按要求步骤书写,条理清晰,表述清楚、措词得当
5.实际动手能力
10
熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高
总成绩
等级
评语
目录
一、需求分析1
二、概念结构设计2
三、逻辑结构设计2
四、数据库的物理设计3
五、数据库设计实现及运行4
(一)数据库的创建4
(二)数据表的创建5
(三)视图的创建5
(四)存储过程的定义实现6
(五)自行设计各模块中所涉及的操作语句6
六、系统详细设计及实现7
七、实训总结及心得体会17
学生管理系统设计与开发
一、需求分析
学生管理系统
1.问题描述:
(1)某大学有有多个系,每个系有多个班,每个班有多个学生。
(2)每个学生有学号,姓名,班级,性别,出生日期,地址等。
(3)班级有系编号,班级编号等。
(4)学校需要对每个学生的基本信息进行统一管理,以便对信息进行查询、浏览和修改。
2.系统功能描述,
(1)登入用户的信息,包括登入账号、密码以及权限
(2)学生的基本信息,学生的学号、姓名、班级、性别、出生日期等。
(3)班级的基本信息,班级的编号,所在系的编号等。
(4)学生权限,查看个人的基本信息,学号、姓名、班级等
(5)教务管理人员权限,查询,添加,删除学生的信息
我所负责的功能模块:
数据库的连接以及学生信息的查询删除.
可画出所设计模块的操作流程;
图1操作流程图
二、概念结构设计
画出系统局部及合并后的整体E-R模型;并对模型中所出现的实体及属性等信息加以说明。
图2学生信息E-R图
学生基本信息表Student(学号,姓名,性别,电话,地址,出生日期,班级)
三、逻辑结构设计
1.模式设计:
按系统整体E-R模型,
图3E-R图
写出关系模式;
(1)院系sdept(院系编号,院系名称)
(2)学生基本信息表Student(学生编号,姓名,性别,家庭电话,居住地址,所在院系编号)
(3)班级表Class(班级编号,班级名称,系编号)
(4)学生用户登入表Users(用户名,密码)
(5)教务管理员登入表Privilege(用户名,密码)
表1Class表
列名
数据类型
长度
允许空
Name
varchar
50
Dept-id
int
4
√
表2Department表
列名
数据类型
长度
允许空
id
int
4
Name
varchar
50
四、数据库的物理设计
数据库设计包括数据库需求分析、数据库概念设计和数据库物理设计。
数据库设计的目的,是为信息系统在数据库服务器上建立一个理想的数据模型。
数据库物理设计是指设计出数据库的物理数据模型,它是数据库在物理设备上的具体实现,即数据库服务器物理空间上的表空间、表、字段、索引、视图、储存过程、触发器,以及相应的数据字典的设计。
表3Students
五、数据库设计实现及运行
(一)数据库的创建
T-SQL语句:
createdatabaseStudents
(二)数据表的创建
T-SQL语句:
CREATETABLEClass
(
CnoCHAR(4)PRIMARYKEY,
idCHAR(4),
FOREIGNKEY(Cid)REFERENCESSdept(Cno)
)
insertintoClass(Cno,id)
values('98111','1');
insertintoClass(Cno,id)
values('98112','1');
insertintoClass(Cno,id)
alues('98121','1');
insertintoClass(Cno,id)
values('98112','1');
insertintoClass(Cno,id)
values('98211','2');
insertintoClass(Cno,id)
values('98212','2');
insertintoClass(Cno,id)
values('98221','2');
insertintoClass(Cno,id)
values('98222','2');
insertintoClass(Cno,id)
values('98311','3');
insertintoClass(Cno,id)
values('98312','3');
insertintoClass(Cno,id)
values('98321','3');
insertintoClass(Cno,id)
values('98322','3');
CREATETABLEDepartment
(
idCHAR(4)PRIMARYKEY,
NameCHAR(4),
)
insertintoDepartment(id,Name)
values('1','计算机系');
insertintoDepartment(id,Name)
values('2','信息系统系');
insertintoDepartment(id,Name)
values('1','通信系');
(三)视图的创建
T-SQL语句:
CREATEVIEWIS_Student
AS
SELECTSerial,Name,Class
FROMStudent
WHEREDepartent=’1’
CREATEVIEWIS_Student
AS
SELECTSerial,Name,,Class
FROMStudent
WHEREDepartent=’2’
CREATEVIEWIS_Student
AS
SELECTSerial,Name,Class
FROMStudent
WHEREDepartent=’3’
(四)存储过程的定义实现
T-SQL语句:
createproc[dbo].[ptr]
@classchar(8)
as
selectSerial,Name,Class
fromStudent
joinClassonStudent.Cno=Class.Cno
whereClass.Name=@class
groupbyStudent.Serial,Name,Class
orderbyStudent.Serialdesc
(五)自行设计各模块中所涉及的操作语句
删除操作代码:
PrivateSubcmdDelete_Click()
OnErrorGoToerrHandler
IfMsgBox("要删除记录?
",vbYesNos
Then
DataEnv.Con.Execute"deletefromstudentwhereserial='"&txtSerial&"'"
DataEnv.rsStudent.MoveNext+vbQuestion+vbDefaultButton2,"确认")=vbYe
IfDataEnv.rsStudent.EOF
ThenDataEnv.rsStudent.MoveLast
CallRefreshGrid
EndIf
ExitSub
errHandler:
MsgBoxErr.Description,vbCritical,"错误"
EndSub
学生个人信息查询:
设计代码:
OptionExplicit
PrivateSubcmdClose_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
DataEnv.rsStudent.Find"serial='"&MDIMain.msUserName&"'"
EndSub
六、系统详细设计及实现
1.程序的开发环境:
操作系统:
Windowsxp以上
数据库系统:
SQLServer2008
开发平台:
MicrosoftVisualBasic6.0
2.系统功能模块图及说明。
图4系统功能图
登入模块功能描述:
教务管理人员登入,可以进行学生信息的添加,修改,查询,删除。
学生基本信息的管理:
进行学生信息的添加,修改,查询,删除。
学生登入功能描述:
查看自己的信息。
系班级本信息功能描述:
查看班级成员,系成员。
3.每个模块的关键语句、关键代码段及关键技术说明。
登入模块:
图5教务人员登录
功能描述:
教务管理人员登入,可以进行学生信息的添加,修改,查询,删除。
测试结果教务管理人员登入成功:
图6教务人员登录成功
设计代码:
OptionExplicit
DimmnUserTypeAsInteger
PrivateSubcmdCancel_Click()
UnloadMe
EndSub
PrivateSubcmdOK_Click()
DimuserAsString,pwdAsString
user=txtUser
pwd=txtPwd
DimrAsNewADODB.Recordset
Setr=DataEnv.rssqlSeek
DimstrSQLAsString
SelectCasemnUserType
Case0:
'若身份为管理员
strSQL="select*fromadminwherename='"&user&"'andpwd='"&pwd&"'"
Case1:
'若身份为学生
strSQL="select*fromstudentwherename='"&user&"'andserial='"&pwd&"'"
EndSelect
OnErrorResumeNext
Ifr.State=adStateOpenThenr.Close
r.OpenstrSQL
StaticnTryCountAsInteger
Ifr.EOFThen'登录失败
MsgBox"对不起,无此用户或者密码不正确!
请重新输入!
!
",vbCritical,"错误"
txtUser.SetFocus
txtUser.SelStart=0
txtUser.SelLength=Len(txtUser)
nTryCount=nTryCount+1
IfnTryCount>=3Then
MsgBox"您无权操作本系统!
再见!
",vbCritical,"无权限"
UnloadMe
EndIf
Else
LoadMDIMain
WithMDIMain
.mnUserType=mnUserType
.msUserName=pwd
.Show
EndWith
UnloadMe
EndIf
EndSub
PrivateSubForm_Load()
optUserType(0).Value=True
EndSub
PrivateSubfrmLogin_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
EndSub
PrivateSuboptUserType_Click(IndexAsInteger)
mnUserType=Index
EndSub
添加数据操作:
图7添加数据
功能描述:
重新输入学号,班级,姓名,性别等,学号不能重复。
程少云学生信息添加成功:
图8数据添加成功
设计代码:
PrivateSubcmdAdd_Click()
fraSeek.Enabled=False
fraBrowse.Enabled=False
grdScan.Enabled=False
DataEnv.rsStudent.AddNew
txtBirthday.Text="1980-01-01"
fraInfo.Enabled=True
fraBrowse.Enabled=False
cmdAdd.Enabled=False
cmdEdit.Enabled=False
cmdDelete.Enabled=False
cmdUpdate.Enabled=True
cmdReport.Caption="取消"
cmdReport.Enabled=True
mbClose=False
EndSub
删除数据操作界面
图9删除数据
功能描述:
删除该学生的学号,班级等所有信息。
黄嵘学生信息删除成功:
图10数据删除成功
设计代码:
PrivateSubcmdDelete_Click()
OnErrorGoToerrHandler
IfMsgBox("要删除记录?
",vbYesNo+vbQuestion+vbDefaultButton2,"确认")=vbYes
Then
DataEnv.Con.Execute"deletefromstudentwhereserial='"&txtSerial&"'"
DataEnv.rsStudent.Move
Next
IfDataEnv.rsStudent.EOF
ThenDataEnv.rsStudent.MoveLast
CallRefreshGrid
EndIf
ExitSub
errHandler:
MsgBoxErr.Description,vbCritical,"错误"
EndSub
更新数据操作
图11数据更新
功能描述:
对学生的信息进行及时的更改。
对学号9811201同学的名字进行更新为叶兆:
图12数据更新成功
设计代码:
PrivateSubcmdReport_Click()
OnErrorResumeNext
IfcmdReport.Caption="取消"Then‘取消所使用的更新更新’
DataEnv.rsStudent.CancelUpdate
IfDataEnv.rsStudent.BOFThen
DataEnv.rsStudent.MoveFirst
Else
DataEnv.rsStudent.MovePrevious
DataEnv.rsStudent.MoveNext
EndIf
CallRefreshBinding
CallChangeBrowseState
fraSeek.Enabled=True
fraBrowse.Enabled=True
fraInfo.Enabled=False
grdScan.Enabled=True
cmdReport.Caption="报表(R)"
mbClose=True
Else‘生成报表’
DimstrSQLAsString
DataEnv.rsrptStudent.Close
strSQL="select*fromstudentwhereserial='"&txtSerial.Text&"'"
DataEnv.rsrptStudent.OpenstrSQL
rptStudent.Show
EndIf
EndSub
学生个人信息查询:
功能界面:
图13学生登录
功能界面简单描述:
学生登入,输入姓名,密码是学号,就可以看到自己的信息。
王武学生成功登入:
图14学生登录成功
设计代码:
OptionExplicit
PrivateSubcmdClose_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
DataEnv.rsStudent.Find"serial='"&MDIMain.msUserName&"'"
EndSub
七、实训总结及心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很辛苦,实在是受益匪浅。
本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。
理论和实践的相结合是学习最有效的方法。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识温故知新。
我知道在此次的学生信息管理系统网站设计中有许多的欠缺,在以后的日子中,我一定得更加严格要求自己,改正缺点,不断努力,不断进步,争取做到更好。