用C语言实现:利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件
时间: 2024-02-24 07:58:40 浏览: 85
学生成绩管理(C语言)
好的,以下是一个C语言实现的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 50 // 定义字符串最大长度
#define MAX_NUM 100 // 定义最大学生人数
struct Student {
char id[MAX_LENGTH];
char name[MAX_LENGTH];
double english;
double math;
double computer;
};
int main() {
FILE *fp = NULL;
struct Student stu[MAX_NUM];
int n, i;
// 读取学生人数n
printf("请输入学生人数n:");
scanf("%d", &n);
// 读取学生信息
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%s", stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("英语成绩:");
scanf("%lf", &stu[i].english);
printf("数学成绩:");
scanf("%lf", &stu[i].math);
printf("计算机成绩:");
scanf("%lf", &stu[i].computer);
}
// 将学生信息写入文件
fp = fopen("students.txt", "w");
if (fp == NULL) {
printf("无法打开文件!\n");
exit(1);
}
fprintf(fp, "学号\t姓名\t英语成绩\t数学成绩\t计算机成绩\n");
for (i = 0; i < n; i++) {
fprintf(fp, "%s\t%s\t%.2f\t%.2f\t%.2f\n", stu[i].id, stu[i].name, stu[i].english, stu[i].math, stu[i].computer);
}
fclose(fp);
printf("学生信息已写入文件!\n");
return 0;
}
```
运行示例:
```
请输入学生人数n:3
请输入第1个学生的信息:
学号:001
姓名:张三
英语成绩:80
数学成绩:90
计算机成绩:85
请输入第2个学生的信息:
学号:002
姓名:李四
英语成绩:75
数学成绩:85
计算机成绩:90
请输入第3个学生的信息:
学号:003
姓名:王五
英语成绩:90
数学成绩:95
计算机成绩:92
学生信息已写入文件!
```
输出的文件内容为:
```
学号 姓名 英语成绩 数学成绩 计算机成绩
001 张三 80.00 90.00 85.00
002 李四 75.00 85.00 90.00
003 王五 90.00 95.00 92.00
```
阅读全文