编写程序,程序实现的功能是,从键盘输入一位同学的学号及其高数,英语,c语言成绩,计算平均分,并写入文件score_avg.txt中
时间: 2024-10-18 13:06:13 浏览: 58
程序示例--struct
为了编写这样一个程序,你需要首先定义一个结构体来存储学生的学号和分数,然后读取用户的输入,计算平均分,最后将结果写入到指定的文本文件中。以下是一个简单的C语言程序示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生信息结构体
typedef struct {
int student_id;
float high_math_score;
float english_score;
float c_language_score;
} Student;
// 计算平均分
float calculate_average(Student* student) {
return (student->high_math_score + student->english_score + student->c_language_score) / 3.0;
}
int main() {
// 声明并初始化学生结构体
Student student;
// 从键盘获取用户输入
printf("Enter student ID, high math score, English score, and C language score:\n");
scanf("%d%f%f%f", &student.student_id, &student.high_math_score, &student.english_score, &student.c_language_score);
// 计算平均分
float average = calculate_average(&student);
// 打开或创建输出文件
FILE* file = fopen("score_avg.txt", "w");
if (!file) {
perror("Error opening file");
return 1;
}
// 将平均分写入文件
fprintf(file, "Student ID: %d\nAverage Score: %.2f\n", student.student_id, average);
// 关闭文件
fclose(file);
printf("Score has been written to score_avg.txt.\n");
return 0;
}
```
这个程序首先提示用户输入学号和各科分数,然后调用`calculate_average`函数计算平均分。接着,它尝试打开名为`score_avg.txt`的文件(如果不存在则创建),并将学生的ID和平均分写入。最后,关闭文件并显示成功消息。
运行此程序后,请确保在指定目录下有权限创建和写入文件。如果你需要,可以在主函数末尾添加异常处理来更优雅地处理可能出现的问题。
阅读全文