7

`#include<stdio.h>

include<stdlib.h>

define N 10

typedef struct student {
int num;
char name[20];
int score;
}STU;
int main(){
FILE *p;
STU st[N];
int i;
p=fopen("file4.dat","r");
if(!p){
printf("Fail to open file4.dat\n");
exit(0);
}
for(i=0;i<N; i++)
fread(&st[i],sizeof(st[i]),1,p);
for(i=0;i<N; i++)
printf("%d %-6s %-10d\n",st[i].num, st[i].name, st[i].score);
fclose(p);
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, "不合格");
    }

}

}`

posted @ 2021-01-01 13:07  刘子余  阅读(169)  评论(0)    收藏  举报