![C語言學(xué)生成績管理系統(tǒng)設(shè)計報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/22822b82-8ab6-4e13-b473-b4695c9ddacf/22822b82-8ab6-4e13-b473-b4695c9ddacf1.gif)
![C語言學(xué)生成績管理系統(tǒng)設(shè)計報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/22822b82-8ab6-4e13-b473-b4695c9ddacf/22822b82-8ab6-4e13-b473-b4695c9ddacf2.gif)
![C語言學(xué)生成績管理系統(tǒng)設(shè)計報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/22822b82-8ab6-4e13-b473-b4695c9ddacf/22822b82-8ab6-4e13-b473-b4695c9ddacf3.gif)
![C語言學(xué)生成績管理系統(tǒng)設(shè)計報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/22822b82-8ab6-4e13-b473-b4695c9ddacf/22822b82-8ab6-4e13-b473-b4695c9ddacf4.gif)
![C語言學(xué)生成績管理系統(tǒng)設(shè)計報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/22822b82-8ab6-4e13-b473-b4695c9ddacf/22822b82-8ab6-4e13-b473-b4695c9ddacf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計報告2015 2016學(xué)年第二學(xué)期課程名稱 C語言程序設(shè)計 題 目 學(xué)生成績管理系統(tǒng) 學(xué)生 XXX 學(xué) 號 XXX 專業(yè)班級 XXX 指導(dǎo)教師 XXX 合 作 者 XXX 2016年 6月 30日學(xué)生成績管理系統(tǒng)本程序可實現(xiàn)對學(xué)生語數(shù)外三門課程成績的錄入與保存。1、 設(shè)計目的 本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系統(tǒng)開發(fā)流程,熟悉C語言的各種語法、編寫流程、以與能夠熟練運用各種算法、以與各種函數(shù)的使用。2、 功能描述本程序可實現(xiàn)的功能:(1) 錄入學(xué)生的成績(2) 輸出學(xué)生的成績(3) 添加學(xué)生的成績信息(4) 刪除指定學(xué)生的成績信息(5) 按照要求對學(xué)
2、生成績信息進(jìn)行排序(6) 根據(jù)學(xué)號查詢指定學(xué)生的成績(7) 將學(xué)生的成績信息以文件形式保存3、 總體設(shè)計3.1具體實現(xiàn) main()函數(shù):程序首先調(diào)用menu()函數(shù),顯示出系統(tǒng)主菜單,然后將menu()函數(shù)返回的從用戶讀取的選項k值賦予k,接著進(jìn)入switchcase語句進(jìn)入對應(yīng)選項函數(shù),若輸入錯誤沒有該選項則給出提示(default)以上過程為一個死循環(huán),直到用戶輸入0為止。menu()函數(shù):在屏幕上打印選項名稱,然后用一個int類型的變量接受從用戶輸入的選項,最后將其return至主函數(shù)。score *creatlink()函數(shù):創(chuàng)建鏈表主要實現(xiàn)流程如下:print()函數(shù):先令P=he
3、ad,使p指向第一個節(jié)點,當(dāng)head=!NULL時說明沒有到鏈表尾端,那么就輸出p所指向的結(jié)構(gòu)數(shù)據(jù),然后讓p指向下一個節(jié)點,直到發(fā)現(xiàn)p=NULL為止。而當(dāng)head=NULL說明鏈表中不存在數(shù)據(jù),直接停止輸出。score *add()函數(shù),添加新的學(xué)生信息,具體實現(xiàn)路程如流程圖所示(圖片制作時沒有加Y/N判斷,在判斷圖框中均為向左為真,向右為假):score *search()函數(shù):用來查詢學(xué)生成績,傳遞給函數(shù)指向鏈表的頭指針,查詢時,如果找到與輸入相匹配的學(xué)號則打印此學(xué)生,反之則輸出“沒有任何學(xué)生資料!”:score *sortdata()函數(shù):該函數(shù)有學(xué)號、單科成績排序(冒泡排序法),實行過
4、程如圖:save()函數(shù):用來保存數(shù)據(jù),首先從用戶輸入取得要保存的文件名,然后定義一個指向文件的指針,以讀寫方式打開文件。將寫生信息依次存入文件。score *load()函數(shù):用于讀取數(shù)據(jù),通過“r+”方式打開文件并判斷是否打開成功。具體實現(xiàn)如下:score *statistics()函數(shù):它能實現(xiàn)程序的統(tǒng)計,通過switch-case語句選擇統(tǒng)計方式,通過循環(huán)計算總分或者平均分并打印出來,流程都是通過循環(huán),讓指針逐個遍歷整個鏈表,讀取相應(yīng)的數(shù)據(jù)并實現(xiàn)統(tǒng)計3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計數(shù)據(jù)結(jié)構(gòu):定義了一個包含學(xué)生成績信息的結(jié)構(gòu)體(struct scorenode),學(xué)生信息包括學(xué)號(number)、(n
5、ame10)、語文、數(shù)學(xué)、英語成績(chinese、mathmatic、english)、以與指向下一個結(jié)構(gòu)體的鏈表指針(struct scorenode *next)。3.3函數(shù)功能描述main()函數(shù):主函數(shù)功能主要是讓程序選擇將要進(jìn)行的操作,通過menu()函數(shù)返回的選項進(jìn)入其他函數(shù)執(zhí)行。int menu(int k)函數(shù):此函數(shù)顯示主菜單容,需要一個int類型變量作為輸入要執(zhí)行的選項并返回給main()函數(shù)。score *creatlink()函數(shù):此函數(shù)用于創(chuàng)建鏈表,為了節(jié)省存空間,我們采用malloc()函數(shù)為結(jié)構(gòu)體分配動態(tài)存空間。另外考慮到學(xué)號不可能是0,所以用輸入0 的方式來判
6、斷是否結(jié)束輸入,將最后的結(jié)構(gòu)體中的指針指向NULL,并返回一個指向鏈表第一個結(jié)構(gòu)的指針。void print(score *head)函數(shù):此函數(shù)返回值為空,知識為了在stdout流(屏幕)上打印出學(xué)生的成績信息,需要一個指向鏈表頭的指針來逐個向后打印。score *add(score *head , score *stu)函數(shù):為學(xué)生信息中添加新的學(xué)生資料,然后重新排序(按學(xué)號),并返回頭指針。傳入函數(shù)的head為鏈表頭指針,stu指針指的是要添加的位置。score *search(score *head)函數(shù):按照學(xué)號查找學(xué)生信息,需要鏈表頭指針并返回指向被搜索學(xué)生的指針。搜索原理就是從頭
7、向后面依次檢索。score *dele(score *head)函數(shù):刪除指定學(xué)生的資料。傳入頭指針,在函數(shù)中創(chuàng)建變量儲存要刪除學(xué)生的學(xué)號,然后從頭向尾檢索,直至找到該學(xué)生并將其刪除,返回頭指針。score *sortdata(score *head)函數(shù):用于按要求(學(xué)號、單科成績)排序,最后返回頭指針,排序運用老師上課時講過的冒泡排序法。int save(score *p1)函數(shù):將鏈表的數(shù)據(jù)以文件的形式儲存,傳入的p1指針一開始指向鏈表頭,隨著儲存順序一個一個地向后面指,直到NULL為止。函數(shù)部定義一個指向文件的指針*fp,用于寫入文件。score *load(score *head)函
8、數(shù):讀取文件數(shù)據(jù),head為一個新建的鏈表頭指針,讀取文件數(shù)據(jù)之后令其保存至新建的鏈表之中,并返回頭指針。score *statistics(score *head)函數(shù):統(tǒng)計成績,可以統(tǒng)計總分、平均分、最高(低)分,返回操作后的鏈表首地址(頭指針)。4、 程序?qū)崿F(xiàn)4.1源代碼#include <malloc.h>#include <stdio.h>#include<stdlib.h>#include <string.h>#define LEN sizeof(struct scorenode)#define DEBUG/*=數(shù)據(jù)結(jié)構(gòu)=*/stru
9、ct scorenodeint number;/學(xué)生學(xué)號char name10;/學(xué)生float chinese;/語文成績float mathmatic;/數(shù)學(xué)成績float english;/英語成績 struct scorenode *next;typedef struct scorenode score;/定義結(jié)構(gòu)體變量typedef struct scorenode *scoreptr;/定義結(jié)構(gòu)體變量指針int n,k; /*n,k為全局變量,本程序中的函數(shù)均可以使用它,分別用于記數(shù)和標(biāo)記*/*=創(chuàng)建鏈表=*/*返回一個指向鏈表頭的指針*/score *creatlink()sco
10、re*head;score *p1,*p2,*p3,*max;int i,j;float fen;char t10;n=0;p1=p2=p3=(score *)malloc(LEN);head=p3;/開辟一個新單元printf("請輸入學(xué)生資料,輸0退出!n");repeat1: printf("請輸入學(xué)生學(xué)號(學(xué)號應(yīng)大于0):");/輸入學(xué)號,學(xué)號應(yīng)大于0scanf("%d",&p1->number);while(p1->number<0)getchar();printf("輸入錯誤,請重新輸入
11、學(xué)生學(xué)號:");scanf("%d",&p1->number);/輸入學(xué)號為字符或小于0時,程序報錯,提示重新輸入學(xué)號 if(p1->number=0)goto end;/當(dāng)輸入的學(xué)號為0時,轉(zhuǎn)到末尾,結(jié)束創(chuàng)建鏈表else p3=head;if(n>0)for(i=0;i<n;i+)if(p1->number!=p3->number)p3=p3->next;else printf("學(xué)號重復(fù),請重輸!n"); goto repeat1;/*當(dāng)輸入的學(xué)號已經(jīng)存在,程序報錯,返回前面重新輸入*/ p
12、rintf("請輸入學(xué)生:");scanf("%s",&p1->name); /*輸入學(xué)生*/printf("請輸入語文成績(0100):"); /*輸入語文成績,成績應(yīng)在0-100*/scanf("%f",&p1->chinese);while(p1->chinese<0|p1->chinese>100)getchar();printf("輸入錯誤,請重新輸入語文成績"); /*輸入錯誤,重新輸入語文成績直到正確為止*/ scanf(&quo
13、t;%f",&p1->chinese); printf("請輸入數(shù)學(xué)成績(0100):"); /*輸入數(shù)學(xué)成績,成績應(yīng)在0-100*/ scanf("%f",&p1->mathmatic); while(p1->mathmatic<0|p1->mathmatic>100) getchar();printf("輸入錯誤,請重新輸入數(shù)學(xué)成績"); /*輸入錯誤,重新輸入數(shù)學(xué)成績直到正確為止*/scanf("%f",&p1->mathmatic)
14、; printf("請輸入英語成績(0100):"); /*輸入英語成績,成績應(yīng)在0-100*/ scanf("%f",&p1->english); while(p1->english<0|p1->english>100)getchar(); printf("輸入錯誤,請重新輸入英語成績"); scanf("%f",&p1->english); /*輸入錯誤,重新輸入英語成績直到正確為止*/head=NULL;while(p1->number!=0)n=n+
15、1;if(n=1) head=p1;elsep2->next=p1;p2=p1;p1=(score *)malloc(LEN);printf("請輸入學(xué)生資料,輸0退出!n");repeat2:printf("請輸入學(xué)生學(xué)號(學(xué)號應(yīng)大于0):");scanf("%d",&p1->number); /*輸入學(xué)號*/while(p1->number<0)getchar();printf("輸入錯誤,請重新輸入學(xué)生學(xué)號:");scanf("%d",&p1->
16、;number); /*輸入學(xué)號為字符或小于0時,程序報錯,提示重新輸入學(xué)號*/if(p1->number=0)goto end; /*當(dāng)輸入的學(xué)號為0時,轉(zhuǎn)到末尾,結(jié)束創(chuàng)建鏈表*/elsep3=head;if(n>0)for(i=0;i<n;i+)if(p1->number!=p3->number)p3=p3->next;else printf("學(xué)號重復(fù),請重輸!n");goto repeat2; /*當(dāng)輸入的學(xué)號已經(jīng)存在,程序報錯,返回前面重新輸入*/ printf("請輸入學(xué)生:");scanf("%
17、s",&p1->name); /*輸入學(xué)生*/printf("請輸入語文成績(0100):");scanf("%f",&p1->chinese); /*輸入語文成績,成績應(yīng)在0-100*/while(p1->chinese<0|p1->chinese>100)getchar();printf("輸入錯誤,請重新輸入語文成績");scanf("%f",&p1->chinese); /*輸入錯誤,重新輸入語文成績直到正確為止*/printf(&
18、quot;請輸入數(shù)學(xué)成績(0100):");scanf("%f",&p1->mathmatic); /*輸入數(shù)學(xué)成績,成績應(yīng)在0-100*/while(p1->mathmatic<0|p1->mathmatic>100)getchar();printf("輸入錯誤,請重新輸入數(shù)學(xué)成績");scanf("%f",&p1->mathmatic); /*輸入錯誤,重新輸入數(shù)學(xué)成績直到正確為止*/printf("請輸入英語成績(0100):");scanf(&q
19、uot;%f",&p1->english); /*輸入英語成績,成績應(yīng)在0-100*/while(p1->english<0|p1->english>100)getchar();printf("輸入錯誤,請重新輸入英語成績");scanf("%f",&p1->english); /*輸入錯誤,重新輸入英語成績直到正確為止*/end:p1=head;p3=p1;for(i=1;i<n;i+)for(j=i+1;j<=n;j+)max=p1;p1=p1->next;if(max-
20、>number>p1->number)k=max->number;max->number=p1->number;p1->number=k; /*交換前后結(jié)點中的學(xué)號值,使得學(xué)號大者移到后面的結(jié)點中*/strcpy(t,max->name);strcpy(max->name,p1->name);strcpy(p1->name,t); /*交換前后結(jié)點中的,使之與學(xué)號相匹配*/fen=max->chinese;max->chinese=p1->chinese;p1->chinese=fen; /*交換前后結(jié)點
21、中的語文成績,使之與學(xué)號相匹配*/fen=max->mathmatic;max->mathmatic=p1->mathmatic;p1->mathmatic=fen; /*交換前后結(jié)點中的數(shù)學(xué)成績,使之與學(xué)號相匹配*/fen=max->english;max->english=p1->english;p1->english=fen; /*交換前后結(jié)點中的英語成績,使之與學(xué)號相匹配*/max=head;p1=head; /*重新使max,p指向鏈表頭*/ p2->next=NULL; /*鏈表結(jié)尾*/printf("輸入的學(xué)生數(shù)為:
22、%d個!n",n);return(head);/*=顯示數(shù)據(jù)=*/*函數(shù)print,功能:顯示學(xué)生成績*/void print(score *head) score *p; if(head=NULL) printf("n沒有任何學(xué)生資料!n"); else printf("%dn",n); printf("-n");printf("|學(xué)號t|t|語文t|數(shù)學(xué)t|英語t|n"); printf("-n"); /*打印表格域*/ p=head; do printf("|%dt|%
23、st|%.1ft|%.1ft|%.1ft|n",p->number,p->name,p->chinese,p->mathmatic,p->english); printf("-n"); /*打印表格域*/ p=p->next;while (p!=NULL); /*=添加學(xué)生數(shù)據(jù)=*/*函數(shù)add,功能:追加學(xué)生資料,并且將所有學(xué)生資料按學(xué)號排序*/score *add(score *head,score *stu) score *p0,*p1,*p2,*p3,*max; int i,j; float fen; char t10;
24、 p3=stu=(score *)malloc(LEN); /*開辟一個新單元*/ printf("n輸入要增加的學(xué)生的資料!"); repeat4: printf("請輸入學(xué)生學(xué)號(學(xué)號應(yīng)大于0):"); scanf("%d",&stu->number); /*輸入學(xué)號,學(xué)號應(yīng)大于0*/ while(stu->number<0) getchar(); printf("輸入錯誤,請重新輸入學(xué)生學(xué)號:"); scanf("%d",&stu->number);
25、 /*輸入錯誤,重新輸入學(xué)號*/ if(stu->number=0) goto end2; /*當(dāng)輸入的學(xué)號為0時,轉(zhuǎn)到末尾,結(jié)束追加*/ else p3=head; if(n>0) for(i=0;i<n;i+) if(stu->number!=p3->number) p3=p3->next; else printf("學(xué)號重復(fù),請重輸!n"); goto repeat4; /*當(dāng)輸入的學(xué)號已經(jīng)存在,程序報錯,返回前面重新輸入*/ printf("輸入學(xué)生:"); scanf("%s",stu-&
26、gt;name); /*輸入學(xué)生*/ printf("請輸入語文成績(0100):"); scanf("%f",&stu->chinese); /*輸入語文成績,成績應(yīng)在0-100*/ while(stu->chinese<0|stu->chinese>100) getchar(); printf("輸入錯誤,請重新輸入語文成績"); scanf("%f",&stu->chinese); /*輸入錯誤,重新輸入語文成績直到正確為止*/ printf("請
27、輸入數(shù)學(xué)成績(0100):"); scanf("%f",&stu->mathmatic); /*輸入數(shù)學(xué)成績,成績應(yīng)在0-100*/ while(stu->mathmatic<0|stu->mathmatic>100) getchar();printf("輸入錯誤,請重新輸入數(shù)學(xué)成績"); scanf("%f",&stu->mathmatic); /*輸入錯誤,重新輸入數(shù)學(xué)成績直到正確為止*/printf("請輸入英語成績(0100):");scanf(
28、"%f",&stu->english); /*輸入英語成績,成績應(yīng)在0-100*/while(stu->english<0|stu->english>100)getchar(); printf("輸入錯誤,請重新輸入英語成績");scanf("%f",&stu->english); /*輸入錯誤,重新輸入英語成績直到正確為止*/p1=head;p0=stu;if(head=NULL) head=p0;p0->next=NULL; /*當(dāng)原來鏈表為空時,從首結(jié)點開始存放資料*/
29、else /*鏈表不為空*/ if(p1->next=NULL) /*找到原來鏈表的末尾*/ p1->next=p0; p0->next=NULL; /*將它與新開單元相連接*/ else while(p1->next!=NULL) /*還沒找到末尾,繼續(xù)找*/ p2=p1;p1=p1->next; p1->next=p0; p0->next=NULL; n=n+1;p1=head;p0=stu; for(i=1;i<n;i+) for(j=i+1;j<=n;j+) max=p1; p1=p1->next; if(max->nu
30、mber>p1->number) k=max->number; max->number=p1->number; p1->number=k; /*交換前后結(jié)點中的學(xué)號值,使得學(xué)號大者移到后面的結(jié)點中*/ strcpy(t,max->name); strcpy(max->name,p1->name); strcpy(p1->name,t); /*交換前后結(jié)點中的,使之與學(xué)號相匹配*/ fen=max->chinese; max->chinese=p1->chinese; p1->chinese=fen; /*交換前
31、后結(jié)點中的語文成績,使之與學(xué)號相匹配*/ fen=max->mathmatic; max->mathmatic=p1->mathmatic; p1->mathmatic=fen; /*交換前后結(jié)點中的數(shù)學(xué)成績,使之與學(xué)號相匹配*/ fen=max->english; max->english=p1->english; p1->english=fen; /*交換前后結(jié)點中的英語成績,使之與學(xué)號相匹配*/ max=head;p1=head ; /*重新使max,p指向鏈表頭*/ end2: printf("現(xiàn)在的學(xué)生數(shù)為:%d個!n&quo
32、t;,n); return(head);/*=查詢數(shù)據(jù)=*/*函數(shù)search,功能:查詢學(xué)生成績*/score *search(score *head) int number; score *p1,*p2; printf("輸入要查詢的學(xué)生的學(xué)號:"); scanf("%d",&number);while(number!=0) if(head=NULL) printf("n沒有任何學(xué)生資料!n");return(head); printf("-n"); printf("|學(xué)號t|t|語文t|數(shù)學(xué)
33、t|英語t|n"); printf("-n"); p1=head; while(number!=p1->number&&p1->next!=NULL) p2=p1;p1=p1->next; if(number=p1->number) printf("|%dt|%st|%.1ft|%.1ft|%.1ft|n",p1->number,p1->name,p1->chinese,p1->mathmatic,p1->english); printf("-n"); e
34、lse printf("%d不存在此學(xué)生!n",number); printf("輸入要查詢的學(xué)生的學(xué)號,"); scanf("%d",&number);printf("已經(jīng)退出了!n");return(head);/*=刪除數(shù)據(jù)=*/*函數(shù)dele,功能:刪除學(xué)生資料*/score *dele(score *head) score *p1,*p2; int number; printf("輸入要刪除的學(xué)生的學(xué)號(輸入0時退出):"); scanf("%d",&
35、;number); getchar(); while(number!=0) /*輸入學(xué)號為0時退出*/ if(head=NULL) printf("n沒有任何學(xué)生資料!n"); return(head); p1=head; while(number!=p1->number&&p1->next!=NULL) /*p1指向的不是所要找的首結(jié)點,并且后面還有結(jié)點*/ p2=p1;p1=p1->next; /*p1后移一個結(jié)點*/ if(number=p1->number) /*如果找到了*/ if(p1=head) head=p1->
36、next; /*若p1指向的是首結(jié)點,把地二個結(jié)點地址賦予head*/ else p2->next=p1->next; /*否則將下一個結(jié)點地址 賦給前一結(jié)點地址*/ printf("刪除:%dn",number);n=n-1; else printf("%d不存在此學(xué)生!n",number); /*找不到該結(jié)點*/ printf("輸入要刪除的學(xué)生的學(xué)號:"); scanf("%d",&number); getchar(); #ifdef DEBUG printf("已經(jīng)退出了!n&
37、quot;);#endifprintf("現(xiàn)在的學(xué)生數(shù)為:%d個!n",n); return(head);/*=排序=*/*定義排序函數(shù)。此函數(shù)帶回一個指向鏈表頭的指針*/score *sortdata(score *head) score *p,*max;int i,j,x;float fen;char t10;if(head=NULL)printf("n沒有任何學(xué)生資料,請先建立鏈表!n");return(head); /*鏈表為空*/max=p=head;for(i=0;i<80;i+)printf("*");printf
38、("1按學(xué)生學(xué)號排序t2按學(xué)生排序t3按語文成績排序n");printf("4按數(shù)學(xué)成績排序t5按英語成績排序tn");for(i=0;i<80;i+)printf("*");printf("請選擇操作:");scanf("%d",&x); /*選擇操作*/getchar();switch(x) /*用switch語句實現(xiàn)功能選擇*/case 1 : for(i=1;i<n;i+)for(j=i+1;j<=n;j+)max=p;p=p->next;if(max-&
39、gt;number>p->number)k=max->number;max->number=p->number;p->number=k; /*交換前后結(jié)點中的學(xué)號值,使得學(xué)號大者移到后面的結(jié)點中*/strcpy(t,max->name);strcpy(max->name,p->name);strcpy(p->name,t); /*交換前后結(jié)點中的,使之與學(xué)號相匹配*/fen=max->chinese;max->chinese=p->chinese;p->chinese=fen; /*交換前后結(jié)點中的語文成績,使
40、之與學(xué)號相匹配*/fen=max->mathmatic;max->mathmatic=p->mathmatic;p->mathmatic=fen; /*交換前后結(jié)點中的數(shù)學(xué)成績,使之與學(xué)號相匹配*/fen=max->english;max->english=p->english;p->english=fen; /*交換前后結(jié)點中的英語成績,使之與學(xué)號相匹配*/max=head;p=head;/*重新使max,p指向鏈表頭*/print(head);break;/*打印值排序后的鏈表容*/case 2 :for(i=1;i<n;i+)for(
41、j=i+1;j<=n;j+)max=p;p=p->next;if(strcmp(max->name,p->name)>0)/*strcmp:字符串比較函數(shù)*/strcpy(t,max->name);/*strcpy:字符串復(fù)制函數(shù)*/strcpy(max->name,p->name);strcpy(p->name,t); /*交換前后結(jié)點中的,使得字符串的值大者移到后面的結(jié)點中*/k=max->number;max->number=p->number;p->number=k; /*交換前后結(jié)點中的學(xué)號值,使之與相匹配
42、*/fen=max->chinese;max->chinese=p->chinese;p->chinese=fen; /*交換前后結(jié)點中的語文成績,使之與相匹配*/fen=max->mathmatic;max->mathmatic=p->mathmatic;p->mathmatic=fen; /*交換前后結(jié)點中的數(shù)學(xué)成績,使之與相匹配*/fen=max->english;max->english=p->english;p->english=fen; /*交換前后結(jié)點中的英語成績,使之與相匹配*/p=head;max=hea
43、d;print(head);break;case 3 :for(i=1;i<n;i+)for(j=i+1;j<=n;j+)max=p;p=p->next;if(max->chinese>p->chinese)fen=max->chinese;max->chinese=p->chinese;p->chinese=fen; /*交換前后結(jié)點中的語文成績,使得語文成績高者移到后面的結(jié)點中*/k=max->number;max->number=p->number;p->number=k; /*交換前后結(jié)點中的學(xué)號,使之
44、與語文成績相匹配*/strcpy(t,max->name);strcpy(max->name,p->name);strcpy(p->name,t); /*交換前后結(jié)點中的,使之與語文成績相匹配*/fen=max->mathmatic;max->mathmatic=p->mathmatic;p->mathmatic=fen; /*交換前后結(jié)點中的數(shù)學(xué)成績,使之與語文成績相匹配*/fen=max->english;max->english=p->english;p->english=fen; /*交換前后結(jié)點中的英語成績,使之
45、與語文成績相匹配*/p=head;max=head;print(head);break;case 4 :for(i=1;i<n;i+)for(j=i+1;j<=n;j+)max=p;p=p->next;if(max->mathmatic>p->mathmatic)fen=max->mathmatic;max->mathmatic=p->mathmatic;p->mathmatic=fen; /*交換前后結(jié)點中的數(shù)學(xué)成績,使得數(shù)學(xué)成績高者移到后面的結(jié)點中*/k=max->number;max->number=p->nu
46、mber;p->number=k; /*交換前后結(jié)點中的學(xué)號,使之與數(shù)學(xué)成績相匹配*/strcpy(t,max->name);strcpy(max->name,p->name);strcpy(p->name,t); /*交換前后結(jié)點中的,使之與數(shù)學(xué)成績相匹配*/fen=max->chinese;max->chinese=p->chinese;p->chinese=fen; /*交換前后結(jié)點中的語文成績,使之與數(shù)學(xué)成績相匹配*/fen=max->english;max->english=p->english;p->english=fen; /*交換前后結(jié)點中的英語成績,使之與數(shù)學(xué)成績相匹配*/p=head;max=head;print(head);break;case 5 : for(i=1;i<n;i+)for(j=i+1;j<=n;j+)max=p;p=p->next;if(max->english>p->english)fen=max->english;max->english=p->english;p->english=fen; /*交換前后結(jié)點中的英
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)定明確的工作優(yōu)先級計劃
- 財務(wù)分析在企業(yè)評估中的應(yīng)用計劃
- 教學(xué)創(chuàng)新與成果分享機制計劃
- 防止職業(yè)倦怠的小技巧計劃
- 醫(yī)學(xué)影像科醫(yī)生工作計劃
- 建立員工反饋與建議機制計劃
- 2025年電動晾衣機項目合作計劃書
- 景區(qū)承包合同
- 珠寶定制服務(wù)特殊條款協(xié)議
- 農(nóng)產(chǎn)品電商項目開發(fā)合作框架協(xié)議
- (完整版)中心醫(yī)院心血管學(xué)科的專科建設(shè)與發(fā)展規(guī)劃
- 勞動合同法草案的立法背景與創(chuàng)新黎建飛中國人民大學(xué)法學(xué)院教授
- 第三章 檢測儀表與傳感器
- 服裝QC尾期查貨報告(中英雙語)
- 冷庫噴涂施工工藝(詳細(xì))
- 電機學(xué)辜承林(第三版)第1章
- 醫(yī)療機構(gòu)停業(yè)(歇業(yè))申請書
- Counting Stars 歌詞
- 肩鎖關(guān)節(jié)脫位的分型及其endobutton手術(shù)治療
- 管理系統(tǒng)中計算機應(yīng)用PPT課件
- 企業(yè)辦公自動化系統(tǒng)設(shè)計與實現(xiàn)
評論
0/150
提交評論