实验七
任务三
1屏幕上出现了按分数由高到底排序的信息
2.生成了file3.dat
3。file3.dat里面的数据信息正确,且直观可读
任务四
子任务一
1.在屏幕上正确输出了按分数由高到底排序的学生信息
2.在当前路径下生成了二进制文件file4.dat
3信息不直观可读,里面的数据是乱码
子任务二
#include <stdlib.h> #define N 10 typedef struct student { int num; char name[20]; int score; }STU; int main() { FILE* fp; STU st[N]; int i; i = 1; fp = fopen("file4.dat", "rb"); if (fp == NULL) { printf("Failed to open XD"); exit(0); } fread(st, sizeof(STU), N, fp); while(i==N) { printf("%d %s %d\n", st[i].num, st[i].name, st[i].score); fclose(fp); i++; } return 0; }
实验五
#include <stdio.h> #include <stdio.h> #include <string.h> const int N = 10; typedef struct student { long int id; char name[20]; float objective; float subjective; float sum; char level[10]; }STU; void input(STU s[], int n); void output(STU s[], int n); void process(STU s[], int n); int main() { STU stu[N]; printf("录入%d个考生信息:准考证号,姓名,客观题得分(<=40),操作题得分(<=60)\n", N); input(stu, N); printf("\n对考生信息进行处理:计算总分,确定等级\n"); process(stu, N); printf("\n打印考生完整信息:准考证号,姓名,客观题得分,操作题得分,总分,等级\n"); output(stu, N); return 0; } void input(STU s[], int n) { FILE* fin; int i; fin = fopen("examinee.txt", "r"); if (!fin) { printf("fail to open examinee.txt\n"); } for (i = 0; i < n; i++) { fscanf(fin, "%ld %s %f %f", &s[i].id, s[i].name, &s[i].objective, &s[i].subjective); } fclose(fin); } void output(STU s[], int n) { FILE* fout; int i; fout = fopen("result.txt", "w"); if (!fout) { printf("fail to open result.txt\n"); } for (i = 0; i < n; i++) { printf("%-6ld %-10s %4.2f %4.2f %4.2f %10s\n", s[i].id, s[i].name, s[i].objective, s[i].subjective, s[i].sum, s[i].level); } fwrite(s, sizeof(STU), n, fout); } void process(STU s[], int n) { int i, j; STU t; for (i = 0; i < n; i++) { s[i].sum = s[i].objective + s[i].subjective; } for (i = 0; i <= n - 1; i++) { for (j = i + 1; j < n; j++) if (s[i].sum < s[j].sum) { t = s[j]; s[j] = s[i]; s[i] = t; } } for (i = 0; i < n; i++) { if (1.0 * (i + 1) / n <= 0.1) { strcpy(s[i].level, "优秀"); } else if (1.0 * (i + 1) / n <= 0.5) { strcpy(s[i].level, "合格"); } else { strcpy(s[i].level, "不合格"); } } }
实验总结
1.需要加强对数组运用的理解
2.需熟悉各种函数的用法
3.认真学习c语言,继续加油