读书人

们帮小弟我看看,这句不理解

发布时间: 2012-02-09 18:22:27 作者: rapoo

大虾们帮我看看,这句不理解
/*学生成绩管理系统,中间的 mingci什么用? info[j].mingci=k为什么要这样赋值,看不懂?这句在在下面已经有注释字*/

#include "stdio.h " /*I/O函数*/
#include "stdlib.h " /*其它说明*/
#include "alloc.h " /*动态地址分配函数*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch; ;
FILE *fp,*fp1;

void shuru()
{
if((fp=fopen( "s_score.txt ", "ab+ "))==NULL)
{
printf( "cannot open this file.\n ");
getch();exit(0);
}
for(i=0;i <=1000;i++)
{
printf( "\nPlease shuru xuehao: ");
gets(data.xuehao);
printf( "Please shuru mingzi: ");
gets(data.mingzi);
printf( "Please shuru yuwen score: ");
gets(temp);data.score[0]=atof(temp);
printf( "Please shuru shuxue score: ");
gets(temp);data.score[1]=atof(temp);
printf( "Please input yingyu score: ");
gets(temp);data.score[2]=atof(temp);
printf( "Please shuru wuli score: ");
gets(temp);data.score[3]=atof(temp);
printf( "Please shur huaxue score: ");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf( "another?y/n ");
ch=getch();
if(ch== 'n '||ch== 'N ')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen( "s_score.txt ", "rb+ "))==NULL)
{
printf( "Cannot reading this file.\n ");
exit(0);
}
for(i=0;i <=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf( "\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen \n ");
for(j=0,k=1;j <i;j++,k++)
{
info[j].mingci=k; /*这个mingci什么用? info[j].mingci=k为什么要这样赋值,看不懂?*/
printf( "%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n ",info[j].xuehao,info[j].mingzi,info[j].score



[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],info[j].score[5]);
}
getch();
fclose(fp);
}

void xiugai()
{
if((fp=fopen( "s_score.txt ", "rb+ "))==NULL||(fp1=fopen( "temp.txt ", "wb+ "))==NULL)
{
printf( "Cannot open this file.\n ");
exit(0);
}
printf( "\nPLease shuru xiugai xuehao: ");
scanf( "%d ",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf( "xuehao:%s\nmingzi:%s\n ",data.xuehao,data.mingzi);
printf( "Please shuru mingzi: ");
gets(data.mingzi);
printf( "Please shuru yuwen score: ");
gets(temp);data.score[0]=atof(temp);
printf( "Please shuru shuxue score: ");
gets(temp);data.score[1]=atof(temp);
printf( "Please input yingyu score: ");
gets(temp);data.score[2]=atof(temp);
printf( "Please input wuli score: ");
gets(temp);data.score[3]=atof(temp);
printf( "Please input huaxue score: ");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];

} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}

fclose(fp);
fclose(fp1);
}
void chazhao()


{
if((fp=fopen( "s_score.txt ", "rb "))==NULL)
{
printf( "\nCannot open this file.\n ");
exit(0);
}
printf( "\nPLease shuru xuehao chakan: ");
scanf( "%d ",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf( "xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen( "s_score.txt ", "rb+ "))==NULL||(fp1=fopen( "temp.txt ", "wb+ "))==NULL)
{
printf( "\nopen score.txt was failed! ");
getch();
exit(0);
}
printf( "\nPlease input ID which you want to del: ");
scanf( "%d ",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{

printf( "Anykey will delet it.\n ");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove( "s_score.txt ");
rename( "temp.txt ", "s_score.txt ");
printf( "Data delet was succesful!\n ");
printf( "Anykey will return to main. ");
getch();
}
main()
{
while(1)
{
clrscr();
printf( " <1> shuru <2> xiugai <3> shanchu <4> chazhao <5> xianshi <6> exit \n ");
printf( "Please input which you want(1-6): ");


ch=getch();
switch(ch)
{
case '1 ':shuru();break;
case '2 ':xiugai(); break;
case '3 ':shanchu(); break;
case '4 ':chazhao(); break;
case '5 ':xianshi(); break;
case '6 ':exit(0);
default: continue;
}
}
}


[解决办法]
info[j]-------> 结构名;
mingci -------> 结构成员;
info[j].mingci-----> 引用结构体中的成员mingci;
info[j].mingci = k-----> 为结构体中的成员mingci赋值为k。

读书人网 >C语言

热点推荐