实验五

2022/6/6 23:21:56

本文主要是介绍实验五,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

task1-1

 1 #include <stdio.h> 
 2 #define N 5 
 3 #define M 80 
 4 typedef struct 
 5 { 
 6     char name[M]; 
 7     char author[M]; 
 8 }Book; 
 9 int main() 
10 { 
11     Book x[N] = { {"一九八四", "乔治.奥威尔"}, 
12                   {"美丽新世界", "赫胥黎"},
13                   {"昨日的世界", "斯蒂芬.茨威格"}, 
14                   {"万历十五年", "黄仁宇"}, 
15                   {"一只特立独行的猪", "王小波"} 
16                 }; 
17     int i; 
18     FILE *fp; 
19     fp = fopen("data1.txt", "w"); 
20     if(fp == NULL) 
21     { 
22         printf("fail to open file\n"); 
23         return 1; 
24     }
25     for(i=0; i<N; ++i) 
26     { 
27         fprintf(fp, "%-20s %-20s\n", x[i].name, x[i].author); 
28         printf("%-20s %-20s\n", x[i].name, x[i].author); 
29     }
30     fclose(fp); 
31     return 0; 
32 }

 1 #include<stdio.h> 
 2 #define N 5 
 3 #define M 80 
 4 typedef struct 
 5 { 
 6     char name[M]; 
 7     char author[M]; 
 8 }Book; 
 9 int main() 
10 { 
11     Book x[N]; 
12     int i; 
13     FILE *fp; 
14     fp = fopen("data1.txt", "r"); 
15     if(fp == NULL) 
16     { 
17         printf("fail to open file\n"); 
18         return 1; 
19     }
20     for(i=0; i<N; ++i) 
21     { 
22         fscanf(fp, "%s %s\n", x[i].name, x[i].author); 
23         printf("%-20s %-20s\n", x[i].name, x[i].author); 
24     }
25     fclose(fp); 
26     return 0; 
27 }

x[i].name和x[i].author本身作为一个地址。

 1 #include <stdio.h> 
 2 #define N 5 
 3 #define M 80
 4 typedef struct
 5 {
 6     char name[M];
 7     char author[M];
 8 }Book;
 9 int main()
10 {
11     Book x[N] = { {"一九八四", "乔治.奥威尔"}, 
12                   {"美丽新世界", "赫胥黎"}, 
13                   {"昨日的世界", "斯蒂芬.茨威格"}, 
14                   {"万历十五年", "黄仁宇"}, 
15                   {"一只特立独行的猪", "王小波"} 
16                 };
17     int i; 
18     FILE *fp; 
19     fp = fopen("data2.dat", "wb"); 
20     if(fp == NULL) 
21     { 
22         printf("fail to open file\n"); 
23         return 1; 
24     }
25     fwrite(x, sizeof(Book), N, fp); 
26     fclose(fp);
27     return 0;
28 }

 1 #include <stdio.h>
 2 
 3 #define N 5
 4 #define M 80
 5 
 6 typedef struct
 7 {
 8     char name[M];
 9     char author[M];
10 }BOOK;
11 
12 int main()
13 {
14     BOOK x[N];
15     int i;
16 
17     FILE *fp;
18 
19     fp=fopen("data2.dat","rb");
20 
21     if(fp==NULL)
22     {
23         printf("fail to open file\n");
24         return 1;
25     }
26 
27     fread(x,sizeof(BOOK),N,fp);
28 
29     for(i=0;i<N;i++)
30         printf("%-20s   %-20s\n",x[i].name,x[i].author);
31 
32     fclose(fp);
33 
34     return 0;
35  }

1.Yes

2.No

task3.c

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     FILE *fin,*fout;
 6     char ch;
 7 
 8     fin=fopen("data3_1.txt","r");
 9 
10     if(fin==NULL)
11     {
12         printf("fail to open data3_1.txt\n");
13         return 1;
14     }
15 
16     fout=fopen("data3_2.txt","w");
17 
18     if(fin==NULL)
19     {
20         printf("fail to open data3_2.txt\n");
21         return 1;
22     }
23 
24     while(!feof(fin))
25     {
26         ch=fgetc(fin);
27 
28         if(ch>='a'&&ch<='z')
29             ch-=32;
30 
31         fputc(ch,fout);
32     }
33 
34     fclose(fin);
35     fclose(fout);
36 
37     return 0;
38 }

 1 #include <stdio.h> 
 2 #include <string.h> 
 3 #include <stdlib.h> 
 4 #define N 10 
 5 typedef struct 
 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 void input(STU s[], int n); 
15 void output(STU s[], int n); 
16 void process(STU s[], int n); 
17 int main()
18 { 
19     STU stu[N]; 
20     printf("从文件读入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分 (<=60)\n", N); 
21     input(stu, N); 
22     printf("\n对考生信息进行处理: 计算总分,确定等级\n"); 
23     process(stu, N); 
24     printf("\n打印考生完整信息, 并保存到文件中"); 
25     output(stu, N); 
26     return 0; 
27 }
28 void input(STU s[], int n) 
29 { 
30     int i; 
31     FILE *fin; 
32     fin = fopen("examinee.txt", "r"); 
33     if (fin == NULL) 
34     { 
35         printf("fail to open file\n"); 
36         exit(0); 
37     }
38     while (!feof(fin)) 
39     { 
40         for (i = 0; i < n; i++) 
41             fscanf(fin, "%ld %s %f %f", &s[i].id, s[i].name, &s[i].objective, &s[i].subjective); 
42     }
43     fclose(fin); 
44 }
45 void output(STU s[], int n) 
46 { 
47     FILE *fout;
48     int i; // 输出到屏幕 
49     printf("\n"); 
50     printf("准考证号\t姓名\t客观题得分\t操作题得分\t总分\t\t等级\n"); 
51     for (i = 0; i < n; i++) 
52         printf("%ld\t\t%s\t%.2f\t\t%.2f\t\t%.2f\t\t%s\n", s[i].id, s[i].name, s[i].objective, s[i].subjective, s[i].sum, s[i].level); // 保存到文件 
53     fout = fopen("result.txt", "w"); 
54     if (!fout) 
55     { 
56         printf("fail to open or create result.txt\n"); 
57         exit(0); 
58     }
59     fprintf(fout, "准考证号\t\t姓名\t客观题得分\t操作题得分\t总分\t\t等级\n"); 
60     for (i = 0; i < n; i++) 
61         fprintf(fout, "%ld\t\t%s\t%.2f\t\t%.2f\t\t%.2f\t\t%s\n", s[i].id, s[i].name, s[i].objective, s[i].subjective, s[i].sum, s[i].level); 
62     fclose(fout); 
63 }
64 void process(STU s[], int n) 
65 {
66     int i,j,k;
67     STU temp;
68     for(i=0;i<n;i++)
69         s[i].sum=s[i].objective+s[i].subjective;
70     for(i=0;i<n;i++)
71         for(k=0;k<n-1-i;k++)
72             if(s[k].sum<s[k+1].sum)
73             {
74                 temp=s[k];
75                 s[k]=s[k+1];
76                 s[k+1]=temp;
77              }
78     j=n/10;
79     for(i=0;i<j;i++)
80         strcpy(s[i].level,"优秀");
81     k=n/2;
82     for(i=j;i<k;i++)
83         strcpy(s[i].level,"合格");
84     for(i=k;i<n;i++)
85         strcpy(s[i].level,"不合格"); 
86     
87  }

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #define N 81
 5 #define M 5
 6 typedef struct
 7 {
 8    long int id; 
 9    char name[20];
10    char banji[60];
11 }STU;
12 int main()
13 {
14     int i,j; 
15     STU x[N],ran[M];
16     FILE *fin,*fout;
17     fin = fopen("list.txt","r");
18     if(fin == NULL) 
19     { 
20        printf("fail to open list.txt\n"); 
21        return 1;
22     }  
23     for(i=1;i<=N;i++)
24        fscanf(fin, "%ld %s %s", &x[i].id, x[i].name, x[i].banji); 
25     fclose(fin);
26     srand(time(0));   
27     j = rand()%(80)+1;   
28     for(i=0;i<M;i++)
29     {
30         ran[i] = x[j];
31         j = rand()%(80)+1;
32     }
33     fout = fopen("lucky.txt", "w"); 
34     if(fout == NULL) 
35     { 
36        printf("fail to open file\n"); 
37        return 1; 
38     }
39     for(i=0;i<M;i++) 
40     {
41        fprintf(fout, "%ld %s %s\n", ran[i].id, ran[i].name, ran[i].banji); 
42        printf("%ld %s %s\n", ran[i].id, ran[i].name, ran[i].banji);
43     }
44     fclose(fout); 
45     return 0;
46 }

 



这篇关于实验五的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程