/* 请在此文件中完成以下两个函数实现,并调试程序,实现程序功能 */
/* int readFile( struct stuinfo stu[] ); */
/* void input_high( struct stuinfo stu[], float high[], int n ) */
/* */
/* 其它函数内容请勿更改 */
#include
#include
#include
struct stuinfo{
int serial; //学生编号
char name[10]; //学生姓名
};
int readFile( struct stuinfo stu[] );
void input_high( struct stuinfo stu[], float high[], int n );
void write_data();
void main()
{
struct stuinfo stu[30];
float stuHigh[30];
int stuNum;
int topStu=0;
// write_data();
stuNum = readFile( stu );
input_high( stu, stuHigh, stuNum );
return ;
}
/* 从文件"StuInfo.dat"中读出各位学生记录,以及记录个数 */
/* 学生记录存放在数组 stu中,函数返回学生人数 */
int readFile( struct stuinfo stu[] )
{
FILE *fp;
struct stuinfo *p;
int i=0;
if( (fp = fopen("StuInfo.dat", "rb+" )) == NULL)
{
printf("file canot read!\n");
exit(1);
}
p=(struct stuinfo *)malloc(sizeof(struct stuinfo));
while(fread( p, sizeof(struct stuinfo), 1, fp)!=0)
{
stu[i]=*p;
i++;
p=(struct stuinfo *)malloc(sizeof(struct stuinfo));
}
fclose(fp);
return i;
}
/* 输入每个学生的身高信息 */
/* 显示每位同学基本信息后,输入该同学的身高 */
/* 计算并显示所有同学的平均身高 */
void input_high( struct stuinfo stu[], float high[], int n )
{
int i;
float sum=0;
for(i=0;i
printf("Student %d serial, name:%s\n",i+1,stu[i].name);
printf("Please input student's height:");
scanf("%f",&high[i]);
sum+=high[i];
}
printf("student's average height:%f",sum/n);
}
/* 从键盘上输入学生信息,保存到StuInfo.dat文件中 */
void write_data( )
{
FILE *fp;
struct stuinfo stu[30];
int i, stuNum=0;
printf("Please input student number(<30): ");
scanf("%d",&stuNum);
if( stuNum > 30 )
{
printf("data error");
exit(1);
}
for( i=0; i
printf("Please input Student %d serial, name:\n", i+1 );
scanf("%d", &stu[i].serial);
scanf("%s",stu[i].name);
}
if( (fp = fopen("StuInfo.dat", "wb+" )) == NULL)
{
printf("file canot write!\n");
exit(1);
}
fwrite( stu, sizeof(struct stuinfo), stuNum, fp);
fclose( fp );
return;
}
这些东西你还是自己在网上找一些类似的看看,然后自己写,对你有很大好处