C语言实现学生成绩文件操作:输入、计算与存储

需积分: 25 0 下载量 41 浏览量 更新于2024-08-05 收藏 1KB TXT 举报
本资源主要介绍如何使用C语言进行文件的输入与输出操作,具体针对的是一个学生管理案例。该程序设计了三个关键函数:`save()`, `input()`, 和 `print()`,用于实现从键盘输入学生数据、计算平均成绩并将数据保存至磁盘文件,以及从文件中读取数据并显示到屏幕上。 首先,程序定义了一个名为`structStudent`的结构体,包含学生的学号(num),姓名(name),以及三个成绩(score[0], score[1], score[2])和平均成绩(ave)。使用`#define SIZE 2`来设定最多可以存储2个学生。 1. `save(structStudent stud[], int n)`函数负责将学生数据保存到文件。它接受一个`structStudent`类型的数组`stud`和学生数量`n`作为参数。函数首先尝试以二进制写入模式("wb")打开名为"stu.txt"的文件,如果失败则打印错误信息并退出。接着使用`fwrite()`函数逐个将`structStudent`结构体元素写入文件,确保每个元素写入成功。 2. `input(structStudent stud[])`函数用于从键盘接收用户输入的学生数据。该函数提示用户输入每个学生的学号、姓名和三门课程的成绩,然后计算平均成绩,并将这些信息存储在结构体中。 3. `print(structStudent stud[], int n)`函数用于读取并显示磁盘文件中的学生数据。通过以二进制读取模式("rb")打开文件,然后使用`fread()`逐个读取结构体元素,将其显示到控制台,包括学号、姓名、各门课程成绩和平均分。 在`main()`函数中,调用`input()`函数获取学生数据,然后可能需要调用`save()`函数保存数据到文件。最后,为了验证数据的完整性,会调用`print()`函数读取文件内容并与用户输入的数据进行对比。 这个示例展示了C语言中文件I/O的基本操作,包括如何创建、读取和写入二进制文件,以及如何处理结构体数据。通过实际编写和运行这个程序,学习者可以加深对文件操作的理解,并掌握如何在C语言中实现数据持久化。同时,这个案例还涉及了数组和结构体的使用,以及错误处理的基本方法。