枣庄学院数学与统计学院
实训报告
实训科目:Visual FoxPro课程设计
实训课题:学生成绩管理系统的设计与实现
班级____________
学号____________
姓名____________
成绩____________
指导教师____________
20 __ 年 __ 月 __ 日
一、设计题目
学生成绩管理系统
二、开发软件
Visual FoxPro 6.0
三、课题要求
1.掌握课堂讲授的基本数据库知识和VFP的基本技巧:
(1) 数据库管理系统和VFP的界面组成与操作
(2) 表的基本操作(表的建立与修改、表达式、维护命令)
(3) 表的查询与统计(排序与索引,SELECT-SQL查询,数据库于视图)
(4) 程序设计初步(程序文件,程序的控制,多模块程序)
(5) 表单设计;
(6)菜单设计;
(7) 实例:学生成绩管理系统的开发。
2.要求能够独立设计。完成一个简单的学生成绩管理系统,此系统必须有如下基本功能:
(1) 数据的查询;
(2) 记录的增加,删除,修改等功能;
(3)系统界面良好;
(4) 操作方便,运行稳定。
四、系统开发目标:
本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:
1.系统应具有实用性、可靠性和适用性,同时注意到先进性。
2.对数据库进行动态管理,防止混乱。
3.能够按照用户选择的不同的条件进行简单查询和复合查询。
4.能够对查询结果进行分类汇总,实现报表打印。
5.方便用户的操作,尽量减少用户的操作。
五、设计时间
第16周
六、系统设计
1.总体设计:
学生成绩管理系统包含数据编辑、数据查询、数据统计、打印输出、退出系统五个模块。如图:
2.数据库设计
“学生成绩管理系统”中含有三个表,下面是三个表的结构。
表1 学生表的结构
表2 成绩表的结构
表3 课程表的结构
3.界面设计
(1)设计系统说明表单
表单功能:系统说明表单,是关于系统功能或系统使用的说明窗口,设计者通过它可以向用户说明系统相关信息。在系统启动时,程序会弹出一个说明界面,也就是开始界面,该界面显示一段时间后会自动消失,进入主程序。
设计步骤:新建一个表单,向表单上添加两个标签控件Label1、Label2、一个定时器控件Timer1,将该表单的Picture属性设置为一幅图片,就可以在表单背景显示图片如图1所示。
属性设置见表。
表4 控件属性设置
控件属性属性值
Form1 TitleBar 0
AutoCenter .T.
Picture 添加一幅图片
BorderStyle 0
Label1 Caption 学籍管理系统V1.0
FontSize 36
FontColor 0,0,255
BackStyle 0
Label2 Caption 制作人:程序员
FontSize 18
FontColor 0,0,255
BackStyle 0
Timer1 Interval 3000
添加定时器控件Timer1的Timer事件代码:
ThisForm.release
thisform.release
do form 登录界面
说明:将表单的TitleBar属性设置为0,可以去掉表单的标题栏,表单开始执行后,定时器就会工作,3000ms后,触发定时器的Timer事件,在事件代码中会退出表单。表单运行结果见图2。
图2 表单运行图
(2)设计系统登陆表单
表单功能:系统登陆表单,是用户使用系统的第一个工作表单,具有启动系统、验证操作员“口令”、引导用户使用系统等功能。在登陆表单对用户的密码进行验证时,采用一个密码表,用一个数据表存放用户名和对应的密码。在表单中输入用户名和密码确认后,表单查询密码数据表,如果用户名和密码正确,可以进入下一步的主界面,否则出现错误提示。
图3 登录表单
设计步骤:进入表单设计器,添加两个标签Label1、Label2;两个命令
按钮控件Command1、Command2;一个组合框控件Combo1;一个文本框控件Text1,如图3所示。表单及控件属性见表5。
表5 控件属性设置
控件属性属性值
Form1
Caption 系统登陆
AutoCenter .T.
MaxButton .F.
MinButton .F.
Label1 Caption 用户名:
Label2 Caption 密码:
Text2 PasswordChar *
Command1 Caption 确定
Command2 Caption 退出
建立数据表:密码.dbf ,包含两个字段:“用户”,“密码”,均为字符型,10位,将建立的“密码.dbf”存放在系统默认打开目录。
图4 密码表
编写Command1的Click事件代码:
use 密码.dbf &&打开数据表密码.dbf
UseName=AllTrim(https://www.sodocs.net/doc/6d13531164.html,bo1.value)
Passwd=AllTrim(ThisForm.Text2.value)
If !Empty(UseName) .AND. !Empty(Passwd)
Locate For 用户=UseName &&定位
If Found() .AND. 密码==Passwd &&如果数据表中的记录与用户输入的数据匹配
use
Do Form 应用界面.scx &&打开"主界面.scx"
thisform.release
Else
MessageBox("用户名或密码错误",16,"错误") &&出错信息框EndIf
EndIf
编写Command2的Click事件代码:
ThisForm.release && 退出表单
3)数据编辑界面(仅以学生表为例)
表单功能:利用此表单完成学生表的编辑:
设计步骤如下:根据“学生.dbf”利用表单向导建立“学生基本信息”表单:
(1)单击“文件”菜单,选择“新建”命令,进入“新建”窗口。
(2)选择“表单”,单击“向导”按钮,进入“向导选取”对话框,
(3)选择“表单向导”,为单个表创建操作数据的表单,单击“确定”按钮,进入“表单向导”之步骤1――字段选取对话框。
(4)单击“”按钮,弹出“打开”对话框,选取“学生.dbf”文件,并将全部可用字段转入“选定字段”栏中,
(5)单击“下一步”按钮,进入“表单向导”之步骤 2 -选择表单样式对话框,使用系统默认的“样式”和“按钮类型”。
(6)单击“下一步”,进入“表单向导”之步骤3-排序次序对话框。该对话框用来按照字段排序记录。添加“学号”字段到选定字段。
(7)单击“下一步”,进入“表单向导”之步骤 4 —完成对话框。该对话框用来设定表单标题和保存选项。键入表单标题“学生基本信息”,选中“保存并运行表单”,
(8)单击“完成”,表单被保存并运行。
4)其它部分数据表单:
查询表单(以用学号查询为例)表单功能:在组合框中显示学生表中所有学号,选中一个学号后,在表格中显示相应该同学的相关信息。
设计步骤:(1)打开表单设计器,添加一个组合框Combo1,一个表格Grid1,二个命令按钮Command1,一个标签Label1,如图:(各控件的caption 属性设置按照图例设置)
(2)、设置标签的:autosize=.t,组合框的:style=2, RecordSource=学生, RecordSourcetype=2,将学生表添加到数据环境中.
(3)编写command1的click事件:
if Empty(https://www.sodocs.net/doc/6d13531164.html,bo1.Value) &&如果没有输入查询信
息
MessageBox("请输入查询信息",16) &&则提示用户输入信息Else
Select 姓名,性别,专业,课程名称,成绩,考试日期from 学生,课程,成绩where 学生.学号==alltrim(https://www.sodocs.net/doc/6d13531164.html,bo1.value) and 成绩.学号=学生.学号and 课程.课程编号=成绩.课程编号;
into cursor 信息临时表
thisform.grid1.recordsource='信息临时表'
EndIf
编写command2的click事件:
thisform.release
5)部分数据输出报表(以课程信息输出为例)
使用“快速报表”功能为“课程”表创建包含其全部字段的“课程信息报表”。
操作步骤如下:
(1) 打开“报表设计器”窗口,
(2) 在“报表”菜单中选择“快速报表”命令,弹出“打开”对话框,在该对话框中选择报表的数据源“课程”表,弹出“快速报表”对话框,该对话框用于选择报表的字段并指定字段的布局格式,
(3) 在“字段选择器”对话框中,单击“全部”按钮,将“所有字段”列表框中的全部字段添加到“选定字段”列表框,再单击“确定”按钮返回“快速报表”对话框。
(4) 单击“确定”按钮,返回“报表设计器”窗口,“快速报表”已生成,如(5) 单击“常用”工具栏上的“预览”按钮,弹出“快速报表”预览窗口单击“常用”工具栏上的“保存”按钮,将报表保存为“课程信息报表.frx”
6)菜单设计
打开“菜单设计器”,按下表所示内容定义下拉式菜单。
“学生成绩管理”菜单定义内容
(2).从主窗口的“显示”菜单打开“常规选项”对话框,选中“顶层表单”复选框,关闭对话框。
(3).将所定义的菜单保存到“学生管理顶层菜单.mnx”文件,并生成“学生管理顶层菜单.mpr”菜单程序文件。
打开“表单设计器”窗口,添加3个“标签”控件,按下表内容设置各控件的属性。
“学生成绩管理表单”各控件属性设置值
Label1 Caption
AutoSize
FontName
FontSize
欢迎使用
.T.-真
宋体
16
Label3
Caption
AutoSize
FontName
FontSize
V1.0
.T.-真
宋体
16
调整各标签控件的位置,使用“布局”工具栏使各标签控件在表单中居中。
在表单的Load事件代码中添加调用菜单程序的命令:
DO 学生管理顶层菜单.mpr WITH This, “xsglcd”
在表单的Destroy事件代码中添加清除菜单的命令:
RELEASE MENU xsglcd EXTENDED
将所设计的表单保存到“学生成绩管理表单.scx”文件中,运行该表单,如图所示。
七、结束语
经过为期一周的课程设计可谓受益匪浅。经过实践才真正的地把文字化为了知识,才真正的为我所用。认识到自己在学习过程中的缺点和不足。为以后的学习生活积累了宝贵的经验和教训。心得体会如下:
再做vfp系统开发时一定要做好信息的收集工作,否则后期工作将坠入云里雾中。信息收集时要求尽可能的考虑周全。这才能为设计阶段打下一个良好的基础。
VFP程序设计有几点值得注意:你可以不像课本上一样建立分类文件夹,但所有文件都要在一个文件夹中;
在写主程序时,不能照书直接抄,必须根据自己程序设计的实际而有所
八、系统需要改善之处,改善方法的构思
1.该系统比较简单,功能较少;
2.可添加用户注册功能、修改密码功能;