实验7

 1 #include <stdio.h>
 2 #define N 5
 3 // 定义结构体类型struct student,并定义STU为其别名
 4 typedef struct student
 5 {
 6 long no;
 7 char name[20];
 8 int score;
 9 } STU;
10 // 函数声明
11 void input(STU s[], int n);
12 int findMinlist(STU s[], STU t[], int n);
13 void output(STU s[], int n);
14 int main()
15 {
16 STU stu[N], minlist[N];
17 int count;
18 printf("录入%d个学生信息\n", N);
19 input(stu, N);
20 printf("\n统计最低分人数和学生信息...\n");
21 count = findMinlist(stu, minlist, N);
22 printf("\n一共有%d个最低分,信息如下:\n", count);
23 output(minlist, count);
24 return 0;
25 }
26 // 输入n个学生信息,存放在结构体数组s中
27 void input(STU s[], int n)
28 {
29 int i;
30 for (i = 0; i < n; i++)
31 scanf("%ld %s %d", &s[i].no, s[i].name, &s[i].score);
32 }
33 // 输出结构体s中n个元素信息
34 void output(STU s[], int n)
35 {
36 int i;
37 for (i = 0; i < n; i++)
38 printf("%ld %s %d\n", s[i].no, s[i].name, s[i].score);
39 }
40 // 在结构体数组s中,查找最低分学生的记录,将其存入结构体数组t中
41 // 形参n是结构体数组s中元素个数
42 // 函数返回最低分的学生人数
43 int findMinlist(STU s[], STU t[], int n)
44 {
45 // 补足函数实现
46 // ×××
47 int i,j,a,b;
48 t[0]=s[0];
49 for(i=0;i<n;i++){
50     if(t[0].score>s[i].score){
51         t[0]=s[i];a=i;
52     }
53 }b=1;
54 for(i=0;i<n;i++){
55     if(s[i].score==t[0].score&&i!=a){
56         t[b++]=s[i];
57     }
58 }
59 return b;
60 }

实验7

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 10
 4 
 5 // 定义结构体类型struct student,并定义其别名为STU
 6 typedef struct student
 7 {
 8 long int id;
 9 char name[20];
10 float objective; /*客观题得分*/
11 float subjective; /*操作题得分*/
12 float sum;
13 char level[10];
14 } STU;
15 // 函数声明
16 void input(STU s[], int n);
17 void output(STU s[], int n);
18 void process(STU s[], int n);
19 int main()
20 {
21 STU stu[N];
22 printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分(<=60)\n", N);
23 input(stu, N);
24 printf("\n对考生信息进行处理: 计算总分,确定等级\n");
25 process(stu, N);
26 printf("\n打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级\n");
27 output(stu, N);
28 return 0;
29 }
30 // 录入考生信息:准考证号,姓名,客观题得分,操作题得分
31 void input(STU s[], int n)
32 {
33     int i,j;
34     for(i=0;i<n;i++){
35         scanf("%ld %s %f %f",&s[i].id,s[i].name,&s[i].objective,&s[i].subjective);
36     
37         
38     }
39     
40 // 补足代码
41 // ×××
42 }
43 //输出考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级
44 void output(STU s[], int n)
45 {
46 // 补足代码
47 // ×××
48 int i;
49 for(i=0;i<n;i++){
50     printf("%ld %s %f %f %f %s\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);
51 }
52 }
53 // 对考生信息进行处理:计算总分,排序,确定等级
54 void process(STU s[], int n)
55 {
56 // 补足代码
57 // ×××
58 int i,j,a,k,c,e;
59     for(i=0;i<n;i++){
60     s[i].sum=s[i].objective+s[i].subjective;
61 }
62     STU b;
63 
64     for(i=0;i<n;i++){
65         for(j=i+1;j<n;j++){
66             if(s[i].sum<s[j].sum){
67                 b=s[i];
68                 s[i]=s[j];
69                 s[j]=b;
70                 
71             }
72         }
73         
74     }
75     for(i=0;i<n;i++){
76         if(i<n/10) strcpy(s[i].level,"优");
77     else if(i>=(n/10)&&i<(n/2)) strcpy(s[i].level,"及格");
78     else if(i>=(n/2)) strcpy(s[i].level,"不及格");
79     }
80 }

实验7

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 10
 4 // 定义结构体类型struct student,并定义其别名为STU
 5 typedef struct student
 6 {
 7 long int id;
 8 char name[20];
 9 float objective;/*客观题得分*/
10 float subjective;/*操作题得分*/
11 float sum;
12 char level[10];
13 } STU;
14 // 函数声明
15 void input(STU s[],int n);
16 void output(STU s[], int n);
17 void process(STU s[], int n);
18 int main()
19 {
20 STU stu[N];
21 printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分 (<=60)\n", N);
22 input(stu, N);
23 printf("\n对考生信息进行处理: 计算总分,确定等级\n");
24 process(stu, N);
25 printf("\n打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级 \n");
26 output(stu, N);
27 
28 
29 return 0;
30 }
31 // 从文本文件examinee.txt读入考生信息:准考证号,姓名,客观题得分,操作题得分
32 void input(STU s[], int n)
33 {
34 // 补足代码// ×××
35 FILE *fp1;
36 int i;
37 fp1=fopen("examinee.txt","r");
38 for(i=0;i<n;i++){
39 fscanf(fp1,"%ld %s %f %f",&s[i].id,s[i].name,&s[i].objective,&s[i].subjective);
40 }
41 fclose(fp1);
42 
43 
44 
45 }
46 // 输出考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级
47 // 不仅输出到屏幕上,还写到文本文件result.txt中
48 void output(STU s[], int n)
49 { // 补足代码
50 // ×××
51 FILE *fp2;
52 int i;
53 fp2=fopen("result.txt","w");
54 for(i=0;i<n;i++){
55 fprintf(fp2,"%ld %s %.2f %.2f %.2f %s\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);
56 printf("%ld %s %.2f %.2f %.2f %s\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);
57 }
58 fclose(fp2);
59 
60 }
61 // 对考生信息进行处理:计算总分,排序,确定等级
62 void process(STU s[], int n) {
63 // 补足代码
64 // ×××
65 int i,j,a,k,c,e;
66 for(i=0;i<n;i++){
67 s[i].sum=s[i].objective+s[i].subjective;
68 }
69 STU b;
70 
71 for(i=0;i<n;i++){
72 for(j=i+1;j<n;j++){
73 if(s[i].sum<s[j].sum){
74 b=s[i];
75 s[i]=s[j];
76 s[j]=b;
77 }
78 }
79     
80  }
81 for(i=0;i<n;i++){
82 if(i<n/10) strcpy(s[i].level,"优");
83 else if(i>=(n/10)&&i<(n/2)) strcpy(s[i].level,"及格");
84 else if(i>=(n/2)) strcpy(s[i].level,"不及格");
85 }}

实验7

 

 实验7

 

 实验7

 

上一篇:实验七


下一篇:Java 序列化