首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(1)打开程序文件cylinder.prg,请按要求修改程序并运行程序。 (2)以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前3名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表ncweo
(1)打开程序文件cylinder.prg,请按要求修改程序并运行程序。 (2)以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前3名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表ncweo
admin
2016-10-30
58
问题
(1)打开程序文件cylinder.prg,请按要求修改程序并运行程序。
(2)以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前3名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表ncweoun.dbf,同时将所用SQL命令存入文件new.txt中。
选项
答案
(1)模块是一个相对独立的程序段,它可以被其他模块调用,也可以去调用其他的模块。通常,把被其他模块调用的模块祢为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。题中给出了两个模块,其中,上面的一部分,即第一个“RETURN”前面的代码是主程序,下面的模块cya作为子程序被主程序调用。模块调用的格式有两种:一种是使用DO命令:D0<过程名>WITH<实参1>[,<实拳2>,…],本题中使用的就是这种方法:“DO cya WITH r,h,carea”,其中cva是调用的子程序名,r,h、carea是传递给子程序的实参,分别代表半径、高和表面积;而在子程序cya中则定义了a、b、c三个变量作为形参对应接收主程序传递过来的实参,并计算出表面积的值c。在这种方法调用中,当实参为变量时,将按址传递,即不是将实参的值传递给形参,而是将存放实参的内存中的存储单元的地址传递给形参,因此形参和实参具有相同的存储单元地址,也就是说,形参和实参共用同一存储单元,实际上是同一个变量,这时,在调用子程序时,如果形参的值发生了改变,那么对应的买参的值也将随着改变。故在本题中,当子程序结束时,求出的c的值即是主程序中carea的值。另一种调用方法是函数调用的方法,格式为:<过程名>(<实参1>[,<买参2>,…])。在这种调用方式中,默认情况下都是按值传递,即系统计算出实参的值,并把它们赋值给相应的形参变量。这样,当子程序结束时,形参变量被释放,计算的结果将会随形参的消失而消失,而不能将运算后形参的值再传递给实参,实参的值并不会改变。所以,在本题中,当用函数调用方式时,要想在主程序中输出carea的值,应该在子程序的最后返回计算的表面积值c。而在主程序中,应当将调用函数返回的值赋值给carea变量,即“carea=area(r,h)”。这时,实参就变成了两个:r、h,而子程序的形参有三个:a、b、c。这样是可以的。我们说在调用模块时,系统会自动把实参一一传递给对应的形参,形参的数目不能少于实参的数目,因为传递过来的每一个实参都要有对应的形参接收,如果形参的数目比实参少,那多出来的实参就好像找不到地址的信件一样,不知该送去哪里,这时系统就会产生运行时错误。但是,形参的数目可以多于实参的数目,这时,多余的形参变量取初值逻辑假(.F.)。 【操作步骤】 步骤1:在命令窗口执行命令:MODIFY COMMANDcyinder!,打开cylinder.prg程序,代码如下: *本程序的功能为输入圆柱体的半径和高,计算圆柱体表面积。 *请将程序修改为函数调用方式(注意不得增删语句行)。 SET TALK OFF CLEAR LOCAL carea INPUT”请输入圆柱体的半径"TO r INPUT”请输入圆柱体的高”TO h DO cya WITH r,h,carea ?”圆柱体的表面积为:”,carea RETURN PROCEDURE cya PARAMETERS a,b,c LOCAL Pai pai=3.14159 c=2*(pai*a^2)+2*pal*a*b RETURN ENDPROC 修改程序中的错误行,修改后的程序如下: SET TALK OFF CLEAR LOCAL carea &&定义局部变量local INPUT”输入圆柱体的半径:”TO r &&从键盘输入一个半径值 INPUT”输入圆柱体的高:“TO h &&从键盘输入一个高值 carea=cya(r,h) &&调用模块程序,转到 PROCEDURE命令行执行程序,按值方式传递参数?”圆柱体的表面积为:”.carea RETURN PROCEDURE cya &&过程的开始,并命名过程名为cya PARAMETERS a,b,c &&声明的行参变量被看作是模块程序中的私有变量 LOCAL pai pai=3.14159 c=2*(pai*a^2)+2*pai*a*b &&计算圆柱体表面积的表达式 RETURN c &&将计算的表达式值返回上级模块ENDpROC 步骤2:保存文件修改,在命令窗口执行命令:DOYZT.PRG,执行程序文件。 (2)【审题分析】本题要求利用SQL语句进行查询,用到了emFloy和order两张表,可以使用联接查询。因为要查找订单数最多的前两名职工,应该按职工号分组,并求出每一组中记录的个数,即是每个职工的订单数,要分别使用group by短语和count()计数函数;另外,因为只查找最多的前两名,应该按降序排序,并使用top短语;将查询结果保存在永久表中,应使用INTO TABLE短语。 【操作步骤】 步骤1:在命令窗r]执行命令:MODIFY FILE new,打开文本编辑器编写SQL命令。 步骤2:在编辑器中输入如下程序代码(以下程序是通过查询设计器生成): SELECT TOP 3 Employee.职工号. Employee.姓名,COUNT(*)订单数; FROM employee INNER JOIN orders; ON Employee.职工号=0rders.职工号; GROUP BY Employee.职工号; ORDER BY 3 DESC; INTO TABLE newcoun.dbf 步骤3:在命令窗口执行命令:DO NEW:TXT,执行文件(注意:执行文件时,文件后缀名.txt不能缺省)。
解析
转载请注明原文地址:https://kaotiyun.com/show/EWIp777K
本试题收录于:
二级VF题库NCRE全国计算机二级分类
0
二级VF
NCRE全国计算机二级
相关试题推荐
给student表增加一个"平均成绩"字段(数值型,总宽度6,2位小数)的SQL命令是( )。
下列程序段执行以后,内存变量A和B的值是( )。CLEARA=10B=20SETUDFPARMSTOREFERENCEDOSQWITH(A),B&&参数A是值传送,B是引用传送?A,B PROCEDURESQ PA
设有学生(学号,姓名,性别,出生日期)和选课(学号,课程号,成绩)两个关系,并假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为"101"课程的平均成绩,正确的SQL语句是( )。
假设在数据库表的表设计器中,字符型字段"性别"已被选中,正确的有效性规则设置是( )。
下列选项中属于面向对象设计方法主要特征的是( )。
在VisualFoxPro中,报表的数据源不包括( )。
在菜单设计中,可以在定义菜单名称时为菜单项指定一个访问键。规定了菜单项的访问键为"x"的菜单名称定义是( )。
假设temp.dbf数据表中有两个字段"歌手号"和"最后得分"。下面程序段的功能是:将temp.dbf中歌手的"最后得分"填入"歌手"表对应歌手的"最后得分"字段中。在下划线处应该填写的SQL语句是( )。USE歌手DOWHILE.NOT.E
在VisualFoxPro中,如果希望内存变量只能在本模块(过程)中使用,不能在上层或下层模块中使用。说明该种内存变量的命令是( )。
在数据库中创建表的CREATEFABI.E命令中定义主索引、实现实体完整性规则的短语是()。
随机试题
患儿,6岁。睡后经常遗尿,醒后方觉。平素神软乏力,少气懒言,面色苍黄,食欲不振,大便溏薄,常自汗出,苔薄嫩,脉少力。选方为
施工质量的控制中,()是保证施工质量的重要措施。
全面结算会员期货公司应当建立并实施()等制度,保证金融期货结算业务正常进行,确保非结算会员及其客户资金安全。
企业有一笔5年后到期的贷款,到期需要偿还的本利和是40000元,假设存款年利率为3%,为了到期偿债,计划每年年初存入固定的数额,共计存款5次,已知(F/A,3%,5)=5.3091,则每次应该存入()元。
()是指教师在教学过程中通过教学内省、教学体验、教学监控等方式,辩证地否定主体的教学观念、教学经验、教学行为的一种积极的认知加工过程。
不得抄送给自己的下级机关的公文是()。
生命存在的首要条件是液态水,一颗行星是否宜居取决于表面温度能否维持液态水的存在。冰行星或冰卫星地表原本被冰雪覆盖,此前研究认为,随着恒星辐射增强,其地表冰雪最终会融化形成液态水,从而适宜生命生存。不过,最新研究证明,随着恒星辐射增强,冰行星或冰卫星将直接进
Thoughnotbiologicallyrelated,friendsareas"related"asfourthcousins,sharingabout1%ofgenes.Thatis【B1】______1astu
在C++语言程序中
Couldyougivemearough______ofwhatthejobmightcost?
最新回复
(
0
)