# include & ltstdlib.h & gt
# include & ltstring.h & gt
文件*f1,* f2
char file1[20],file2[20],name[200][20],name 1[15];
int n,m,data[200][10];
void init(){
int i,j;
char ch =“”;
Printf("%20c歡迎使用班級成績管理系統\n\n ",ch);
Printf("請輸入輸入和輸出文件名(用空格分隔):\ n ");
scanf("%s %s ",file1,file 2);// 1)這個語句的作用是什麽?
f1=fopen(file1," r ");
f2=fopen(file2," w ");
fscanf(f1," %d%d ",& ampn & amp;m);// 2)這個語句的作用是什麽?
for(I = 1;我& lt= n;i++)
{
fscanf(f1," %s ",name[I]);// 3)這個語句的作用是什麽?
data[I][0]= 0;// 4)這個語句的作用是什麽?沒有這句話可以嗎?
for(j = 1;j & lt= m;j++)
{
fscanf(f1," %d ",& ampdata[I][j]);
data[I][0]+= data[I][j];// 5)這個語句的作用是什麽?
}
}
fprintf(f2," name \ tyu Wen \ t shuxue \ tying Yu \ t Wuli \ thua Xue \ t zongfen \ n ");
for(I = 1;我& lt= n;i++)
{
fprintf(f2," %s\t ",name[I]);
for(j = 1;j & lt= m;j++)
fprintf(f2," %d\t ",data[I][j]);
fprintf(f2," %d\n ",data[I][0]);
}
fclose(f 1);// 6)這裏怎麽做才能關閉輸入文件?
fclose(F2);
}
無效搜索(字符na[],字符編號){
int i=1,j;
而((i & lt= n)& amp;& amp(strcmp(na,name[i])!= 0))i++;
如果(我& lt=n){
開關(數量){
Case '1':printf("%s在中文中得到%d!\n ",na,data[I][1]);打破;
案例“2”:printf(" % s數學得了%d!\n ",na,data[I][2]);打破;
案例“3”:printf(" % s在英語中得到%d!\n ",na,data[I][3]);打破;
案例' 4':printf("%s在物理中得了%d!\n ",na,data[I][4]);打破;
案例' 5':printf("%s化學得了%d!\n ",na,data[I][5]);打破;
案例“a”:
Printf("%s各科成績為:\n ",name[I]);
Printf("語文\t數學\t英語\t物理\t化學\t總成績\ n ");
for(j = 1;j & lt= m;j++)
printf("%d\t ",data[I][j]);
printf("%d\n ",data[I][0]);
打破;
默認:printf("沒有這樣的查詢方式,請確認後重新輸入!\ n ");
}
}
Else printf("沒有這個人,請再次確認查詢!\ n ");
printf(" \ n \ n ");
}
main(){
init();//數據初始化
Printf("數據初始化結束!\ n \ n ");
printf("-\ n \ n ");
char na[20];
字符數;
While(1){ // 7)這條語句的作用是什麽?
//scanf("%s%c%c ",na,& amp數字& ampnum);// 8)這句話可以作為這裏的輸入嗎?
Printf("請輸入學生姓名和要查詢成績的科目代碼(用空格隔開):\n(1語文2數學3英語4物理5化學A所有科目Q退出)\ n ");
scanf("%s ",na);
if(strcmp(na," q ")= = 0)break;// 9)為什麽要用這句話strcmp(na," q")==0?
scanf("%c%c ",& amp數字& ampnum);// 10)為什麽用了兩次&;num?
search(na,num);
printf("-\ n \ n ");
printf(" \ n請輸入新的查詢:\ n \ n ");
}
系統(“暫停”);
}
稍微改壹下就好了!