c语言三级网络.doc

上传人:鲁** 文档编号:544678356 上传时间:2023-10-07 格式:DOC 页数:75 大小:360.01KB
返回 下载 相关 举报
c语言三级网络.doc_第1页
第1页 / 共75页
c语言三级网络.doc_第2页
第2页 / 共75页
c语言三级网络.doc_第3页
第3页 / 共75页
c语言三级网络.doc_第4页
第4页 / 共75页
c语言三级网络.doc_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《c语言三级网络.doc》由会员分享,可在线阅读,更多相关《c语言三级网络.doc(75页珍藏版)》请在金锄头文库上搜索。

1、1 .已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输出到文件OUT10.DAT中。 提示:若中间变量为PRO temp,则可以直接使用结构赋值语

2、句进行解题;产品名称比较请用函数strcmp进行解题。 例如:selli = temp ;void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j 0) cell=selli; selli=sellj; sellj=cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if (strcmp(selli.mc,sellj.mc) = 0)&(selli.jesellj.je) cell=selli; selli=sellj; sellj=cell; 2.函数ReadDat()实现从文件in.dat

3、中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。例如:位置01234567源字符串h g f e d c b a 则处理后字符串 h a f c d e b g本题for循环条件里采用的步长为2,这是因为要求只对下边为奇数的元素进行判断。程序使用三重循环来实现要求的功能。外层的while循环用来实现行间遍历,内层的二重for循环用来遍历行内

4、下标为奇数的元素。void jsSort()int i,j,k,l,p,temp; /*定义局部变量*/ i=0; while(i20) /*判断i的值若小于20,则执行内嵌语句*/ j=strlen(xxi); /*strlen(xxi)函数的功能是统计第i行字符串中字符的个数*/ for(k=1;kj;k=k+2) p=k; for(l=k+2;lj;l=l+2) if(xxilxxip) /*比较两个字符的ASCII值按从小到大的顺序进行排序处理*/ p=l; if(p!=k) temp=xxip; xxip=xxik; xxik=temp; i+; 3. 已知在文件IN.DAT中存有1

5、00个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT8.DAT中。 #define MAX 100typedef struct char dm5; /*产品代码*/ char mc1

6、1; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if (atoi(selli.dm) atoi(sellj.dm) cell=selli; selli=sellj; sellj=cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if ( atoi(selli.dm

7、)=atoi(sellj.dm)&(selli.jesellj.je ) cell=selli; selli=sellj; sellj=cell; 4.下列程序prog1.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat()把结果输出到文件out.dat中。本题采用for循环结合if语句来实现功能。循环的起始点为10,终止点32。因为此二者的平方恰好包括了100和1000。在循环体内计算出变量a的值,这

8、样可以保证每次检查的数都是平方数。然后再得出此数的各位数值。如果符合条件则将其传递给数组bb。int jsValue(int bb) int i,a,d,e,c,p; /*定义局部变量*/ p=0; for(i=10;i=100&a1000) /*判断a的取值范围*/ c=a/100; /*求数值的百位数的数字*/e=(a-c*100)/10; /*求数值的十位数的数字*/d=a-c*100-e*10; /*求数值的个位数的数字*/if(c=e)|(c=d)|(d=e) /*判断数值是否有两位数字相同*/bbp=a; /*将符合条件的数值存入数组中*/ p+; return p-;5.已知在文

9、件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat() 把结果输出到文件OUT4.DAT中。#define MAX 100typedef struct char dm5; /*产品代码*/

10、 char mc11; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if (selli.je sellj.je) cell=selli; selli=sellj; sellj=cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if ( atoi(selli.dm)

11、atoi(sellj.dm)&(selli.je=sellj.je ) cell=selli; selli=sellj; sellj=cell; 6.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。 其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调

12、用函数WriteDat()把结果输出到文件OUT2.DAT中。#define MAX 100typedef struct char dm5; /*产品代码*/ char mc11; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j sellj.je) cell=selli; selli=sellj; sellj=cell;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号