VF课程设计Visual Foxpro课程设计.docx
- 文档编号:9260414
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:16
- 大小:506.84KB
VF课程设计Visual Foxpro课程设计.docx
《VF课程设计Visual Foxpro课程设计.docx》由会员分享,可在线阅读,更多相关《VF课程设计Visual Foxpro课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
VF课程设计VisualFoxpro课程设计
《数据库管理系统》
课程设计报告书
学号:
__
班级:
______
姓名:
__________
指导教师:
____
时间:
__2011-2012-2___
《数据库管理系统》课程设计评阅书
题目
学生成绩管理程序设计
设计目的
(1)综合运用所学的数据库知识编制一个具有一定功能的学生学籍管理程序。
(2)学会运用合适的工具进行系统分析与设计工作,并独立完成程序的编制,培养独立工作与研究的能力。
(3)学习课程设计报告书的撰写方法,使学生受到基本的科研素质训练。
设计要求
(1)对系统进行业务流程分析的数据流程分析,确定系统功能,划分功能模块,要求功能完整、准确。
(2)程序实现要求编程简练,可用,功能全面。
应包含成绩登记、成绩查询、成绩统计、成绩删除等基本功能。
(3)要求按照科技文格式撰写不少于3000字的课程设计说明书,并按时上交。
正文应包括以下几个方面的内容:
需求分析、概要设计、详细设计、测试分析报告、用户使用说明、测试结果、参考文献。
(4)设计结果
包括报告书1份(打印),其中附源程序(打印)。
教师评语及成绩
教师签名:
年月日
学生成绩管理程序设计
作者:
[摘要]利用一周的时间,以VisualFoxpro6.0作为开发工具,结合所学的数据库理论知识,编制了一个简单的学生成绩管理程序,程序实现了成绩输入、查询、计算、打印等功能,但管理员的操作功能与学生的操作功能没能很好的限制和分开。
[关键词]成绩管理;程序设计;VisualFoxpro
1设计任务
根据所学的数据库知识,运用VisualFoxpro6.0(以下简称VF)作为开发工具,设计与实现一个简单的学生成绩管理程序。
本次任务要求的程序尽管业务过程较简单,但功能要求全面,报告书格式要求严格,时间紧迫,因此工作量是充分的,难度也很大。
2设计目的
本次设计有两个目的:
一是加深对所学VF知识的理解与掌握,运用程序设计知识进行问题求解,从实际的操作中感受VF的整体运作过程,提高熟练运用计算机的能力;二是掌握问题分析与解决方法,学习课程报告书的撰写方法,加强工程素质训练,为以后的学习打好一定的基础。
3问题描述与分析
3.1功能要求
1.具有学生成绩输入、查询、计算、打印功能。
2.限定条件:
5门考试课程,至少30个学生的成绩。
3.要求利用表单作为程序界面展示功能。
4.能够连编成可执行文件。
3.2数据描述
两个实体:
管理员表、成绩表。
其中管理员表(工作号,姓名,口令),成绩表(学号,姓名,性别,高数,大学英语,计算机,财务会计,大学体育)。
3.3功能说明
1.输入
能够将学生某门课的成绩登记。
包括学生添加与修改两个功能。
2.查询
能够按姓名查询学生的课程成绩,包括总分与平均分。
能够查询所有学生的每门课的平均成绩。
3.计算
计算每个学生的总分与平均分。
计算所有学生每门课的平均分。
4.打印
打印计算后的学生成绩表。
4设计与实现
通过运用VisualFoxpro6.0设计出能够实现输入、查询、计算、打印等功能的程序。
4.1数据库设计
4.1.1数据库的建立
1.创建目录
创建一个名为“学生成绩”的项目文件,保存在指定磁盘的文件夹中。
2.创建数据库
在项目文件中新建一个名为“学生成绩”的数据库文件,和项目文件保存在同一个文件夹中。
数据库结构如图.1所示。
图.1学生成绩数据库
4.1.2数据库表的结构
表名:
管理员表.dbf,成绩表.dbf
表的基本结构如图.2、图.3所示。
图.2管理员表结构
图.3成绩表结构
4.2初始界面设计与功能代码
4.2.1欢迎界面
新建一个名为“学生成绩管理系统”的表单,利用表单控件工具栏添加标签label1、label2,命令按钮command1、command2、command3,其中label1的caption属性为:
欢迎使用,label2的caption属性为:
学生成绩管理系统,command1的caption属性为:
学生进入系统,command2的caption属性为:
管理员进入系统,command3的caption属性为:
退出,如图.4所示。
图.4欢迎界面
1.学生进入系统的click事件为:
doform学生登陆界面.scx
thisform.release
2.管理员进入系统的click事件为:
doform管理员登陆界面.scx
thisform.release
3.退出的click事件为:
quit
4.2.2学生登录界面和管理员登录界面
分别新建一个名为“学生登录界面”和一个“管理员登录界面”的表单。
1.学生登录界面
利用表单控件工具栏添加标签label1、label2,文本框text1、text2,命令按钮command1、command2,其中label1的caption属性为:
请输入学生姓名:
,label2的caption属性为:
请输入学号,command1的caption属性为:
确定,command2的caption属性为:
退出,如图.5所示。
图.5学生登录界面
(1)确定的click事件为:
ifalltrim(thisform.text1.value)=="卡卡西"
ifalltrim(thisform.text2.value)=="102001"
=messagebox("登录成功")
doform主界面.scx
thisform.release
readevents
endif
endif
ifalltrim(thisform.text1.value)<>"卡卡西"
ifalltrim(thisform.text2.value)=="102001"
=messagebox("用户名错误,请重新输入")
endif
endif
ifalltrim(thisform.text1.value)=="卡卡西"
ifalltrim(thisform.text2.value)<>"102001"
=messagebox("学号错误,请重新输入")
endif
endif
ifalltrim(thisform.text1.value)<>"卡卡西"
ifalltrim(thisform.text2.value)<>"102001"
=messagebox("对不起,您无权使用本系统!
")
quit
endif
endif
(2)退出的click事件为:
thisform.release
2.管理员登录界面
利用表单控件工具栏添加标签label1、label2,文本框text1、text2,命令按钮command1、command2,其中label1的caption属性为:
请输入姓名,label2的caption属性为:
请输入口令,command1的caption属性为:
确定,command2的caption属性为:
退出,如图.6所示。
图.6管理员登录界面
(1)确定的click事件为:
ifalltrim(thisform.text1.value)=="李多海"
ifalltrim(thisform.text2.value)=="1111"
=messagebox("登录成功")
doform主界面.scx
thisform.release
readevents
endif
endif
ifalltrim(thisform.text1.value)<>"李多海"
ifalltrim(thisform.text2.value)=="1111"
=messagebox("用户名错误,请重新输入")
endif
endif
ifalltrim(thisform.text1.value)=="李多海"
ifalltrim(thisform.text2.value)<>"1111"
=messagebox("学号错误,请重新输入")
endif
endif
ifalltrim(thisform.text1.value)<>"卡卡西"
ifalltrim(thisform.text2.value)<>"102001"
=messagebox("对不起,您无权使用本系统!
")
quit
endif
endif
(2)退出的click事件为:
thisform.release
4.3主界面设计与功能代码
新建一个名为“主界面”的表单,在表单空白处单机右键--“数据环境”,添加“成绩表”到“数据环境设计器”中,并将表拖到表单中。
利用表单控件工具栏添加命令按钮command1、command2、command3、command4、command5,其中command1的caption属性为:
输入,command2的caption属性为:
学生成绩查询,command3的caption属性为:
计算,command4的caption属性为:
打印,command5的caption属性为:
退出。
1.输入的click事件为:
LocateAllFor学号="000000"
IfNotFound()
AppendBlank
Thisform.Refresh
Else
Replace姓名With"",高数With0,大学英语With0,计算机With0,财务会计With0,大学体育With0,总分With0,平均分With0
Replace学号With""
Endif
运行结果如图.7所示。
图.7输入界面
2.查询的click事件为:
doform单个学生成绩查询.scx
新建一个名为“单个学生成绩查询”的表单,在表单空白处单机右键—“数据环境”,添加“成绩表”到“数据环境设计器”中,并将表拖到表单中。
利用表单控件工具栏添加标签label1、label2、label3、label4,文本框text1、text2、text3、text4,命令按钮command1、command2,其中label1的caption属性为:
请输入学号,label2的caption属性为:
最高分,label3的caption属性为:
最低分,label4的caption属性为:
平均分,command1的caption属性为:
查询,command2的caption属性为:
退出,如图.8所示。
图.8查询界面
(1)查询的click事件为:
selectavg(成绩表.高数,成绩表.大学英语,成绩表.计算机,成绩表.财务会计,成绩表.大学体育)as平均成绩from成绩表where学号=val(thisform.text1.value)
thisform.text4.value=平均成绩
selectmax(成绩表.高数,成绩表.大学英语,成绩表.计算机,成绩表.财务会计,成绩表.大学体育)as最高成绩from成绩表where学号=val(thisform.text1.value)
thisform.text2.value=最高成绩
selectmin(成绩表.高数,成绩表.大学英语,成绩表.计算机,成绩表.财务会计,成绩表.大学体育)as最低成绩from成绩表where学号=val(thisform.text1.value)
thisform.text3.value=最低成绩
locateforalltrim(成绩表.学号)=no
ifnotfound()
messagebox("没有找到你输入的学号!
",16,"错误")
thisform.Text1.setfocus
return
endif
(2)退出的click事件为:
Thisform.release
3.计算的click事件为:
ReplaceAll总成绩With高数+大学英语+计算机+财务会计+大学体育
ReplaceAll平均成绩With总成绩/5
AverageAllToc1,c2,c3,c4,c5,c6,c7For学号<>"000000"
LocateAllFor学号="000000"
IfNotFound()
AppendBlank
Endif
4.删除的click事件为:
setdeletedon
yn=messagebox("您真的要删除这条记录吗?
")
ifyn=6
delete
=messagebox("删除成功!
")
endif
thisform.refresh()
运行结果如图.9所示。
图.9删除界面
5.打印的click事件为:
reportform学生成绩.frxpreview
在表单的页面上选择“文件”—“新建”—“报表”—“新建”,选择“快速报表”,添加成绩表的所有字段名生成快速报表。
在表头添加一个label控件,命名为“学生成绩单”。
运行结果如图.10所示。
图.10打印界面
6.退出的click事件为:
quit
5难点
1.单个学生成绩查询表单中查询的click事件很难写出,重点是如何将文本框和表单的数据对应起来同时出现。
2.连编后可执行程序窗口一闪而失,可创建事件循环来解决:
readevents
6总结
通过这次课程设计,对VisualFoxpro6.0有了一个全面的认识和掌握,在实际操作过程中能够将所学的知识充分应用,并不断加深和巩固,对自己的信心有很大的提高。
但在课程设计的过程中,发现自己仍有很多不懂或不熟悉的地方,容易造成错误致使表单或查询功能无法运行,对于SOL语句的使用也比较陌生,在今后的学习中将不断积极进取,对不足的地方加以补充,不断扩展自己的理论知识。
参考文献
[1]李雁翎.数据库技术及应用——习题与实验指导(VisualFoxpro)[M].北京:
高等教育出版社,2005
[2]教育部考试中心.全国计算机等级考试二级教程——VisualFoxpro数据库程序设计[M].北京:
高等教育出版社,2011
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF课程设计Visual Foxpro课程设计 VF 课程设计 Visual Foxpro