使用c语言,用到typedef,设计一个简单的学生成绩管理系统。设有学生成绩文件student.txt,每位学生成绩信息包含学号(num)、姓名(name)、性别(sex)、出生日期(birthday,包括年、月、日,分别表示为year,month,day)、3门功课的成绩(高数、C语言、大学物理)、总分和平均分。设计程序,要求从文件student.txt中读出学生成绩表,之后参对成绩表进行如下操作 (8)建立学生成绩信息结构数组(从student.txt读入数据) (9)显示。即输出出所有成绩。
时间: 2023-07-10 16:23:23 浏览: 119
C语言课程设计——学生成绩管理系统(源代码+详细注释).zip
5星 · 资源好评率100%
以下是一个简单的学生成绩管理系统的C语言代码,其中使用了typedef定义了一个结构体student,用于存储学生的各项信息。程序读取student.txt文件中的学生成绩信息,然后建立学生成绩信息结构数组,最后输出所有学生成绩信息。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 20 // 定义字符串的最大长度
typedef struct student {
char num[MAX_LEN]; // 学号
char name[MAX_LEN]; // 姓名
char sex[MAX_LEN]; // 性别
int year, month, day; // 出生日期
double math, c, physics; // 3门功课的成绩
double total, avg; // 总分和平均分
} student;
int main() {
FILE *fp;
student stu[MAX_LEN];
int i = 0;
// 从文件中读取学生成绩信息
fp = fopen("student.txt", "r");
if (fp == NULL) {
printf("文件打开失败!\n");
exit(1);
}
while (fscanf(fp, "%s %s %s %d-%d-%d %lf %lf %lf %lf %lf", stu[i].num, stu[i].name, stu[i].sex, &stu[i].year, &stu[i].month, &stu[i].day, &stu[i].math, &stu[i].c, &stu[i].physics, &stu[i].total, &stu[i].avg) != EOF) {
i++;
}
fclose(fp);
// 输出所有学生成绩信息
printf("学号\t姓名\t性别\t出生日期\t\t高数\tC语言\t大学物理\t总分\t平均分\n");
for (int j = 0; j < i; j++) {
printf("%s\t%s\t%s\t%d-%02d-%02d\t%.1lf\t%.1lf\t%.1lf\t%.1lf\t%.1lf\n", stu[j].num, stu[j].name, stu[j].sex, stu[j].year, stu[j].month, stu[j].day, stu[j].math, stu[j].c, stu[j].physics, stu[j].total, stu[j].avg);
}
return 0;
}
```
阅读全文