第10章 综合实例 实验指导书Word格式文档下载.docx
- 文档编号:17217281
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:17
- 大小:316.58KB
第10章 综合实例 实验指导书Word格式文档下载.docx
《第10章 综合实例 实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第10章 综合实例 实验指导书Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
界面如图10-8所示。
图10-8课程信息维护界面
二、学生信息维护
使用表单向导制作一个学生信息维护表单frmXs.scx,可以对学生信息进行添加、删除、修改、查询打印等功能。
界面如图10-9所示。
图10-9学生信息维护界面
三、学生成绩维护
使用一对多表单向导制作一个成绩信息维护表单frmCj.scx,可以对成绩信息进行添加、删除、修改、查询打印等功能。
界面如图10-10所示。
图10-10学生成绩维护界面
四、班级信息维护
新建一个表单frmBjmgr.scx,在表单上添加一个具体三个页面的页框控件,设计一个能够对班级信息进行添加、编辑与查询的表单。
界面如图10-11所示:
(1)添加班级。
当用户输入班级编号、班级名称和班级评语后,单击添加按钮可以将班级信息添加到班级表中,单击重置按钮可以将文本框中的内容清空并使光标位于第一个文本框内。
图10-11班级信息添加界面
添加按钮的单击事件代码如下:
*取得用户输入的班级编号、班级名称、班级评语内容
strBjbh=allt(thisform.pgfBj.pgTj.txtBjbh.value)
strBjmc=allt(thisform.pgfBj.pgTj.txtBjmc.value)
strBjpy=allt(thisform.pgfBj.pgTj.txtBjpy.value)
*判断是否输入了各项内容,如未输入完全提示并退出
ifstrBjbh=="
"
orstrBjmc=="
orstrBjpy=="
MessageBox("
信息输入不完全!
64,"
提示"
)
return
endif
*查找输入的班级编号是否已经存在
locatefortrim(bjbh)==strBjbh
*如果已经存在提示重输
ifFound()
班级编号已经存在,请重输入!
*物理删除班级表中多余的空行
deleallforallt(bjbh)=="
use
usedata/bjexclusive
pack
*追加一条空记录
appendblank
gobottom
*将用户输入的内容更新到班级表中
replacebjbhwithstrBjbh,bjmcwithstrBjmc,bjpywithstrBjpy
MessageBox("
添加成功!
!
thisform.refresh
重置按钮代码如下:
thisform.pgfBj.pgTj.txtBjbh.value="
thisform.pgfBj.pgTj.txtBjmc.value="
thisform.pgfBj.pgTj.txtBjpy.value="
thisform.pgfBj.pgTj.txtBjBh.setFocus()
(2)维护班级信息。
如图10-12所示,当用户单击“第一条”按钮时,记录将定位在班级信息表的第一条记录,当用户单击“末一条”按钮时,记录将定位在班级信息表的最后一条记录,当用户单击“下一条”按钮时,记录将定位在班级信息表的当前记录的下一条记录,当用户单击“上一条”按钮时,记录将定位在班级信息表的当前记录的上一条记录。
用户输入班级编号单击查询,如果查找到相关记录则显示,否则提示不存在。
当查询出记录后,单击删除按钮可以从班级信息删除当前记录,当单击修改按钮时,可以将修改了的当前记录更新到班级信息表中。
图10-12班级信息编辑界面
查询按钮的单击事件代码:
*取得用户输入的班级编号
strBjbh=trim(thisform.pgfBj.pgBj.txtBjbh.value)
selectbj
gotop
*判断表中是否有记录,如果没有记录退出过程
ifBof()
*根据输入的班级编号在表中查询相关记录
*如果没有查找到则提示没有找到并退出过程
ifNotFound()
没有相关信息!
thisform.pgfBj.pgBj.txtBjbh.setFocus()
*如果找到则显示
thisform.pgfBj.pgBj.txtBjbh.value=bjbh
thisform.pgfBj.pgBj.txtBjmc.value=bjmc
thisform.pgfBj.pgBj.txtBjpy.value=bjpy
删除按钮的单击事件代码:
*判断是否输入了班级编号,如果未输入则给出提示并退出过程
请输入要删除班级的编级号!
*在表中查找与用户输入的班级编号相同的记录
*如果查找到提示用户是否要删除,如果用户确定,则删除,否则退出过程
*如果没有查到则提示没有要删除的记录
intMsg=MessageBox("
确定要删除吗?
!
36,"
ifintMsg=7
endif
delete
use
*清除所有文本框
thisform.pgfBj.pgBj.txtBjbh.value="
thisform.pgfBj.pgBj.txtBjmc.value="
thisform.pgfBj.pgBj.txtBjpy.value="
thisform.pgfBj.pgBj.txtBjbh.setFocus()
删除成功!
else
修改按钮的单击事件代码:
strBjbh=allt(thisform.pgfBj.pgBj.txtBjbh.value)
strBjmc=allt(thisform.pgfBj.pgBj.txtBjmc.value)
strBjpy=allt(thisform.pgfBj.pgBj.txtBjpy.value)
*查找表中是否存在与用户输入的编号相同的班级信息
*如果不存在则提示不存在,如果存在请用户确定是否要修改,
*如果用户确定则完成修改,否则退出过程
ifnotFound()
班级编号不存在!
thisform.pgfBj.pgTj.txtBjbh.setFocus()
intMsg=MessageBox("
确定要修改吗?
ifintMsg==7
replacebjbhwithstrBjbh,bjmcwithstrBjmc,bjpywithstrBjpyfortrim(bjbh)=strBjbh
修改成功!
第一条按钮的单击事件代码:
*跳到首记录
*如果已经到文件头则退出过程
*显示首记录
下一条按钮的单击事件代码:
*判断是否已经到了文件尾,
*如果未到末尾下移一打记录
ifnotEof()
skip
*如果到了末尾则提示并退出过程
ifEof()
已到文件末尾!
return
*显示相关记录
上一条按钮的单击事件代码:
*判断是否到达了文件首
*若未到则向前移动一条记录
ifnotBof()
skip-1
*如果到了则提示并退出过程
messagebox("
已经是第一条了!
末一条按钮的单击事件代码:
*判断是否到达文件尾
*若未到达文件尾则移向最后一条记录
ifnoteof()then
*若到文件尾则退出过程
(3)查询班级信息界面。
如图10-13所示,在查询依据组合框中列出所有班级信息表的字段作为查询的依据,当用户在关键字文本框中输入关键字后,单击查询铵钮可以查询出所有符合条件的记录,显示在表格中,如果用户未输入关键字则显示全部的班级信息,当没有查到符合条件的记录则提示没有记录。
图10-13班级信息查询界面
查询按钮的代码如下:
*取得用户选择的汉字字段名称
zdm=allt(thisform.pgfBj.pgCx.cmbYj.value)
*取得用户输入的关键字
strKey=trim(thisform.pgfBj.pgCx.txtKey.value)
*根据用户返回的汉字字段名轮换为表中的字段名
yj="
bjbh"
docase
casezdm="
班级编号"
yj="
班级名称"
bjmc"
班级评价"
bjpy"
endcase
*判断表中有没有相关记录
*如果没有相关记录,则提示并退出
locateforallt(&
yj.)==strKey
ifnot(strKey=="
没有相关记录!
*设置表格的数据源为SQL查询
thisform.pgfBj.pgCx.grid1.recordSourcetype=4
*设置表格有三列
thisform.pgfbj.pgCx.grid1.columncount=3
*设置表格各列的标头
thisform.pgfbj.pgCx.grid1.columns
(1).header1.caption="
thisform.pgfbj.pgCx.grid1.columns
(2).header1.caption="
thisform.pgfbj.pgCx.grid1.columns(3).header1.caption="
班级评语"
*在关键字两边加上关键字%,便于进行Like匹配查询
strKey="
%"
+strKey+"
*设置表格的数据源
thisform.pgfBj.pgCx.grid1.recordSource="
select*frombjwhereallt(&
yj.)likestrKeyintocursortemp_bj"
第三节信息统计
新建一个表单frmTj.scx,在该表单上添加一个单选按钮组和一个表格,设计界面如图10-14所示。
(1)按课程统计成绩:
按各门课程名称进行分组建立一个查询,求出该课程的最高分,最低分及平均分,并按平均分降序排序。
当用户单击“按课程统计成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。
(2)按班级统计成绩:
按各个班级名称进行分组建立一个查询,求出该班级的最高分,最低分及平均分,并按平均分降序排序。
当用户单击“按班级统计成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。
(3)按学生统计成绩:
按各学生姓名进行分组建立一个查询,求出该学生的最高分,最低分及平均分,并按平均分降序排序。
当用户单击“按学生统计成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。
(4)按班级统计课程成绩:
按先按班级再按课程进行分组建立一个查询,求出每个班级的各门课程的最高分,最低分及平均分,并按平均分降序排序。
当用户单击“按班级统计课程成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。
(5)按课程统计班级成绩:
按先按课程再按班级进行分组建立一个查询,求出每门课程中各个班级的最高分,最低分及平均分,并按平均分降序排序。
当用户单击“按课程统计班级成绩”按钮时,将该查询设为表格的数据源,将查询结果显示出来。
图10-14成绩信息统计界面
命令按钮组的单击事件代码如下:
*取得用户当前选定的统计方式
intKey=thisform.optiongroup1.value
docase
*当选定按课程进行统计时
caseintKey=1
*设置表格共有4列
thisform.grid1.columncount=4
*设置各列的标题
thisform.grid1.columns
(1).header1.caption="
课程名称"
thisform.grid1.columns
(2).header1.caption="
最高分"
thisform.grid1.columns(3).header1.caption="
最低分"
thisform.grid1.columns(4).header1.caption="
平均分"
*设置数据源类型为查询
thisform.grid1.recordsourcetype=3
*设置数据源为查询avg_kc
thisform.grid1.recordsource="
avg_kc"
caseintKey=2
avg_bj"
caseintKey=3
学生姓名"
avg_xs"
caseintKey=4
thisform.grid1.columncount=5
thisform.grid1.columns(5).header1.caption="
avg_bjkc"
caseintKey=5
avg_kcbj"
endcase
thisform.refresh
第四节报表打印
(1)报表打印主界面。
新建一个表单,frmReport.scx,并在其上画一个单选按钮组和两个命令按钮,设置界面如图10-15所示。
用户可以通过此界面对班级信息、课程信息、学生信息及成绩信息进行打印。
打印按钮的单击事件代码如下:
intDy=thisform.optiongroup1.value
caseintDy=1
reportformrptbjpreview
caseintDy=2
reportformrptkcpreview
caseintDy=3
reportformrptxspreview
caseintDy=4
reportformrptcjpreview
图10-15报表打印界面
(2)使用报表向导设计班级信息报表rptBj.frx,设置界面如图10-16所示。
图10-16班级信息报表
(3)使用报表向导设计课程信息报表rptKc.frx,设置界面如图10-17所示。
图10-17课程信息报表
(4)使用报表向导设计学生信息报表rptXs.frx,设置界面如图10-18所示。
图10-18学生信息报表
(5)使用一对多报表向导设计学生成绩报表ftpCj.frx,设置界面如图10-19所示。
要求按班级名称和学生学号进行分组,并统计每个学生的平均成绩,全班的平均成绩。
图10-19学生成绩信息报表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 综合实例 实验指导书 10 综合 实例 实验 指导书