数据库学生成绩管理系统课程设

上传人:无*** 文档编号:191185876 上传时间:2023-03-02 格式:PDF 页数:15 大小:311.01KB
收藏 版权申诉 举报 下载
数据库学生成绩管理系统课程设_第1页
第1页 / 共15页
数据库学生成绩管理系统课程设_第2页
第2页 / 共15页
数据库学生成绩管理系统课程设_第3页
第3页 / 共15页
资源描述:

《数据库学生成绩管理系统课程设》由会员分享,可在线阅读,更多相关《数据库学生成绩管理系统课程设(15页珍藏版)》请在装配图网上搜索。

1、河南理工大学计算机科学与技术学院课程设计报告200 7 200 8 学年第二 学期课程名称数据库课程设计设计题目学生成绩管理系统学生姓名 0 学号专业班级指导教师申自浩 2008 年 7 月 1 日?1 问题描述1.1 背景 1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。3)每门课程有课程号,课程名称、任课教师、学分等信息。4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行查询、浏览和修改。1.2 数据需求学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓缩为:学生基本

2、信息表、课程基本信息表和学生成绩信息表。根据学校的情况,可按下面的步骤来分析:(1)确定学生所在的院系、所学的专业以及所在的班级。(2)确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在班级、学号和学期。(3)分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。(4)用户信息分析,通常包括用户名和密码。?2 解决方案 (或数据库系统设计 )2.1 E-R 模型设计课程学生班级学号出生日期姓名查询成绩任课教师课程号课程名称学分成绩性别根据 ER 图,将其转化为如下数据实体,数据库:学生成绩管理系统.dbc,包括如下的表和视图:1)学生登记表学生表.dbf。字段名称字段

3、类型字段宽度xh 字符型 10 xm 字符型 6 xb 字符型 2 csrq 日期型 8 bj 字符型 4 2)课程登记表课程表.dbf。字段名称字段类型字段宽度kch 字符型 2 kcm 字符型 10 js 字符型 10 xf 字符型 10 3)成绩登记表成绩表.dbf 字段名称字段类型字段宽度xh 字符型 10 kch 字符型 2 cj 数值型 3 4)借书视图(lyxview)。为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf 等 3 个表中提取了 10 个字段的数据:学生表.xh 学生表.xm 学生表.xb 学生表.csrq 学生表.bj 课程表.kch 课程

4、表.kcm 课程表.js 课程表.xf 成绩表.cj 其视图关系可由以下SQL语句定义:SELECT 学生表.*,课程表.*,成绩表.cj;FROM 学生成绩管理系统!学生表,学生成绩管理系统!课程表,;学生成绩管理系统!成绩表;WHERE 学生表.xh=成绩表.xh;AND 课程表.kch=成绩表.kch 所建数据库如下图所示:2.2 数据表本系统需要使用的数据如下:?3系统实现3.1 开发环境本系统由 SQL语言编写,在Visual Foxpro 6.0软件环境下可以正常运行3.2 系统流程图系统流程图模块主要由刘龙洋同学设计,而系统的功能设计主要由李江滨同学完成,我主要负责程序主要功能界

5、面的设计,下面是部分流程图:、3.3 程序主要功能界面1、登录界面的设计:第一步:在表单上单击鼠标右键,并在弹出菜单中选择“数据环境”项,打开数据环境设计器,添加数据表mm.dbf;第二步:创建表单并保存为“登录”;第三步:添加 lable1,并设置其 caption 属性为“欢迎使用学生成绩管理系统!”;第四步:添加 lable2和 text1并设置相关属性;第五步:添加timer控件,并设置其Enabled 属性为“真”,用于设计窗口动画。登录界面如下图所示:浏览查询报表帮助开始用户登陆界面总表浏览成绩报表课程报表学生报表版权所有查询维护表记录浏览成绩浏览课程浏览学生更改口令系统维护 2、

6、修改密码表单的设计:第一步:在表单上单击鼠标右键,并在弹出菜单中选择“数据环境”项,打开数据环境设计器,添加数据表mm.dbf;第二步:创建表单并保存为“修改密码”;第三步:添加 label1、label2、label3,并设置其 caption属性分别为“请输入旧密码”、“请输入新密码”、“请确认新密码”;第四步:添加 text1、text2、text3,并设置相关属性;第五步:添加 command1 和 command2,并设置其 caption属性分别为“确认”和“取消”;修改密码表单如下图:3、学生基本信息维护表单的设计:第一步:创建表单,并保存为学生表.scx;第二步:添加 labl

7、e1 lable5,其 caption 的属性如下图所示;第三步:添加文本框 text1text5,并设置相关属性;第四步:添加“院系”、“专业”、“班级”和“学期”列表框;第五步:添加类,并设置相关属性,用于增添和修改学生基本信息;第六步:添加文本框text6,并设置相关属性;第七步:添加 command1 command10,并设置相关属性;第八步:添加“返回”按钮,其功能是关闭此界面;第九步:执行运行命令,并进行测试。4、课程信息维护表单的设计:第一步:创建表单,并保存为课程表.scx;第二步:添加 lable1 lable4,其 caption 的属性如下图所示;第三步:添加文本框 t

8、ext1text4,并设置相关属性;第四步:添加类,并设置相关属性,用于增添和修改课程基本信息;第五步:添加 command1 command10,并设置相关属性5、学生成绩信息维护表单的设计:第一步:创建表单,并保存为成绩表.scx;第二步:添加 lable1 lable3,其 caption 的属性如下图所示;第三步:添加文本框 text1text3,并设置相关属性;第四步:添加类,并设置相关属性,用于增添和修改学生成绩基本信息;第五步:添加 command1 command10,并设置相关属性;第六步:执行运行命令,并进行测试6、浏览学生表单的设计:第一步:创建表单,并保存为“浏览学生.

9、scx”;第二步:使用组合框生成器来生成编辑组合框,其操作步骤是:首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出组合框生成器窗体,设置数据环境为“学生表.dbf”。第三步:添加 label1和列表框,并设置相关属性;第四步:添加 command1,并设置其 caption 属性为“查找”。7、浏览成绩表单的设计:第一步:创建表单,并保存为“浏览成绩.scx”;第二步:使用组合框生成器来生成编辑组合框,其操作步骤是:首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出组合框生成器窗体,设置数据环境为“成绩表.d

10、bf”。第三步:添加 label1和列表框,并设置相关属性;第四步:添加 command1,并设置其 caption 属性为“查找”。运行界面如下:8、查询成绩表单的设计:第一步:创建表单,并保存为“查询成绩.scx”;第二步:使用组合框生成器来生成编辑组合框,其操作步骤是:首先选择要编辑的组合框,然后单击鼠标右键,在弹出的快捷菜单中选择“生成器”菜单项,屏幕上弹出组合框生成器窗体,设置数据环境为“成绩表.dbf”。第三步:添加 label1,并设置其 caption 属性为“浏览学生成绩”;第四步:添加 command1、command2,并设置其 caption属性为“查询”和“退出”。运

11、行界面如下:9、学生表报表的设计:学生表报表的设计过程说明如下:报表数据源学生表.dbf,该表已在前面做了说明。报表分组条件学生表.bj 报表排序条件学生表.xh 该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的表文件,运行界面如下:10、课程表报表的设计:学生表报表的设计过程说明如下:报表数据源课程表.dbf,该表已在前面做了说明。报表排序条件课程表.kch 该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的表文件,运行界面如下:11、成绩表报表的设计:成绩表报表的设计过程说明如下:报表数据源成绩表.dbf

12、,该表已在前面做了说明。报表分组条件成绩表.kcm 报表排序条件学生表.xh 该报表由向导程序生成,其后进行了一些格式美化的调整修改工作,关键问题是要先定义好作为数据源的表文件,运行界面如下:12、帮助表单的设计:第一步:创建表单,并保存为版权.scx;第二步:添加 lable1 lable3,其 caption 的属性如下图所示;第三步:设置其 picture属性,选择背景图片。运行界面如下:3.4 程序调试情况本系统在设计好之后,初次调试过程中一直出现编译不成功的现象,系统总是显示你所编译的目标文件不存在,找不到你所编译的目标文件路径,后来通过查资料才知道,Visual Foxpro 6.

13、0软件在对程序编译的时候默认路径为D 盘,随后我们将原vf软件装入D盘,才编译成功。编译成功之后生成可执行文件的过程如下:第一步:在“项目管理器”中设计完成相应的数据库、数据表、各种应用界面、菜单以及主控程序“主程序.prg”,并将“主程序.prg”设置为主文件;第二步:生成可执行文件。在项目管理器中执行“连编可执行文件”创建可执行文件(.exe),单击“确定”按钮后系统打开“另存为”对话框。将文件另存为“学生成绩管理系统”,然后单击“保存”按钮,系统将自动对项目中的所有程序进行编译。3.5 结论在本次课程设计中,我主要负责学生成绩管理系统的界面设计。界面设计非常重要,它是一套系统展现在使用者

14、没面前的最终东西,它的好坏将直接影响到使用者对本套系统的认可,良好的仕途效果与平面设计,以及好的布局能给人留下深刻的印象。在设计过程中碰到了好多问题,但最终在同学和老师的帮助下都得到了解决,在设计学生成绩管理界面时,我学会了好多在课本上学不到的东西,通过本次课程设计我也能将课本上的知识融会贯通,提到很好的辅助学习效果。?结束语通过做课程设计,我确实学到了相当多的东西。眼高手低是同学们的通病,有些事情看起来很同意,但做起来并不是如此。在做本次数据库课程设计之前,我已经将课本上的东西熟练掌握,自认为做一个很简单的课程设计应该很容易,然而真正操作起来却遇到了很多的麻烦。首先,在开始做课程设计时对整个

15、模块的把握不够好,以至于浪费了好多时间而没能按想象中的顺利完成。其次,在编写各个模块的程序代码时,真正感觉到了难度相当大,每次编写出来的代码都需要经过好几次修改才能顺利运行,而且在编写代码时常常会遇到一些很难解决的问题。但是我总相信一句话“只要坚持,一千次失败过后,被会有一次闪亮的成功,凡事不能一蹴而就,对待学问、对待科研更是如此”,在做完这次课程设计之后,我也体会到了一种成功的喜悦。同时这次课程设计也让我查到了许多在数据库学习中的漏洞,我也通过这次的实践机会完善了自己的知识,起到了很好的查缺补漏的效果。参考文献1、关系数据库原理与系统,宋瀚涛,梁允荣,北京理工大学出版社,1992 2、数据库

16、系统设计及其应用案例分析,刘秋生,东南大学出版社,2005 3、数据库系统概论(第3 版),王珊,高等教育出版社,2002 4、SQL Server 数据库原理及应用教程,张丽,王强,清华大学出版社,20035、visual foxpro应用于开发案例教程,徐谡,清华大学出版社 2005 6、Visual FoxPro 6.0数据库原理与应用,胡晓燕,西安电子科技大学出版社7、Visual FoxPro 6.0程序设计教程,刘瑞新,文成林机械工业出版社附录:源代码清单1、主程序clear all close all set sysm off set sysm to set noti off s

17、et stat bar off set pale off set bell on set esca on set keyc to wind set carr on set conf on set exac on /off set near on set ansi off set dele on set opti on set talk off set safety off*set defa to D:vf作业 public xtbt xtbt=学生成绩管理系统 _screen.caption=xtbt _screen.icon=linux.ico do form 学生成绩管理系统.scx re

18、ad events return 2.查询成绩clear*set exact off*set defa to D:vf作业 open database 学生成绩管理系统.dbc public skcm skcm=thisform.pageframe1.page1.text1.text select 学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cj from 学生表 join 成绩表 join 课程表;on 课程表.kch=成绩表.kch on 学生表.xh=成绩表.xh where 成绩表.xh=skcm rel

19、ease thisform clear*set defa to D:vf作业 open database 学生成绩管理系统.dbc public skcm skcm=thisform.pageframe1.page2.text1.text select*from lyxview where kch=skcm release thisform 3.登陆clear*set defa to D:vf作业 use mm.dbf excl loca all for alltrim(mm)=alltrim(thisform.Text1.text)if.not.eof()messagebox(登陆成功!)d

20、o 主菜单.MPR do form 背景.scx rele thisform else messagebox(密码错误,48,警告)endif quit 4、修改密码clear close all use mm.dbf excl if thisform.text2.text!=thisform.text3.Text messagebox(两次密码输入不同,48,警告)else loca all for alltrim(Mm)=alltrim(thisform.Text1.text)if.not.eof()replace Mm with thisform.text2.text messagebo

21、x(密码修改成功,64,恭喜)else messagebox(密码错误,48,警告)endif endif rele thisform close all 5.浏览close all open database 学生成绩管理系统.dbc select*from lyxview select xh as 学号,xm as 姓名,xb as 性别,bj as 班级,csrq as 出生日期,kch as 课程号,kcm as 课程名,xf as 学分,js as 教师,cj as 成绩 from lyxview clear*set defa to D:vf作业 open database 学生成绩

22、管理系统.dbc public skcm skcm=thisform.pageframe1.page2.text1.text select*from lyxview where kcm=skcm clear*set defa to D:vf作业 open database 学生成绩管理系统.dbc public skcm skcm=bo1.value thisform.refresh()select*from lyxview where bj=skcm 6、查找按班级名查找学生:clear*set defa to D:vf作业 学生成绩管理系统.dbc public skcm skcm=thi

23、sform.pageframe1.page2.text1.text select 学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cj from 学生表 join 成绩表 join 课程表;on 课程表.kch=成绩表.kch on 学生表.xh=成绩表.xh where 学生表.bj=skcm*clear*set defa to D:vf作业 open database 学生成绩管理系统.dbc public skcm skcm=thisform.pageframe1.page2.text1.text select

24、*from lyxview where bj=skcm*skcm=bo1.value*按课程名查找课程:clear*set defa to D:vf作业 学生成绩管理系统.dbc public skcm skcm=thisform.pageframe1.page2.text1.text select 学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cj from 学生表 join 成绩表 join 课程表;on 课程表.kch=成绩表.kch on 学生表.xh=成绩表.xh where 课程表.kcm=skcm 查

25、询菜单中的按学号查成绩:clear*set defa to D:vf作业 学生成绩管理系统.dbc public skcm skcm=thisform.pageframe1.page1.text1.text select 学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kcm,课程表.js,课程表.xf,成绩表.cj from 学生表 join 成绩表 join 课程表;on 课程表.kch=成绩表.kch on 学生表.xh=成绩表.xh where 成绩表.xh=skcm 查询菜单中的按课程号查成绩:clear*set defa to D:vf作业 学生成

26、绩管理系统.dbc public skcm skcm=thisform.pageframe1.page2.text1.text select 学生表.xh,学生表.xm,学生表.xb,学生表.csrq,学生表.bj,课程表.kch,课程表.kcm,课程表.js,课程表.xf,成绩表.cj from 学生表 join 成绩表 join 课程表;on 课程表.kch=成绩表.kch on 学生表.xh=成绩表.xh where 课程表.kch=skcm 7.登陆窗口动画timer1.timer if thisform.label1.left+thisform.label1.width0 thisform.label1.left=thisform.width else thisform.label1.left=thisform.label1.left-10 endif thisform.refresh()

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!