運動會分數統計系統 數據結構課程設計_第1頁
運動會分數統計系統 數據結構課程設計_第2頁
運動會分數統計系統 數據結構課程設計_第3頁
運動會分數統計系統 數據結構課程設計_第4頁
運動會分數統計系統 數據結構課程設計_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、石家莊經濟學院華信學院 課程設計報告學 院: 專 業: 班 級: 學 號: 姓 名: 運動會分數統計系統的設計與實現一問題描述大學作為一個提供學生全面發展的高等教育機構,不僅要培養學生的學習能力,而且更要注重學生的德智體美全面發展。在大學中有很多豐富多彩的比賽和活動,例如運動會,演講比賽,歌唱比賽,書法比賽等,在比賽和競爭中,我們的這些素質和能力更容易得到培養提升。但是比賽最后的分數統計和查詢往往是舉辦者頭疼的事情,分數的統計和查詢需要快速準確,因此我們設計了這個運動會分數統計系統,以方便分數的統計查詢。參加運動會的n個學校編號為1n。比賽分成m個男子項目和w個女子項目,項目編號分別為1m和m

2、+1m+w。由于各項目參加人數差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目只取前三名,得分順序為5,3,2。寫一個統計程序產生各種成績單和得分報表。二需求分析 系統功能描述: (1)可以輸入各個項目的前三名或前五名的成績;(2)能統計各學校總分;(3)可以按學校編號或名稱、學校總分、男女團體總分排序輸出;(4)可以按學校編號查詢學校某個項目的情況;可以按項目編號查詢取得前三或前五名的學校。三概要設計3.1鏈表結構的ADT的定義ADT List 數據對象:D=ai|aiElemSet,i=1,2,n,n0 數據關系:R1=<ai-1,ai>|ai-1,aiD,

3、i=2,n 基本操作: InitList(&L) 操作結果:構造一個空的線性表L。 GetElem(L,i,&e) 初始條件:線性表L已存在,1iListLength(L) 操作結果:用e返回L中第i個數據元素的值。 LocateElem(L,e,compare() 初始條件:線性表L已存在,compare()是數據元素判定函數。 操作結果:返回L中第1個與e滿足關系compare()的數據元素的位序。若這樣的數據元素不存在,則返回值為0。 PriorElem(L,cur_e,&pre_e)初始條件:線性表L已存在。 操作結果:若cur_e是L的數據元素,且不是第一個,

4、則用pre_e返回它的前驅,否則操作失敗,pre_e無定義。 NextElem(L,cur_e,&next_e) 初始條件:線性表L已存在。 操作結果:若cur_e是L的數據元素,且不是最后一個,則用next_e返回它的后繼,否則操作失敗,next_e無定義。 ListInsert(&L,I,e) 初始條件:線性表L已存在,1iListLength(L)+1 操作結果:在L中第i個位置之前插入新的元素e,L是表長度加1 ListTraverse(L,visit() 初始條件:線性表L已存在。 操作結果:依次對L的每個數據元素調用函數visit()。一旦visit()失敗,則操作

5、失敗。ADT List3.2系統功能模塊設計運動會分數統計系統輸入各學校名稱輸入男子運動項目 輸入女子運動項目輸入男子項目的成績輸入女子項目的成績查詢某校各個項目的成績查詢某校各個項目的成績圖 3-1運動會分數統計系統功能模塊圖 main()womansports(LinkList &L,int n) 循環語句依次輸入每個值 ListTraverse(L,visit() schoolname(LinkList &L,int n) mansports(LinkList &L,int n) 循環語句依次輸入每個值

6、ListTraverse(L,visit() ListTraverse(L,visit() ListTraverse(L,visit() 3.3主要函數調用關系圖圖 3-2系統函數調用關系圖3.4主界面設計為了實現運動會分數統計系統,需要設計一個含有多菜單項的主控菜單子程序,以鏈接系統中各個子項目的調用,為了方便用戶使用本系統,本系統主控菜單的運行界面如圖3-3所示。圖 3-3主菜單運行界面 四詳細設計實現運動會分數統計系統的開發,采用鏈表結構類型存儲運動會學校名稱、男子女子運動項目以及男子女子項目成績的信息。4.1數據類型定義/每一個學校的信息typedef struct Lnode/結點c

7、har data20; /學校名稱int da,d1,d2; /學校編號、學校總分、男女團體分struct Lnode *next; /指向下一學校 Lnode,*LinkList;int sz20;/每一個項目的信息 存取typedef struct Lnode1char data20,data120,data220,data320,data420,data520;/該項目前五名學校的名稱int da1,da2,da3,da4,da5; /該項目前五名學校的編號struct Lnode1 *next; /指向下一項目 Lnode1,*LinkList1;4.2 系統子程序詳細設計輸入各學校名

8、稱的算法:/按從頭到尾的順序依次建立線性鏈表L1共有n個節點void schoolname(LinkList &L1,int n)int i;LinkList p,q;/輸入頭結點信息,即輸入第一個學校的名字L1=(LinkList)malloc(sizeof(Lnode);/ malloc是動態開辟內存,函數返回為void型指針(指向開辟的內存空間);(LinkList)定義的指針的類型;(sizeof(Lnode)malloc開辟的內存空間的大小printf("請輸入這%d 個學校的名字:n",n);p=(LinkList)malloc(sizeof(Lnode

9、);/指向一個有意義的地方L1->next=p;/把p的值賦給next next指向實際的空間 p時指針scanf("%s",&p->data);/修改空間的值,&取p的數據域的地址/從第二個節點開始依次輸入到第n個節點信息for(i=2;i<=n;i+) /p是第一個,所以i=2從2開始 先指出第一個,然后第一個在指出剩下的 q=p; /q指向p開辟的空間 即 q指向p指向的地方p=(LinkList)malloc(sizeof(Lnode);/給新開辟的空間賦值開始輸入n個學校的名字i=0i>n將第i個結點加入鏈表L結束NYsca

10、nf("%s",&p->data);q->next=p;輸入男子運動項目名字的算法:/按從頭到尾的順序依次建立線性鏈表L2共有n2個節點void mansports(LinkList1 &L2,int n2) /輸入第一個節點的信息,即第一個男子項目的名字int i;LinkList1 r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf("請輸入這%d 個項目的名字:n",n2);r=(LinkList1)malloc(sizeof(Lnode1);/把新開辟的空間data1-5初始化

11、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);/從第二個節點開始輸入到第n

12、2個節點的信息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 = &

13、#39;0'scanf("%s",&r->data);s->next=r;開始輸入n個男子項目的名字i=0i>n將第i個結點加入鏈表L結束NY輸入女子運動項目名字的算法:/按從頭到尾的順序依次建立線性鏈表L3共有n1個節點void womansports(LinkList1 &L3,int n1) /輸入第一個節點的信息,即第一個女子項目的名字int i;LinkList1 r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf("請輸入這%d 個項目的名字:n",n1);r

14、=(LinkList1)malloc(sizeof(Lnode1);L3->next=r;scanf("%s",&r->data);/從第二個節點開始依次輸入到第n1個節點信息for(i=2;i<=n1;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);scanf("%s",&r->data);s->next=r;開始輸入n個女子項目的名字i=0i>n將第i個結點加入鏈表L結束NY參加比賽的學校的總分排名的算法:void schoolrankings(LinkList

15、&L1,int n)LinkList p; 學校的數據類型 上邊int z,i,j,y; printf("參加這次比賽的學校的總分排名:n");p=L1->next; /下一個地方的指針給p p是學校的數據類型 p是一個節點,L1下一個節點給p/先把每個學校的總分依次遍歷,存放在數組sz中。 一個一個取,一個一個找先讓p指向一個鏈表for(i=0;i<=n-1;i+)szi=p->da; /節點的信息指向一個數組,data學校總數的數據域, 把所有的學校的總分p=p->next;/再對數組sz用冒泡排序法進行從小到大排序for(i=1;i&l

16、t;=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按項目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next; / L1表示一個節點,取出里面一個數據,那個數據的名字是next,next也是一個節點,p也是一個節點,if(i>0) / 意義是判斷下一個是不是/如果值相等則鏈表指針直接指向下一個,不用交換位置while(szi=szi-1) 相鄰的兩個數組素不素相等i-; /從大到小,從最后一個比較/在鏈表L1中找到

17、與szi 相等的節點的位置,并打印出名次信息for(j=1;j<=n;j+) if(szi=p->da) /數組里面的值從最后一個開始取 printf("第%d 名%s :%d 分n",z,p->data,p->da);z+;p=p->next;開始結束i=0i+i>nYN將每個學校的總分賦給數組szn對數組szn進行冒泡排序遍歷鏈表L找到與szi相等的結點并輸出總分參加這次比賽的學校的男子項目的成績排名的算法:/男子項目排名算法代碼與上述學校總分的排名算法完全一致,其中男子項目排序的過程為比較男子項目總分void manrankings

18、(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學校的男子項目的成績排名:n");p=L1->next;/先把每個學校的男子項目總分依次遍歷,存放在數組sz中。for(i=0;i<=n-1;i+)zi=p->d1;p=p->next;/再對數組sz用冒泡排序法進行從小到大排序 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按男子項目總分

19、從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節點的位置,并打印出名次信息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將男子項目的總分賦給數組szn對數組szn進行冒泡排序遍歷鏈表L找到與szi相等的結點并輸出總分參加這次比賽的學校的女子項目的成績

20、排名的算法:/女子項目排名算法代碼與上述學校總分的排名算法完全一致,其中女子項目排序的過程為比較女子項目總分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學校的女子項目的成績排名:n");p=L1->next;/先把每個學校的女子項目總分依次遍歷,存放在數組sz中for(i=0;i<=n-1;i+)szi=p->d2;p=p->next;/再對數組sz用冒泡排序法進行從小到大排序for(i=1;i<=n-1;i+)for(j=1;j

21、<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按女子項目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等則鏈表指針直接指向下一個,不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節點的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d2)printf("第%d 名%s :%d 分n",z,p->data,p->d2);z+

22、;p=p->next; 開始結束i=0i+i>nYN將女子項目的總分賦給數組szn對數組szn進行冒泡排序遍歷鏈表L找到與szi相等的結點并輸出總分五編碼實現及系統測試圖 5-1輸入基本信息圖 5-2學校及項目排名圖 5-3查詢某校各個項目的成績圖 5-4查詢某個項目的比賽結果圖 5-5結束本程序六結果分析表 6-1時間、空間復雜度 操作時間復雜度空間復雜度1O(n+m)O(1)2O(n)O(1)3O(m)O(1)注:m為學校個數,n為項目個數。七學習體會 通過這次數據結構課程設計,我收獲了很多: 一經過這幾天的學習,進一步提升了C語言的應用能力,鞏固了數據結構上課所學習的內容,數

23、據結構知識的應用能力有了一定的提升,并且對C語言和數據結構有了更深層次的認識。 二這次課程設計我們選的課題是運動會分數統計,涉及到線性鏈表以及C語言的一些基本的知識。在以前的學習中,對知識只是掌握了大概的內容,基礎知識掌握的不牢固,所以編寫程序的過程非常的困難,通過這次課程設計,讓我知道基礎知識非常重要。在進行概要設計的時候要注意結合問題的需求分析,函數調用要和系統功能相結合。在書寫程序時,要認真細心,很多錯誤都是因為自己的粗心,調試程序就花費了非常多的時間。 三通過這次課程設計,讓我明白了獨立思考的重要性。一個東西只有經過自己的思考,自己明白了才是真的明白了。在思考的過程中,對一個問題思考的

24、越深入,可以挖掘的東西就越多。在解決問題時要結合多方面的因素,不能只單方面思考問題。八源程序清單#include <stdio.h>#include <malloc.h>#include <string.h>typedef struct Lnode 類型定義char data20; /學校名稱int da,d1,d2; /學校編號、學校總分、男女團體分struct Lnode *next; /指向下一學校 Lnode,*LinkList;int sz20;/每一個項目的信息typedef struct Lnode1char data20,data120,da

25、ta220,data320,data420,data520;/該項目前五名學校的名稱int da1,da2,da3,da4,da5; /該項目前五名學校的編號struct Lnode1 *next; /指向下一項目 Lnode1,*LinkList1;輸入各學校名稱的算法:/按從頭到尾的順序依次建立線性鏈表L1共有n個節點void schoolname(LinkList &L1,int n)int i;LinkList p,q;/輸入頭結點信息,即輸入第一個學校的名字L1=(LinkList)malloc(sizeof(Lnode);printf("請輸入這%d 個學校的名字

26、:n",n);p=(LinkList)malloc(sizeof(Lnode);L1->next=p;scanf("%s",&p->data);/從第二個節點開始依次輸入到第n個節點信息for(i=2;i<=n;i+)q=p;p=(LinkList)malloc(sizeof(Lnode);scanf("%s",&p->data);q->next=p;輸入男子運動項目名字的算法:/按從頭到尾的順序依次建立線性鏈表L2共有n2個節點void mansports(LinkList1 &L2,in

27、t n2) /輸入第一個節點的信息,即第一個男子項目的名字int i;LinkList1 r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf("請輸入這%d 個項目的名字: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'

28、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);/從第二個節點開始輸入到第n2個節點的信息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->d

29、ata2t = '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;輸入女子運動項目名字的算法:/按從頭到尾的順序依次建立線性鏈表L3共有n1個節點void womansports(LinkList1 &L3,int n1) /輸入第一個節點的

30、信息,即第一個女子項目的名字int i;LinkList1 r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf("請輸入這%d 個項目的名字:n",n1);r=(LinkList1)malloc(sizeof(Lnode1);L3->next=r;scanf("%s",&r->data);/從第二個節點開始依次輸入到第n1個節點信息for(i=2;i<=n1;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);scanf("%s",&a

31、mp;r->data);s->next=r;參加比賽的學校的總分排名的算法:void schoolrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學校的總分排名:n");p=L1->next;/先把每個學校的總分依次遍歷,存放在數組sz中。for(i=0;i<=n-1;i+)szi=p->da;p=p->next;/再對數組sz用冒泡排序法進行從小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(sz

32、j-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按項目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等則鏈表指針直接指向下一個,不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節點的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->da)printf("第%d 名%s :%d 分n",z,p->data,p->da);z+;p=p->next;參加這次比

33、賽的學校的男子項目的成績排名的算法:/男子項目排名算法代碼與上述學校總分的排名算法完全一致,其中男子項目排序的過程為比較男子項目總分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學校的男子項目的成績排名:n");p=L1->next;/先把每個學校的男子項目總分依次遍歷,存放在數組sz中。for(i=0;i<=n-1;i+)zi=p->d1;p=p->next;/再對數組sz用冒泡排序法進行從小到大排序 for(i=1;i<=n-1;i

34、+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把線性鏈表L1按男子項目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節點的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d1)printf("第%d 名%s :%d 分n",z,p->data,p->d1);z+;p=p->next;

35、參加這次比賽的學校的女子項目的成績排名的算法:/女子項目排名算法代碼與上述學校總分的排名算法完全一致,其中女子項目排序的過程為比較女子項目總分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf("參加這次比賽的學校的女子項目的成績排名:n");p=L1->next;/先把每個學校的女子項目總分依次遍歷,存放在數組sz中for(i=0;i<=n-1;i+)szi=p->d2;p=p->next;/再對數組sz用冒泡排序法進行從小到大排序for(i=1;i<

36、=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按女子項目總分從大到小的順序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等則鏈表指針直接指向下一個,不用交換位置while(szi=szi-1)i-;/在鏈表L1中找到與szi 相等的節點的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d2)printf("第%d 名%s :%d 分n",z,p->

37、data,p->d2);z+;p=p->next; void main ()int i,j,z,x,n,m,w;/聲明學校鏈表LinkList p,q,L1; /p,q沒有實際意義,L1是有實際意義,是儲存學校信息/聲明項目鏈表LinkList1 r,s,L2,L3; / 同上 男子男子鏈表,女子想么鏈表doprintf("*n");printf("*1 輸入基本信息 *n");printf("*2 查詢某校各個項目的成績 *n");printf("*3 查詢某個項目的比賽結果 *n");printf(

38、"*4 結束本程序 *n");printf("*n");printf("請選擇您想進行的操作n");/輸入1,或2或3 選擇功能scanf("%d",&z);/z=2查詢某校各個項目的成績if(z=2)r=L2->next;printf("請輸入您想查尋的學校的名字:n");/輸入待查詢學校的名稱s = (LinkList1)malloc(sizeof(Lnode1);/存儲學校的名字scanf("%s",&s->data);/輸出查詢結果/輸出查

39、詢信息for(i=1;i<=m;i+) / m為男子項目個數 字符串比較里面的是否相等,相等=0,不相等不=0 第一名的成績 第一名學校if(strcmp(r->data1,s->data)=0) printf("貴校榮獲男子項目%s 的第1名,他該項目的成績是:%dn",r->data,r->da1);if(strcmp(r->data2,s->data)=0) printf("貴校榮獲男子項目%s 的第2名,他該項目的成績是:%dn",r->data,r->da2);if(strcmp(r->

40、;data3,s->data)=0) printf("貴校榮獲男子項目%s 的第3名,他該項目的成績是:%dn",r->data,r->da3);if(strcmp(r->data4,s->data)=0) printf("貴校榮獲男子項目%s 的第4名,他該項目的成績是:%dn",r->data,r->da4);if(strcmp(r->data5,s->data)=0) printf("貴校榮獲男子項目%s 的第5名,他該項目的成績是:%dn",r->data,r->

41、;da5);r=r->next; /男子項目的鏈表r=L3->next; for(i=1;i<=w;i+)if(strcmp(r->data1,s->data)=0) printf("貴校榮獲女子項目%s 的第1名,她該項目的成績是:%dn",r->data,r->da1);if(strcmp(r->data2,s->data)=0) printf("貴校榮獲女子項目%s 的第2名,她該項目的成績是:%dn",r->data,r->da2);if(strcmp(r->data3,s-

42、>data)=0) printf("貴校榮獲女子項目%s 的第3名,她該項目的成績是:%dn",r->data,r->da3);if(strcmp(r->data4,s->data)=0) printf("貴校榮獲女子項目%s 的第4名,她該項目的成績是:%dn",r->data,r->da4);if(strcmp(r->data5,s->data)=0) printf("貴校榮獲女子項目%s 的第5名,她該項目的成績是:%dn",r->data,r->da5);r=r

43、->next;/查詢學校結束/z=3查詢某個項目的比賽結果if(z=3)printf("請輸入您想查尋的項目的名字:n");/輸入待查詢的項目名稱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"

44、;,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;/打印項目比賽結果for(i=1;i<=w;i+)if(strcmp(r->data,s->data)=0)if(strlen(r->data4)=0) prin

45、tf("第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)/輸入部分 /輸入學校的個數nprintf("請輸入參加

46、這次比賽的學校的個數:n");scanf("%d",&n);/構建鏈表L1,依次輸入n個學校的名稱。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;/輸入男子個項目總數mprintf("n請輸入這次比賽的男子項目的個數:n");scanf("%d",&m);/構建男子項目鏈表L2輸入m個男子運動項目名字mansports

47、(L2,m);r=L2->next;/依次m個男子項目的結果for(i=1;i<=m;i+)printf("如果此次%s 比賽只取前3名的成績請輸入1,若只取前5名的成績請輸入2!n",r->data);/輸入1或2 選擇成績記錄的方式scanf("%d",&z);printf("請輸入第1名所來自的學校的名字和他該項目的成績:n");/輸入第1名學校名稱和項目成績scanf("%s%d",&r->data1,&r->da1);q=L1->next;for

48、(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;/把項目的成績把對應的項目的成績加到學校里 先把第一名的成績加到對應的學校 加到男子項目總分if(z=2) q->da=q->da+r->da1;q->d1=q->d1+r->da1;q=q->next;printf("請輸入第2名所來自的學校的名字和他該項目的成績:n");/輸入第2名學校名稱和項目成

49、績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("請輸入第3名所來自的學校的名字和他該項

50、目的成績:n");/輸入第3名學校名稱和項目成績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

51、=2,則繼續輸入第四,第五名的學校名稱和項目成績。if(z=2)printf("請輸入第4名所來自的學校的名字和他該項目的成績n");/輸入第4名的學校名稱和項目成績。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(&quo

52、t;請輸入第5名所來自的學校的名字和他該項目的成績:n");/輸入第5名的學校名稱和項目成績。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;/輸入男子項目完畢printf("n請輸入這次比賽的女子項目的個數:n

53、");/輸入女子項目的的個數wscanf("%d",&w);/構建鏈表L3,輸入w個項目名稱womansports(L3,w);r=L3->next;/依次對w個女子項目進行結果記錄for(i=1;i<=w;i+)printf("如果此次%s 比賽只取前3名的成績請輸入1,若只取前5名的成績請輸入2!n",r->data);/輸入1或2 選擇記錄的個數scanf("%d",&x);printf("請輸入第1名所來自的學校的名字和他該項目的成績:n");/輸入第 1 名所來自的學校的名字和他該項目的成績scanf("%s%d",&r->data1,&r->da1);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data1,q->

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論