版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,作业中的问题,、建立关联的步骤 、上机成绩=“缺考” or “不及格” 、replace all成绩合格否 with “T”; for 笔试成绩=60 and 上机成绩=优秀 or 上机成绩=及格,第十一讲 多表程序及表的多重循环,多表程序 表的多重循环,内容提要,多表程序,例(实验指导书P35):根据如下两个数据表,分别设计程序完成以下功能。,输入课程名,查询该课程授课教师姓名和职称; 统计每位教师总的课时费。,kc.dbf,js.dbf,方法一: clear accept请输入查询课程名称: to k
2、cm ?课程名:+kcm select 姓名 as 教师姓名,职称 from js,kc ; where 职工号=授课教师 and 课程名=kcm to screen return,方法二: clear set safety off sele 1 use js index on 职工号 tag zgh sele 2 use kc set rela to 授课教师 into js accept请输入查询课程名称: to kcm ?课程名:+kcm ?教师姓名 职称 scan for 课程名=kcm ?a.姓名,space(4),a.职称 endscan close all set safety
3、on return, 方法一: clear sele 姓名 as 教师姓名,sum(学时数)*单位课时费 as 课时费 ; from js inner join kc on 职工号=授课教师; group by 授课教师 return,方法二: clear set safety off sele 1 use kc index on 授课教师 tag skjs total on 授课教师 to zks use zks index on 授课教师 to skjs sele 2 use js set rela to 职工号 into a ?教师姓名 课时费 scan ?姓名,a.学时数*单位课时费
4、endscan close all set safety on return,例:有一职工代码表(ZD.DBF),人事信息表(RS.DBF),ZD.DBF 代码 职称 013 助理工程师 015 技术工人 002 工程师 001 高工,RS.DBF 编号 姓名 性别 职称 基本工资 工龄工资 扣款 实发工资 1041 赵娟 女 013 113.00 13.00 25.70 5101 骆艺 男 002 150.00 21.00 31.51 1030 沈峥 女 015 87.00 5.00 11.00 4103 刘芳 女 001 180.00 25.00 45.60 5130 杨山 男 002 1
5、50.00 15.00 24.00 1025 刘柳 男 013 113.00 8.00 15.00,编一个程序,完成以下任务: 计算实发工资(实发工资=基本工资+工龄工资-扣款)并填入RS.DBF中。 统计各类职称的基本工资,工龄工资,扣款,实发工资总数。 显示统计结果,其中统计表中“高工,工程师,助理工程师,技术工人”等职称名字必须通过职工代码表得到,并以代码的索引顺序显示,其格式如下: 基本工资 工龄工资 扣款 实发工资 高工 . . . . 工程师 . . . . . . . . 合计 . . . .,clea clea all set talk off set safe off sel
6、e 1 use rs replace all 实发工资 with 基本工资+工龄工资-扣款 inde on 职称 tag zcdm total on 职称 to hz use hz inde on 职称 tag zcdm sele 2 use zd set rela to 代码 into hz,该程序涉及到几个表,?,RS.DBF HZ.DBF ZD.DBF,一对一关系,汇总,? 基本工资 工龄工资 扣款 实发工资 scan ?职称,hz.基本工资,hz.工龄工资,hz.扣款,hz.实发工资 endscan ?合计,jb,gl,kk,sf clos all set talk on set sa
7、fe on retu,store 0 to jb,gl,kk,sf,sum hz.基本工资,hz.工龄工资,hz.扣款,hz. 实发工资 to jb,gl,kk,sf,jb=jb+ hz.基本工资 gl=gl+ hz.工龄工资 kk=kk+ hz.扣款 sf=sf+ hz.实发工资,inde on 代码 tag dm where stu.学号=fam.学号 and 部门=bm to screen wait 是否还要继续?(y/n) to yn enddo retu,(0801)设有一学生成绩表STU.DBF对“编号”已经建立复合索引。其内容如下: 记录号编号 高数 外语 计算机 1070112
8、0909878 20701128857681 30702003778767 40702010506087 50710010657355 60713108768090 学生编号的含义是:1-2位代表年级,3-4位代表专业,最后3位代表一个专业全部同学的顺序号。以下程序的功能是分组汇总各专业同学各门功课的总成绩和三门课程的总成绩,按顺序输出它们。请填空完成。,SET TALK OFF USE STU SET ORDER TO ? 专业编号高数外语计算机总分 DO WHILE not eof() STORE 0 TO K1,K2,K3 BH=substr(编号,3,2) DO WHILE subst
9、r(编号,3,2)=BH AND K1=K1+高数 K2=K2+外语 K3=K3+计算机 SKIP ENDDO ? ENDDO USE,tag 编号,BH,K1,K2,K3,K1+K2+K3,not eof(),(0802)设有职工表和奖金表的表结构如下: 职工表(zg.dbf):职工号(C,7)(无重复值),姓名(C,6),工作日期(D)。 奖金表(jj.dbf):职工号(C,7)(无重复值),部门号(C,4)(有重复值),奖金(N,5,1)。 按如下要求编写一个程序: 根据以上两个表,可以通过键盘任意输入一个部门号(按回车键结束),按奖金从高到低显示该部门的职工姓名、工作年限(=系统当前日
10、期的年份值-工作日期的年份值)及奖金,显示格式如下: 职工姓名 工作年限 奖金 ,解法一: clear clear all set safe off select 1 use zg inde on 职工号 tag xh (2分) select 2 use jj set relation to 职工号 into zg inde on 奖金 tag jj desc (1分) do while .t. accept 输入部门号: to bmh if len(allt(bmh)=0 (3分) exit endif ? 职工姓名 工作年限 奖金,Scan for 部门号=bmh (4分) ?zg.姓名,
11、 year(date()-year(zg.工作日期),奖金 Endscan Enddo close all set safe on return,解法二: clear do while .t. accept 输入部门号: to bmh (3分) if len(allt(bmh)=0 exit endif select 姓名,year(date()-year(zg.工作日期) as工作年限,奖金 from zg,jj; (3分)where zg.职工号=jj.职工号 and 部门号=bmh; (5分) order by 奖金 desc (7分) Enddo,(0702)已知两个数据表:学生档案表
12、XSDA.dbf,有学号、姓名、专业班级(均为字符型)等字段和学生成绩表XSCJ.dbf,有学号(有重复值)、课程名、成绩(数值型)等字段。 编写一程序,通过反复输入学生的学号(输入回车键退出),查询学生的姓名,专业班级,课程名以及成绩情况。,方法1:利用VFP语言实现 clear set safety off clear all sele 1 use XSDA index on 学号 tag xh sele 2 use XSCJ set relation to 学号 into xsda,do while .T. accept 请输入学生的学号: to xh if len(alltrim(xh
13、)=0 exit endif ?姓名 专业班级 课程名 成绩 scan for 学号=xh ?xsda.姓名,xsda.专业班级,课程名,成绩 endscan enddo close all set safety on return,方法2:利用select-sql语言实现 Close all clear Do while .T. accept 请输入学生的学号: to xh if len(alltrim(xh)=0 exit endif Select 姓名,专业班级,课程名,成绩; from xscj,xsda where xsda.学号=xh and xscj.学号=xsda.学号 to
14、screen enddo,(0701)、有营业员数据表文件YYY.DBF和日销售数据表文件RXS.DBF *YYY.DBF 营业员代码 姓名 性别 101 天涯 女 102 海角 男 103 风声 男 水起 女 *RXS.DBF 营业员代码 品名 数量 单价 营业额 101 电视 3 1230.40 0000.00 102 电话 4 223.00 0000.00 101 电扇 5 334.00 0000.00 103 电话 3 223.00 0000.00 102 电视 1 1230.40 0000.00,编程要求:(1)计算出RXS.DBF中的营业额字段的值。注:营业额=数量*单价 (2)根据用户输入的营业员代码查询某个营业员的全天营业额,按如下格式显示: 代码:101 姓名:天涯 性别: 女 品名 营业额 电视 3691.20 电扇 1670.00 营业额: 5361.20,clear select 1 use rxs replace all 营业额 with 数量*单价 select 2 use yyy index on 营业员代码 tag dm select rxs set relation to 营业员代码 into yyy accept “输入营业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2173-2024高锰酸盐指数分析仪校准规范
- 2024年度能源设施抵押权担保运营合同3篇
- 2024年甲乙双方关于人工智能研发的合作协议
- 课外活动计划3篇
- 余甘行业深度研究报告
- 晒衣杆行业行业发展趋势及投资战略研究分析报告
- 社区讲座活动策划书6篇
- 初中地理教学个人工作计划
- 旅游景区工作总结万能2022
- 公司活动策划方案模板集锦五篇
- 物理教学教案-科学与语言学的交叉
- 企业退休人员健康知识讲座
- 口腔科年度总结报告
- 闪耀明天 二声部合唱简谱
- 侵入性器械操作医院感染预防与控制考试试题及答案
- 2023家居日用品市场洞察报告分析
- 临床合理用药的持续改进措施
- 修理厂自查自纠报告 自查自纠报告
- 中学推优入团方案
- 粉末涂料有限公司除尘系统安全风险分级清单
- 招投标专员绩效考核表
评论
0/150
提交评论