数据库三级上机答案.docx
- 文档编号:10275127
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:94
- 大小:37.49KB
数据库三级上机答案.docx
《数据库三级上机答案.docx》由会员分享,可在线阅读,更多相关《数据库三级上机答案.docx(94页珍藏版)》请在冰豆网上搜索。
数据库三级上机答案
1.已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/
if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
2已知在文件IN2.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;i for(j=i+1;j { if(strcmp(sell[i].mc,sell[j].mc)<0)/*按产品名称从大到小进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/ if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 3已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。 其中: 金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。 请编制函数SortDat(),其功能要求: 按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(strcmp(sell[i].dm,sell[j].dm)<0)/*按产品代码从大到小进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(strcmp(sell[i].dm,sell[j].dm)==0)/*若产品代码相同*/ if(sell[i].je {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 4已知在文件IN4.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。 其中: 金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。 请编制函数SortDat(),其功能要求: 按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(strcmp(sell[i].mc,sell[j].mc)<0)/*按产品名称从大到小进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/ if(sell[i].je {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 5已知在文件IN5.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。 其中: 金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。 请编制函数SortDat(),其功能要求: 按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i for(j=i+1;j { if(sell[i].je {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(sell[i].je==sell[j].je)/*若金额相同*/ if(strcmp(sell[i].dm,sell[j].dm)>0)/*则按代码从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 6已知在文件IN6.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。 其中: 金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。 请编制函数SortDat(),其功能要求: 按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i for(j=i+1;j { if(strcmp(sell[i].dm,sell[j].dm)>0)/*按代码从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(strcmp(sell[i].dm,sell[j].dm)==0)/*若代码相同*/ if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 7已知在文件IN7.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。 其中: 金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。 请编制函数SortDat(),其功能要求: 按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(sell[i].je {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(sell[i].je==sell[j].je)/*若金额相同*/ if(strcmp(sell[i].dm,sell[j].dm)<0)/*则按代码从大到小进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 8已知在文件IN8.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。 其中,金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。 请编制函数SortDat(),其功能要求: 按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT8.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(sell[i].je>sell[j].je)/*按金额从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(sell[i].je==sell[j].je)/*若金额相同*/ if(strcmp(sell[i].dm,sell[j].dm)<0)/*则按代码从大到小进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 9已知在文件IN9.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。 其中,金额=单价×数量。 函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。 请编制函数SortDat(),其功能要求: 按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DAT中。 【参考答案】 voidSortDat() { inti,j; PROxy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(sell[i].je>sell[j].je)/*按金额从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} elseif(sell[i].je==sell[j].je)/*若金额相同*/ if(strcmp(sell[i].dm,sell[j].dm)>0)/*则按代码从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } } 10.已知数据文件IN10.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是: 求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT10.DAT文件。 例如: 9123,9-1-2-3>0,则该数满足条件存入数组b,且个数cnt=cnt+1。 9812,9-8-1-2<0,则该数不满足条件,忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300],b[300];已定义变量: cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 jsValue() { inti,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000;/*取得四位数的千位数字*/ hun=a[i]%1000/100;/*取得四位数的百位数字*/ ten=a[i]%100/10;/*取得四位数的十位数字*/ data=a[i]%10;/*取得四位数的个位数字*/ if(thou-hun-ten-data>0) {b[cnt]=a[i];cnt++;} } for(i=0;i for(j=i+1;j if(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;} } 11.已知数据文件IN11.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。 请编制一个函数jsValue(),其功能是: 求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT11.DAT文件。 例如: 6712,6+2=7+1,则该数满足条件存入数组bb中,且个数cnt=cnt+1。 8129,8+9≠1+2,则该数不满足条件,忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300],b[300];已定义变量: cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 voidjsValue() { inti,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000;/*取得四位数的千位数字*/ hun=a[i]%1000/100;/*取得四位数的百位数字*/ ten=a[i]%100/10;/*取得四位数的十位数字*/ data=a[i]%10;/*取得四位数的个位数字*/ if(thou+data==hun+ten) {b[cnt]=a[i];cnt++;} } for(i=0;i for(j=i+1;j if(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;} } 12.已知数据文件IN12.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是: 求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件。 例如: 1239,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件,忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300],b[300];已定义变量: cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 voidjsValue() { inti,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000;/*取得四位数的千位数字*/ hun=a[i]%1000/100;/*取得四位数的百位数字*/ ten=a[i]%100/10;/*取得四位数的十位数字*/ data=a[i]%10;/*取得四位数的个位数字*/ if(data-thou-hun-ten>0) {b[cnt]=a[i];cnt++;} } for(i=0;i for(j=i+1;j if(b[i] } 13.已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是: 求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT13.DAT文件。 例如: 7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,8+1≠2+9,则该数不满足条件,忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300],b[300];已定义变量: cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 voidjsValue() { inti,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000;/*取得四位数的千位数字*/ hun=a[i]%1000/100;/*取得四位数的百位数字*/ ten=a[i]%100/10;/*取得四位数的十位数字*/ data=a[i]%10;/*取得四位数的个位数字*/ if(thou+hun==data+ten) {b[cnt]=a[i];cnt++;} } for(i=0;i for(j=i+1;j if(b[i] } 14.已知数据文件IN14.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。 请编制一个函数jsValue(),其功能是: 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到OUT14.DAT文件。 例如: 5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件,忽略。 注意: 部分源程序已给出。 程序中已定义数组: a[300]、b[300];已定义变量: cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 voidjsValue() { intj,i,value; for(i=0;i<300;i++) if(isP(a[i])){b[cnt]=a[i];cnt++;} for(i=0;i for(j=i+1;j if(b[i]>b[j]){value=b[i];b[i]=b[j];b[j]=value;} } 15.已知数据文件IN15.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是: 求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数的平均值pjz1,以及不满足此条件的四位数的平均值pjz2,最后调用写函数writeDat()把结果输出到OUT15.DAT文件。 例如: 9123,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 9812,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。 【参考答案】 jsValue() { inti,thou,hun,ten,data,n=0; for(i=0;i<300;i++) { thou=a[i]/1000;/*求四位数的千位数字*/ hun=a[i]%1000/100;/*求四位数的百位数字*/ ten=a[i]%100/10;/*求四位数的十位数字*/ data=a[i]%10;/*求四位数的个位数字*/ if(thou-hun-ten-data>0) {cnt++;pjz1+=a[i];}/*统计满足条件的数的个数并求和*/ else {n++;pjz2+=a[i];}/*统计不满足条件的数的个数并求和*/ } pjz1/=cnt;/*求满足条件的数的平均值*/ pjz2/=n;/*求不满足条件的数的平均值*/ } 16.已知数据文件IN16.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是: 求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT16.DAT文件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 三级 上机 答案