- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C程序设计》综合性实验
实验报告
题目: 学生成绩管理
姓名:
班级:
学号:
指导教师:
完成时间: 2011.05.21
实验题目
学生成绩管理
实验目的
1. 掌握一维数组、二维数组的使用方法。
2. 掌握结构体数组的定义和使用。
3. 综合应用数据文件的读写语句保存结构体数组中的数据。
实验要求
有4个学生,每个学生有3门课的成绩,从键盘上输入以上数据,计算每个学生的平均分,并把这些信息(包括学号、姓名、班级、3门课的成绩及平均分)保存到一个文件(score.txt)中,并显示在屏幕上。
具体要求:
?定义结构体类型(student_type),其中包括学号(num[11])、姓名(name[8])、班级(class[20])、3门课成绩(score[3])和平均成绩(ave)。利用该结构体类型定义数组stud[4]。
?在主函数中输入学生学号、姓名、班级、3门课的成绩,并计算出平均成绩,然后调用save()函数将学生数据保存在score.txt文件中,调用display()函数读取score.txt文件,并将其中的内容显示在屏幕上。
?定义保存文件函数save()和显示文件函数display()。
程序流程图
程序代码
#include stdio.h
#include stdlib.h
#define SIZE 4
struct student_type
{char name[4];
int num[11];
int score[3];
float ave;
char class[20];
}stud[SIZE];
int main( )
{int i;
FILE *fp;
if((fp=fopen (stu.dat,rb))==NULL)// 打开输入文件atu.dat
{printf(cannot open file\n);
exit(0);
}
for(i=0;iSIZE;i++)
{fread (stud[i],sizeof(struct student_type),1,fp); // 从fp指向的文件读入一组数据 printf(%-10s,%4d,%4d,%7.2f,%7.2f\n,stud[i].name,stud[i].num, stud[i].class, stud[i]. Score, stud[i],ave);
// 在屏幕上输出这组数据
}
fclose (fp); // 关闭文件stu.dat
return 0;
}
void ave()
{ float sum;
int i,j;
for(i=0;i4;i++)
{ sum=0;
for(j=0;j3;j++)
sum=sum+stud[i].class[j];
stud[i].ave=sum/3;
}
}
3建立保存学生成绩函数
void save( )
{FILE *fp;
int i;
if((fp=fopen(stu-list,wb))==NULL)
{ printf(cannot open file\n);
return;}
for(i=0;iSIZE;i++)/*二进制写*/
if(fwrite(stud[i],sizeof(struct student_type),1,fp)!=1)
printf(file write error\n);/*出错处理*/
fclose(fp); /*关闭文件*/
}
4 建立显示学生成绩函数
void display()
{ FILE *fp;
int i;
if((fp=fopen(d:\\fengyi\\exe\\stu_dat,rb))==NULL)
{ printf(cannot open file\n);
return;
}
for(i=0;iSIZE;i++)
{ fread(stud[i],sizeof(struct student_type),1,fp);
printf(%-10s %4d %4d %-15s\n,stud[i].name,
stud[i].num,stud[i].class, stu
文档评论(0)