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

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

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

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

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

經(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ì),演講比賽,歌唱比賽,書法比賽等,在比賽和競爭中,我們的這些素質(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)目參加人數(shù)差異較大,有些項(xiàng)目取前五名,得分順序?yàn)?,5,3,2,1;還有些項(xiàng)目只取前三名,得分順序?yàn)?,3,2。寫一個(gè)統(tǒng)計(jì)程序產(chǎn)生各種成績單和得分報(bào)表。二需求分析系統(tǒng)功能描述: (1)可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績;(2)能統(tǒng)計(jì)各學(xué)??偡?;(3)可以按學(xué)校編號(hào)或名稱、學(xué)??偡?、男女團(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,ai>|ai-1,aiD,i=2,n 根本操作: InitList(&L)操作結(jié)果:構(gòu)造一個(gè)空的線性表L。 GetElem(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無定義。 NextElem(L,cur_e,&next_e) 初始條件:線性表L已存在。操作結(jié)果:假如cur_e是L的數(shù)據(jù)元素,且不是最后一個(gè),如此用next_e返回它的后繼,否如此操作失敗,next_e無定義。ListInsert(&L,I,e)初始條件:線性表L已存在,1iListLength(L)+1操作結(jié)果:在L中第i個(gè)位置之前插入新的元素e,L是表長度加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)目的成績輸入女子項(xiàng)目的成績查詢某校各個(gè)項(xiàng)目的成績查詢某校各個(gè)項(xiàng)目的成績圖 3-1運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)功能模塊圖 main()womansports(LinkList &L,int n) 循環(huán)語句依次輸入每個(gè)值 ListTraverse(L,visit() schoolname(LinkList &L,int n) mansports(LinkList &L,int n) 循環(huán)語句依次輸入每個(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)用,為了方便用戶使用本系統(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)目成績的信息。/每一個(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,data320,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型指針(指向開辟的存空間);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;i<=n;i+) /p是第一個(gè),所以i=2從2開始 先指出第一個(gè),然后第一個(gè)在指出剩下的q=p;/q指向p開辟的空間 即 q指向p指向的地方p=(LinkList)malloc(sizeof(Lnode);/給新開辟的空間賦值開始輸入n個(gè)學(xué)校的名字i=0i>n將第i個(gè)結(jié)點(diǎn)參加鏈表L完畢NYscanf("%s",&p->data);q->next=p;輸入男子運(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);/把新開辟的空間data1-5初始化for(int t=0;t<20;t+)r->data1t = '0'for( t=0;t<20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '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;t<20;t+)r->data1t = '0'for( t=0;t<20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '0'scanf("%s",&r->data);s->next=r;開始輸入n個(gè)男子項(xiàng)目的名字i=0i>n將第i個(gè)結(jié)點(diǎn)參加鏈表L完畢NY輸入女子運(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;i<=n1;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);scanf("%s",&r->data);s->next=r;開始輸入n個(gè)女子項(xiàng)目的名字i=0i>n將第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;i<=n-1;i+)szi=p->da;/節(jié)點(diǎn)的信息指向一個(gè)數(shù)組,data學(xué)??倲?shù)的數(shù)據(jù)域, 把所有的學(xué)校的總分p=p->next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)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(i>0)/ 意義是判斷下一個(gè)是不是/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1) 相鄰的兩個(gè)數(shù)組素不素相等i-; /從大到小,從最后一個(gè)比擬/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;j<=n;j+)if(szi=p->da)/數(shù)組里面的值從最后一個(gè)開始取 printf("第%d 名%s :%d 分n",z,p->data,p->da);z+;p=p->next;開始完畢i=0i+i>nYN將每個(gè)學(xué)校的總分賦給數(shù)組szn對(duì)數(shù)組szn進(jìn)展冒泡排序遍歷鏈表L找到與szi相等的結(jié)點(diǎn)并輸出總分參加這次比賽的學(xué)校的男子項(xiàng)目的成績排名的算法:/男子項(xiàng)目排名算法代碼與上述學(xué)??偡值呐琶惴ㄍ耆恢?,其中男子項(xiàng)目排序的過程為比擬男子項(xiàng)目總分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學(xué)校的男子項(xiàng)目的成績排名:n");p=L1->next;/先把每個(gè)學(xué)校的男子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中。for(i=0;i<=n-1;i+)zi=p->d1;p=p->next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按男子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;j<=n;j+)if(szi=p->d1)printf("第%d 名%s :%d 分n",z,p->data,p->d1);z+;p=p->next;開始完畢i=0i+i>nYN將男子項(xiàng)目的總分賦給數(shù)組szn對(duì)數(shù)組szn進(jìn)展冒泡排序遍歷鏈表L找到與szi相等的結(jié)點(diǎn)并輸出總分參加這次比賽的學(xué)校的女子項(xiàng)目的成績排名的算法:/女子項(xiàng)目排名算法代碼與上述學(xué)校總分的排名算法完全一致,其中女子項(xiàng)目排序的過程為比擬女子項(xiàng)目總分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學(xué)校的女子項(xiàng)目的成績排名:n");p=L1->next;/先把每個(gè)學(xué)校的女子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中for(i=0;i<=n-1;i+)szi=p->d2;p=p->next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按女子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;j<=n;j+)if(szi=p->d2)printf("第%d 名%s :%d 分n",z,p->data,p->d2);z+;p=p->next; 開始完畢i=0i+i>nYN將女子項(xiàng)目的總分賦給數(shù)組szn對(duì)數(shù)組szn進(jìn)展冒泡排序遍歷鏈表L找到與szi相等的結(jié)點(diǎn)并輸出總分五編碼實(shí)現(xiàn)與系統(tǒng)測試圖 5-1輸入根本信息圖 5-2學(xué)校與項(xiàng)目排名圖 5-3查詢某校各個(gè)項(xiàng)目的成績圖 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ì)通過這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),我收獲了很多: 一經(jīng)過這幾天的學(xué)習(xí),進(jìn)一步提升了C語言的應(yīng)用能力,鞏固了數(shù)據(jù)結(jié)構(gòu)上課所學(xué)習(xí)的容,數(shù)據(jù)結(jié)構(gòu)知識(shí)的應(yīng)用能力有了一定的提升,并且對(duì)C語言和數(shù)據(jù)結(jié)構(gòu)有了更深層次的認(rèn)識(shí)。 二這次課程設(shè)計(jì)我們選的課題是運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì),涉與到線性鏈表以與C語言的一些根本的知識(shí)。在以前的學(xué)習(xí)中,對(duì)知識(shí)只是掌握了大概的容,根底知識(shí)掌握的不結(jié)實(shí),所以編寫程序的過程非常的困難,通過這次課程設(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í)間。 三通過這次課程設(shè)計(jì),讓我明白了獨(dú)立思考的重要性。一個(gè)東西只有經(jīng)過自己的思考,自己明白了才是真的明白了。在思考的過程中,對(duì)一個(gè)問題思考的越深入,可以挖掘的東西就越多。在解決問題時(shí)要結(jié)合多方面的因素,不能只單方面思考問題。八源程序清單#include <stdio.h>#include <malloc.h>#include <string.h>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;/指向下一項(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;i<=n;i+)q=p;p=(LinkList)malloc(sizeof(Lnode);scanf("%s",&p->data);q->next=p;輸入男子運(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;t<20;t+)r->data1t = '0'for( t=0;t<20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '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;t<20;t+)r->data1t = '0'for( t=0;t<20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '0'scanf("%s",&r->data);s->next=r;輸入女子運(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;i<=n1;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);scanf("%s",&r->data);s->next=r;參加比賽的學(xué)校的總分排名的算法:void schoolrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學(xué)校的總分排名:n");p=L1->next;/先把每個(gè)學(xué)校的總分依次遍歷,存放在數(shù)組sz中。for(i=0;i<=n-1;i+)szi=p->da;p=p->next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;j<=n;j+)if(szi=p->da)printf("第%d 名%s :%d 分n",z,p->data,p->da);z+;p=p->next;參加這次比賽的學(xué)校的男子項(xiàng)目的成績排名的算法:/男子項(xiàng)目排名算法代碼與上述學(xué)??偡值呐琶惴ㄍ耆恢?,其中男子項(xiàng)目排序的過程為比擬男子項(xiàng)目總分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學(xué)校的男子項(xiàng)目的成績排名:n");p=L1->next;/先把每個(gè)學(xué)校的男子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中。for(i=0;i<=n-1;i+)zi=p->d1;p=p->next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按男子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;j<=n;j+)if(szi=p->d1)printf("第%d 名%s :%d 分n",z,p->data,p->d1);z+;p=p->next;參加這次比賽的學(xué)校的女子項(xiàng)目的成績排名的算法:/女子項(xiàng)目排名算法代碼與上述學(xué)??偡值呐琶惴ㄍ耆恢?,其中女子項(xiàng)目排序的過程為比擬女子項(xiàng)目總分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學(xué)校的女子項(xiàng)目的成績排名:n");p=L1->next;/先把每個(gè)學(xué)校的女子項(xiàng)目總分依次遍歷,存放在數(shù)組sz中for(i=0;i<=n-1;i+)szi=p->d2;p=p->next;/再對(duì)數(shù)組sz用冒泡排序法進(jìn)展從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按女子項(xiàng)目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等如此鏈表指針直接指向下一個(gè),不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節(jié)點(diǎn)的位置,并打印知名次信息for(j=1;j<=n;j+)if(szi=p->d2)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("*n");printf("*1 輸入根本信息 *n");printf("*2 查詢某校各個(gè)項(xiàng)目的成績 *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)目的成績if(z=2)r=L2->next;printf("請(qǐng)輸入您想查尋的學(xué)校的名字:n");/輸入待查詢學(xué)校的名稱s = (LinkList1)malloc(sizeof(Lnode1);/存儲(chǔ)學(xué)校的名字scanf("%s",&s->data);/輸出查詢結(jié)果/輸出查詢信息for(i=1;i<=m;i+) / m為男子項(xiàng)目個(gè)數(shù) 字符串比擬里面的是否相等,相等=0,不相等不=0 第一名的成績 第一名學(xué)校if(strcmp(r->data1,s->data)=0) printf("貴校榮獲男子項(xiàng)目%s 的第1名,他該項(xiàng)目的成績是:%dn",r->data,r->da1);if(strcmp(r->data2,s->data)=0) printf("貴校榮獲男子項(xiàng)目%s 的第2名,他該項(xiàng)目的成績是:%dn",r->data,r->da2);if(strcmp(r->data3,s->data)=0) printf("貴校榮獲男子項(xiàng)目%s 的第3名,他該項(xiàng)目的成績是:%dn",r->data,r->da3);if(strcmp(r->data4,s->data)=0) printf("貴校榮獲男子項(xiàng)目%s 的第4名,他該項(xiàng)目的成績是:%dn",r->data,r->da4);if(strcmp(r->data5,s->data)=0) printf("貴校榮獲男子項(xiàng)目%s 的第5名,他該項(xiàng)目的成績是:%dn",r->data,r->da5);r=r->next;/男子項(xiàng)目的鏈表r=L3->next;for(i=1;i<=w;i+)if(strcmp(r->data1,s->data)=0) printf("貴校榮獲女子項(xiàng)目%s 的第1名,她該項(xiàng)目的成績是:%dn",r->data,r->da1);if(strcmp(r->data2,s->data)=0) printf("貴校榮獲女子項(xiàng)目%s 的第2名,她該項(xiàng)目的成績是:%dn",r->data,r->da2);if(strcmp(r->data3,s->data)=0) printf("貴校榮獲女子項(xiàng)目%s 的第3名,她該項(xiàng)目的成績是:%dn",r->data,r->da3);if(strcmp(r->data4,s->data)=0) printf("貴校榮獲女子項(xiàng)目%s 的第4名,她該項(xiàng)目的成績是:%dn",r->data,r->da4);if(strcmp(r->data5,s->data)=0) printf("貴校榮獲女子項(xiàng)目%s 的第5名,她該項(xiàng)目的成績是:%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)malloc(sizeof(Lnode1);scanf("%s",&s->data); /存data里r=L2->next;for(i=1;i<=m;i+)if(strcmp(r->data,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;i<=w;i+)if(strcmp(r->data,s->data)=0)if(strlen(r->data4)=0) printf("第1名%s ,第2名%s,第3名%sn",r->data1,r->data2,r->data3); /字長 沒有輸入第四名 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é)校的名稱。schoolname(L1,n);q=L1->next;/把L1鏈表中的總分da全部初始化為0for(i=1;i<=n;i+)q->da=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;i<=m;i+)printf("如果此次%s 比賽只取前3名的成績請(qǐng)輸入1,假如只取前5名的成績請(qǐng)輸入2!n",r->data);/輸入1或2 選擇成績記錄的方式scanf("%d",&z);printf("請(qǐng)輸入第1名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第1名學(xué)校名稱和項(xiàng)目成績scanf("%s%d",&r->data1,&r->da1);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data1,q->data)=0)if(z=1) q->da=q->da+r->da1;q->d1=q->d1+r->da1;/把項(xiàng)目的成績把對(duì)應(yīng)的項(xiàng)目的成績加到學(xué)校里 先把第一名的成績加到對(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名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第2名學(xué)校名稱和項(xiàng)目成績scanf("%s%d",&r->data2,&r->da2);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data2,q->data)=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名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第3名學(xué)校名稱和項(xiàng)目成績scanf("%s%d",&r->data3,&r->da3);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data3,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,如此繼續(xù)輸入第四,第五名的學(xué)校名稱和項(xiàng)目成績。if(z=2)printf("請(qǐng)輸入第4名所來自的學(xué)校的名字和他該項(xiàng)目的成績n");/輸入第4名的學(xué)校名稱和項(xiàng)目成績。scanf("%s%d",&r->data4,&r->da4);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data4,q->data)=0) q->da=q->da+r->da4;q->d1=q->d1+r->da4;q=q->next;printf("請(qǐng)輸入第5名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第5名的學(xué)校名稱和項(xiàng)目成績。scanf("%s%d",&r->data5,&r->da5);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data5,q->data)=0) 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;i<=w;i+)printf("如果此次%s 比賽只取前3名的成績請(qǐng)輸入1,假如只取前5名的成績請(qǐng)輸入2!n",r->data);/輸入1或2 選擇記錄的個(gè)數(shù)scanf("%d",&x);printf("請(qǐng)輸入第1名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第 1 名所來自的學(xué)校的名字和他該項(xiàng)目的成績scanf("%s%d",&r->data1,&r->da1);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data1,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名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第 2名所來自的學(xué)校的名字和他該項(xiàng)目的成績scanf("%s%d",&r->data2,&r->da2);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data2,q->data)=0)if(x=1) q->da=q->da+r->da2;q->d2=q->d2+r->da2;if(x=2) q->da=q->da+r->da2;q->d2=q->d2+r->da2;q=q->next;printf("請(qǐng)輸入第3名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第 3名所來自的學(xué)校的名字和他該項(xiàng)目的成績scanf("%s%d",&r->data3,&r->da3);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data3,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名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第4名所來自的學(xué)校的名字和他該項(xiàng)目的成績scanf("%s%d",&r->data4,&r->da4);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data4,q->data)=0) q->da=q->da+r->da4;q->d2=q->d2+r->da4;q=q->next;printf("請(qǐng)輸入第5名所來自的學(xué)校的名字和他該項(xiàng)目的成績:n");/輸入第 5 名所來自的學(xué)校的名字和他該項(xiàng)目的成績scanf("%s%d",&r->data5,&r->da5);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data5,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é)校的成績?yōu)?n");/輸出n個(gè)學(xué)校的分?jǐn)?shù)for(i=1;i<=n;i+)/n個(gè)學(xué)校 第一個(gè)節(jié)點(diǎn)開始一直打印到n個(gè)printf("%s :總分:%d 分男子團(tuán)體總分:%d 分女子團(tuán)體總分:%d 分n",p->data,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

注意事項(xiàng)

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

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(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),我們立即給予刪除!