数据库原理应用实习报告.docx
《数据库原理应用实习报告.docx》由会员分享,可在线阅读,更多相关《数据库原理应用实习报告.docx(34页珍藏版)》请在冰豆网上搜索。
数据库原理应用实习报告
课程名称:
数据库原理应用
设计题目:
学生信息管理系统
姓名:
***
班级:
电子商务092
学号:
************
手机号码:
****
院系:
信息学院网络技术系
实验地点:
综合楼六楼软件七室
指导教师:
刘**
成绩:
教师签字:
设计时间:
2011/05/23-2011/06/03
摘要
学生信息管理系统是一个教育单位不可缺少的重要组成部分,它的内容对于学校的教务管理人员来说至关重要,作为计算机应用的一部分,利用计算机进行学生信息的管理无疑是一条行之有效又高效的办法。
学生信息管理系统主要提供方便高效的管理功能。
本报告介绍了学生信息管理系统的开发过程,阐述了系统分析、系统设计、数据库设计、和系统实施的全过程,主要包括学生信息查询和学生信息维护两大部分,系统功能划分为主界面、查询、数据、统计与报表模块,可完成管理学生的基本信息、课程及成绩信息,主要实现对这些信息进行查询、添加、删除和修改操作。
学生信息管理系统本系统是在windows环境下开发的,使用软件为Microsoft公司的VisualFoxPro9.0。
【关键字】
信息管理系统、学生信息查询、学生信息维护、查询、添加、删除、修改
摘要
1.系统设计总说明…………………………………………4
1.1设计目的……………………………………‥…4
1.2设计要求…………………………………………4
1.2.1内容要求……………………………………4
1.2.2进度要求……………………………………4
1.2.3纪律要求……………………………………5
1.3系统功能简介……………………………………5
1.4设计平台…………………………………………5
2.系统设计过程……………………………………………6
2.1需求分析……………………………………………6
2.2概要设计……………………………………………7
2.2.1整体设计……………………………………7
2.2.2系统总体结构图……………………………7
2.3详细设计……………………………………………8
2.3.1数据库设计…………………………………8
2.3.2创建项目及数据库…………………………11
2.3.3主界面设计…………………………………12
2.3.4信息查询模块设计…………………………14
2.3.5数据维护模块设计…………………………16
2.3.6统计报表模块设计…………………………22
2.3.7系统主菜单设计……………………………25
2.3.8建立主程序…………………………………26
2.4软件测试……………………………………………26
2.5系统实现总图………………………………………27
3.系统设计总结与体会……………………………………28
4.附录1:
参考文献…………………………………………28
1.系统设计总说明
1.1设计目的
近年来,随着计算机技术的进步,数据管理系统软件得到了快速的发展,VisualFoxPro从dBase、FoxBASE、FoxPro发展至今,版本不断升级,功能也越来越强大。
在数据操作方面满足了现代工作的需求,无论在公司的员工信息处理还是教育政府单位都很有用处。
目前,学校工作繁杂、资料重多,各类管理信息系统已进入高校,但未普及,而对于学生信息管理来说,目前还没有完整的、统一的系统。
为各高校教务工作人员减轻负担,提高工作效率,所以在老师的指导下,我制作了学生信息管理系统。
次学生信息管理系统依据开发要求应用于教育系统,完成对日常的教育工作中学生城建档案的数字化管理。
比较系统地教务、教学上的各项服务和信息进行管理,使数据管理更现代化、自动化、智能化、人性化。
同时,减轻了学院教务人员管理的工作量,缩小开支,提高工作效率和准确率,使其变得更具有条理性,科学性,为教育行业做出了巨大的贡献,也为今天的民办教育在未来市场的竞争力有所提高。
此外课程实习作为独立的教学环节,是学习完《数据库原理运用》课程后进行的一次全面的综合练习。
课程设计为学生提供了一个手脑并用、独立实践的机会。
目的在于培养学生分析问题和解决问题的能力,将课本的理论知识与实际应用问题进行有机结合,提高学生综合素质,以便以后更好的适应相关岗位工作。
1.2设计要求
1.2.1内容要求
学生信息管理系统的设计及开发,具体完成以下内容:
1.系统设计,系统功能分析,包括简要系统功能文字说明和系统功能模块图。
2.数据库设计
a)给出数据库中各表结构的定义(字段,数据类型)
b)表之间的关系图
c)数据库的完整性设计
3.客户端程序(使用VF进行开发)
a)创建项目
b)主界面设计,信息查询模块设计、数据维护模块设计、报表统计模块设计
c)主菜单设计
d)建立主程序
e)程序的测试及运行
1.2.2进度要求
15月23日课程设计资料翻阅和准备,系统需求分析及系统功能设计;
25月25日~5月30日数据库设计与实现,功能界面设计与实现
36月1日~6月3日书写设计报告与总结并提交
1.2.3纪律要求
课程设计期间,;在统一安排实习时间期间,严格按照课堂制度考勤。
(具体时间安排见实训中心5楼的实验时间表。
)
课程实习结束之前必须完成系统设计要求并提交系统。
(系统设计完成:
60%)
课程实习结束之前必须按要求书写完设计报告并提交。
(设计报告完成:
40%)
1.4系统功能简介
本系统主要用于管理学生的基本信息、课程及成绩信息,主要任务是对这些信息进行查询、添加、删除和修改操作。
因此,本系统主要包括学生信息查询和学生信息维护两大部分。
1.5设计平台
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。
目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的VisualS,Microsoft公司的VisualC,Borland公司的Delphi和Powersoft公司的PowerBulider以及Java等。
在这些程序开发工具中,有的强调程序语言的弹性与执行效率;有的则偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的需求。
然而,现在FoxPro仍然是市场中用于完成数据库事务的最佳工具,其功能也在不断的完善、增强。
它无处不在,它强大、易于学习。
便宜,并且想得到你职位的人也知道这种语言能实现什么功能,还有,某些编程任务能够快速、直接的进行特殊的数据维护,仍然是希望完成事务的专业人员的选择,特别适合那些主要工作不是编写代码的工作人员。
加之我们这学期开设了这门课程,因此我完成的这个学生信息管理系统是在windows环境下,使用软件为Microsoft公司的VisualFoxPro9.0开发的。
2.系统设计过程
2.1需求分析
2.1.1背景概述
在当今信息技术迅猛发展的形势下,学生信息管理工作的信息化是十分重要的。
使用计算机化的学生信息管理系统可以彻底改变目前学生信息管理工作的现状,能够提高工作效率,提供更准确、及时、适用和易理解的信息,能够从根本上解决手工管理工作中信息滞后、资源浪费等问题。
2.1.2系统功能模块划分
本学生信息管理系统的功能课划分为以下几大模块:
(1)主界面模块
本模块提供学生信息管理系统的主菜单界面,供用户选择和执行各项任务。
本模块中还应对进入本系统的操作人员即本系统中的管理人员进行用户和密码的验证。
(2)查询模块
本模块提供数据表信息的查询检索功能。
包括学生基本信息查询、学生成绩查询、课程信息查询等子模块。
对学生信息查询,可以输入学号后快速显示。
(3)数据维护模块
本模块提供数据信息的修改、添加、删除、保存和刷新功能。
包括学生基本信息的维护、学生成绩表及课程信息表的维护等子模块。
(4)统计与报表模块
该模块提供各种统计信息与报表打印功能。
根据对以上功能模块的分析,再对以上功能进行模块化,从而得出系统功能模块图,如下图所示:
2.2概要设计
2.2.1整体设计
本学生信息管理系统设计包括了数据库设计、创建项目及数据库、主界面设计、信息查询模块设计、数据维护模块设计统计报表模块设计、系统主菜单设计、建立主程序及最后的软件测试。
所有的功能模块是用主菜单连接起来的,在系统设计好的菜单下就可以执行相应的功能,其具体思想是运行主文件,就会进入主界面,5秒后或在用户单击后自动关闭,即进入身份验证界面,经验证就会进入到学生信息管理系统,就会看到系统设计好的菜单有“查询”、“维护”、“统计报表”、“退出”,就可以根据需要执行相应的操作。
2.2.2系统总体结构图
2.3详细设计
2.3.1数据库设计
(1)数据库及数据表设计
根据项目需求分析及数据库设计原则,本系统要创建一个学生嘻嘻数据库Stu.dbc,并在该数据库中加入“学生表”、“课程表”、“成绩表”和“管理员表4张数据表。
学生表结构
学生表
课程表结构
课程表
成绩表结构
成绩表
(2)数据表间索引及永久性关联设计
创建数据库的各个数据表后,为各表建立索引及永久性关联,如下图所示
(3)数据库完整性设计
打开数据库后选择“数据库“—>”编辑参照完整性“命令,在弹出的对话框中设置的如下图所示:
2.3.2创建项目及数据库
使用VFP开发包含较多文件和功能的系统时,一般都采用项目管理器来进行项目的管理。
其创建步骤如下:
1)创建一个用于存放系统所有相关的文件夹,我创建了“H:
\KC实习”。
2)设置“H:
\KC实习”为默认目录
3)创建项目文件
4)建好项目后在“项目资源管理器“中选择“数据“—>“数据库”,单击“添加”按钮把已经建好的数据库Stu.dbc添加至项目中,还有建好的学生信息表、课程表、成绩表和管理员表
2.3.3主界面设计
本模块提供学生信息管理系统的主菜单界面,供用户选择和执行各项任务。
本模块中还应对进入本系统的操作人员即本系统中的管理人员进行用户和密码的验证。
(1)软件封面设计
在项目管理器的“文档”选项卡中新建一个表单文件“主界面.scx”,经过为该表单设置相关属性,得到如下界面:
为使该表单在运行5s后进入身份验证界面,我为Time1控件的Timerevent添加了如下代码:
thisform.Release
DOFORM身份验证.scx&&身份验证.scx是身份验证表单的文件名
为使在用户单击后自动关闭后进入身份验证界面,为Form1的Clickevent添加了如下代码:
thisform.Release
DOFORM身份验证.scx
(1)身份验证模块设计
在项目管理器的“文档”选项卡中新建一个表单文件“身份验证.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
为Command1的Clickevent添加如下代码:
Lname=ALLTRIM(thisform.text1.Value)
pwd=ALLTRIM(thisform.text2.Value)
USE管理员表
LOCATEFOR用户名=Lname
IFFOUND().and.密码=pwd
USE
thisform.Release
DOm1.mpr
ELSE
MESSAGEBOX("用户名或密码错误,请重新输入!
",0,"错误")
thisform.text2.Value=""
USE
ENDIF
为Command2的Clickevent添加如下代码:
answer=MESSAGEBOX("是否确定要退出系统",4+32,"确定")
IFanswer=6
thisform.Release
ELSE
thisform.text1.setfocuse
ENDIF
2.3.4信息查询模块设计
信息查询模块包括了“学生基本信息查询”、“学生成绩查询”和“课程信息查询”3个子模块,共要设3个表单,实现查询功能。
(1)学生基本信息查询
在项目管理器的“文档”选项卡中新建一个表单文件“学生基本信息查询.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
其中为Command1的Clickevent添加了如下代码:
sno=ALLTRIM(thisform.text1.Value)
SCAN
IF学生表.学号=sno.or.学生表.姓名=sno
thisform.text1.Value=""
thisform.Refresh
RETURN
ENDIF
ENDSCAN
MESSAGEBOX("该学生不存在!
",0,"查找失败")
(2)学生成绩查询
在项目管理器的“文档”选项卡中新建一个表单文件“学生成绩查询.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
其中为Command1的Clickevent添加了如下代码:
sno=ALLTRIM(thisform.text1.Value)
SCAN
IF成绩表.学号=sno
thisform.text1.Value=""
thisform.Refresh
RETURN
ENDIF
ENDSCAN
MESSAGEBOX("该学号不存在!
",0,"查找失败")
(3)课程信息查询
在项目管理器的“文档”选项卡中新建一个表单文件“课程信息查询.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
其中为Command1的Clickevent添加了如下代码:
sno=ALLTRIM(thisform.text1.Value)
SCAN
IF课程表.课程id=sno
thisform.text1.Value=""
thisform.Refresh
RETURN
ENDIF
ENDSCAN
MESSAGEBOX("该课程id不存在!
",0,"查找失败")
2.3.5数据维护模块设计
本模块提供数据信息的修改、添加、删除、保存和刷新功能。
包括学生基本信息的维护、学生成绩表及课程信息表的维护等子模块,共要设3个表单,实现维护功能。
(1)学生信息维护
在项目管理器的“文档”选项卡中新建一个表单文件“学生信息维护.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
为Form1控件的Initevent添加了如下代码
PUBLICstate
state=0
USE学生表exclusive
this.grid1.recordsource="学生表"
为Command1的Clickevent添加了如下代码:
this.Enabled=.F.
state=1
thisform.grid1.allowaddnew=.F.
APPENDblank
thisform.grid1.setfocus
mand2.Enabled=.F.
mand3.Enabled=.F.
为Command2的Clickevent添加了如下代码:
this.Enabled=.F.
state=2
thisform.grid1.AllowAddNew=.F.
thisform.grid1.ReadOnly=.F.
mand1.Enabled=.F.
mand3.Enabled=.F.
为Command3的Clickevent添加了如下代码:
answer=MESSAGEBOX("真的要删除当前记录吗?
",4+32,"确认删除")
IFanswer=6
DELETE
PACK
ENDIF
thisform.refresh
为Command4的Clickevent添加了如下代码:
IFstate=1.or.state=2
FLUSH
ENDIF
mand1.Enabled=.T.
mand2.Enabled=.T.
mand3.Enabled=.T.
thisform.grid1.ReadOnly=.T.
thisform.grid1.AllowAddNew=.T.
为Command5的Clickevent添加了如下代码:
thisform.refresh
(2)成绩维护
在项目管理器的“文档”选项卡中新建一个表单文件“成绩维护.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
为Form1控件的Initevent添加了如下代码:
PUBLICstate
state=0
USE成绩表exclusive
this.grid1.recordsource="成绩表"
为Command1的Clickevent添加了如下代码:
this.Enabled=.F.
state=1
thisform.grid1.allowaddnew=.F.
APPENDblank
thisform.grid1.setfocus
mand2.Enabled=.F.
mand3.Enabled=.F.
为Command2的Clickevent添加了如下代码:
this.Enabled=.F.
state=2
thisform.grid1.AllowAddNew=.F.
thisform.grid1.ReadOnly=.F.
mand1.Enabled=.F.
mand3.Enabled=.F.
为Command3的Clickevent添加了如下代码:
answer=MESSAGEBOX("真的要删除当前记录吗?
",4+32,"确认删除")
IFanswer=6
DELETE
PACK
ENDIF
thisform.refresh
为Command4的Clickevent添加了如下代码:
IFstate=1.or.state=2
FLUSH
ENDIF
mand1.Enabled=.T.
mand2.Enabled=.T.
mand3.Enabled=.T.
thisform.grid1.ReadOnly=.T.
thisform.grid1.AllowAddNew=.T.
为Command5的Clickevent添加了如下代码:
thisform.refresh
(3)课程维护
在项目管理器的“文档”选项卡中新建一个表单文件“课程维护.scx”,经过为该表单设置相关属性及运行后,得到如下界面:
为Form1控件的Initevent添加了如下代码:
PUBLICstate
state=0
USE课程表exclusive
this.grid1.recordsource="课程表"
为Command1的Clickevent添加了如下代码:
this.Enabled=.F.
state=1
thisform.grid1.allowaddnew=.F.
APPENDblank
thisform.grid1.setfocus
mand2.Enabled=.F.
mand3.Enabled=.F.
为Command2的Clickevent添加了如下代码:
this.Enabled=.F.
state=2
thisform.grid1.AllowAddNew=.F.
thisform.grid1.ReadOnly=.F.
mand1.Enabled=.F.
mand3.Enabled=.F.
为Command3的Clickevent添加了如下代码:
answer=MESSAGEBOX("真的要删除当前记录吗?
",4+32,"确认删除")
IFanswer=6
DELETE
PACK
ENDIF
thisform.refresh
为Command4的Clickevent添加了如下代码:
IFstate=1.or.state=2
FLUSH
ENDIF
mand1.Enabled=.T.
mand2.Enabled=.T.
mand3.Enabled=.T.
thisform.grid1.ReadOnly=.T.
thisform.grid1.AllowAddNew=.T.
为Command5的Clickevent添加了如下代码:
thisform.refresh
2.3.6统计报表模块设计
1.学生成绩报表
学生成绩报表用于打印每位学生的每门课程的成绩,因为建立该报表的数据来源于学生信息表、课程表和成绩表三个表,所以在建立该报表前先建立一个视图用来存放该报表用到的数据。
视图设计器如图所示:
建立好的视图如图所示:
然后就可以在项目管理器的“文档”选项卡中新建一个报表文件“学生成绩明细表.scx”,经过在报表设计器中设置好该报表,预览后,得到如下界面:
2.学生平均成绩统计表
学生平均成绩统计报表用于统计每位学生的平均成绩,因为建立该报表的数据来源于学生信息表和成绩表两个表,所以在建立该报表前先建立一个视图用来存放该报表用到的数据。
视图设计器如图所示:
建立好的视图如图所示:
然后就可以在项目管理器的“文档”选项卡中新建一个报表文件“学生平均成绩统计表.scx”,经过在报表设计器中设置好该报表,预览后,得到如下界面:
2.3.7系统主菜单设计
在完成各个功能模块的设计后,我设计了一个能够将各个模块组合起来的主功能菜单,形成一个完整的系统界面。
根据功能模块的划分,可以很容易地得到主菜单的组成结构图,本系统的主菜单结构如下图所示:
2.3.8建立主程序
一个数据库应用系统一般由若干个表单、程序、菜单等组成。
运行系统时,首先运行的是主文件,然后在调用其他表单,以实现系统的各项功能。
本系统将主文件设置为一个程序文件m.prg。
为该程序设置如下代码:
CLOSEALL
CLEARALL
SETTALKOFF
_screen.Caption="学生信息管理系统"
_screen.Visible=.F.
DOFORM主界面.scx
SETSYSMENUTOdefault
还要把程序文件m.prg设置成主文件。
每个项目只能有一个主文件,某文件被设置成主文件后,会用粗体显示。
以后要运行系统,都会先从该文件开始。
2.4软件测试
经过该学生信息管理系统的开发设计,我深确地体会到在应用程序