C++作业不会做,高手帮下忙~~

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:55:07
4. 一个文件 data.dat 中保存了若干学生的成绩数据。格式如下:
1-4字节:整型,保存学生个数
第5字节开始:连续保存每个学生的信息。

其中,每个学生的信息使用如下格式:
4个字节:整型,保存学生学号
12个字节:字符数组,保存学生姓名
8个字节:双精度浮点型,保存学生的总分

要求:编写一个程序,列出所有总分未达到60分的学生名单,并保存于文本文件 data2.txt 中
输出文件格式如下:

学号 姓名 分数
1005 Zhang3 42
2003 Wang7 57

问点有创意和新颖的好不好,你好好把文件处理和结构定义看看就不会问这个问题了,怎么老是在这里要别人帮你们作作业呢,你不觉得丢脸吗?

#include <stdio.h>
#define NAME_MAX_LEN 50
typedef struct _STUDENT_ {
unsigned int id;
char name[NAME_MAX_LEN+1];
unsigned int score;
} student;
int main (int argc, char** argv) {
char* path;
FILE * fp;
student top_student = {0}, tmp = {0}, pool_student = {0};
int total_score, student_number;
if (argc < 2) {
return 0;
}
path = argv[1];
fp = fopen(path, "r");
if (fp == NULL) {
printf("ERROR TO OPEN FILE!\n");
return;
}
for(total_score=0,student_number = -1; !feof(fp); student_number++) {
fscanf(fp, "%d %s %d", &(tmp.id), &(tmp.name), &(tmp.score));
total_score+=tmp.score;
if (top_student.score < tmp.score) {
top_student = tmp;
}

if (pool_student.score > tmp.score || pool_student.name[0] == '\0