计算机网络三级上机考试,2016年计算机网络三级上机试题

2016年计算机网络三级上机试题

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

7292c3b06d5045f85a7114079ef4a48c.png

注意: 部分源程序存放在PROG1.C中。

请勿改动主函数main( )、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

----------------------------------

#include

#include

#include

#include

#include

#define MAX 100

typedef struct{

char dm[5]; /*产品代码*/

char mc[11]; /*产品名称*/

int dj; /*单价*/

int sl; /*数量*/

long je; /*金额*/

}PRO;

PRO sell[MAX];

void ReadDat();

void WriteDat();

void SortDat()

{int I,j;

PRO xy;

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;}

else if(strcmp(sell[I].mc,sell[j].mc)==0)

if(sell[I].je

{xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;}

}

void main()

{ memset(sell,0,sizeof(sell));

ReadDat();

SortDat();

WriteDat(); }

void ReadDat()

{FILE *fp;

char str[80],ch[11];

int i;

fp=fopen("IN.DAT","r");

for(i=0;i<100;i++){

fgets(str,80,fp);

memcpy(sell[i].dm,str,4);

memcpy(sell[i].mc,str+4,10);

memcpy(ch,str+14,4);ch[4]=0;

sell[i].dj=atoi(ch);

memcpy(ch,str+18,5);ch[5]=0;

sell[i].sl=atoi(ch);

sell[i].je=(long)sell[i].dj*sell[i].sl;}

fclose(fp);}

void WriteDat(void)

{FILE *fp;

int i;

fp=fopen("OUT6.DAT","w");

for(i=0;i<100;i++){

fprintf(fp,"%s %s %4d %5d %101d\n", sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);}

fclose(fp);}

IN.DAT

1001软件世界 5 100

1002计算机用户 6 120

1003网上生活 27 1

1004网络互连 45 10

1005威宝3.5 5 1000

10063M3.5 3 150

1007办公自动化 90 100

1008JAVA 48 15

1009中文WORD97 68 10

1010EXCLE97 98 103

1011OFFICE97 108 18

1012ACCESS 64 78

1013二级BASIC 65 66

1014二级PASCAL 66 89

1015二级C 67 99

1016二级FOR 66 12

1017二级FOX 66 100

1018AUTO CAD 98 871

1019PhotoShop 68 64

1020一级 78 101

1021一级B类 98 1000

1022三级A类 78 765

1023三级B类 78 888

1024四级 88 666

1025INTERNET 58 1858

1001软件世界 5 101

1002计算机用户 6 120

1003网上生活 27 31

1004网络互连 45 1000

1005威宝3.5 5 5001

10063M3.5 3 300

1007办公自动化 90 871

1008JAVA 48 888

1009中文WORD97 68 999

1010EXCLE97 98 981

1011OFFICE97 108 18

1012ACCESS 64 78

1013二级BASIC 65 166

1014二级PASCAL 66 189

1015二级C 67 199

1016二级FOR 66 112

1017二级FOX 66 2000

1018AUTO CAD 98 71

1019PhotoShop 68 164

1020一级 78 110

1021一级B类 98 1100

1022三级A类 78 705

1023三级B类 78 888

1024四级 88 650

1025INTERNET 58 2858

1001软件世界 5 102

1002计算机用户 6 121

1003网上生活 27 11

1004网络互连 45 20

1005威宝3.5 5 1300

10063M3.5 3 250

1007办公自动化 90 130

1008JAVA 48 115

1009中文WORD97 68 20

1010EXCLE97 98 203

1011OFFICE97 108 818

1012ACCESS 64 178

1013二级BASIC 65 166

1014二级PASCAL 66 289

1015二级C 67 899

1016二级FOR 66 112

1017二级FOX 66 500

1018AUTO CAD 98 71

1019PhotoShop 68 4

1020一级 78 181

1021一级B类 98 1500

1022三级A类 78 65

1023三级B类 78 88

1024四级 88 66

1025INTERNET 58 858

1001软件世界 5 200

1002计算机用户 6 220

1003网上生活 27 21

1004网络互连 45 30

1005威宝3.5 5 1050

10063M3.5 3 150

1007办公自动化 90 100

1008JAVA 48 15

1009中文WORD97 68 10

1010EXCLE97 98 103

1011OFFICE97 108 18

1012ACCESS 64 78

1013二级BASIC 65 66

1014二级PASCAL 66 89

1015二级C 67 99

1016二级FOR 66 12

1017二级FOX 66 600

1018AUTO CAD 98 971

1019PhotoShop 68 164

1020一级 78 701

1021一级B类 98 8899

1022三级A类 78 115

1023三级B类 78 118

1024四级 88 116

1025INTERNET 58 58

OUT.DAT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值