《VisualFoxPro及其应用系统开发》简明版清华大学出版课后答案.docx
- 文档编号:9915364
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:22
- 大小:25.68KB
《VisualFoxPro及其应用系统开发》简明版清华大学出版课后答案.docx
《《VisualFoxPro及其应用系统开发》简明版清华大学出版课后答案.docx》由会员分享,可在线阅读,更多相关《《VisualFoxPro及其应用系统开发》简明版清华大学出版课后答案.docx(22页珍藏版)》请在冰点文库上搜索。
《VisualFoxPro及其应用系统开发》简明版清华大学出版课后答案
第0章
2.什么是数据模型,它包含那些方面的内容?
数据库问世以来,出现过那些主要的数据模型?
答:
数据模型首先是指把数据组织起来所采用的数据结构,同时也包含数据操作和完整性约束等要素。
主要出现的数据模型:
面向对象数据库,分布式数据库,演泽数据库。
4.什么是数据库管理系统,它通常有那些基本功能?
答:
数据库管理系统简记为是对数据库进行管理的软件,它是数据库系统的核心。
数据库管理系统位于用户与操作系统之间,为用户或应用程序提供访问数据库的方法,包括数据库的建立、更新、查询、统计、显示、打印以及各种数据控制。
它的基本功能包括:
1)数据库定义功能。
2)数据库操纵功能。
3)数据库事务管理功能。
4)数据库维护功能。
5)其他功能。
6.比较C/S模式和B/S模式的异同。
答:
C/S模式是W/S模式的改进,C/S结构改进了系统前、后台的分工。
客户机只运行前端应用程序,对访问结果进行显示逻辑(例如用户界面)等简单处理;而服务器则完成对后台数据库的访问,并处理各种事务逻辑(包括数据的并发控制等)。
且每次任务均由客户机和服务器分担,充分利用网络资源。
从客户机到服务器只需传送访问请求,从服务器返回客户机的仅仅是访问结果,网络传输量大大减少。
B/S模式是C/S模式的延伸。
B/S结构与C/S结构相比,是将Web服务器兼做应用服务器,把原来要在客户机端运行的“显示逻辑”软件改在应用服务器上运行。
且两种应用模式的工作流程不同。
8.简述ODBS接口的工作过程。
答:
ODBS接口包括两个步骤:
(1)应用程序调用ODBCAPI函数。
(2)ODBC驱动程序管理器根据应用程序需要的数据库来调用相应的DBMS驱动程序。
在ODBC的任务完成后,应用程序即可通过指定的DBMS来实现连接/断开数据库,从而执行SQL查询、读取查询结果等数据库操作。
第1章
2.VFP的程序窗由哪些部分组成?
答:
标题栏、控制按钮、菜单栏、工具栏、窗口工作区、窗口围框、窗口角。
4.对话框可能包含哪些组成部分?
简释各组成部分的作用。
答:
对话框由若干按钮和矩形框构成。
每个按钮代表一种操作命令,故有时也称命令钮。
矩形框分为3类,即文本框、选择框、列表框。
文本框是供用户输入一串字符,作为对系统提问的回答。
选择框是供用户在若干可选择其中的一项或者几项。
列表框是用于显示一组相关的数据,例如一个数据库表中的所有字段名。
当相关数据较多,在一个框中容纳不下时,系统会自动在列表框的下方或右侧增加滚动条,对数据实现滚动显示。
6.VFP有哪俩种工作方式?
简单说明各种方式的特点。
答:
VFP的俩种工作方式:
交互操作方式和程序执行方式。
交互操作方式是指命令执行方式。
用户只需记住命令的格式与功能,在系统的圆点提示符(·)出现时从键盘上发一条所需的命令,即可在屏幕上显示执行的结果。
但用户操作与机器执行互相交叉,会降低执行速度。
程序执行方式是用VFP的命令编成特定的序列,并将它们存入程序文件(或称命令文件)。
用户需要时,只需通过特定的命令(例如DO命令)调用程序文件,VFP就能自动执行这一程序文件,把用户的介入减至最小限度。
这不仅运行效率高,而且可重复执行。
8.试述项目管理器的主要作用。
答:
项目管理器的主要作用是对被开发系统的数据、文档、源代码和类库等资源进行集中、高效管理,借以满足DBAS在开发中经常变化的用户需求。
其高效管理不仅可加快开发的进度,而且可延长DBAS的生命周期。
所以有人把项目管理器称为VFP的“控制中心”。
第2章
1.建立如下所示的商品表SP.DBF。
操作要求:
1)建立SP.DBF的结构后,立即输入前6个记录的数据,其中头两个记录的商标字段由读者在Windows环境下选两个图标分别输入。
数据输入后存盘退出。
答:
(输入图标)SP.DBF建好后,用命令USESP.DBF打开表,用MODIFYGENERAL商标打开“SB.商标”窗口,在“编辑”中选“插入对象”,在“插入对象”对话框中选“由文件创建”,通过“浏览”按钮选定图标,单击“确定”。
2)打开SP.DBF,分别查看其结构与记录,包括备注字段与商标字段的数据。
答:
USESP.DBF;LIST;
3)追加最后两个记录,结束后分别以浏览格式和编辑格式查看数据。
答:
USESP.DBF;LIST;
INSERTINTOSP(货号,品名,进口,单价,数量,开单日期,生产日期,备注,商标);
VALUES(”SY-701”,”电饭锅”,F,258.00,10,{08/19/96},”上海电器厂”,”本产品属改进型”)
INSERTINTOSP(货号,品名,进口,单价,数量,开单日期,生产日期,备注,商标);
VALUES(”NV-920”,”录放机”,T,1750.00,6,{07/20/96},”先锋电器公司”)
2.分别用链接、嵌入方法为SB.DBF的轿车增加“商标”,图形文件自选。
答:
(答案同第一题
(1)一样)。
5.打开SP.DBF,试为下列要求分别写出命令序列。
1)显示第5个记录。
Usesp;list;listrecord5field货号,品名,进口,单价,开单日期,生产单位,备注,商标。
2)显示第3个记录开始的5个记录。
USESP;LIST;GO3;DISPLAYNEXT5。
3)显示第3个记录到第5个记录。
USESP;LIST;GO3;DISPLAYNEXT3。
4)显示数量少于5的商品的货号、品名与生产单位。
USESP;LIST;LIST货号,品名,生产单位FOR数量〈5。
5)显示进口商品或1995年开单的商品信息。
usesp;list;DISPLAYFOR进口ORYEAR(开单日期)=1995。
6)显示上海商品信息。
DISPLAYFOR生产单位="上海"。
7)显示单价大于4000元的进口商品信息或单价大于5000元的国产商品信息。
DISPLAYFOR进口AND单价>4000OR!
进口AND单价>5000。
8)列出1995年开单的商品的货号、品名、单价和开单日期,其中单价按9折显示。
LIST货号,品名,单价*0.9,开单日期FORYEAR(开单日期)=1995OFF
9)列出单价小于2000元以及单价大于5000元的进口商品信息。
DISPLAYFOR进口AND单价<2000OR进口AND单价>5000。
10)显示从第3个记录开始的所有国产商品信息。
GO3;DISPLAYRESTFOR!
进口。
11)列出货号的后3位为“120”的全部商品信息。
displayforright(货号,3)="120"。
12)列出货号第1个字母为“L”或者第2个字母为“V”的全部商品信息。
DISPLAYFORLEFT(货号,1)="L"ORSUBSTR(货号,2,1)="V"。
13)列出公司生产的单价大于3000元的所有商品信息。
LISTFOR"公司"$生产单位AND单价>3000。
6.对表SP.DBF按如下要求进行复制,写出命令序列。
1)复制SP.DBF的结构,并将复制后的表结构显示出来。
COPYSTRUCTURETOSP0;USESP0;LISTSTRUCTURE;USESP。
2)复制一个仅有货号、品名、单价、数量、备注等5个字段的表SP1.DBF。
COPYSTRUCTURETOSP1FIELDS货号,品名,单价,数量,备注.
3)将SP.DBF复制为表SP3。
COPYTOSP3.
4)复制具有货号、品名、数量、生产单位等4个字段的表SP4。
COPYSTRUCTURETOSP4FIELDS货号,品名,数量,生产单位..
5)将第2到第6个记录中单价不小于3000元的进口商品复制为表SP5。
GO2;COPYTOSP5NEXT5FOR进口AND单价>=3000.
6)将1996年1月1日及以后开单的商品复制为表SP6。
COPYTOSP6FORYEAR(开单日期)>=1996.
7)将表SP.DBF按系统数据格式复制为文本文件SP.TXT,再将SP.TXT中的数据添加到表SP6中去。
COPYTOSPSDF;USESP6;APPENDFORMSP.TXTSDF;USE.
7.从SP.DBF复制出SP1.DBF,对SP1.DBF按以下要求写出命令序列:
1)列出SP1.DBF的结构与记录数据。
Usesp;copytosp1;usesp1;displaystructure;listoff.
2)将表SP1.DBF中的数量字段值用2倍的数量进行替换。
Usesp1;replaceall数量WITH数量*2.
3)在第3个记录之后插入一个空记录,并自行确定一些数据填入该空记录中。
USESP1;GO3;INSERTBLANK;BROWSE;(“YI-786”,”电脑”,.T.,8300.00,3,{09/23/96},”香港公司”)
4)在第3个记录与在第7个记录上分别加上删除标记。
USESP1;DELETEFORRECORD3ANDRECORD7.
5)撤消第3个记录上的删除标记并将第7个记录从表中抹去。
USESP1;RECALLRECORD3;PACK.
6)将SP.DBF的全部记录追加到SP1.DBF中去,并查看经追加的记录。
USESP1;APPENDFROMSP.
7)用SCATTER与GATHER命令对SP1.DBF的第3个记录作如下修改:
将单价由3100.00元改为3500.00元,在备注字段中填入内容“新产品提价”。
USESP1;GO3;SCATTERMEMVARMEMO;M.单价=3500.00,M.备注=”新产品提价”;
1.1.试对SB.DBF分别排序:
(1)将价格超过10000元的投资按部门升序排序,并要求新文件只包含编号、名称、价格、部门等四个字段。
USESB;LIST;SORTTOSB1ON部门FOR价格>10000FIELDS编号,名称,价格,部门;USESB1;LIST。
(2)将主要设备按名称降序排序,当名称相同时则按启用日期降序排序。
USESB;LIST;SORTTOSB2ON名称/D,启用日期/DFOR主要设备;USESB2;LIST。
3.3.使用命令为SB.DBF建立一个结构复合索引文件,其中包括三个索引:
a)记录以编号降序排序,并且索引标识为普通索引型。
USESB;LIST;INDEXON编号TAGBHDESCENDING.LIST.
b)记录以名称降序排序,名称相同时则按启用日期降序排序,并且索引标识为唯一索引型。
USESB;LIST;INDEXON名称+DTOS(启用日期)TAGMCRQDESCENDINGUNIQUE.LIST.
c)记录以部门降序排序,部门相同时则按启用日期升序排序,并且索引标识为候选索引型。
USESB;LIST;INDEXONVAL(部门)-VAL(DTOS(启用日期))/TAGBMRQDESCENDINGCANDIDATE;LIST.
4.分别用顺序查询和索引查询两种方法查询1992年启用的非主要设备。
答:
(顺序查询)USESB;LIST;LOCATEFORYEAR(启用日期)=1992ANDNOT主要设备;DISPLAY.
(索引查询)USESB;LIST;SETFILTERONNOT主要设备;INDEXONYEAR(启用日期)TAGQYRYDESCENDING;SEEK1992;LIST.
5.分别用以下方法查询钻床的增值。
(1)顺序查询。
USESB;LIST;LOCATEFOR名称=“钻床”;SELECT2;USEZZ;LIST;LOCATEFOR编号=SB.编号;?
编号,SB.名称,增值。
(2)索引查询。
USESB;LIST;INDEXON名称TAGMC;SEEK“钻床”;SELECT2;USEZZ;LIST;INDEXON编号TAGBH;SEEKSB.编号;?
FOUND(),RECNO();?
编号,SB.名称,增值。
(3)在数据工作期窗口建立关联后查询。
(1)单击“常用”工具栏中选中“数据工作期窗口”按钮,打开数据工作期窗口—选定“打开”按钮打开ZZ.DBF—在“别名”框中选定ZZ—选定“属性”窗口—在“工作区属性”对话框选定“修改”—在表设计器窗口单击“编号”字段行,在“索引”列组合框选定“升序”—选“确定”返回“工作区属性”对话框—在“索引顺序”组合框选定“ZZ.编号”—选“确定”返回数据工作期窗口。
(2)选定“打开”按钮打开SB.DBF—在“别名”框中选定“SB”—选定“关系”—在“别名”框中选定“ZZ”—在出现“表达式设计器”对话框的“字段”列表框选“编号”—选“确定”返回数据工作期窗口—选定“一对多”按钮—在“创建一对多关系”对话框,将子表ZZ从“子表别名”列表框移入“选定别名”列表框—按“确定”返回数据工作期窗口。
(3)单击“常用”工具栏中选中“数据工作期窗口”按钮,隐蔽数据工作期窗口。
(4)在命令窗口执行命令:
LISTFOR名称="钻床"FIELDS编号,名称,ZZ.增值
7.现有如下两个表:
T1(产品编号c(8),产品名称c(20),型号规格c(12),单价n(7,1))
T2(合同号c(10),产品编号c(8),数量n(10))
试利用数据工作期,以T1为父文件、T2为子文件建立关联,使得在浏览记录时,同种产品所订的各合同能集中在一起显示;并将完成上述要求的设置以文件名T.VUE存盘。
CLOSEALL;SELECT2;USET2;INDEXON产品编号TAGCPBH;SELECT1;USET1;SETRELATIONTOT1.产品编号INTOT1;SETSKIPTOT2;BROWSEFIELDS产品编号,产品名称,T2.合同号,T2.数量;CREATEVIEWT.VUE。
8.用以下两种方法列出每个设备的名称、大修的费用及增值:
(1)写出使用数据工作期窗口的操作步骤。
(1)单击“常用”工具栏中选中“数据工作期窗口”按钮,打开数据工作期窗口—选定“打开”按钮打开ZZ.DBF—在“别名”框中选定ZZ—选定“属性”窗口—在“工作区属性”对话框选定“修改”—在表设计器窗口单击“编号”字段行,在“索引”列组合框选定“升序”—选“确定”返回“工作区属性”对话框—在“索引顺序”组合框选定“ZZ.编号”—选“确定”返回数据工作期窗口。
选定“打开”按钮打开DX.DBF—在“别名”框中选定DX—按同样的方法为“DX.编号”建立索引。
(2)选定“打开”按钮打开SB.DBF—在“别名”框中选定“SB”—选定“关系”—在“别名”框中选定“ZZ”—在出现“表达式设计器”对话框的“字段”列表框选“编号”—选“确定”返回数据工作期窗口—在“别名”框中选定“DX”—在出现“表达式设计器”对话框的“字段”列表框选“编号”—选“确定”返回数据工作期窗口—选定“一对多”按钮—在“创建一对多关系”对话框选“全部添加”按钮,将子表ZZ、DX从“子表别名”列表框移入“选定别名”列表框—按“确定”返回数据工作期窗口。
(3)单击“常用”工具栏中选中“数据工作期窗口”按钮,隐蔽数据工作期窗口。
(4)在命令窗口执行命令:
BROWSEFIELDS编号,名称:
H=“设备名称”,DX.费用:
H=“设备增值”。
(2)写出命令序列。
CLOSEALL;SELECT2;USEDX;INDEXON编号TAGBH;SELECT3;USEZZ;INDEXON编号TAGBH;SELECT1;USESB;SETRELATIONTOSB.编号INTODX;SETRELATIONTOSB.编号INTOZZADDITIVE;SETSKIPTO,DX;BROWSEFIELDS编号,价格,ZZ.增值,DX.名称:
H=“部门名”。
10.若考生.DBF记载了考生的姓名及语文、数学和外语的成绩,试算出每人总分及每门学科的平均成绩,并要求上述数据以考生成绩表形式显示。
Use考生;LIST;COPYFILE考生.DBFTO考生成绩表;USE考生成绩表;ALTER
TABLE考生成绩表.DBFADD总分(5,1);REPLACEALL总分WITH语文+数学+外语;CALCULATEAVG(语文),AVG(数学),AVG(外语),AVG(总分);TOAVGYW,AVGSX,AVGWY,AVDZF;APPENDBLANK;
REPLACE姓名WITH“平均”,语文WITHAVGYW,数学WITHAVGSX,外语WITHAVGWY,总分WITHAVGZF;USE考生成绩表;LIST.
13.根据第7题中TI和T2两个表建立查询文件T.QPR,要求运行该文件能产生表T3.DBF,其中包含数量大于10的所有合同的合同号、产品编号、单价和数量四个字段。
(1)选定“文件”菜单的“新建”命令—在“新建”对话框选“查询”按钮—单击“新建”按钮—在“打开”对话框打开表T1—在“添加表或视图”对话框打开表T2—在“联接条件”
对话选“确定”按钮—关闭“添加表或视图”对话框,进入查询设计器。
(2)选“查询”菜单的“查询去向”命令—在“查询去向”对话框选“表”按钮—在“表名”文本框输入“T3”—单击“确定”按钮返回查询设计器。
(3)选“字段”选项卡—从“可用字段”列表框分别双击T2.合同号、T2.产品编号、T1.单价、T2.数量等4个字段,将它们添加到“选定字段”列表框—选“筛选”选项卡—在“字段名”列组合框选定“T2.数量”,在“条件”列组合框选定“>”,在“实例”列文本框中输入“10”。
(4)选定“文件”菜单的“保存”命令—以“T”为文件名保存查询文件—按Ctrl+W组合键关闭查询设计器,返回VFP主窗口。
(5)在命令窗口输入命令“DOT.QPR”,执行后生成表T3—选定菜单的“浏览”命令,显示表T3。
14.对于下列查询要求,分别写出查询的操作步骤及SQL-SELECT命令。
(1)查询价格小于10万元的设备的启用日期。
SELESB.名称,SB.启用日期,SB.价格FROMSB;WHERESB.价格<
(2)查询车间使用的设备或价格不小于10万元的设备的部门名,查询结果按启用日期从小到大排列。
USESB.名称,SB.启用日期,SB.价格,BMDM.名称;FROMSBINNERJOINBMDMONSB.部门=BMDM.代码;FROMSBINNERJOINBMDMONSB.部门=BMDM.代码;WHERESB.价格>=OR(SB.部门>“12”);ORDERBYSB.启用日期。
(3)查询1990年启用的设备的名称和部门名。
SELEDISTINCTSB.名称,SB.启用日期,BMDM.名称;FROMSBINNERJOINBMDNONSB.部门=BMDM.代码;WHEREYEAR(SB.启用日期)=1990
(4)查询大修过的设备的编号和名称,查询结果输出到表RESULT.DBF。
SELEDISTINCTDX.编号,SB.名称;FROMSBINNERJOINDXONSB.编号=DX.编号;INTITABLERESULT.DBF。
(5)查询有增值的设备的设备名和部门名。
SELEDISTINCTSB.名称,BMDM.名称;FROMBMDMINNERJOINSB;INNERJOINZZ;ONSB.编号;ONBMDM.代码=SB.部门。
(6)试算出1992年前启用的主要设备的台数。
SELECOUNT(SB.主要设备)FROMSB;WHEREYEAR(SB.启用日期)<1992ANDSB.主要设备=’T’
(7)试算出大修过的设备中每种设备大修费用的平均值。
SELESB.名称,AVG(DX.费用);FROMSBINNERJOINDXSB.编号=SX.编号;GEOUPBYSB.名称.
17.在项目管理器中完成以下操作:
(1)按第7题T1,T2两个表建立数据库T{T1,T2},并分别为这两个表输入若干记录。
(2)建立一个查询,从而产生一个包含产品编号、产品名称和合同号的表HT.DBF。
18.假定考生.DBF用于记载考生的姓名及语文、数学和外语的成绩,若要求姓名只允许输入字母;语文、数学和外语只允许输入非负数,并且每门成绩不高于100分,3门成绩之和不低于250分。
在数据字典中应如何设置,试详细指明位置并写出表达式。
1.若已建立了一个日销售文件(营业员代号、品名、数量、单价、营业额),每笔营业产生一个记录,但营业额字段的值因未填写而都为0.00,试编制程序查询某营业员的全天营业额。
CLEAR
SETTALKOFF
USERXS.DBF
REPLAYCEALL营业额WITH数量*单价
@5,10SAY“查询营业员的全天营业额”
?
Input“请输入营业员代号:
”TODH
SUM营业额FOR营业员代号=DHTOYY
@9,4SAY“营业员“+DH+”的全天营业额是:
”+STR(YY,10,2)+”元”
USE
SETTALKON
3.在某程序中加一段程序,要求能累计程序运行的次数,试写出程序段。
(提示:
可将程序执行次数存储在一个表中)
IFFILE(“YXCS.DBF”)
USEYXCS
REPLACE运行次数WITH运行次数+1
ELSE
CREATETABLEYXCS(运行次数你(5,0))
InsertintoYXCSVALUES
(1)
ENDIF
USE
5.输入一个字符串,要求分别统计出其中英文字母、空格、数字和其他字符的个数。
STORE0TOZM,KG,SZ,QT
INPUT“请输入字符串:
”TOZFC
FORI=1TOLEN(ZFC,I,1).
ZF=ASC(ZF)
DOCASE
CASEZF>64ANDZF<91ORAF>96ANDZF<123;
ZM=ZM+1
CASEZF=32
KG=KG+1
CASEZF>47ANDZF<58
SZ=SZ+1
OTHERWISE
QT=QT+1
ENDCASE
ENDFOR
”英文字母个数:
“,ZM
”空格个数:
“,kg
?
“数字个数:
”,sz
?
“其他字符个数:
”,QT
6.已知成绩.DBF含有学号、平时、考试、等级等字段,前三个字段已存有某班学生的数据,平时成绩、考试成绩均填入了百分制数。
请以平时成绩20%、考试成绩80%的比例确定等级并填入等级字段。
等级评定办法是:
90分以上为优,75~89分为良,60~74分为及格,60分以下不及格。
要求用条件、步长、扫描3种循环语句分别编出程序。
USE成绩
S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro及其应用系统开发 VisualFoxPro 及其 应用 系统 开发 简明 清华大学 出版 课后 答案