實驗七 黃厚銘202083450067
阿新 • • 發佈:2021-01-01
實驗任務1
略
實驗任務2
略
實驗任務3
如圖,執行程式之後正確輸出了降序的資訊,並且生成了file3.dat並且其中的資料資訊直觀可讀。
實驗任務4
ex4.1
如圖,程式正確輸出了降序的資訊,同時生成了file4.dat,但是由於該檔案是二進位制檔案,所以對於我們人類來說並不直觀。
ex4.2
#include<stdio.h> #include<stdlib.h> #define N 10 typedef struct student{ int num; char name[20]; int score; }STU;int main(){ FILE *fin, *fout; STU st[10]; int i=0; fin=fopen("file4.dat","rb"); if(!fin){ printf("Error 404\n"); exit(0); } while(!feof(fin))fread(st+(i++),sizeof(STU),1,fin); fclose(fin); for(int j=0;j<N;j++)printf("%-6d%-10s%5d\n", st[j].num, st[j].name, st[j].score);return 0; }
實驗任務5
#include<stdio.h> #include<stdlib.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[], intn); 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; fin = fopen("examinee.txt","r"); if(!fin){ printf("Error\n"); exit(0); } for(int 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 process(STU s[], int n){ STU temp; for(int i=0;i<n;i++)s[i].sum = s[i].objective + s[i].subjective; for(int i=0;i<n-1;i++){ int k=i; for(int j=i+1;j<n;j++) if(s[k].sum<s[j].sum){ temp = s[k]; s[k] = s[j]; s[j] = temp; } } for(int i=0;i<n;i++) if(i<=0.1*n)strcpy(s[i].level, "優秀"); else if(i>0.1*n && i<=0.5*n)strcpy(s[i].level,"合格"); else strcpy(s[i].level, "不合格"); } void output(STU s[], int n){ FILE *fin; fin = fopen("result.txt","w"); if(!fin){ printf("Error\n"); exit(0); } fwrite(s, sizeof(STU), n, fin); for(int i=0;i<n;i++)printf("%-5ld%-10s%-6.0f%-5.0f%-5.0f%6s\n",s[i].id, s[i].name, s[i].objective, s[i].subjective, s[i].sum, s[i].level); fclose(fin); }
實驗總結:或許對很多人來說這是最後一次C語言實驗,但對於我而言,我認為自己的C語言學習才剛剛開始。學了一個學期C語言,感覺自己還是隻能寫一點簡單的程式碼、擺弄擺弄冰冷的執行小黑窗,完全沒有做出任何視覺化的東西,這無疑帶來一定的挫敗感。但同時也正是由於內心的不甘心,驅使鞭策著我將程式設計學習繼續堅定地進行下去,雖然自己水平不高、功力不足,但我願意靜下心來,和時間作朋友、相信複利性學習的力量,不斷的去積累。2021年來了,願我在新的一年裡求知若渴、虛心若愚,在程式設計上學有所成:)