歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 學生成績管理系統(tǒng)

  • 資源ID:28809890       資源大?。?span id="it0tlc0" class="font-tahoma">167.01KB        全文頁數(shù):20頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 學生成績管理系統(tǒng)

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(實訓(xùn))報告書 信息科學與技術(shù)學院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(實訓(xùn))報告書 題 目: 學生成績管理系統(tǒng) 專 業(yè): 信息管理與信息系統(tǒng) 班 級: - 姓 名: - 學 號: - _指導(dǎo)老師: - - 設(shè)計時間:2011年3月14日 2011年3月18日目 錄數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(實訓(xùn))報告書11. 課程設(shè)計(實訓(xùn))計劃12. 系統(tǒng)需求分析與功能設(shè)計13. 總體設(shè)計14、算法說明25、系統(tǒng)難點分析36、系統(tǒng)測試37、心得體會88、參考文獻9附錄源代碼9數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(實訓(xùn))報告書1. 課程設(shè)計(實訓(xùn))計劃(1)編寫算法;(2)算法測試;(3)設(shè)計實驗報告: 1)設(shè)計任務(wù)書 2)目錄 3)總體設(shè)計方案(流程圖) 4)使用說明書及運行實例(界面) 5)源代碼及注釋 6)課程設(shè)計心得2. 系統(tǒng)需求分析與功能設(shè)計(1)成績管理系統(tǒng)主要功能: 1)初始化鏈表 2)輸入數(shù)據(jù) 3)顯示全部記錄4)查詢記錄(分按姓名和學號查詢兩種)5)刪除記錄6)添加記錄6)學生成績排名并顯示排名(2)界面設(shè)計 系統(tǒng)界面采用圖形和數(shù)字化菜單設(shè)計(3)課程設(shè)計的要求和數(shù)據(jù) 1)C語言實現(xiàn)2)對學生信息進行管理(包括成績的輸入、輸出、查詢、刪除、排序、退出)3)學生信息:基本信息:學號、姓名、性別、成績等學生成績輸入(一次性輸入一條記錄并計算總分及平均分)顯示信息:完成全部學生記錄的顯示查詢信息:完成按學號和按姓名查詢記錄,并顯示刪除信息:按學號刪除信息排序:按學生總分排序,顯示排名4)應(yīng)提供一個主界面調(diào)用各項功能,使得操作界面清晰美觀5)退出系統(tǒng),記錄無保存3. 總體設(shè)計1、功能模塊:(1)成績輸入功能(2)成績輸出功能(3)成績查詢功能(4)刪除功能(5)排序功能(6)退出系統(tǒng)2、詳細設(shè)計:(1)初始化學生信息表:申請頭結(jié)點STU *head,head->next=NULL;實現(xiàn)此操作(2)成績輸出模塊:void xianshi(L) void paixu(L) void chaxun(L)通過此輸出信息(3)查詢模塊:void chanzhao(L)實現(xiàn)個種查找功能(4)刪除功能:void shanchu(L)(5)排序功能:void paixu(L)3、總體設(shè)計方案程序流程圖:結(jié)束開始輸出菜單根據(jù)菜單輸入n的值選擇程序輸入退出輸出查找排序添加刪除4、算法說明Void main()主函數(shù)(內(nèi)含初始化鏈表head=(STU *) malloc (sizeof(STU); head->next=NULL、主界面、函數(shù)調(diào)用模塊應(yīng)用switch()語句);Void shuru(L)創(chuàng)建輸入數(shù)據(jù):r=(STU*)malloc(sizeof(STU)申請結(jié)點輸入數(shù)據(jù),插入到鏈表,r->next=NULL;s->next=r;s=r;保存;Void xianshi(L)顯示學生信息:應(yīng)用循環(huán)語句while(q->next!=tail)輸出每一節(jié)點數(shù)據(jù),直至q指向為節(jié)點tail=NULL;Void chaxun(L)查找學生信息并顯示結(jié)果:分按學號和姓名查詢并輸出查找的信息,switch做判斷按何種方式查詢,while()循環(huán)語句進行匹配查詢,知道找到為止,引用strcmp()函數(shù)進行匹配;Void chazhao( L,no)按要求查找記錄:while()語句循環(huán)按學號進行查找;Void tianjia(L)尾插法插入數(shù)據(jù),p2=(STU*)malloc(sizeof(STU)申請結(jié)點,輸入數(shù)據(jù),找到尾結(jié)點for(p3=L;p3->next!=NULL;p3=p3->next),插入鏈表p3->next=p2;Void gengxin(L)修改學生信息:查找函數(shù)chazhao()找到要修改的節(jié)點,再進行修改Void shanchu(L)刪除學生記錄:while(strcmp(p->sname,name)!=0)&&p->next!=NULL)找到要刪除的節(jié)點,進行刪除;Void mingci(L)為學生成績排名并顯示排名;冒泡排序法給鏈表安總成績排名,然后for()循環(huán)輸出排序完的鏈表數(shù)據(jù)。5、系統(tǒng)難點分析1、鏈表的排序,只能做到初步的排序,不能實現(xiàn)對成績相同的學生排名相同功能;2、查找功能不夠強大,對字符串的查詢比如不區(qū)分大小寫功能不能實現(xiàn);3、對各種輸入值不加于區(qū)分,比如姓名寫成數(shù)字,年齡的限制(1-100)4、程序重復(fù)的語句多、繁瑣,不善應(yīng)用函數(shù)的調(diào)用。6、系統(tǒng)測試源代碼(見附錄)調(diào)試運行如下:(如圖1、圖2)圖1圖2圖3輸入測試:10輸入目的:查看輸入除主界面外的序號可否進行操作。正確輸出:輸入錯誤!請慎重選擇。實際輸出:如下圖所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:輸入一個主界面不包含的選項。得到數(shù)據(jù)顯示輸入錯誤。(如圖3)圖4輸入測試:a輸入目的:查看輸入字符可否進行操作。正確輸出:輸入錯誤!請慎重選擇。實際輸出:(圖4)當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:輸入一個主界面不包含的選項。得到數(shù)據(jù)顯示輸入錯誤。圖5已刪測試輸入:輸入姓名:邱為民;輸入學號:1;輸入性別:1為男;輸入年齡:21;輸入語文成績88;數(shù)學成績82;英語成績89;一個學生信息登記完畢。再輸入另一個學生數(shù)據(jù):輸入姓名:陳婷婷;輸入學號:1;輸入性別:測試目的:設(shè)計該輸入的目的在于測試程序在登記學生信息方面是否存在無法登記學生信息、在選擇登記學生信息時是否沒有出現(xiàn)相應(yīng)界面等情況以及能否正確輸入等功能。正確輸出:輸入姓名:邱為民;輸入學號:1;輸入性別:1為男;輸入年齡:21;輸入語文成績88;輸入數(shù)學成績82;輸入英語成績89選擇是否輸入信息請按(1、0):1;輸入姓名:陳婷婷;輸入學號:1;輸入性別:0;輸入年齡:實際輸出:如上(圖5)輸出界面。當前狀態(tài):已改正(實際輸出與正確輸出不符,但現(xiàn)在已修改正確)測試結(jié)果分析:測試策略在于輸入一組數(shù)據(jù)后以便后面的操作完成學生信息的登記。得到的數(shù)據(jù)由上面的截圖(圖5)證明。測試輸入:2選擇顯示測試目的:測試顯示功能是否能夠?qū)崿F(xiàn)正確輸出:按姓名、學號、性別、年齡、語文、數(shù)學、英語、平均分及總分顯示學生信息。實際輸出:如下圖(圖6)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:選擇查找看其是否正確找到所查找數(shù)據(jù)。得到數(shù)據(jù)結(jié)果顯示查找無誤。圖6已刪測試輸入:3選擇查找測試目的:測試查找功能是否能夠?qū)崿F(xiàn)正確輸出:1按學號查詢 2按姓名查詢 0返回主菜單 選擇1 請輸入要查找的學號:1查找結(jié)果:既要查找的數(shù)據(jù)。查詢完畢或沒有要查詢的記錄!實際輸出:如下圖(圖7)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:按學號查找,首先要輸入對應(yīng)的數(shù)據(jù),接著成功查找。顯示的數(shù)據(jù)是按學號查找的結(jié)果,無差錯。圖7已刪測試輸入:4選擇添加學生數(shù)據(jù)。測試目的:查看添加功能是否能夠運行。正確輸出:;輸入要添加的姓名:小丘;輸入添加的學號:7;輸入性別(1為男,0為女):0;輸入年齡:19;請你輸入語文成績:88;輸入數(shù)學成績:85;輸入英語成績:90;此信息已添加。并且再次查詢。實際輸出:如下圖(圖8)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:分別輸入提示信息查看添加功能是否能夠運用。通過再次查詢顯示添加無誤。圖8已刪圖9已刪測試輸入:5選擇修改學生數(shù)據(jù)。測試目的:測試是否能夠?qū)崿F(xiàn)修改功能。正確輸出:輸入要修改的人名:小丘;輸入新姓名:小球球;輸入新學號(原來是學號5):5;輸入新性別:(1是男0是女)0;輸入年齡(原來年齡是19)19;輸入語文成績(原來是88.000000分):88;輸入數(shù)學成績(原來是88.000000分):85;請你輸入英語成績(原來是88.000000分):90;提示:修改完成或沒找到要修改的項!。再次查詢并顯示查詢結(jié)果。實際輸出:如上圖(圖9)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:根據(jù)提示輸入修改的數(shù)據(jù)分別觀察是否正確。得到的數(shù)據(jù)是提示我輸入信的數(shù)據(jù)并告訴我原來的數(shù)據(jù),我根據(jù)提示輸入新的數(shù)據(jù),結(jié)果無誤。測試輸入:6選擇刪除操作。測試目的:測試其是否能夠正確刪除想要刪除的數(shù)據(jù)。正確輸出:請輸入要刪除的姓名:3; 已刪除!并顯示新的數(shù)據(jù)。實際輸出:如圖(圖10)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:根據(jù)提示進行刪除;系統(tǒng)提示刪除成功。得到的數(shù)據(jù)顯示顯示刪除成功,證明這一部分無差錯。圖10已刪測試輸入:7選擇排序測試目的:看排序功能是否能夠?qū)崿F(xiàn)正確輸出:按照名次、姓名、學號、性別、年齡、語文、數(shù)學、英語、平均分、總分顯示學生數(shù)據(jù)。實際輸出:如下圖(圖11)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:選擇排序,系統(tǒng)自動根據(jù)總分和平均分對數(shù)據(jù)進行排序并輸出。得到的數(shù)據(jù)顯示并未出錯。圖11已刪測試輸入:0選擇退出。測試目的:成功退出系統(tǒng)。正確輸出:press any key to continue.實際輸出:如下圖(圖12)所示。當前狀態(tài):通過(實際輸出與正確相符)。測試結(jié)果分析:測試策略:選擇退出以便成功退出系統(tǒng)。得到數(shù)據(jù):無誤圖12已刪7、心得體會這次的實訓(xùn)結(jié)束了,現(xiàn)在的我正在做著最后的工作填寫實訓(xùn)報告。感觸還真是很多,那幾天的堅持,每天八節(jié)課就坐在電腦前敲著代碼,有的時候晚上回了寢室還要繼續(xù)敲。可以說我們男生還是對程序這塊比較感興趣的。但是面對這么大的一個課題寫這樣的一個程序我還是第一次,所以對于我來說難道還是挺大的。很多時候焦頭爛額心煩意亂也寫不好,寫出來后反復(fù)調(diào)試反復(fù)出錯,簡直是在考驗我們的耐心??粗總€同學焦急的樣子,真的有點擔心在規(guī)定的期限內(nèi)是不是能夠完成任務(wù)。所以期間自己會想,如果將來從事了這個行業(yè),面對更加復(fù)雜的程序更加有難度的題目要求,心理壓力不是更大么?不管怎么樣,還是要把程序?qū)懲?。其中也遇到了很多困難:因為這個題目要求要有9個小題目,而且有的小題目還要求里面還要有選擇,這樣難度更加提高而且更加復(fù)雜。剛開始會理不出頭緒,不知道該先弄哪一塊。從頭開始往后寫整個程序是不可能的,那樣會錯的更加離譜,所以只好先分快些再綜合起來。而且整個星期天天對著電腦敲這樣一個程序確實很煩躁。但是告訴自己要堅持下去,到了最后把程序調(diào)試出來后,心里真的是激動萬分,感慨也頗深:面對復(fù)雜的事情而且要長期堅持時,千萬不可浮躁了事,那樣欠下的債會越來越多,一定要定下心來踏踏實實的去做,我發(fā)現(xiàn)有了好的開始,后面再亂的思緒也會慢慢捋清楚。心態(tài)很重要,第一天還好,第二天的時候,心虛特別浮躁,顯然那天的效率十分低下,回去后和朋友聊天,被開導(dǎo)后慢慢整理思緒平靜下心來開始做,發(fā)現(xiàn)一切并沒有原本想象的那么棘手。面對問題要自己主動去解決,程序過程中難免有很多難題,別人無法幫助自己,要靠自己去努力克服才能接著做下一步。所以在完成后,除了自己完成任務(wù)的喜悅感意外,還有一些感慨,我覺得這一次我不僅僅收獲了如何去寫一個程序,而是如何做好一件看似棘手困難的復(fù)雜的事情。8、參考文獻1楊路明,c語言程序設(shè)計教程.北京:郵電大學出版社,2005年12月第2版2耿國華,數(shù)據(jù)結(jié)構(gòu)C語言描述.北京:高等教育出版社,2005年7月第1版附錄源代碼如下:#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#include "linlist.h"/*定義結(jié)構(gòu)體類型typedef struct Stuchar sname20;int sno;char sex10;int nianling;float yuwen;float shuxue;float yingyu;float avg;float sum;struct Stu *next;STU,*Linlist;void shuru(L);void xianshi(L);void chaxun(L);void tianjia(L);void gengxin(L);void shanchu(L);void mingci(L);STU* chazhao(Linlist L,int no);/*主函數(shù)*/void main()int m;STU *head;head=(STU *) malloc (sizeof(STU);head->next=NULL;while(m) printf(" *歡迎進入學生成績管理*n");printf(" |輸入 0 返回 |nn");printf(" |輸入 1 輸入學生信息 |nn");printf(" |輸入 2 顯示學生信息 |nn");printf(" |輸入 3 查詢學生信息 |nn");printf(" |輸入 4 添加學生信息 |nn");printf(" |輸入 5 更新學生信息 |nn");printf(" |輸入 6 刪除學生信息 |nn");printf(" |輸入 7 計算并顯示學生排名 |n");printf(" *n");scanf("%d",&m);switch(m) case 1:shuru(L);break; case 2:xianshi(L);break; case 3:chaxun(L);break; case 4:tianjia(L);break; case 5:gengxin(L);break; case 6:shanchu(L);break; case 7:mingci(L);break; case 0:; break;default:printf("輸入錯誤!請慎重選擇n");break;/*各子函數(shù)*/STU* chazhao(Linlist L,int no) /* 按學號查詢 */ STU *r; r=L->next; while(r!=NULL) if(r->sno=no) return r; r=r->next; return 0; void shuru(Linlist head)int flag=1, c,sex,sno;STU *r=NULL,*s=NULL,*m=NULL;s=head;while(s->next!=NULL) s=s->next; /* 將指針置于最末尾 */while(1) r=(STU*)malloc(sizeof(STU);/*申請結(jié)點*/ printf("輸入姓名:"); /*添加信息*/ scanf("%s",r->sname); printf("輸入學號:");scanf("%d",&sno);m=chazhao(head,sno);while(m!=NULL)m=chazhao(head,sno); if(m!=NULL) printf("請你輸入不重復(fù)的學號:n"); scanf("%d",&sno); r->sno=sno; printf("輸入性別(1->boy,0->girl):");doscanf("%d",&sex); if(sex=1)strcpy(r->sex,"boy"); else if(sex=0) strcpy(r->sex,"girl");else printf("輸入錯誤!(1->boy,0->girl):n");while(sex!=1&&sex!=0); printf("輸入年齡:"); scanf("%d",&r->nianling); printf("輸入語文成績:"); scanf("%f",&r->yuwen); while(r->yuwen<0.0|r->yuwen>100.0) if(r->yuwen<0.0|r->yuwen>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入語文成績:"); scanf("%f",&r->yuwen); printf("輸入數(shù)學成績:"); scanf("%f",&r->shuxue); while(r->shuxue<0.0|r->shuxue>100.0) if(r->shuxue<0.0|r->shuxue>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入數(shù)學成績:"); scanf("%f",&r->shuxue); printf("輸入英語成績:"); scanf("%f",&r->yingyu); while(r->yingyu<0.0|r->yingyu>100.0) if(r->yingyu<0.0|r->yingyu>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入英語:"); scanf("%f",&r->yingyu); r->sum=r->yuwen+r->shuxue+r->yingyu; r->avg=r->sum/3; r->next=NULL; s->next=r; s=r; printf("選擇是否輸入信息請按(1/0):n"); scanf("%d",&c); if(c=0) break; /*保存鏈表*/printf("信息已輸入!n");void xianshi(Linlist L)STU *a=NULL; STU *p,*q,*tail,*s; tail=NULL; if(L->next=NULL)printf("此表中無記錄,請輸入記錄后在使用此功能!n");return; while(L->next!=tail) p=L; q=p->next; while(q->next!=tail) if(p->next->sno>q->next->sno) s=q->next; p->next=q->next; q->next=q->next->next; p->next->next=q; q=s; p=p->next; q=q->next; tail=q; a=L->next;printf("姓名t學號t性別t年齡t語文t數(shù)學t英語t平均分t總分n");for(a=L->next;a!=NULL;a=a->next)printf("%-8s%-8d%-8s%-8d%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn",a->sname,a->sno,a->sex,a->nianling,a->yuwen,a->shuxue,a->yingyu,a->avg,a->sum);void chaxun(Linlist L)STU *p;char name20;int sno, n;if(L->next=NULL)printf("此表中無記錄,請輸入記錄后在使用此功能!n");return;while(n)printf(" *請選擇查詢方式*n");printf(" 1*按學號查詢n");printf(" 2*按姓名查詢n");printf(" 0*返回主菜單n");scanf("%d",&n);switch(n)case 1:printf("請輸入要查詢的學號:n");scanf("%d",&sno);printf("*學生信息*n");printf("姓名t學號t性別t年齡t語文t數(shù)學t英語n");for(p=L->next;p!=NULL;p=p->next)if(p->sno)=sno)printf("%-8s%-8d%-8s%-8d%-10.2f%-10.2f%-10.2fn",p->sname,p->sno,p->sex,p->nianling,p->yuwen,p->shuxue,p->yingyu); printf("*查詢完畢或沒有要查詢的記錄!n");break;case 2:printf("請輸入要查詢的姓名n");scanf("%s",name);printf("*學生信息*n");printf("姓名t學號t性別t年齡t語文t數(shù)學t英語n");for(p=L->next;p!=NULL;p=p->next)if(strcmp(p->sname,name)=0)printf("%-8s%-8d%-8s%-8d%-10.2f%-10.2f%-10.2fn",p->sname,p->sno,p->sex,p->nianling,p->yuwen,p->shuxue,p->yingyu); printf("*查詢完畢或沒有要查詢的記錄!n");break;case 0:break; default:printf("輸入錯誤!請慎重選擇");break;void gengxin(Linlist L)STU *p1,*m;char name20;int sex,sno;if(L->next=NULL)printf("此表中無記錄,請輸入記錄后在使用此功能!n");return;printf("輸入要修改的人名:");scanf("%s",name);p1=L;while(p1!=NULL)if(strcmp(p1->sname,name)=0) printf("輸入新姓名:"); /*修改信息*/ scanf("%s",p1->sname); printf("輸入新學號(原來是學號%d):",p1->sno); scanf("%d",&sno); m=chazhao(L,sno);while(m!=NULL)m=chazhao(L,sno); if(m!=NULL) printf("請你輸入不重復(fù)的學號(以0返回上一級菜單:)n"); scanf("%d",&sno); p1->sno=sno; printf("輸入新性別(1->boy,0->girl):");doscanf("%d",&sex); if(sex=1)strcpy(p1->sex,"boy"); else if(sex=0) strcpy(p1->sex,"girl");else printf("輸入錯誤!(1->boy,0->girl):n");while(sex!=1&&sex!=0); printf("輸入年齡(原來年齡是%d):",p1->nianling); scanf("%d",&p1->nianling); printf("輸入語文成績(原來是%f分):",p1->yuwen); scanf("%f",&p1->yuwen); while(p1->yuwen<0.0|p1->yuwen>100.0) if(p1->yuwen<0.0|p1->yuwen>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入語文成績:"); scanf("%f",&p1->yuwen); printf("輸入數(shù)學成績(原來是%f分):",p1->shuxue); scanf("%f",&p1->shuxue); while(p1->shuxue<0.0|p1->shuxue>100.0) if(p1->shuxue<0.0|p1->shuxue>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入數(shù)學成績:"); scanf("%f",&p1->shuxue); printf("輸入英語成績(原來是%f分):",p1->yingyu); scanf("%f",&p1->yingyu); while(p1->yingyu<0.0|p1->yingyu>100.0) if(p1->yingyu<0.0|p1->yingyu>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入英語成績:"); scanf("%f",&p1->yingyu); p1->sum=p1->yuwen+p1->shuxue+p1->yingyu; p1->avg=p1->sum/3;p1=p1->next;printf("修改完成或沒找到要修改的項!n");void tianjia(Linlist L)STU *p2=NULL,*p3=NULL,*m;int sex,sno;p2=(STU*)malloc(sizeof(STU); /*申請結(jié)點*/if(L->next=NULL)printf("此表中無記錄,請輸入記錄后在使用此功能!n");return; printf("輸入添加的姓名:"); scanf("%s",p2->sname); printf("輸入添加的學號:"); scanf("%d",&sno); m=chazhao(L,sno);while(m!=NULL)m=chazhao(L,sno); if(m!=NULL) printf("請你輸入不重復(fù)的學號(以0返回上一級菜單:)n"); scanf("%d",&sno); p2->sno=sno; printf("輸入性別(1->boy,0->girl):");doscanf("%d",&sex); if(sex=1)strcpy(p2->sex,"boy"); else if(sex=0) strcpy(p2->sex,"girl");else printf("輸入錯誤!(1->boy,0->girl):n");while(sex!=1&&sex!=0); printf("輸入年齡:"); scanf("%d",&p2->nianling); printf("輸入語文成績:"); scanf("%f",&p2->yuwen); while(p2->yuwen<0.0|p2->yuwen>100.0) if(p2->yuwen<0.0|p2->yuwen>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入語文成績:"); scanf("%f",&p2->yuwen); printf("輸入數(shù)學成績:"); scanf("%f",&p2->shuxue); while(p2->shuxue<0.0|p2->shuxue>100.0) if(p2->shuxue<0.0|p2->shuxue>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入數(shù)學成績:"); scanf("%f",&p2->shuxue); printf("輸入英語成績:"); scanf("%f",&p2->yingyu); while(p2->yingyu<0.0|p2->yingyu>100.0) if(p2->yingyu<0.0|p2->yingyu>100.0) printf("輸入錯誤,請重新輸入!n"); printf("輸入英語成績:"); scanf("%f",&p2->yingyu); p2->sum=p2->yuwen+p2->shuxue+p2->yingyu; p2->avg=p2->sum/3; p2->next=NULL; /*保存到鏈表*/ if(L=NULL) L=(STU*)malloc(sizeof(STU); L->next=p2; else for(p3=L;p3->next!=NULL;p3=p3->next);/*找到尾結(jié)點*/ p3->next=p2; printf("此信息已添加n");void shanchu(Linlist L)STU *p=L,*pr=L;char name20;if(L->next=NULL)printf("此表中無記錄,請輸入記錄后在使用此功能!n");return;printf("請輸入要刪除的姓名:n");scanf("%s",name);if(L=NULL)printf("無此結(jié)點n");return;while(strcmp(p->sname,name)!=0)&&p->next!=NULL)pr=p;p=p->next;if(strcmp(p->sname,name)=0)if(p=L)L=p->next;elsepr->next=p->next;free(p);printf("已刪除!n");elseprintf("沒有找到要刪除的對象n");void mingci(Linlist L)STU *a=NULL;int i; STU *p,*q,*tail,*s; tail=NULL; if(L->next=NULL)printf("此表中無記錄,請輸入記錄后在使用此功能!n");return; while(L->next!=tail) p=L; q=p->next; while(q->next!=tail) if(p->next->sum<q->next->sum) s=q->next; p->next=q->next; q->next=q->next->next; p->next->next=q; q=s; p=p->next; q=q->next; tail=q; a=L->next;printf("名次t姓名t學號t性別t年齡t語文t數(shù)學t英語t平均分t總分n");for(a=L->next,i=1;a!=NULL;a=a->next,i+)printf("%-8d%-8s%-8d%-8s%-8d%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn",i,a->sname,a->sno,a->sex,a->nianling,a->yuwen,a->shuxue,a->yingyu,a->avg,a->sum);- 18 -

注意事項

本文(數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 學生成績管理系統(tǒng))為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!