Visual FoxPro 课程设计.docx
《Visual FoxPro 课程设计.docx》由会员分享,可在线阅读,更多相关《Visual FoxPro 课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
![Visual FoxPro 课程设计.docx](https://file1.bdocx.com/fileroot1/2023-2/1/2a290189-fb08-4a5e-9234-39c97fefc718/2a290189-fb08-4a5e-9234-39c97fefc7181.gif)
VisualFoxPro课程设计
《VisualFoxPro数据库程序设计》
课程设计报告
时间:
2012年4月6日
目录
第一章系统总体设计
1.1系统功能简介----------------------------------------------4
1.2系统功能结构图--------------------------------------------4
第二章需求分析----------------------------------------5
第三章数据库设计
3.1学生表-----------------------------------------------------5
3.2课程表-----------------------------------------------------5
3.3成绩表-----------------------------------------------------5
第四章实验数据
4.1学生表数据-------------------------------------------------6
4.2课程表数据-------------------------------------------------6
4.3成绩表数据-------------------------------------------------7
第五章程序设计界面
5.1系统主界面设计---------------------------------------------8
5.1.1控件属性设置-------------------------------------------8
5.1.2代码设计-----------------------------------------------9
5.2主菜单设计-------------------------------------------------9
5.2.1控件属性设置--------------------------------------------9
5.2.2代码设计-----------------------------------------------9
5.2.3菜单设计------------------------------------------------9
5.3学生成绩录入-----------------------------------------------10
5.3.1控件属性设置--------------------------------------------10
5.3.2代码设计------------------------------------------------10
5.4学生成绩修改-----------------------------------------------11
5.4.1控件属性设置--------------------------------------------11
5.4.2代码设计------------------------------------------------11
5.5学生成绩查询------------------------------------------------13
5.5.1按学号查询表单控件属性设置------------------------------13
5.5.2按学号查询表单代码设计----------------------------------13
5.5.3按课程查询表单控件属性设置------------------------------14
5.5.4按课程查询表单代码设计----------------------------------14
5.5.5按班级号查询表单控件属性设置----------------------------15
5.5.6按班级号查询表单代码设计--------------------------------15
5.5.7按总分查询表单控件属性设置------------------------------16
5.5.8按总分查询表单代码设计----------------------------------16
5.6学生成绩浏览------------------------------------------------17
5.6.1学生成绩概况表单控件属性设置----------------------------17
5.6.2学生成绩概况表单代码设计-------------------------------17
5.6.3080901_成绩浏览表单控件属性设置------------------------18
5.6.4080901_成绩浏览表单代码设计----------------------------18
5.6.5080902_成绩浏览表单控件属性设置------------------------19
5.6.6080902_成绩浏览表单代码设计----------------------------19
5.7打印报表---------------------------------------------------21
5.7.1打印报表表单设计---------------------------------------21
5.7.2打印报表文件设计---------------------------------------21
5.8退出系统
5.8.1退出系统表单控件属性设置-------------------------------22
5.8.2退出系统表单代码设计-----------------------------------22
第六章课程设计总结------------------------------------23
第七章参考文献----------------------------------------23
第一章系统总体设计
1.1系统功能简介
录入:
录入学号,学生姓名,课程号,课程名,成绩
修改:
按课程号修改成绩
查询:
按学号查询该同学的各科成绩;按课程号查询每名同学的成绩,并排序查询结果;按班级号查询每名同学的各科成绩;按总分查询每名同学的总成绩,并排序查询结果
打印:
打印成绩
1.2系统功能结构图
学习成绩管理系统
第二章需求分析
业务流程:
运行主程序登录主界面(输入密码)登录主菜单
成绩录入
成绩修改
成绩查询(按学号,课程号,班级号,总分)
成绩浏览(概况,080901班,080902班)
打印报表
退出系统
第三章数据库设计
3.1学生表
表结构:
学生表(学号C8,姓名C8,性别C2,出生日期D,班级号C8)
主索引:
学号;候选索引:
姓名
3.2课程表
表结构:
课程表(课程号C4,课程名C14,学分数值型N3,0,任课教师C8)
主索引:
课程号;候选索引:
课程名
3.3成绩表
表结构:
成绩表(学号C8,课程号C4,成绩N5,0,性别C2,班级号C8)
普通索引:
成绩
第四章实验数据
4.1学生表数据
4.2课程表数据
4.3成绩表数据
第五章程序设计界面
5.1系统主界面设置
5.1.1控件属性设置
(1)主表单属性:
Name:
”form1”
Caption:
主界面
Height=454
Width=633
MaxButton=.F.
MinButton=.F.
WindowType=0
WindowState=0
AutoCenter=.T.
Closeable=.F.
(2)命令按钮属性:
Name=”Command1”
Name=”Command2“
Name=“Command3“
Caption=“开始“
Caption=”确定“
Caption=“退出”
Visible=.F.
(3)文本框:
1个,用来接收口令,其主要属性为:
Name=“Text1”PasswordChar=“*”
(4)标签:
共三个,主要属性:
Name=“Lable1”Caption=”学生成绩管理系统”
Name=“Lable2”
Name=“Lable3“
Caption=”DesignedbyYangShuHua“
Caption=“请输入口令:
”
Visible=.F.
(5)时钟控件:
共两个,用来控制Lable2的颜色变化
Name=“Timer1”
Name=”Timer2”
Interval=1230
Interval=843
5.1.2代码设计
Command1的Click事件
thisform.label3.visible=.T.
thisform.text1.visible=.T.
mand1.visible=.F.
mand2.visible=.T.
Command2的Click事件
passw="YANGSHUHUA"
IFUPPER(thisform.text1.value)=passw
DOform主菜单
thisform.release
ELSE
MessageBox("口令不对,您无权使用本系统!
",0+16+0,"设置口令")
thisform.refresh
ENDIF
Command3的Click事件
clearevents
setsysmenutodefa
thisform.release
Timer1的Timer事件
thisform.label2.forecolor=rgb(255,0,0)
Timer2的Timer事件
thisform.label2.forecolor=rgb(0,0,255)
5.2主菜单设计
5.2.1控件属性设置
标签Lable1的Caption属性:
经济管理学院学生成绩管理系统
5.2.2代码设计
表单的Init事件:
do学生成绩管理.mprWITHTHis,.T.
5.2.3菜单设计
按照系统功能结构图设计菜单
在vfp系统主菜单的“显示”菜单下,选择“常规选项”命令,在弹出的对话框中,勾选顶层表单选项,将该表单设置为顶层表单。
5.3 学生成绩录入
5.3.1控件属性设置
标签:
Label1Caption:
学号;Label2Caption:
课程号;
Label3Caption:
成绩:
Label4Caption:
性别;
Label5Caption:
班级号;Command1Caption:
添加;
Command2Caption:
删除:
Command3Caption:
退出
5.3.2代码设计
Command1的Click事件
select成绩表
gobottom
appendblank
replace成绩表.学号withthisform.text1.value
replace成绩表.性别withthisform.text4.value
replace成绩表.课程号withthisform.text2.value
replace成绩表.班级号withthisform.text5.value
replace成绩表.成绩withthisform.text3.value
thisform.refresh
Command2的Click事件
nA=MESSAGEBOX("你确定删除该记录吗?
",4+64+256,"提示")
IFnA=6
DELETE
PACK
ENDIF
Command3的Click事件
thisform.release
5.4学生成绩修改
5.4.1控件属性设置
Label1Caption:
课程号;Label2Caption:
成绩;Label3Caption:
学号;
Label4Caption:
成绩修改;Command1Caption:
修改;Command2Caption:
退出
5.4.2代码设计
Command1的Click事件
select成绩表
locatefor学号=thisform.text2.valueand课程号=thisform.text1.value
dowhilefound()
replace成绩withthisform.text3.value
continue
enddo
Command2的Click事件
thisform.release
5.5学生成绩查询
5.5.1按学号查询表单控件属性设置
Label1Caption:
学号;Command1Caption:
查询;Command2Caption:
退出
表格:
显示查询结果
5.5.2按学号查询表单代码设计
Command1的Click事件
setsafetyoff
select学生表.学号,学生表.姓名,课程表.课程号,课程表.课程名,成绩表.成绩from学生表,课程表,成绩表;
where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号and成绩表.学号=thisform.text1.value;
intotablecxb
thisform.grid1.recordsource='cxb'
thisform.refresh
setsafetyon
Command2的Click事件
thisform.release
5.5.3按课程查询表单控件属性设置
Label1Caption:
课程号;OptionGroup1.option1Caption:
升序;
OptionGroup.option2Caption:
降序;Command1Caption:
查询;
Command2Caption:
退出
表格控件:
显示查询结果
5.5.4按课程号查询表单代码设计
Command1的Click事件
setsafetyoff
ifthisform.optiongroup1.option1.value=1
select学生表.学号,学生表.姓名,课程表.课程号,课程表.课程名,成绩表.成绩from学生表,课程表,成绩表;
where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号and成绩表.课程号=thisform.text1.value;
orderby成绩表.成绩ascintotablecxb1
else
select学生表.学号,学生表.姓名,课程表.课程号,课程表.课程名,成绩表.成绩from学生表,课程表,成绩表;
where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号and成绩表.课程号=thisform.text1.value;
orderby成绩表.成绩descintotablecxb1
endif
thisform.grid1.recordsource='cxb1'
thisform.refresh
setsafetyon
Command2的Click事件
thisform.release
5.5.5按班级查询表单控件属性设置
Label1Caption:
班级号;Command1Caption:
查询;Command2Caption:
退出
5.5.6按班级查询表单代码设计
Command1的Click事件
setsafetyoff
select学生表.学号,学生表.姓名,课程表.课程号,课程表.课程名,成绩表.成绩from学生表,课程表,成绩表;
where成绩表.学号=学生表.学号AND成绩表.课程号=课程表.课程号and学生表.班级号=thisform.text1.value;
intotablecxb2
thisform.grid1.recordsource='cxb2'
thisform.refresh
setsafetyon
Command2的Click事件
thisform.release
5.5.7按总分查询表单控件属性设置
OptionGroup1.option1Caption:
升序;OptionGroup.option2Caption:
降序Command1Caption:
查询;Command2Caption:
退出;表格控件:
显示查询结果
5.5.8按总分查询表单代码设计
Command1的Click事件
setsafetyoff
ifthisform.optiongroup1.option1.value=1
select成绩表.学号,学生表.姓名,学生表.班级号,SUM(成绩表.成绩)as总分from成绩表,学生表;
where成绩表.学号=学生表.学号groupby成绩表.学号orderby总分asc;
intotablecbx4
else
select成绩表.学号,学生表.姓名,学生表.班级号,SUM(成绩表.成绩)as总分from成绩表,学生表;
where成绩表.学号=学生表.学号groupby成绩表.学号orderby总分desc;
intotablecbx4
endif
thisform.grid1.recordsource='cbx4'
thisform.refresh
setsafetyon
Command2的Click事件
Thisform.release
5.6学生成绩浏览
5.6.1学生成绩概况表单控件属性设置
LabelCaption:
全体学生成绩概况,fontunderline=.T.
5.6.2学生成绩概况代码设计
Form1的Init事件
dosumcj.prg
thisform.text1.value=c1
thisform.text2.value=c2
thisform.text3.value=c3
thisform.text4.value=c4
thisform.text5.value=c5
thisform.text6.value=c6
thisform.text7.value=c7
Sumcj.prg
closedata
publicc1,c2,c3,c4,c5,c6,c7
opendata学生成绩管理系统
use成绩表again
calculateAVG(成绩表.成绩)toc1
calculateavg(成绩表.成绩)for性别="男"toc2
calculateavg(成绩表.成绩)for性别="女"toc3
calculateavg(成绩表.成绩)for课程号="001"toc4
calculateavg(成绩表.成绩)for课程号="002"toc5
calculateavg(成绩表.成绩)for课程号="003"toc6
calculateavg(成绩表.成绩)for课程号="004"toc7
use
5.6.3080901_成绩浏览表单控件属性设置
Labelcaption:
080901成绩浏览fontunderline=.T.
5.6.4080901_成绩浏览表单代码设计
Form1的Init事件
dosubcj.prg
thisform.text1.value=c1
thisform.text2.value=c2
thisform.text3.value=c3
thisform.text4.value=c4
thisform.text5.value=c5
thisform.text6.value=c6
thisform.text7.value=c7
Subcj.prg
closedata
publicc1,c2,c3,c4,c5,c6,c7
opendata学生成绩管理系统
use成绩表again
calculateAVG(成绩表.成绩)for班级号="080901"toc1
calculateavg(成绩表.成绩)for性别="男"and班级号="080901"toc2
calculateavg(成绩表.成绩)for性别="女"and班级号="080901"toc3
calculateavg(成绩表.成绩)for课程号="001"and班级号="080901"toc4
calculateavg(成绩表.成绩)for课程号="002"and班级号="080901"toc5
calculateavg(成绩表.成绩)for课程号="003"and班级号="080901"toc6
calculateavg(成绩表.成绩)for课程号="004"and班级号="090801"toc7
use
5.6.5080902_成绩浏览表单控件属性设置
LabelCaption:
080902_成绩浏览;fontunderline=.T.
5.6.6080902_成绩浏览表单代码设计
Form1的Click事件
doclacj.prg
thisform.text1.value=c1
thisform.text2.value=c2
thisform.text3.value=c3
thisform.text4.value=c4
thisform.text5.value=c5
thisform.text6.value=c6
thisform.text7.value=c7
Clacj.prg
closedata
publicc1,c2,c3,c4,c5,c6,c7
opendata学生成绩管理系统
use成绩表again
calculateAVG(成绩表.成绩)for班级号="080902"toc1
calculateavg(成绩表.成绩)for性别="男"and班级号="080902"toc2
calculateavg(成绩表.成绩)for性别=