数据库学生成绩管理系统课程设计.docx
- 文档编号:23082944
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:19
- 大小:201.49KB
数据库学生成绩管理系统课程设计.docx
《数据库学生成绩管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《数据库学生成绩管理系统课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
数据库学生成绩管理系统课程设计
学生成绩管理系统
• 1问题描述
1.1背景
1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。
2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。
3)每门课程有课程号,课程名称、任课教师、学分等信息。
4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行查询、浏览和修改。
1.2数据需求
学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓缩为:
学生基本信息表、课程基本信息表和学生成绩信息表。
根据学校的情况,可按下面的步骤来分析:
(1)确定学生所在的院系、所学的专业以及所在的班级。
(2)确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在班级、学号和学期。
(3)分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。
(4)用户信息分析,通常包括用户名和密码。
• 2解决方案(或数据库系统设计)
2.1E-R模型设计
根据E—R图,将其转化为如下数据实体,数据库:
学生成绩管理系统.dbc,包括如下的表和视图:
1)学生登记表——学生表.dbf
2)课程登记表——课程表.dbf
3)成绩登记表——成绩表.dbf
4)借书视图(lyxview)。
为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf等3个表中提取了10个字段的数据:
学生表.xh
学生表.xm
学生表.xb
学生表.csrq
学生表.bj
课程表.kch
课程表.kcm
课程表.js
课程表.xf
成绩表.cj
其视图关系可由以下SQL语句定义:
SELECT学生表.*,课程表.*,成绩表.cj;
FROM学生成绩管理系统!
学生表,学生成绩管理系统!
课程表,;
学生成绩管理系统!
成绩表;
WHERE学生表.xh=成绩表.xh;
AND课程表.kch=成绩表.kch
所建数据库如下图所示:
2.2数据表
本系统需要使用的数据如下:
•3 系统实现
3.1开发环境
本系统由SQL语言编写,在VisualFoxpro6.0软件环境下可以正常运行
3.2系统流程图
系统流程图模块主要由王胜磊同学设计,而系统的功能设计主要由吴畏同学完成,然后共同负责程序主要功能界面的设计,下面是部分流程图:
、
3.3程序主要功能界面
1、登录界面的设计:
第一步:
在表单上单击鼠标右键,并在弹出菜单中选择“数据环境”项,打开数据环境设计器,添加数据表mm.dbf;
第二步:
创建表单并保存为“登录”;
第三步:
添加lable1,并设置其caption属性为“欢迎使用学生成绩管理系统!
”;
第四步:
添加lable2和text1并设置相关属性;
第五步:
添加timer控件,并设置其Enabled属性为“真”,用于设计窗口动画。
登录界面如下图所示:
2、修改密码表单的设计:
第一步:
在表单上单击鼠标右键,并在弹出菜单中选择“数据环境”项,打开数据环境设计器,添加数据表mm.dbf;
第二步:
创建表单并保存为“修改密码”;
第三步:
添加label1、label2、label3,并设置其caption属性分别为“请输入旧密码”、“请输入新密码”、“请确认新密码”;
第四步:
添加text1、text2、text3,并设置相关属性;
第五步:
添加command1和command2,并设置其caption属性分别为“确认”和“取消”;
修改密码表单如下图:
3、学生基本信息维护表单的设计:
第一步:
创建表单,并保存为学生表.scx;
第二步:
添加lable1~lable5,其caption的属性如下图所示;
第三步:
添加文本框text1~text5,并设置相关属性;
第四步:
添加“院系”、“专业”、“班级”和“学期”列表框;
第五步:
添加类,并设置相关属性,用于增添和修改学生基本信息;
第六步:
添加文本框text6,并设置相关属性;
第七步:
添加command1~command10,并设置相关属性;
第八步:
添加“返回”按钮,其功能是关闭此界面;
第九步:
执行运行命令,并进行测试。
4、课程信息维护表单的设计:
第一步:
创建表单,并保存为课程表.scx;
第二步:
添加lable1~lable4,其caption的属性如下图所示;
第三步:
添加文本框text1~text4,并设置相关属性;
第四步:
添加类,并设置相关属性,用于增添和修改课程基本信息;
第五步:
添加command1~command10,并设置相关属性
5、学生成绩信息维护表单的设计:
第一步:
创建表单,并保存为成绩表.scx;
第二步:
添加lable1~lable3,其caption的属性如下图所示;
第三步:
添加文本框text1~text3,并设置相关属性;
第四步:
添加类,并设置相关属性,用于增添和修改学生成绩基本信息;
第五步:
添加command1~command10,并设置相关属性;
第六步:
执行运行命令,并进行测试
6、浏览学生表单的设计:
第一步:
创建表单,并保存为“浏览学生.scx”;
第二步:
使用组合框生成器来生成编辑组合框,其操作步骤是:
首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出组合框生成器窗体,设置数据环境为“学生表.dbf”。
第三步:
添加label1和列表框,并设置相关属性;
第四步:
添加command1,并设置其caption属性为“查找”。
7、浏览成绩表单的设计:
第一步:
创建表单,并保存为“浏览成绩.scx”;
第二步:
使用组合框生成器来生成编辑组合框,其操作步骤是:
首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出组合框生成器窗体,设置数据环境为“成绩表.dbf”。
第三步:
添加label1和列表框,并设置相关属性;
第四步:
添加command1,并设置其caption属性为“查找”。
运行界面如下:
8、查询成绩表单的设计:
第一步:
创建表单,并保存为“查询成绩.scx”;
第二步:
使用组合框生成器来生成编辑组合框,其操作步骤是:
首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出组合框生成器窗体,设置数据环境为“成绩表.dbf”。
第三步:
添加label1,并设置其caption属性为“浏览学生成绩”;
第四步:
添加command1、command2,并设置其caption属性为“查询”和“退出”。
运行界面如下:
9、学生表报表的设计:
学生表报表的设计过程说明如下:
报表数据源学生表.dbf,该表已在前面做了说明。
报表分组条件学生表.bj
报表排序条件学生表.xh
该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的表文件,运行界面如下:
10、课程表报表的设计:
学生表报表的设计过程说明如下:
报表数据源课程表.dbf,该表已在前面做了说明。
报表排序条件课程表.kch
该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的表文件,运行界面如下:
11、成绩表报表的设计:
成绩表报表的设计过程说明如下:
报表数据源成绩表.dbf,该表已在前面做了说明。
报表分组条件成绩表.kcm
报表排序条件学生表.xh
该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的表文件,运行界面如下:
12、帮助表单的设计:
第一步:
创建表单,并保存为版权.scx;
第二步:
添加lable1~lable3,其caption的属性如下图所示;
第三步:
设置其picture属性,选择背景图片。
运行界面如下:
3.4程序调试情况
本系统在设计好之后,初次调试过程中一直出现编译不成功的现象,系统总是显示你所编译的目标文件不存在,找不到你所编译的目标文件路径,后来通过查资料才知道,VisualFoxpro6.0软件在对程序编译的时候默认路径为D盘,随后我们将原vf软件装入D盘,才编译成功。
编译成功之后生成可执行文件的过程如下:
第一步:
在“项目管理器”中设计完成相应的数据库、数据表、各种应用界面、菜单以及主控程序“主程序.prg”,并将“主程序.prg”设置为主文件;
第二步:
生成可执行文件。
在项目管理器中执行“连编可执行文件”创建可执行文件(.exe),单击“确定”按钮后系统打开“另存为”对话框。
将文件另存为“学生成绩管理系统”,然后单击“保存”按钮,系统将自动对项目中的所有程序进行编译。
3.5结论
在本次课程设计中,我主要负责学生成绩管理系统的界面设计。
界面设计非常重要,它是一套系统展现在使用者没面前的最终东西,它的好坏将直接影响到使用者对本套系统的认可,良好的仕途效果与平面设计,以及好的布局能给人留下深刻的印象。
在设计过程中碰到了好多问题,但最终在同学和老师的帮助下都得到了解决,在设计学生成绩管理界面时,我学会了好多在课本上学不到的东西,通过本次课程设计我也能将课本上的知识融会贯通,提到很好的辅助学习效果。
• 结束语
通过做课程设计,我确实学到了相当多的东西。
眼高手低是同学们的通病,有些事情看起来很同意,但做起来并不是如此。
在做本次数据库课程设计之前,我已经将课本上的东西熟练掌握,自认为做一个很简单的课程设计应该很容易,然而真正操作起来却遇到了很多的麻烦。
首先,在开始做课程设计时对整个模块的把握不够好,以至于浪费了好多时间而没能按想象中的顺利完成。
其次,在编写各个模块的程序代码时,真正感觉到了难度相当大,每次编写出来的代码都需要经过好几次修改才能顺利运行,而且在编写代码时常常会遇到一些很难解决的问题。
但是我总相信一句话“只要坚持,一千次失败过后,被会有一次闪亮的成功,凡事不能一蹴而就,对待学问、对待科研更是如此”,在做完这次课程设计之后,我也体会到了一种成功的喜悦。
同时这次课程设计也让我查到了许多在数据库学习中的漏洞,我也通过这次的实践机会完善了自己的知识,起到了很好的查缺补漏的效果。
参考文献
1、《关系数据库原理与系统》,宋瀚涛,梁允荣,北京理工大学出版社,1992
2、数据库系统设计及其应用案例分析,刘秋生,东南大学出版社,2005
3、数据库系统概论(第3版),王珊,高等教育出版社,2002
4、SQLServer数据库原理及应用教程,张丽,王强,清华大学出版社,2003
5、《visualfoxpro应用于开发案例教程》,徐谡,清华大学出版社2005
6、《VisualFoxPro6.0数据库原理与应用》,胡晓燕,西安电子科技大学出版社
7、《VisualFoxPro6.0程序设计教程》,刘瑞新,文成林机械工业出版社
附录:
源代码清单
1、主程序
clearall
closeall
setsysmoff
setsysmto
setnotioff
setstatbaroff
setpaleoff
setbellon
setescaon
setkeyctowind
setcarron
setconfon
setexacon//off
setnearon
setansioff
setdeleon
setoption
settalkoff
setsafetyoff
*setdefato"D:
\vf作业\"
publicxtbt
xtbt="学生成绩管理系统"
_screen.caption=xtbt
_screen.icon="linux.ico"
doform学生成绩管理系统.scx
readevents
return
2.查询成绩
clear
*setexactoff
*setdefato"D:
\vf作业\"
opendatabase学生成绩管理系统.dbc
publicskcm
skcm=thisform.pageframe1.page1.text1.text
select学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cjfrom学生表join成绩表join课程表;
on课程表.kch=成绩表.kchon学生表.xh=成绩表.xhwhere成绩表.xh=skcm
releasethisform
clear
*setdefato"D:
\vf作业\"
opendatabase学生成绩管理系统.dbc
publicskcm
skcm=thisform.pageframe1.page2.text1.text
select*fromlyxviewwherekch=skcm
releasethisform
3.登陆
clear
*setdefato"D:
\vf作业\"
usemm.dbfexcl
locaallforalltrim(mm)=alltrim(thisform.Text1.text)
if.not.eof()
messagebox("登陆成功!
")
do主菜单.MPR
doform背景.scx
relethisform
else
messagebox("密码错误",48,"警告")
endif
quit
4、修改密码
clear
closeall
usemm.dbfexcl
ifthisform.text2.text!
=thisform.text3.Text
messagebox("两次密码输入不同",48,"警告")
else
locaallforalltrim(Mm)=alltrim(thisform.Text1.text)
if.not.eof()
replaceMmwiththisform.text2.text
messagebox("密码修改成功",64,"恭喜")
else
messagebox("密码错误",48,"警告")
endif
endif
relethisform
closeall
5.浏览
closeall
opendatabase学生成绩管理系统.dbc
select*fromlyxview
selectxhas学号,xmas姓名,xbas性别,bjas班级,csrqas出生日期,kchas课程号,kcmas课程名,xfas学分,jsas教师,cjas成绩fromlyxview
clear
*setdefato"D:
\vf作业\"
opendatabase学生成绩管理系统.dbc
publicskcm
skcm=thisform.pageframe1.page2.text1.text
select*fromlyxviewwherekcm=skcm
clear
*setdefato"D:
\vf作业\"
opendatabase学生成绩管理系统.dbc
publicskcm
skcm=bo1.value
thisform.refresh()
select*fromlyxviewwherebj=skcm
6、查找
按班级名查找学生:
------------
clear
*setdefato"D:
\vf作业\"
opendatabase"data\学生成绩管理系统.dbc"
publicskcm
skcm=thisform.pageframe1.page2.text1.text
select学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cjfrom学生表join成绩表join课程表;
on课程表.kch=成绩表.kchon学生表.xh=成绩表.xhwhere学生表.bj=skcm
*************************
clear
*setdefato"D:
\vf作业\"
opendatabase学生成绩管理系统.dbc
publicskcm
skcm=thisform.pageframe1.page2.text1.text
select*fromlyxviewwherebj=skcm
*****************************
skcm=bo1.value
*********************************
按课程名查找课程:
clear
*setdefato"D:
\vf作业\"
opendatabase"data\学生成绩管理系统.dbc"
publicskcm
skcm=thisform.pageframe1.page2.text1.text
select学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cjfrom学生表join成绩表join课程表;
on课程表.kch=成绩表.kchon学生表.xh=成绩表.xhwhere课程表.kcm=skcm
查询菜单中的按学号查成绩:
clear
*setdefato"D:
\vf作业\"
opendatabase"data\学生成绩管理系统.dbc"
publicskcm
skcm=thisform.pageframe1.page1.text1.text
select学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cjfrom学生表join成绩表join课程表;
on课程表.kch=成绩表.kchon学生表.xh=成绩表.xhwhere成绩表.xh=skcm
查询菜单中的按课程号查成绩:
clear
*setdefato"D:
\vf作业\"
opendatabase"data\学生成绩管理系统.dbc"
publicskcm
skcm=thisform.pageframe1.page2.text1.text
select学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kch,课程表.kcm,课程表.js,课程表.xf,成绩表.cjfrom学生表join成绩表join课程表;
on课程表.kch=成绩表.kchon学生表.xh=成绩表.xhwhere课程表.kch=skcm
7.登陆窗口动画
timer1.timer
ifthisform.label1.left+thisform.label1.width<0
thisform.label1.left=thisform.width
else
thisform.label1.left=thisform.label1.left-10
endif
thisform.refresh()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 学生 成绩管理系统 课程设计