《沈阳理工大学数据库应用与开发》教案.doc

上传人:wux****ua 文档编号:9389083 上传时间:2020-04-05 格式:DOC 页数:31 大小:407.50KB
返回 下载 相关 举报
《沈阳理工大学数据库应用与开发》教案.doc_第1页
第1页 / 共31页
《沈阳理工大学数据库应用与开发》教案.doc_第2页
第2页 / 共31页
《沈阳理工大学数据库应用与开发》教案.doc_第3页
第3页 / 共31页
点击查看更多>>
资源描述
数据库应用与开发(A)实验教案适用于学生使用 沈阳理工大学经济管理学院实验一 表的基本操作(2学时)一、实验目的与要求1熟悉Visual FoxPro 6.0的界面环境。2要求掌握建立表的操作。3要求掌握表结构的操作。如:增、删、改表中的字段。4掌握表的复制、删除方法。二、实验环境硬件:486以上微机; 软件:Visual FoxPro 6.0,Windows 98/XP操作系统。三、实验准备知识1建表的操作:先定义表结构,再输入表的数据。2显示记录:List/Display Display All=List 3添加记录(1)插入记录:Insert BeforeBlank(2)追加记录:Append Blank Before(在当前记录前/后插入记录或空白记录)。Insert into 表名(字段名表) Value(表达式表)Append From 表名 Fields 字段名表For 条件4修改记录(1)编辑修改:Edit/Change 范围 For|While条件(2)浏览:Browse(3)替换:Replace 字段名 With 表达式范围For|While条件5删除记录:(1)逻辑删除(加删除标记“*”):Delete范围 For|While条件(2)取消删除标记(将带删除标记录的*去掉):Recall 范围 For|While条件(3)物理删除(将带*的记录真正删除):Pack(4)将表中所有数据记录删除:Zap6记录指针定位:(1)Skip n|-n (在当前指针位置向后/向前移动n个记录位置)。(2)Go To Top|Bottom|n)(记录指针移到最前记录|最后记录|第n个记录)。7建立与修改表结构命令(1)建立表结构:Create Table 表名(字段名 字段类型代码(字段宽度,小数位)(2)修改表结构:Alter Table 表名 Add|Alter 字段名 类型字段宽度,小数位)Alter Table 表名 Drop 字段名1|Rename Column字段名2 To 字段名38表的复制(1)复制表结构:Copy Structure To 新表名 Fields 字段名表(2)复制表文件:Copy File 表名 To 新表名四、实验内容及步骤在做实验前,先在E盘根目录下新建一个文件夹,这里把文件夹名改成04411vfp,这个文件夹用来存放做每次实验内容生成的文件。以后每次上机实验启动VFP6.0系统后,都将VFP的默认路径设为E:04411vfp,用命令方式设置默认路径,即在命令窗口输入命令Set Default To E:04411vfp,键入回车后即可。(一)实验内容1建一个XSDA表,其表结构如表1.1所示, 表数据如图1.1所示,并将表保存在E:04411vfp中。表1.1 XSDA表表结构字段名类型宽度小数位数索引NULL系代号字符型2学号字符型10姓名字符型10性别字符型2出生日期日期型8政治面貌字符型4民族字符型6籍贯字符型6家庭住址字符型40备注备注型4图1.1 XSDA表数据2完成XSDA表后,做以下操作练习:(1)显示XSDA表中第4个记录。(2)显示XSDA表中从第2个记录起的3个记录。(3)显示XSDA表中从第2个记录起到最后一个记录止的所有记录。(4)显示XSDA表中所有民族为“汉”的记录(不显示记录号)。(5)将XSDA表中“系代号”值为04的所有记录的“学号”中第5,6位改为05。 (6)将XSDA表中所有男学生的记录加上删除标记。在屏幕上显示表XSDA记录后将男学生前面的删除标记取消。(7)删除XSDA表中从第2条记录起的3条记录,随后恢复删除的记录。(8)在XSDA表的第二条记录之前插入一条记录,随后删除此空白记录。(9)用复制表结构命令生成XSDA1表,将所有男学生的记录加到XSDA1表中。(10)把表中所有“出生日期”字段的日期都减掉30天。3根据以下表结构(表1.2、表1.3)和表数据(图1.2、图1.3)完成KC表和CJ表,并保存在E:04411vfp文件夹中。表1.2 KC表表结构字段名类型宽度小数位数索引NULL课程号字符型8课程名字符型20学时数值型4学分数值型51表1.3 CJ表表结构字段名类型宽度小数位数索引NULL学号字符型10课程号字符型8开课学期字符型18考试类别字符型4成绩数值型51图1.2 KC表数据图1.3 CJ表数据(二)实验步骤1操作步骤:(1)在电脑中的E盘根目录中建立一个04411vfp文件夹。在VFP6.0中把“E:04411vfp”设置为默认路径。例如,在命令窗口中键入命令:Set Default ToE:04411vfp,回车即可。(2)新建XSDA表:选择“文件”菜单中的“新建”命令,在弹出的“新建”对话框中选择“文件类型”中的“表”选项,点击“新建文件”按钮,在弹出的“创建”对话框中输入表名“XSDA”,单击“保存”按钮。(3)表设计器:在随即弹出的“表设计器”对话框,按照表1.1 编辑XSDA表表结构,最后单击“确定”按钮。(4)录入数据:按照图1.1的数据,完成XSDA表记录的输入。2先用Use XSDA命令语句打开表,各小题命令语句如下:(1) Go 4 或:Display record 4Display (2) Go 2 List next 3(3) Go 3 List rest(4) Display all off for 民族=”汉”(5) Replace all 学号 with left(学号,4)+”05”+right(学号,4) for 系代号=”04”(6) Delete for 性别=男 List Recall all(7) Go 2 Delete next 3 List Recall all(8) Go 2 或:Go 1Insert blank before Insert blankList ListDelete record 2 Delete record 2Pack PackList List (9) Copy structure to XSDA1Use XSDA1Append from XSDA for 性别=”男”(10)Replace All 出生日期 With 出生日期-30 List3操作步骤略,参照XSDA表的操作步骤即可。五、练习题1将XSDA表中的学号、姓名、性别、出生日期字段,复制到新表XSDA2中。将XSDA表中的所有记录复制到XSDA2表中。2把XSDA表复制生成XSDA3表。3把XSDA3表中姓名为“王建”的记录的民族字段替换成“回”。4在XSDA3表中插入一条学生记录,该学生信息是:赵明,男,1985-11-20,汉族,学号0404060120。5删除XSDA3表中85年出生的所有女生的记录。6显示XSDA表中性别为男,并且民族为汉族的所有记录。7显示XSDA表中姓为“李”的所有记录。8将XSDA3表中民族字段的宽度由6改为10。9在XSDA2中,添加一个字段“家庭住址 C(40)”10删除XSDA3表中系代号字段11逻辑删除和物理删除的命令分别是什么?它们的区别是什么?实验三 表的索引、统计命令(2学时)一、实验目的与要求1了解表的排序,掌握表的索引。2掌握表数据的统计命令:计数、求和、求平均值、计算及汇总命令。二、实验环境硬件:486以上微机; 软件:Visual FoxPro 6.0,Windows 98/XP操作系统。三、实验准备知识1排序命令:Sort To On /A/D/C 范围For|While条件Fields字段表2索引分类:(1)按扩展名分类:单索引(只含一个索引条目,扩展名为.IDX);复合索引(允许包含多个索引条目,扩展名为.CDX),复合索引文件又分结构复合索引(与表名相同,随表的打开而打开,在添加、更改或删除时可自动维护)和非结构复合索引。(2)按功能分类:普通索引、唯一索引、候选索引、主索引。3相关索引知识点:通过表设计器建立的索引均为结构复合索引,它提供四种索引类型:主索引、候选索引、普通索引、唯一索引。(1)主索引:不允许在字段和表达式中有重复值,一个表中只能建一个主索引。(2)候选索引:是主索引的候选项,它同样不允许有重复值,对于一个表可以建立多个候选索引。它们有资格被选作主索引。(3)普通索引:允许有重复值。(4)唯一索引:允许有重复值,但输出无重复值。4索引的建立:单索引:Index On To 结构复合索引:Index On Tag 非结构复合索引:Index On Tag Of 5索引文件的使用:(1)索引的打开与关闭:结构复合索引能随表自动打开和关闭,非结构符合索引和单索引用命令打开Set Index To Additive功能:打开当前表的一个或多个索引文件并确定主控索引文件。说明:中第一个索引文件为主控索引文件。 Set Index To,将关闭当前工作区中除结构复合索引文件外所有索引文件,同时取消主控索引。 缺省Additive选项,则在用命令打开索引文件时,除结构复合索引文件以外的索引文件均被关闭。 命令Use Index ,也可在打开表的同时打开索引文件,并确定主控索引文件。(2)确定主控索引:Set Order To |Tag Ascending|Descending说明:表示已打开索引的序号。 Set Order To或Set Order To 0命令取消主控索引文件及主控索引,表中记录按物理顺序输出。(3)删除索引:删除索引标识:Delete Tag All|,删除索引文件:先关闭索引文件,再用删除文件命令删除索引文件。(4)索引的更新:自动调整。所有与表相关的索引文件已打开,若表中记录更新,则索引文件自动更新。重建索引。与表相关的索引文件未打开,用Reindex Compact进行调整,或用Index On 命令再次建立索引。6统计命令:(1)计数命令:CountForWhileTo(2)求和命令:SumForWhile To |Array(3)求平均值:AverageForWhileTo |Array(4)计算命令:Calculate ForWhile To |Array(5)汇总命令:Total To On FieldsForWhile四、实验内容及步骤(一)实验内容1对XSDA表按“学号”降序排序生成新表XSDA4。2对XSDA表先按“系代号”的降序分类排序,对于系代号相同的记录再按“性别”字段升序排序,若还有相同的,则再按“学号”升序排序,生成新表XSDA5,并浏览。3根据“学号”字段,对XSDA表建立单索引文件xhsy。4根据“系代号+性别+学号”关键字,对XSDA表建立索引文件xdhxbxhsy。5根据“学号”字段以及“系代号+性别+学号”,对XSDA表建立两个结构复合索引文件。6利用表设计器,对XSDA表建立索引:以“出生日期”作为关键字,以nl(年龄)作为索引标志,建立一个结构复合索引。7以独占方式打开XSDA表的同时打开单索引文件xhsy和xdhxbxhsy,并将xhsy设置为主控索引。8以独占方式打开XSDA表的同时打开单索引文件xhsy和xdhxbxhsy,并将结构复合索引中的nl索引标记设置为主控索引。9在表XSDA已打开后,打开xhsy和xdhxbxhsy两个单索引文件,并且将xdhxbxhsy设置为主控索引,保持已打开的索引文件仍然打开。10将XSDA表中的主控索引由xdhxbxhsy.idx改为xhsy.idx。11将XSDA表的结构复合索引中的nl标记设置为主控索引,且设为降序。12统计XSDA表姓“李”和姓“王”的学生人数,并存入内存变量rs中。13统计XSDA表中的记录数,存入变量num。14求CJ表中学号为“0404060101”的学生的总成绩,存到变量zcj中。15求CJ表中课程号为“00000008”课程的所有学生的总成绩。16求CJ表中学号为“0404060101”的学生的平均成绩。17汇总CJ表中每个学生的所有课程的总成绩,汇总产生的新表名为CJ1,包含字段有学号和成绩。18汇总CJ表中每门课程的总成绩,汇总产生的新表名为CJ2,包含字段有课程号、开课学期和成绩。 注意:17-18小题汇总前需要先以汇总关键字建立索引,若索引已存在则确定其为主控索引即可。(二)实验步骤1Use XSDASort to XSDA 4 on 学号/D2Use XSDASort to XSDA5 on 系代号/d,性别/a,学号Use XSDA5List3 Use XSDAIndex on 学号 to xhsy4 Use XSDAIndex on 系代号+性别+学号 to xdhxbxhsy5 Use XSDAIndex on 学号 tag xhsy ascendingIndex on 系代号+性别+学号 tag xdhxbxhsy descending6 操作步骤如下:步骤一:打开XSDA表,然后再“显示”菜单中选择“表设计器”命令,打开XSDA表的设计器,如图3.1所示。图3.1“表设计器”中的“XSDA”表步骤二:在“出生日期”字段属性栏中单击“索引”下的下拉列表框,选择“升序”,如图3.2所示。图3.2选择“索引”下拉列表框步骤三:在“索引”选项卡中,可以看到已经建立的索引(如图3.3所示),并且能够进一步设置索引的其他属性,如类型、筛选条件等。把这条以“出生日期”作为关键字的索引的“索引名”,改为“nl”作为索引标志,此结构复合索引创建完毕。说明:若用index命令创建,命令如下:Use XSDAIndex on 出生日期 tag nl 注意:在“索引”选项卡中,第二条和第三条索引是我们第5题练习时创建的复合索引。图3.3 “表设计器”中创建及查看索引7 Use XSDA index xhsy,xdhxbxhsy exclusive8 Use XSDA index xhsy,xdhxbxhsy order nl exclusive9 Use XSDASet index to xhsy,xdhxbxhsy order xdhxbxhsy additive10. Set order to xhsy 11 Set order to nl descending 或 Set order to tag nl descending 12Use XSDACount for 姓名=李 or 姓名=王 to rs?rs13 Use XSDACount to num?num 14Use CJ Sum 成绩 for 学号=0404060101 to zcj ?zcj或:Use CJ Calculate sum(成绩) for学号=0404060101 15Use CJ Sum 成绩 for 课程号=00000008或:Use CJ Calculate sum(成绩) for 课程号=0000000816Use CJAverage 成绩 for 学号=040406010117Use CJ Index on 学号 tag xhTotal to CJ1 on 学号 fields 学号,成绩Use CJ1List(或者Browse)说明:如果已经以学号建立索引(索引标识为xh),这里就不需要(Index On 学号 Tag xh)重新建立索引,只需用Set Order To xh 命令确定主控索引即可。18Use CJ Index on 课程号 tag kch Total to CJ2 on 课程号 fields 课程号,开课学期,成绩Use CJ2List五、练习题1排序是按照表中的某些字段值的大小重新排列记录的顺序,这样的字段被称为(关键字)。2不允许记录中出现重复索引值的索引是(主索引)、(候选索引)、(唯一索引)。3索引的概念?4VFP6.0中的索引按功能如何分类?按文件类型又如何分类?5While和For两种条件子句的含义与区别?练习题参考答案5For条件子句表示在范围内查找符合条件的所有记录;While条件子句表示从当前记录开始向下查找第一条符合条件的记录,但与For条件不同的是,While条件一旦遇到不符合条件的记录就停止搜索,For条件只跳过不符合条件的记录,继续向下查找。实验五 表单设计及表单控件的使用(6学时)一、 实验目的与要求1熟悉面向对象的概念及面向对象的程序设计方法。 2掌握标签(Label)、命令按钮(Command)、文本框(Text)、编辑框(Edit)、组合框(Combo)、复选框(Check)、命令按钮组(Commandgroup)、选项按钮组(OptionGroup)、表格(Grid)、计时器(Timer)等控件的常用属性设置、使用方法,以及为控件编写代码的基本方法。3掌握表单的属性、方法和事件的设置及应用。4熟悉Messagebox()等函数的使用。二、实验环境硬件:486以上微机; 软件:Visual FoxPro 6.0,Windows 98/XP操作系统。三、实验准备知识1几个重要的概念:对象(属性、方法、事件)、类(子类、父类、容器类、控件类)。2 熟悉表单的设计环境:控件的添加、排列、删除,用属性窗口修改控件的属性,代码窗口,数据环境设计器。3. 常用事件:Init、Destroy、Error、Load、Unload、Gotfocus、Click、Dbclick、InteractiveChage。4 常用方法:Release、Refresh、Show、Hide、SetFocus。5 对象属性访问以及对象方法调用的基本格式:.;.()。四、实验内容及步骤 此处,我们将详细介绍几个常用的功能表单的制作步骤,如浏览记录表单、添加记录表单、删除记录表单、修改记录表单和查询记录表单。1 设计一个浏览XSDA表中数据的“学生基本情况”的表单,其表单结构如图5.1所示。表单中的命令按钮组Commandgroup1有5个按钮,Command1、Command2、Command3、Command4、Command5,它们的Caption属性依次为:首记录、上条记录、下条记录、末记录。图5.1 学生基本情况表单操作步骤:方法一(1)新建一个表单,文件名为“学生基本情况表单”。(2)把此表单的Caption属性改为“学生基本情况”;在此表单设计器中单击右键,选择“数据环境”命令,打开数据环境设计器,把XS数据库中的XSDA表添加到此表单的数据环境中。(3)把XSDA表的字段从数据环境中拖拉到表单中,再往表单中添加1个命令按钮组CommandGroup1。CommandGroup1的ButtonCount属性为5,CommandGroup1.command1到CommandGroup1.command5的Caption属性依次设置为“首记录”、“上条记录”、“下条记录”、“末记录”和“退出”。(4)编写程序代码“首记录”按钮CommandGroup1.command1的Click事件代码如下:Go topThisform.commandgroup1.command2.enabled=.f.Thisform.commandgroup1.command3.enabled=.t.Thisform.commandgroup1.command4.enabled=.t.Thisform.refresh“上条记录”按钮CommandGroup1.command2的Click事件代码如下:If bof() Go top Thisform.commandgroup1.command2.enabled=.f.Else Skip-1 Thisform.commandgroup1.command3.enabled=.t. Thisform.commandgroup1.command4.enabled=.t. If bof() Thisform.commandgroup1.command2.enabled=.f. Endif Endif Thisform.refresh“下条记录”按钮CommandGroup1.command3的Click事件代码如下:Iif eof() Go bottom Thisform.commandgroup1.command3.enabled=.f.Else Skip Thisform.commandgroup1.command2.enabled=.t. If eof() Thisform.commandgroup1.command3.enabled=.f. Endif Endif Thisform.refresh“末记录”按钮CommandGroup1.command4的Click事件代码如下:Go bottomThisform.commandgroup1.command3.enabled=.f.Thisform.commandgroup1.command2.enabled=.t.Thisform.refresh“退出”按钮CommandGroup1.command5的Click事件代码如下:Thisform.release(5)最后保存表单,调试运行表单。方法二对命令按钮组Commandgroup1控件的Click事件编写代码,实现各按钮的功能。(1)(2)(3)与方法一相同,此处略。(4)编写程序代码命令按钮组Commandgroup1的click事件代码如下:Do Case Case this.value=1 Go top Thisform.commandgroup1.command2.enabled=.f. Thisform.commandgroup1.command3.enabled=.t. Thisform.commandgroup1.command4.enabled=.t. Case this.value=2 If bof() Go top Thisform.commandgroup1.command2.enabled=.f. Else Skip-1 Thisform.commandgroup1.command3.enabled=.t. Thisform.commandgroup1.command4.enabled=.t. If bof() Thisform.commandgroup1.command2.enabled=.f. Endif Endif Case this.value=3 If eof() Go bottom Thisform.commandgroup1.command3.enabled=.f. Else Skip Thisform.commandgroup1.command2.enabled=.t. If eof() Thisform.commandgroup1.command3.enabled=.f. Endif Endif Case this.value=4 Go bottom Thisform.commandgroup1.command3.enabled=.f. Thisform.commandgroup1.command2.enabled=.t. Case this.value=5 Thisform.release EndcaseThisform.refresh说明:方法二代码和方法一代码基本相同。方法二用Do Case语句把方法一中“首记录”、“上条记录”、“下条记录”、“末记录”、“退出”的代码放在了Do Case语句的分支中。完成功能的实现。2 设计一个录入表单,在此表单中可以对XSDA表添加新记录,其表单结构如图5.2所示。图5.2录入表单 操作步骤:(1) 新建一个表单,命名为“录入表单”。(2) 把此表单的Caption属性改为“数据添加”;在此表单设计器中中单击鼠标右键,选择“数据环境”命令,打开数据环境设计器窗口,把XS数据库中的XSDA表添加到此表单的数据环境中。(3)向表单中添加控件:添加10个标签Label、9个文本框Text、1个编辑框Edit、3个命令按钮Command控件,参照图5.2。(4)“添加表单”中控件属性设置如表5.1所示:表5.1 “添加表单”属性设置对 象属 性属 性 值说 明Form1AutoCenter.T.表单居中显示Label1Caption系代号:Label2Caption学号:Label3Caption姓名:Label4Caption性别:Label5Caption出生日期:Label6Caption政治面貌:Label7Caption民族:Label8Caption籍贯:Label9Caption家庭住址:Label10Caption备注(可为空):Text5Value设置成日期型Command1Caption添加设置命令按钮标题Command2Caption清空设置命令按钮标题Command2Caption退出设置命令按钮标题(5)编写程序代码:“添加”按钮Command1的Click事件代码如下:If !empty(thisform.text1.value) and !empty(thisform.text2.value) and;!empty(thisform.text3.value) and !empty(thisform.text4.value) and;!empty(thisform.text5.value) and !empty(thisform.text6.value) and;!empty(thisform.text7.value) and !empty(thisform.text8.value) and;!empty(thisform.text9.value) Select xsda Locate for alltrim(学号)=alltrim(thisform.text2.value)If found() Messagebox(此学号已存在!,48,信息窗口) Thisform.text2.value= Thisform.text2.setfocus Else yn=messagebox(确定添加吗?,4+32,信息窗口) If yn=6 Append blank Go bottom Replace 系代号 with alltrim(thisform.text1.value) Replace 学号 with alltrim(thisform.text2.value) Replace 姓名 with alltrim(thisform.text3.value) Replace 性别 with alltrim(thisform.text4.value) Replace 出生日期 with thisform.text5.value Replace 政治面貌 with thisform.text6.value Replace 民族 with alltrim(thisform.text7.value) Replace 籍贯 with alltrim(thisform.text8.value) Replace 家庭住址 with alltrim(thisform.text9.value) Replace 备注 with alltrim(thisform.edit1.value) Messagebox(成功添加记录,48,信息窗口) Thisform.text1.value= Thisform.text2.value= Thisform.text3.value= Thisform.text4.value= Thisform.text5.value= Thisform.text6.value= Thisform.text7.value= Thisform.text8.value= Thisform.text9.value= Thisform.edit1.value= Thisform.text1.setfocus Thisform.refresh Else Thisform.text1.setfocus Endif EndifElseMessagebox(内容不能为空!,48,信息窗口) Endif“清除”按钮Command2的Click事件代码如下:Thisform.text1.value= Thisform.text2.value= Thisform.text3.value= Thisform.text4.value= Thisform.text5.value= Thisform.text6.value= Thisform.text7.value= Thisform.text8.value= Thisform.text9.value= Thisform.edit1.value= Thisform.text1.setfocus“退出”按钮Command3的Click事件代码如下: Thisform.refresh (6)最后保存表单,调试运行表单。3 设计一个删除表单,可以对XSDA表中的记录进行删除,可参照图5.3。图5.3 删除学生档案表单窗口 操作步骤:(1)新建一个表单,命名为“删除表单”。(2)把此表单的Caption属性改为“删除学生档案”;在数据环境设计器窗口中把的XSDA表添加到此表单的数据环境中。(3)向表单中添加控件:在数据环境设计器窗口中把XSDA表直接拖至表单中,生成一个Grdxsda表格,如图5.3所示,此表格的RecordSource属性是XSDA;在表单添加2个命令按钮Command,它们的Caption属性设置为“删除”、“退出”。(4)编写程序代码表单Form1的Load事件代码如下:Public jlhjlh=1“删除”按钮command1的Click事件代码如下:Select XSDAIf not eof() jlh=recno() y=messagebox(真的要删除吗?,4+32,信息窗口) If y=6 Go jlh Delete Use XSDA exclusive Pack Thisform.grdxsda.recordsource=XSDA Thisform.grdxsda.refresh Thisform.refresh Else Thisform.grdxsda.recordsource=XSDA Thisform.grdxsda.refresh Thisform.refresh EndifEndif“退出”按钮command2的Click事件代码如下: Thisform.release (5) 最后保存表单,调试运行表单。4 在第1题中完成的“学生基本情况”表单的基础上,添加一个“修改”按钮,可以对XSDA表中数据的进行修改的表单,可参照图5.4完成“修改表单”的设计。图5.4 修改学生档案表单窗口 操作步骤:(1) 打开“学生基本情况表单”,选择“文件”菜单的“另存为”命令把此表单另存为“修改表单”,并在表单上添加一个命令按钮,把它的Caption属性设置为“修改”,保存修改。XS数据库中的XSDA表也在此表单的数据环境中。(2)编写程序代码表单Form1的Init事件代码如下:Set multilocks on *Set multilocks on 语句将设置可以进行多个记录锁定的配置=Cursorsetprop(buffering,3)*Cursorsetprop()函数设置缓冲区环境为3,表示行缓冲设定设定以及乐观锁定策略表单的命令按钮组中的“首记录”、“上条记录”、“下条记录”、“末记录”、“退出”按钮的Click事件代码仍旧使用第1题中的代码,这里不需要进行更改。“修改”按钮CommandGroup2.command1的Click事件代码如下: yn=messagebox(确定保存吗?,4+32,信息窗口) If yn=6 =Tablerevert(.t.) Replace 系代号 with thisform.txt系代号.value Replace 学号 with thisform.txt学号.value Replace 姓名 with thisform.txt姓名.value Replace 性别 with thisform.txt性别.value Replace 出生日期 with thisform.txt出生日期.value Replace 政治面貌 with thisform.txt政治面貌.value Replace 民族 with thisform.txt民族.value Replace 籍贯 with thisform.txt籍贯.value Replace 家庭住址 with thisform.txt家庭住址.value Replace 备注 with thisform.edt备注.value Thisform.refresh Else =Tablerevert(.f.) Thisform.refresh Endif (3)最后保存表单,调试运行表单。5 设计一个实现单一查询功能的表单,如图5.5所示,对学生学号进行查询,如果该学生存在,就查询输出该学生的学号、姓名、课程名称及成绩字段的信息;如果该学号学生不存在或者该学号学生无任何课程成绩,弹出相应得提示信息对话框,给出信息提示对话框。图5.5 单一查询表单(实现学生成绩的查询功能) 操作步骤:(1)新建一个表单,名为“单一查询表单”。(2)把此表单的Caption属性改为“学生成绩查询”;在此表单中添加1个标签Label1(Caption属性设为“输入学号:”)、1个文本框Text1、2个命令按钮Command1(Caption属性设为“查询”)、Command2(Caption属性设为“退出”)、1个表格Grid1。把Grid1的ColumnCount属性设为4、Grid1.Column1.Header1.Caption、Grid1.Column2.Header1.Caption、Grid1.Column3.Header1.Caption、Grid1.Column4.Header1.Caption属性更改为学号、姓名、课程名称、成绩,如图5.6所示。(3) 打开此表单的数据环境设计器,把XS数据库中的XSDA、CJ和KC表添加到此表单的数据环境中,如图5.6所示。图5.6 单一查询表单窗口及数据环境(4)编写程序代码 “查询”按钮Command1的Click事件代码如下:If empty(thisform.text1.value) Messagebox(查询条件不能为空!,48,信息提示) Thisform.text1.setfocusElse Select xsda Locate for alltrim(学号)=alltrim(thisform.text1.value) If found() Select cj Locate for alltrim(学号)=alltrim(thisform.text1.value) If found() Select xsda.学号,xsda.姓名,Kc.课程名, Cj.成绩 from xs!kc ; inner join xs!cj inner join xs!xsda on Xsda.学号 = Cj.学号 ; on Kc.课程号 = Cj.课程号 where Cj.学号 =alltrim(thisform.;thisform.text1.value) into cursor xhcx thisform.grid1.recordsource=xhcx thisform.grid1.refresh Else Messagebox(此学生暂无成绩记录,64,信息提示) Thisform.text1.value= Thisform.text1.setfocus Endif Else Messagebox(此学号不存在,64,信息提示) Thisform.text1.value= Thisform.text1.setfocus Endif Endif “退出”按钮Command2的Click事件代码如下: Thisform.release Text1的Click事件代码如下: Thisform.grid1.recordsource=Thisform.grid1.refreshThisform.text1.value=Thisform.text1.setfocus(5)最后保存表单,调试运行表单。6设计一个学生基本信息查询表单,如图5.7所示。可以按照学生名字查询学生的基本信息即精确查询;如果不知道学生全名时通过模糊查询进行查询。图5.7 精确查询与模糊查询操作步骤:(1)新建一个表单,名为“精确模糊查询表单”。(2)把此表单的Caption属性改为“学生基本信息查询”;在此表单中添加1个标签Label1(Caption属性设为“输入姓名:”)、1个文本框Text1、2个命令按钮Command1(Caption属性设为“查询”)、Command2(Caption属性设为“退出”)、1个表格Grid1(ColumnCount属性设为10、Grid1的Column1至Column10的Header1.Caption属性依次更改为系代号、学号、姓名、性别、出生日期、政治面貌、民族、籍贯、家庭住址、备注),一个选项按钮组OptionGroup1(option1.caption属性为“精确查询”,option2.caption属性为“模糊查询”),表单布局参照上图5.7所示。(3)打开此表单的数据环境设计器,把XS数据库中的XSDA表添加到数据环境中。(4)编写程序代码 “查询”按钮Command1的Click事件代码如下:Select XSDAIf empty(thisform.text1.value) Messagebox(输入查询姓名,64,信息提示)Else Do Case Case thisform.optiongroup1.value=1 Locate for alltrim(姓名)=alltrim(thisform.text1.value) If found() Select * from xs!xsda; Where xsda.姓名=alltrim(thisform.text1.value) into cursor jqcx Thisform.grid1.recordsource=jqcx Thisform.grid1.refresh Else Messagebox(查无此人!,64,信息提示) Endif Case thisform.optiongroup1.value=2 Locate for alltrim(thisform.text1.value)$alltrim(姓名) If found() Select * from xs!xsda; Where alltrim(thisform.text1.value)$alltrim(姓名) into cursor mhcx Th
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


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

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


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