C语言。typedef struct student{ char sno[SNOLENGTH];//学号 char name[NAME_LENGTH];//姓名 int score[COURSE_NUMBER]; //课程成绩数组 float average;//所有课程的平均成绩 三门课程成绩和平均成绩。 }STU;*函数名称:readFileForStu *函数功能:从文件格式化读取数据 *写入格式:共读取 num行;每行读出一个stu型数据,每个成员变量之间用空格分隔 *形式参数:struct stu*p,指向 stu型一维数组首地址。该数组用于保存文件读取数据 *形式参数:int num,一维数组元素个数,也即读取文件的行数 *形式参数:char filename[],待读取的文件路径及名称 *形式参数:char mode[],文件使用方式 *返回值:无 *| void readFileForStu(struct stu *p, int num, char filename[],char mode[]){ //请编程实现本函数 *函数名称:stdoutForStu *函数功能:向显示器输出显示数据 *输出格式:共输出 num行:每行输出一个stu型数据,每个成员变量之间用空格分隔 *形式参数:struct stu*p,指向 stu型一维数组首地址 *形式参数:int num,一维数组元素个数 *返回值:无 */ void stdoutForStu(struct stu *p, int num){ //请编程实现本函数
时间: 2024-01-17 15:08:26 浏览: 61
下面是函数readFileForStu和stdoutForStu的完整代码实现:
```c
#include <stdio.h>
#define SNOLENGTH 20
#define NAME_LENGTH 20
#define COURSE_NUMBER 3
typedef struct student{
char sno[SNOLENGTH]; //学号
char name[NAME_LENGTH]; //姓名
int score[COURSE_NUMBER]; //课程成绩数组
float average; //所有课程的平均成绩
} STU;
/* 函数名称:readFileForStu
* 函数功能:从文件格式化读取数据
* 写入格式:共读取 num行;每行读出一个stu型数据,每个成员变量之间用空格分隔
* 形式参数:struct stu*p,指向 stu型一维数组首地址。该数组用于保存文件读取数据
* 形式参数:int num,一维数组元素个数,也即读取文件的行数
* 形式参数:char filename[],待读取的文件路径及名称
* 形式参数:char mode[],文件使用方式
* 返回值:无
*/
void readFileForStu(STU *p, int num, char filename[], char mode[]) {
FILE *fp;
fp = fopen(filename, mode);
if(fp == NULL) {
printf("Cannot open file %s\n", filename);
return;
}
for(int i=0; i<num; i++) {
fscanf(fp, "%s %s %d %d %d", p[i].sno, p[i].name, &p[i].score[0], &p[i].score[1], &p[i].score[2]);
p[i].average = (p[i].score[0] + p[i].score[1] + p[i].score[2]) / 3.0;
}
fclose(fp);
}
/* 函数名称:stdoutForStu
* 函数功能:向显示器输出显示数据
* 输出格式:共输出 num行:每行输出一个stu型数据,每个成员变量之间用空格分隔
* 形式参数:struct stu*p,指向 stu型一维数组首地址
* 形式参数:int num,一维数组元素个数
* 返回值:无
*/
void stdoutForStu(STU *p, int num) {
for(int i=0; i<num; i++) {
printf("%s %s %d %d %d %.2f\n", p[i].sno, p[i].name, p[i].score[0], p[i].score[1], p[i].score[2], p[i].average);
}
}
```
函数readFileForStu从文件中读取格式化数据,每行读出一个STU型数据,每个成员变量之间用空格分隔。函数的形式参数包括一个指向STU型一维数组首地址的指针,一个一维数组元素个数,一个待读取的文件路径及名称,和一个文件使用方式。函数将读出的数据存入数组p中。
函数stdoutForStu向显示器输出STU型数据,每行输出一个STU型数据,每个成员变量之间用空格分隔。函数的形式参数包括一个指向STU型一维数组首地址的指针和一个一维数组元素个数。函数将数组p中的数据输出到显示器上。
阅读全文