运城学院公共计算机教学部
实 验 报 告
(2012 /2013学年 第一 学期)
?
一、 实验目的和要求 1、掌握函数的定义和函数的调用方法。 2、掌握函数实参与形参的对应关系,以及“值传递”的方式。 二、实验环境(实验设备) 硬件: 微型计算机 软件: Microsoft Visual C++6.0 三、实验过程 训练目标1:(50分钟) 1、 编写自定义函数,实现简单项目调试 实验题目1:结合数据文件,请设计、编写自定义函数实现某班若干个学生某门课程成绩输入、输出,求最高分、最低分和平均值,并实现对成绩的统计。程序如下,请填空: #include #include void input(int n) /*输入数据并存入数据文件函数*/ { int i,score; FILE *fp; fp=fopen(\ if(fp==NULL) {printf(\打开文件错误!退出程序!\ /*填入程序段*/ fclose(fp); } void output(int m) /*从数据文件读入数据并显示函数*/ { int i,score; FILE *fp; fp=fopen(\ if(fp==NULL) {printf(\打开文件错误!退出程序!\ /*填入程序段*/ printf(\fclose(fp); getchar(); } void jisuan(int n) /*从数据文件读入数据并求最高分、最低分和平均值*/ { int i,score,max,min,sum=0,ave; FILE *fp; fp=fopen(\ if(fp==NULL) {printf(\打开文件错误!退出程序!\ /*填入程序段*/ ave=sum/n; printf(\ fclose(fp);getchar(); } void main() { int m,dm; do{ system(\ printf(\ printf(\输入成绩\\n\ printf(\输出成绩\\n\ printf(\平均成绩\\n\ printf(\退出程序\\n\ printf(\ printf(\请选择代码\\n\ scanf(\ switch(dm) { case 1:printf(\请输入学生人数:\ input(m); break; case 2:printf(\请输入学生人数:\ output(m);getchar();break; case 3:printf(\请输入学生人数:\ jisuan(m);getchar();break; case 0: return; } }while(1); } 程序如下: #include #include void input(int n) /*输入数据并存入数据文件函数*/ { } void output(int m) /*从数据文件读入数据并显示函数*/ { int i,score; FILE *fp; fp=fopen(\if(fp==NULL) {printf(\打开文件错误!退出程序!\/*填入程序段*/ for(i=1;i<=m;i++) { fscanf(fp,\ int i,score; FILE *fp; fp=fopen(\if(fp==NULL) {printf(\打开文件错误!退出程序!\/*填入程序段*/ for(i=1;i<=n;i++) { } fclose(fp); printf(\请输入第%d个学生的成绩:\\n\scanf(\fprintf(fp,\ } printf(\ printf(\ getchar(); fclose(fp); } void jisuan(int n) /*从数据文件读入数据并求最高分、最低分和平均值*/ { int i,score,max,min,sum=0,ave; FILE *fp; fp=fopen(\if(fp==NULL) {printf(\打开文件错误!退出程序!\/*填入程序段*/ fscanf(fp,\max=score; min=score; for(i=1;i<=n;i++) { } ave=sum/n; sum+=score; fscanf(fp,\if(min