2016年計算機網路三級上機試題
已知在檔案中存有100個產品銷售記錄,每個產品銷售記錄由產品程式碼dm(字元型4位),產品名稱mc(字元型10位),單價dj(整型),數量sl(整型),金額je(長整型)四部分組成。其中:金額=單價*數量計算得出。函式ReadDat()是讀取這100個銷售記錄並存入結構陣列sell中。請編制函式SortDat(),其功能要求:按產品程式碼從小到大進行排列,若產品程式碼相同,則按金額從大到小進行排列,最終排列結果仍存入結構陣列sell中,最後呼叫函式WriteDat()把結果輸出到檔案中。
注意: 部分源程式存放在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],sell[j])>0)
{xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;}
else if(strcmp(sell[I],sell[j])==0)
if(sell[I]
{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("","r");
for(i=0;i<100;i++){
fgets(str,80,fp);
memcpy(sell[i],str,4);
memcpy(sell[i],str+4,10);
memcpy(ch,str+14,4);ch[4]=0;
sell[i]=atoi(ch);
memcpy(ch,str+18,5);ch[5]=0;
sell[i]=atoi(ch);
sell[i]=(long)sell[i]*sell[i];}
fclose(fp);}
void WriteDat(void)
{FILE *fp;
int i;
fp=fopen("","w");
for(i=0;i<100;i++){
fprintf(fp,"%s %s %4d %5d %101dn", sell[i],sell[i],sell[i],sell[i],sell[i]);}
fclose(fp);}
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