- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三级信息管理技术上机程序解读
1.100个销售:结构数组和字符串比较
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),
其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。
注意: 部分源程序存放在PROG1.C中。
void SortDat() /*标准答案*/
{int I,j;
PRO xy; //定义结构体变量
for(I=0;I99;I++) //从第一个开始到倒数第二个 逐个取出产品销售纪录
for(j=I+1;j100;j++) //从第二个开始到最后 逐个取出
if(strcmp(sell[I].dm,sell[j].dm)0) // 结构数组产品代码成员 两两进行比较
{xy=sell[I];sell[I]=sell[j];sell[j]=xy;} //置换排序
else if(strcmp(sell[I].dm,sell[j].dm)= =0)
if(sell[I].jesell[j].je)
{xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;}
}
/* strcmp(char *s1,char * s2); 功能说明*/
比较字符串s1和s2。说明:
当s1s2时,返回值0
当s1=s2时,返回值=0
当s1s2时,返回值0
2.1.200个四位数:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意: 部分源程序存在文件PROG1.C文件中。
程序中已定义数组: a[200], b[200], 已定义变量: cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
void jsVal() /*标准答案*/
{int bb[4]; //定义一个一维数组,长度为4;
int I,j,k,flag;
for (I=0;I200;I++) //---- BEGIN
{bb[0]=a[I]/1000; //求除得整数,得到四位数中千位数
bb[1]=a[I]%1000/100; //先求余得余数,再求除得四位数中百位数
bb[2]=a[I]%100/10; //先求余得余数,再求除得四位数中十位数
bb[3]=a[I]%10; //求余得余数也就是个位数
for (j=0;j4;j++)
{
if (bb[j]%2==0)
flag=1; //表示被2整除 数字是偶数,标志变量为1
else
{
flag=0;break; //如果四位数各位上的数字有一个非偶数则循环结束;
}
}
if (flag==1) //得到满足条件的四位数的个数
{
b[cnt]=a[I];
cnt++; //数组长度加1;
}
}//---------------------------得到满足条件的四位数代码END
//==============================把满足条件的四位数排序
for(I=0;Icnt-1;I++)
for(j=I+1;jcnt;j++)
if (b[I]b[j])
{k=b[I];b[I]=b[j];b[j]=k;}
//==============================结束
}
/* 主要是各位数数字的取得和数字之间的组合和相关的比较 */
2.2依次从数组a中取出一个四位数,如果该数连续大于该四位数以后的5个数且该数是奇数, 则统计出满足此条件的个数cnt, 并把这些四位数按从小到大的顺序存入数组b中。 并要计算满足上述条件的四位数的个数cnt
文档评论(0)