搜档网
当前位置:搜档网 › 用结构体定义10个学生基本信息

用结构体定义10个学生基本信息

/* *************************************************

2.1.用结构体定义10个学生基本信息
学号,姓名,身高,体重,爱好,C语言,英语,高代 平均成绩
1 张三 ...
2 李四 ...
3 王麻子 ...
... ... ...

要求:用函数,指针,数组,文件操作

1)编写函数从键盘上输入学生信息
int input(StudenType *p,int n);
p为StudenType结构类型指针,n为学生个数

2)以上学生信息存入文件中
int save(StudenType *p,int n, char *fileName);
fileName为存储的路径和文件名 如:D:\\data.txt

************************************************* */

#include
#include
struct StudenType
{
int num; //定义学生学号
char *name; //定义学生姓名
char *hobby; //定义学生爱好
int hight; //定义学生身高
int weight; //定义学生体重
float C_score; //定义学生C语言成绩
float English_score; //定义学生英语成绩
float Math_score; //定义学生高代成绩
float ave; //定义学生三科的平均成绩
}stu[10]={
{1,"张三"},
{2,"李四"},
{3,"王麻子"},
{4,"张飞"},
{5,"雨季"},
{6,"陈凯"},
{7,"杨光"},
{8,"刘辉"},
{9,"成城"},
{10,"蒋兰"}
};

int say(struct StudenType *p,int n)
{
for(p=stu;p(p->ave)=((p->C_score)+(p->English_score)+(p->Math_score))/3;

return 0;

}

int input(struct StudenType *p,int n)
{
printf("学号\t姓名\t爱好\t身高\t体重\tC语言\t英语\t高代\n");

for(;p{
printf("%d\t%s\t",p->num,p->name);
scanf("%s %d %d %f %f %f",&(p->hobby),&(p->hight),&(p->weight),&(p->C_score),&(p->English_score),&(p->Math_score));
}

say(p,10);
return 0;

}

int save(struct StudenType *p,int n, char *fileName)
{
FILE *fp;
int i;
fp=fopen(fileName,"w");

for(i=0;ifwrite(p,sizeof(*p),10,fp);

return 0;

}

int main(void)
{
int i;

input(stu,10);

printf("\n学号\t姓名\t爱好\t身高\t体重\tC语言\t英语\t高代\t平均\n");

for(i=0;i<10;i++)
{
printf("%d\t%s\t%s\t%d\t%d\t",stu[i].num,stu[i].name,stu[i].hobby,stu[i].hight,stu[i].weight);
printf("%g\t%g\t%g\t%g\t",stu[i].C_score,stu[i].English_score,stu[i].Math_score,stu[i].ave);

}

printf("\n");

save(stu,10,"D:\\data.txt");

return 0;

}

相关主题