運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):86512861 上傳時(shí)間:2022-05-07 格式:DOC 頁(yè)數(shù):34 大?。?61.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共34頁(yè)
運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共34頁(yè)
運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共34頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) 大數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 經(jīng)濟(jì)學(xué)院華信學(xué)院課程設(shè)計(jì)報(bào)告學(xué)院:專業(yè):班級(jí):學(xué)號(hào):某某:運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)一問題描述大學(xué)作為一個(gè)提供學(xué)生全面開展的高等教育機(jī)構(gòu),不僅要培養(yǎng)學(xué)生的學(xué)習(xí)能力,而且更要注重學(xué)生的德智體美全面開展。在大學(xué)中有很多豐富多彩的比賽和活動(dòng),例如運(yùn)動(dòng)會(huì),演講比賽,歌唱比賽,書法比賽等,在比賽和競(jìng)爭(zhēng)中,我們的這些素質(zhì)和能力更容易得到培養(yǎng)提升。但是比賽最后的分?jǐn)?shù)統(tǒng)計(jì)和查詢往往是舉辦者頭疼的事情,分?jǐn)?shù)的統(tǒng)計(jì)和查詢需要快速準(zhǔn)確,因此我們?cè)O(shè)計(jì)了這個(gè)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng),以方便分?jǐn)?shù)的統(tǒng)計(jì)查詢。參加運(yùn)動(dòng)會(huì)的n個(gè)學(xué)校編號(hào)為1n。比賽分成m個(gè)男子項(xiàng)目和w個(gè)女子項(xiàng)目,項(xiàng)目編號(hào)分別為1m和m+1m+w。由于各項(xiàng)目參加

2、人數(shù)差異較大,有些項(xiàng)目取前五名,得分順序?yàn)?,5,3,2,1;還有些項(xiàng)目只取前三名,得分順序?yàn)?,3,2。寫一個(gè)統(tǒng)計(jì)程序產(chǎn)生各種成績(jī)單和得分報(bào)表。二需求分析系統(tǒng)功能描述: (1)可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);(2)能統(tǒng)計(jì)各學(xué)??偡?;(3)可以按學(xué)校編號(hào)或名稱、學(xué)??偡帧⒛信畧F(tuán)體總分排序輸出;(4)可以按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕膶W(xué)校。三概要設(shè)計(jì)ADT List 數(shù)據(jù)對(duì)象:D=ai|aiElemSet,i=1,2,n,n0 數(shù)據(jù)關(guān)系:R1=|ai-1,aiD,i=2,n 根本操作: InitList(&L)操作結(jié)果:構(gòu)造一個(gè)空的線性表L。 Ge

3、tElem(L,i,&e) 初始條件:線性表L已存在,1iListLength(L) 操作結(jié)果:用e返回L中第i個(gè)數(shù)據(jù)元素的值。 LocateElem(L,e,pare() 初始條件:線性表L已存在,pare()是數(shù)據(jù)元素判定函數(shù)。 操作結(jié)果:返回L中第1個(gè)與e滿足關(guān)系pare()的數(shù)據(jù)元素的位序。假如這樣的數(shù)據(jù)元素不存在,如此返回值為0。 PriorElem(L,cur_e,&pre_e)初始條件:線性表L已存在。 操作結(jié)果:假如cur_e是L的數(shù)據(jù)元素,且不是第一個(gè),如此用pre_e返回它的前驅(qū),否如此操作失敗,pre_e無(wú)定義。 NextElem(L,cur_e,&next_e) 初始條

4、件:線性表L已存在。操作結(jié)果:假如cur_e是L的數(shù)據(jù)元素,且不是最后一個(gè),如此用next_e返回它的后繼,否如此操作失敗,next_e無(wú)定義。ListInsert(&L,I,e)初始條件:線性表L已存在,1iListLength(L)+1操作結(jié)果:在L中第i個(gè)位置之前插入新的元素e,L是表長(zhǎng)度加1ListTraverse(L,visit()初始條件:線性表L已存在。 操作結(jié)果:依次對(duì)L的每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)visit()。一旦visit()失敗,如此操作失敗。ADT List運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)輸入各學(xué)校名稱輸入男子運(yùn)動(dòng)項(xiàng)目 輸入女子運(yùn)動(dòng)項(xiàng)目輸入男子項(xiàng)目的成績(jī)輸入女子項(xiàng)目的成績(jī)查詢某校各個(gè)項(xiàng)目

5、的成績(jī)查詢某校各個(gè)項(xiàng)目的成績(jī)圖 3-1運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)功能模塊圖 main()womansports(LinkList&L,intn) 循環(huán)語(yǔ)句依次輸入每個(gè)值 ListTraverse(L,visit() schoolname(LinkList&L,intn) mansports(LinkList&L,intn) 循環(huán)語(yǔ)句依次輸入每個(gè)值 ListTraverse(L,visit() ListTraverse(L,visit() ListTraverse(L,visit() 圖 3-2系統(tǒng)函數(shù)調(diào)用關(guān)系圖為了實(shí)現(xiàn)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng),需要設(shè)計(jì)一個(gè)含有多菜單項(xiàng)的主控菜單子程序,以系統(tǒng)中各個(gè)子項(xiàng)目的調(diào)

6、用,為了方便用戶使用本系統(tǒng),本系統(tǒng)主控菜單的運(yùn)行界面如圖3-3所示。圖 3-3主菜單運(yùn)行界面四詳細(xì)設(shè)計(jì)實(shí)現(xiàn)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)的開發(fā),采用鏈表結(jié)構(gòu)類型存儲(chǔ)運(yùn)動(dòng)會(huì)學(xué)校名稱、男子女子運(yùn)動(dòng)項(xiàng)目以與男子女子項(xiàng)目成績(jī)的信息。/每一個(gè)學(xué)校的信息typedef struct Lnode/結(jié)點(diǎn)char data20;/學(xué)校名稱int da,d1,d2; /學(xué)校編號(hào)、學(xué)??偡帧⒛信畧F(tuán)體分struct Lnode *next;/指向下一學(xué)校 Lnode,*LinkList;int sz20;/每一個(gè)項(xiàng)目的信息 存取typedef struct Lnode1char data20,data120,data220,da

7、ta320,data420,data520;/該項(xiàng)目前五名學(xué)校的名稱int da1,da2,da3,da4,da5;/該項(xiàng)目前五名學(xué)校的編號(hào)struct Lnode1 *next;/指向下一項(xiàng)目 Lnode1,*LinkList1;4.2 系統(tǒng)子程序詳細(xì)設(shè)計(jì)輸入各學(xué)校名稱的算法:/按從頭到尾的順序依次建立線性鏈表L1共有n個(gè)節(jié)點(diǎn)void schoolname(LinkList &L1,int n)int i;LinkList p,q;/輸入頭結(jié)點(diǎn)信息,即輸入第一個(gè)學(xué)校的名字L1=(LinkList)malloc(sizeof(Lnode);/malloc是動(dòng)態(tài)開辟存,函數(shù)返回為void型指針(

8、指向開辟的存空間);LinkList定義的指針的類型;(sizeof(Lnode)malloc開辟的存空間的大小printf(請(qǐng)輸入這%d 個(gè)學(xué)校的名字:n,n);p=(LinkList)malloc(sizeof(Lnode);/指向一個(gè)有意義的地方L1-next=p;/把p的值賦給next next指向?qū)嶋H的空間 p時(shí)指針scanf(%s,&p-data);/修改空間的值,&取p的數(shù)據(jù)域的地址/從第二個(gè)節(jié)點(diǎn)開始依次輸入到第n個(gè)節(jié)點(diǎn)信息for(i=2;in將第i個(gè)結(jié)點(diǎn)參加鏈表L完畢NYscanf(%s,&p-data);q-next=p;輸入男子運(yùn)動(dòng)項(xiàng)目名字的算法:/按從頭到尾的順序依次建立

9、線性鏈表L2共有n2個(gè)節(jié)點(diǎn)void mansports(LinkList1 &L2,int n2)/輸入第一個(gè)節(jié)點(diǎn)的信息,即第一個(gè)男子項(xiàng)目的名字int i;LinkList1 r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf(請(qǐng)輸入這%d 個(gè)項(xiàng)目的名字:n,n2);r=(LinkList1)malloc(sizeof(Lnode1);/把新開辟的空間data1-5初始化for(int t=0;tdata1t = 0;for( t=0;tdata2t = 0;for( t=0;tdata3t = 0;for( t=0;tdata4t = 0;for(

10、t=0;tdata5t = 0;L2-next=r;scanf(%s,&r-data);/從第二個(gè)節(jié)點(diǎn)開始輸入到第n2個(gè)節(jié)點(diǎn)的信息for(i=2;i=n2;i+)s=r;/s指向r指向的地方r=(LinkList1)malloc(sizeof(Lnode1);for(int t=0;tdata1t = 0;for( t=0;tdata2t = 0;for( t=0;tdata3t = 0;for( t=0;tdata4t = 0;for( t=0;tdata5t = 0;scanf(%s,&r-data);s-next=r;開始輸入n個(gè)男子項(xiàng)目的名字i=0in將第i個(gè)結(jié)點(diǎn)參加鏈表L完畢NY輸入

11、女子運(yùn)動(dòng)項(xiàng)目名字的算法:/按從頭到尾的順序依次建立線性鏈表L3共有n1個(gè)節(jié)點(diǎn)void womansports(LinkList1 &L3,int n1)/輸入第一個(gè)節(jié)點(diǎn)的信息,即第一個(gè)女子項(xiàng)目的名字int i;LinkList1 r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf(請(qǐng)輸入這%d 個(gè)項(xiàng)目的名字:n,n1);r=(LinkList1)malloc(sizeof(Lnode1);L3-next=r;scanf(%s,&r-data);/從第二個(gè)節(jié)點(diǎn)開始依次輸入到第n1個(gè)節(jié)點(diǎn)信息for(i=2;idata);s-next=r;開始輸入n個(gè)女子項(xiàng)

12、目的名字i=0in將第i個(gè)結(jié)點(diǎn)參加鏈表L完畢NY參加比賽的學(xué)校的總分排名的算法:void schoolrankings(LinkList &L1,int n)LinkList p; 學(xué)校的數(shù)據(jù)類型 上邊int z,i,j,y;printf(參加這次比賽的學(xué)校的總分排名:n);p=L1-next;/下一個(gè)地方的指針給p p是學(xué)校的數(shù)據(jù)類型 p是一個(gè)節(jié)點(diǎn),L1下一個(gè)節(jié)點(diǎn)給p/先把每個(gè)學(xué)校的總分依次遍歷,存放在數(shù)組sz中。 一個(gè)一個(gè)取,一個(gè)一個(gè)找先讓p指向一個(gè)鏈表for(i=0;ida;/節(jié)點(diǎn)的信息指向一個(gè)數(shù)組,data學(xué)??倲?shù)的數(shù)據(jù)域, 把所有的學(xué)校的總分p=p-next;/再對(duì)數(shù)組sz用冒泡排序

13、法進(jìn)展從小到大排序for(i=1;i=n-1;i+)for(j=1;jszj)y=szj-1;szj-1=szj;szj=y;z=1; /初始化/把線性鏈表L1按項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i=0;i-)p=L1-next; / L1表示一個(gè)節(jié)點(diǎn),取出里面一個(gè)數(shù)據(jù),那個(gè)數(shù)據(jù)的名字是next,next也是一個(gè)節(jié)點(diǎn),p也是一個(gè)節(jié)點(diǎn),if(i0)/ 意義是判斷下一個(gè)是不是/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1) 相鄰的兩個(gè)數(shù)組素不素相等i-; /從大到小,從最后一個(gè)比擬/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次

14、信息for(j=1;jda)/數(shù)組里面的值從最后一個(gè)開始取 printf(第%d 名%s :%d 分n,z,p-data,p-da);z+;p=p-next;開始完畢i=0i+inYN將每個(gè)學(xué)校的總分賦給數(shù)組szn對(duì)數(shù)組szn進(jìn)展冒泡排序遍歷鏈表L找到與szi相等的結(jié)點(diǎn)并輸出總分參加這次比賽的學(xué)校的男子項(xiàng)目的成績(jī)排名的算法:/男子項(xiàng)目排名算法代碼與上述學(xué)??偡值呐琶惴ㄍ耆恢?,其中男子項(xiàng)目排序的過(guò)程為比擬男子項(xiàng)目總分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(參加這次比賽的學(xué)校的男子項(xiàng)目的成績(jī)排名:n);

15、p=L1-next;/先把每個(gè)學(xué)校的男子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中。for(i=0;id1;p=p-next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i=n-1;i+)for(j=1;jszj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按男子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i=0;i-)p=L1-next;if(i0)while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;jd1)printf(第%d 名%s :%d 分n,z,p-data,p-d1);

16、z+;p=p-next;開始完畢i=0i+inYN將男子項(xiàng)目的總分賦給數(shù)組szn對(duì)數(shù)組szn進(jìn)展冒泡排序遍歷鏈表L找到與szi相等的結(jié)點(diǎn)并輸出總分參加這次比賽的學(xué)校的女子項(xiàng)目的成績(jī)排名的算法:/女子項(xiàng)目排名算法代碼與上述學(xué)??偡值呐琶惴ㄍ耆恢?,其中女子項(xiàng)目排序的過(guò)程為比擬女子項(xiàng)目總分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(參加這次比賽的學(xué)校的女子項(xiàng)目的成績(jī)排名:n);p=L1-next;/先把每個(gè)學(xué)校的女子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中for(i=0;id2;p=p-next;/再對(duì)數(shù)組sz

17、用冒泡排序法進(jìn)展從小到大排序for(i=1;i=n-1;i+)for(j=1;jszj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按女子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i=0;i-)p=L1-next;if(i0)/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;jd2)printf(第%d 名%s :%d 分n,z,p-data,p-d2);z+;p=p-next; 開始完畢i=0i+inYN將女子項(xiàng)目的總分賦給數(shù)組sz

18、n對(duì)數(shù)組szn進(jìn)展冒泡排序遍歷鏈表L找到與szi相等的結(jié)點(diǎn)并輸出總分五編碼實(shí)現(xiàn)與系統(tǒng)測(cè)試圖 5-1輸入根本信息圖 5-2學(xué)校與項(xiàng)目排名圖 5-3查詢某校各個(gè)項(xiàng)目的成績(jī)圖 5-4查詢某個(gè)項(xiàng)目的比賽結(jié)果圖 5-5完畢本程序六結(jié)果分析表 6-1時(shí)間、空間復(fù)雜度操作時(shí)間復(fù)雜度空間復(fù)雜度1O(n+m)O(1)2O(n)O(1)3O(m)O(1)注:m為學(xué)校個(gè)數(shù),n為項(xiàng)目個(gè)數(shù)。七學(xué)習(xí)體會(huì)通過(guò)這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),我收獲了很多: 一經(jīng)過(guò)這幾天的學(xué)習(xí),進(jìn)一步提升了C語(yǔ)言的應(yīng)用能力,鞏固了數(shù)據(jù)結(jié)構(gòu)上課所學(xué)習(xí)的容,數(shù)據(jù)結(jié)構(gòu)知識(shí)的應(yīng)用能力有了一定的提升,并且對(duì)C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)有了更深層次的認(rèn)識(shí)。 二這次課程設(shè)計(jì)我們

19、選的課題是運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì),涉與到線性鏈表以與C語(yǔ)言的一些根本的知識(shí)。在以前的學(xué)習(xí)中,對(duì)知識(shí)只是掌握了大概的容,根底知識(shí)掌握的不結(jié)實(shí),所以編寫程序的過(guò)程非常的困難,通過(guò)這次課程設(shè)計(jì),讓我知道根底知識(shí)非常重要。在進(jìn)展概要設(shè)計(jì)的時(shí)候要注意結(jié)合問題的需求分析,函數(shù)調(diào)用要和系統(tǒng)功能相結(jié)合。在書寫程序時(shí),要認(rèn)真細(xì)心,很多錯(cuò)誤都是因?yàn)樽约旱拇中模{(diào)試程序就花費(fèi)了非常多的時(shí)間。 三通過(guò)這次課程設(shè)計(jì),讓我明白了獨(dú)立思考的重要性。一個(gè)東西只有經(jīng)過(guò)自己的思考,自己明白了才是真的明白了。在思考的過(guò)程中,對(duì)一個(gè)問題思考的越深入,可以挖掘的東西就越多。在解決問題時(shí)要結(jié)合多方面的因素,不能只單方面思考問題。八源程序清單#i

20、nclude #include #include typedef struct Lnode 類型定義char data20;/學(xué)校名稱int da,d1,d2; /學(xué)校編號(hào)、學(xué)??偡?、男女團(tuán)體分struct Lnode *next;/指向下一學(xué)校 Lnode,*LinkList;int sz20;/每一個(gè)項(xiàng)目的信息typedef struct Lnode1char data20,data120,data220,data320,data420,data520;/該項(xiàng)目前五名學(xué)校的名稱int da1,da2,da3,da4,da5;/該項(xiàng)目前五名學(xué)校的編號(hào)struct Lnode1 *next;/

21、指向下一項(xiàng)目 Lnode1,*LinkList1;輸入各學(xué)校名稱的算法:/按從頭到尾的順序依次建立線性鏈表L1共有n個(gè)節(jié)點(diǎn)void schoolname(LinkList &L1,int n)int i;LinkList p,q;/輸入頭結(jié)點(diǎn)信息,即輸入第一個(gè)學(xué)校的名字L1=(LinkList)malloc(sizeof(Lnode);printf(請(qǐng)輸入這%d 個(gè)學(xué)校的名字:n,n);p=(LinkList)malloc(sizeof(Lnode);L1-next=p;scanf(%s,&p-data);/從第二個(gè)節(jié)點(diǎn)開始依次輸入到第n個(gè)節(jié)點(diǎn)信息for(i=2;idata);q-next=p

22、;輸入男子運(yùn)動(dòng)項(xiàng)目名字的算法:/按從頭到尾的順序依次建立線性鏈表L2共有n2個(gè)節(jié)點(diǎn)void mansports(LinkList1 &L2,int n2)/輸入第一個(gè)節(jié)點(diǎn)的信息,即第一個(gè)男子項(xiàng)目的名字int i;LinkList1 r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf(請(qǐng)輸入這%d 個(gè)項(xiàng)目的名字:n,n2);r=(LinkList1)malloc(sizeof(Lnode1);for(int t=0;tdata1t = 0;for( t=0;tdata2t = 0;for( t=0;tdata3t = 0;for( t=0;tdata4t

23、 = 0;for( t=0;tdata5t = 0;L2-next=r;scanf(%s,&r-data);/從第二個(gè)節(jié)點(diǎn)開始輸入到第n2個(gè)節(jié)點(diǎn)的信息for(i=2;i=n2;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);for(int t=0;tdata1t = 0;for( t=0;tdata2t = 0;for( t=0;tdata3t = 0;for( t=0;tdata4t = 0;for( t=0;tdata5t = 0;scanf(%s,&r-data);s-next=r;輸入女子運(yùn)動(dòng)項(xiàng)目名字的算法:/按從頭到尾的順序依次建立線性鏈表L3共有

24、n1個(gè)節(jié)點(diǎn)void womansports(LinkList1 &L3,int n1)/輸入第一個(gè)節(jié)點(diǎn)的信息,即第一個(gè)女子項(xiàng)目的名字int i;LinkList1 r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf(請(qǐng)輸入這%d 個(gè)項(xiàng)目的名字:n,n1);r=(LinkList1)malloc(sizeof(Lnode1);L3-next=r;scanf(%s,&r-data);/從第二個(gè)節(jié)點(diǎn)開始依次輸入到第n1個(gè)節(jié)點(diǎn)信息for(i=2;idata);s-next=r;參加比賽的學(xué)校的總分排名的算法:void schoolrankings(LinkLi

25、st &L1,int n)LinkList p;int z,i,j,y;printf(參加這次比賽的學(xué)校的總分排名:n);p=L1-next;/先把每個(gè)學(xué)校的總分依次遍歷,存放在數(shù)組sz中。for(i=0;ida;p=p-next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i=n-1;i+)for(j=1;jszj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i=0;i-)p=L1-next;if(i0)/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1)i-

26、;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;jda)printf(第%d 名%s :%d 分n,z,p-data,p-da);z+;p=p-next;參加這次比賽的學(xué)校的男子項(xiàng)目的成績(jī)排名的算法:/男子項(xiàng)目排名算法代碼與上述學(xué)??偡值呐琶惴ㄍ耆恢拢渲心凶禹?xiàng)目排序的過(guò)程為比擬男子項(xiàng)目總分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(參加這次比賽的學(xué)校的男子項(xiàng)目的成績(jī)排名:n);p=L1-next;/先把每個(gè)學(xué)校的男子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中。for(i=0;i

27、d1;p=p-next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i=n-1;i+)for(j=1;jszj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按男子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i=0;i-)p=L1-next;if(i0)while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;jd1)printf(第%d 名%s :%d 分n,z,p-data,p-d1);z+;p=p-next;參加這次比賽的學(xué)校的女子項(xiàng)目的成績(jī)排名的算法:/女子項(xiàng)目排名算法代碼與

28、上述學(xué)??偡值呐琶惴ㄍ耆恢拢渲信禹?xiàng)目排序的過(guò)程為比擬女子項(xiàng)目總分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(參加這次比賽的學(xué)校的女子項(xiàng)目的成績(jī)排名:n);p=L1-next;/先把每個(gè)學(xué)校的女子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中for(i=0;id2;p=p-next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i=n-1;i+)for(j=1;jszj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按女子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=

29、n-1;i=0;i-)p=L1-next;if(i0)/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;jd2)printf(第%d 名%s :%d 分n,z,p-data,p-d2);z+;p=p-next; void main ()int i,j,z,x,n,m,w;/聲明學(xué)校鏈表LinkList p,q,L1;/p,q沒有實(shí)際意義,L1是有實(shí)際意義,是儲(chǔ)存學(xué)校信息/聲明項(xiàng)目鏈表LinkList1 r,s,L2,L3; / 同上 男子男子鏈表,女子想么鏈表doprintf(

30、*n);printf(*1 輸入根本信息 *n);printf(*2 查詢某校各個(gè)項(xiàng)目的成績(jī) *n);printf(*3 查詢某個(gè)項(xiàng)目的比賽結(jié)果 *n);printf(*4 完畢本程序 *n);printf(*n);printf(請(qǐng)選擇您想進(jìn)展的操作n);/輸入1,或2或3 選擇功能scanf(%d,&z);/z=2查詢某校各個(gè)項(xiàng)目的成績(jī)if(z=2)r=L2-next;printf(請(qǐng)輸入您想查尋的學(xué)校的名字:n);/輸入待查詢學(xué)校的名稱s = (LinkList1)malloc(sizeof(Lnode1);/存儲(chǔ)學(xué)校的名字scanf(%s,&s-data);/輸出查詢結(jié)果/輸出查詢信息f

31、or(i=1;idata1,s-data)=0) printf(貴校榮獲男子項(xiàng)目%s 的第1名,他該項(xiàng)目的成績(jī)是:%dn,r-data,r-da1);if(strcmp(r-data2,s-data)=0) printf(貴校榮獲男子項(xiàng)目%s 的第2名,他該項(xiàng)目的成績(jī)是:%dn,r-data,r-da2);if(strcmp(r-data3,s-data)=0) printf(貴校榮獲男子項(xiàng)目%s 的第3名,他該項(xiàng)目的成績(jī)是:%dn,r-data,r-da3);if(strcmp(r-data4,s-data)=0) printf(貴校榮獲男子項(xiàng)目%s 的第4名,他該項(xiàng)目的成績(jī)是:%dn,r-

32、data,r-da4);if(strcmp(r-data5,s-data)=0) printf(貴校榮獲男子項(xiàng)目%s 的第5名,他該項(xiàng)目的成績(jī)是:%dn,r-data,r-da5);r=r-next;/男子項(xiàng)目的鏈表r=L3-next;for(i=1;idata1,s-data)=0) printf(貴校榮獲女子項(xiàng)目%s 的第1名,她該項(xiàng)目的成績(jī)是:%dn,r-data,r-da1);if(strcmp(r-data2,s-data)=0) printf(貴校榮獲女子項(xiàng)目%s 的第2名,她該項(xiàng)目的成績(jī)是:%dn,r-data,r-da2);if(strcmp(r-data3,s-data)=0

33、) printf(貴校榮獲女子項(xiàng)目%s 的第3名,她該項(xiàng)目的成績(jī)是:%dn,r-data,r-da3);if(strcmp(r-data4,s-data)=0) printf(貴校榮獲女子項(xiàng)目%s 的第4名,她該項(xiàng)目的成績(jī)是:%dn,r-data,r-da4);if(strcmp(r-data5,s-data)=0) printf(貴校榮獲女子項(xiàng)目%s 的第5名,她該項(xiàng)目的成績(jī)是:%dn,r-data,r-da5);r=r-next;/查詢學(xué)校完畢/z=3查詢某個(gè)項(xiàng)目的比賽結(jié)果if(z=3)printf(請(qǐng)輸入您想查尋的項(xiàng)目的名字:n);/輸入待查詢的項(xiàng)目名稱s = (LinkList1)ma

34、lloc(sizeof(Lnode1);scanf(%s,&s-data); /存data里r=L2-next;for(i=1;idata,s-data)=0)if(strlen(r-data4)=0) printf(第1名%s ,第2名%s,第3名%sn,r-data1,r-data2,r-data3);if(strlen(r-data4)0) printf(第1名%s ,第2名%s,第3名%s,第4名%s,第5名%sn,r-data1,r-data2,r-data3,r-data4,r-data5);r=r-next;r=L3-next;/打印項(xiàng)目比賽結(jié)果for(i=1;idata,s-d

35、ata)=0)if(strlen(r-data4)=0) printf(第1名%s ,第2名%s,第3名%sn,r-data1,r-data2,r-data3); /字長(zhǎng) 沒有輸入第四名 strlen(r-data4)=0if(strlen(r-data4)0) printf(第1名%s ,第2名%s,第3名%s,第4名%s,第5名%sn,r-data1,r-data2,r-data3,r-data4,r-data5);r=r-next;if(z=1)/輸入局部/輸入學(xué)校的個(gè)數(shù)nprintf(請(qǐng)輸入?yún)⒓舆@次比賽的學(xué)校的個(gè)數(shù):n);scanf(%d,&n);/構(gòu)建鏈表L1,依次輸入n個(gè)學(xué)校的名稱

36、。schoolname(L1,n);q=L1-next;/把L1鏈表中的總分da全部初始化為0for(i=1;ida=0; /初始化q-d1=0;q-d2=0;q=q-next;/輸入男子個(gè)項(xiàng)目總數(shù)mprintf(n請(qǐng)輸入這次比賽的男子項(xiàng)目的個(gè)數(shù):n);scanf(%d,&m);/構(gòu)建男子項(xiàng)目鏈表L2輸入m個(gè)男子運(yùn)動(dòng)項(xiàng)目名字mansports(L2,m);r=L2-next;/依次m個(gè)男子項(xiàng)目的結(jié)果for(i=1;idata);/輸入1或2 選擇成績(jī)記錄的方式scanf(%d,&z);printf(請(qǐng)輸入第1名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第1名學(xué)校名稱和項(xiàng)目成績(jī)scanf(

37、%s%d,&r-data1,&r-da1);q=L1-next;for(j=1;jdata1,q-data)=0)if(z=1) q-da=q-da+r-da1;q-d1=q-d1+r-da1;/把項(xiàng)目的成績(jī)把對(duì)應(yīng)的項(xiàng)目的成績(jī)加到學(xué)校里 先把第一名的成績(jī)加到對(duì)應(yīng)的學(xué)校 加到男子項(xiàng)目總分if(z=2) q-da=q-da+r-da1;q-d1=q-d1+r-da1;q=q-next;printf(請(qǐng)輸入第2名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第2名學(xué)校名稱和項(xiàng)目成績(jī)scanf(%s%d,&r-data2,&r-da2);q=L1-next;for(j=1;jdata2,q-data

38、)=0)if(z=1) q-da=q-da+r-da2;q-d1=q-d1+r-da2;if(z=2) q-da=q-da+r-da2;q-d1=q-d1+r-da2;q=q-next;printf(請(qǐng)輸入第3名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第3名學(xué)校名稱和項(xiàng)目成績(jī)scanf(%s%d,&r-data3,&r-da3);q=L1-next;for(j=1;jdata3,q-data)=0)if(z=1) q-da=q-da+r-da3;q-d1=q-d1+r-da3;if(z=2) q-da=q-da+r-da3;q-d1=q-d1+r-da3;q=q-next;/如果z=2

39、,如此繼續(xù)輸入第四,第五名的學(xué)校名稱和項(xiàng)目成績(jī)。if(z=2)printf(請(qǐng)輸入第4名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī)n);/輸入第4名的學(xué)校名稱和項(xiàng)目成績(jī)。scanf(%s%d,&r-data4,&r-da4);q=L1-next;for(j=1;jdata4,q-data)=0) q-da=q-da+r-da4;q-d1=q-d1+r-da4;q=q-next;printf(請(qǐng)輸入第5名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第5名的學(xué)校名稱和項(xiàng)目成績(jī)。scanf(%s%d,&r-data5,&r-da5);q=L1-next;for(j=1;jdata5,q-data)=0)

40、 q-da=q-da+r-da4;q-d1=q-d1+r-da4;q=q-next;r=r-next;/輸入男子項(xiàng)目完畢printf(n請(qǐng)輸入這次比賽的女子項(xiàng)目的個(gè)數(shù):n);/輸入女子項(xiàng)目的的個(gè)數(shù)wscanf(%d,&w);/構(gòu)建鏈表L3,輸入w個(gè)項(xiàng)目名稱womansports(L3,w);r=L3-next;/依次對(duì)w個(gè)女子項(xiàng)目進(jìn)展結(jié)果記錄for(i=1;idata);/輸入1或2 選擇記錄的個(gè)數(shù)scanf(%d,&x);printf(請(qǐng)輸入第1名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第 1 名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī)scanf(%s%d,&r-data1,&r-da1)

41、;q=L1-next;for(j=1;jdata1,q-data)=0)if(x=1) q-da=q-da+r-da1;q-d2=q-d2+r-da1;if(x=2) q-da=q-da+r-da1;q-d2=q-d2+r-da1;q=q-next;printf(請(qǐng)輸入第2名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第 2名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī)scanf(%s%d,&r-data2,&r-da2);q=L1-next;for(j=1;jdata2,q-data)=0)if(x=1) q-da=q-da+r-da2;q-d2=q-d2+r-da2;if(x=2) q-da=q

42、-da+r-da2;q-d2=q-d2+r-da2;q=q-next;printf(請(qǐng)輸入第3名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第 3名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī)scanf(%s%d,&r-data3,&r-da3);q=L1-next;for(j=1;jdata3,q-data)=0)if(x=1) q-da=q-da+r-da3;q-d2=q-d2+r-da3;if(x=2) q-da=q-da+r-da3;q-d2=q-d2+r-da3;q=q-next;if(x=2)printf(請(qǐng)輸入第4名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第4名所來(lái)自的學(xué)校的名

43、字和他該項(xiàng)目的成績(jī)scanf(%s%d,&r-data4,&r-da4);q=L1-next;for(j=1;jdata4,q-data)=0) q-da=q-da+r-da4;q-d2=q-d2+r-da4;q=q-next;printf(請(qǐng)輸入第5名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī):n);/輸入第 5 名所來(lái)自的學(xué)校的名字和他該項(xiàng)目的成績(jī)scanf(%s%d,&r-data5,&r-da5);q=L1-next;for(j=1;jdata5,q-data)=0) q-da=q-da+r-da5;q-d2=q-d2+r-da5;q=q-next;r=r-next;/輸入女子項(xiàng)目完畢p=L1-next;printf(參加這次比賽的學(xué)校的成績(jī)?yōu)?n);/輸出n個(gè)學(xué)校的分?jǐn)?shù)for(i=1;idata,p-da,p-d1,p-d2); /學(xué)校的名字. p=p-next; / p指向?qū)W校的鏈表 打印完之后指向下一個(gè)節(jié)點(diǎn)/把團(tuán)體總分按照從大到小進(jìn)展排序并打印schoolrankings (L1,n);/把男子總分按照從大到小進(jìn)展排序并打印manrankings (L1,n);/把女子總分按照從大到小進(jìn)展排序并打印womanrankings (L1,n);/輸入局部完畢while(z!=4); /printf(n);34 / 34

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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