版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告</p><p> 題目:運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)</p><p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 班 級(jí):
2、 </p><p> 指導(dǎo)教師: </p><p> 2010年 5 月 28 日</p><p><b> 目 錄</b></p><p><b> 一、題目3</b></p><p><b>
3、 二、時(shí)間3</b></p><p><b> 三、地點(diǎn)3</b></p><p><b> 四、程序要求3</b></p><p> 五、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)4</p><p><b> 1.概述4</b></p><p><
4、;b> 2.關(guān)鍵算法5</b></p><p><b> 3.查詢操作8</b></p><p><b> 六、詳細(xì)代碼9</b></p><p><b> 七、測試結(jié)果21</b></p><p> 1.主菜單窗口21</p>
5、<p> 3. 統(tǒng)計(jì)各學(xué)??偡?2</p><p> 4. 按學(xué)校編號(hào)排序輸出23</p><p> 5. 按學(xué)校總分排序輸出23</p><p> 6. 按男團(tuán)體總分排序輸出24</p><p> 7. 按女團(tuán)體總分排序輸出24</p><p> 8. 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情
6、況25</p><p> 9. 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校25</p><p> 八、 測試非法數(shù)據(jù)25</p><p> 九、課程設(shè)計(jì)總結(jié)26</p><p> 一、題目:運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)</p><p> 二、時(shí)間:2010.05.24~05.28</p><p>
7、三、地點(diǎn):軟件樓606</p><p><b> 四、程序要求:</b></p><p> 任務(wù):參加運(yùn)動(dòng)會(huì)有n個(gè)學(xué)校,學(xué)校編號(hào)為1……n。比賽分成m個(gè)男子項(xiàng)目,和w個(gè)女子項(xiàng)目。項(xiàng)目編號(hào)為男子1……m,女子m+1……m+w。不同的項(xiàng)目取前前三名積分;前三名的積分分別為:5、3、2。(m、w<=20,n<=10)</p><p>
8、<b> 功能要求:</b></p><p> 1).可以輸入各個(gè)學(xué)校、各項(xiàng)目、以及各項(xiàng)目前三名的數(shù)據(jù)信息;</p><p> 2).能統(tǒng)計(jì)各學(xué)校總分、男子項(xiàng)目和女子項(xiàng)目總分;</p><p> 3).可以按學(xué)校編號(hào)(或?qū)W校名稱)、學(xué)??偡帧⒛信畧F(tuán)體總分排序輸出;</p><p> 4).可以按學(xué)校編號(hào)(或?qū)W校
9、名稱)查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭膶W(xué)校。</p><p> 規(guī)定:輸入數(shù)據(jù)形式和范圍:10以內(nèi)的整數(shù)(如果做得更好可以輸入學(xué)校的名稱,運(yùn)動(dòng)項(xiàng)目的名稱)</p><p> 輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形</p><p> 界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。</p><
10、;p> 存儲(chǔ)結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì)。請(qǐng)?jiān)谧詈蟮纳辖毁Y料中指明你用到的存儲(chǔ)結(jié)構(gòu);</p><p> 測試數(shù)據(jù):要求使用1、全部合法數(shù)據(jù);2、整體非法數(shù)據(jù);3、局部非法數(shù)據(jù)。進(jìn)行程序測試,以保證程序的穩(wěn)定。測試數(shù)據(jù)及測試結(jié)果請(qǐng)?jiān)谏辖坏馁Y料中寫明。</p><p><b> 五、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p><
11、;b> 1.概述</b></p><p> 本程序中學(xué)校的存儲(chǔ)結(jié)構(gòu)為鏈表,</p><p><b> 其中</b></p><p><b> school類為:</b></p><p> class school:public athlete /*學(xué)校*/ <
12、/p><p><b> { </b></p><p><b> ……</b></p><p><b> public:</b></p><p> int count; /*學(xué)校獲獎(jiǎng)數(shù)*/ </p><p> int serial; /*學(xué)校編號(hào)*/
13、 </p><p> int menscore; /*男選手總分*/ </p><p> int womenscore; /*女選手總分*/ </p><p> int totalscore; /*總分*/ </p><p> athlete ath[MaxSize]; /*獲獎(jiǎng)運(yùn)動(dòng)員信息數(shù)組,包括分?jǐn)?shù),名次,項(xiàng)目*/ </p
14、><p> school *prev;//前指針</p><p> school *next; //后指針</p><p><b> };</b></p><p> 其中部分主要的函數(shù):</p><p> 添加操作add(school* &head)</p><
15、p> 查詢操作checkFunc(school *head,int &n)</p><p> 文件保存save(school *head)</p><p> 總分快速排序tquicksort(vector<school *>& v, int first, int last)</p><p> 總分基數(shù)排序 tbaseSort
16、(vector<school *>& v, int d) </p><p><b> 2.關(guān)鍵算法</b></p><p><b> {……</b></p><p><b> 添加項(xiàng)目號(hào)</b></p><p> for ( i = 1 ;
17、 i <= n ; i++ ) </p><p> { 輸入第i名運(yùn)動(dòng)員的學(xué)校編號(hào)temp</p><p><b> ……</b></p><p> while(first!=head)//遍歷鏈表,直到找到編號(hào)為serial的學(xué)校所在結(jié)點(diǎn),或first指向表頭head</p><p> {if (f
18、irst->serial ==要添加的編號(hào))</p><p><b> { </b></p><p> (first->ath[first->count]).item =要添加的項(xiàng)目號(hào);</p><p> (first->ath[first->count]).range =i(名次)
19、 </p><p> First指向的學(xué)校的項(xiàng)目加一;</p><p><b> 更新總分</b></p><p><b> break;}</b></p><p> first = first->next;</p><p>&l
20、t;b> ……}</b></p><p><b> 3.查詢操作:</b></p><p><b> 六、詳細(xì)代碼:</b></p><p> #include <stdio.h> </p><p> #include <stdlib.h>
21、 </p><p> #include <string.h> </p><p> #include <io.h> </p><p> //#include <conio.h> /*屏幕操作函數(shù)*/ </p><p> #define MAX 50 </p>
22、;<p> //#define NULL 0 </p><p> typedef struct node1{ </p><p> int school; /*學(xué)校編號(hào)*/ </p><p> int record; /*項(xiàng)目成績*/ </p><p> struct node1 *next; /
23、*鏈域*/ </p><p> }Schools; </p><p> typedef struct { </p><p> int item; /*項(xiàng)目編號(hào)*/ </p><p> Schools *firstschool; /*鏈域指向鏈表中第一個(gè)結(jié)點(diǎn)*/ </p><p>
24、 }ITEM; </p><p> typedef struct { </p><p> int z; /* 項(xiàng)目總數(shù) */ </p><p> ITEM a[MAX]; </p><p> }ALLitems; </p><p> typedef struct node2 {
25、 </p><p> int item; /*該學(xué)校獲獎(jiǎng)的項(xiàng)目*/ </p><p> int record; /*項(xiàng)目成績*/ </p><p> struct node2 *next; /*鏈域*/ </p><p> }Items; </p><p> typedef stru
26、ct { </p><p> int school; /*學(xué)校編號(hào)*/ </p><p> int score; /*學(xué)??偡?/ </p><p> int boys; /*男團(tuán)體總分*/ </p><p> int girls; /*女團(tuán)體總分*/ </p><p> Ite
27、ms *firstitem; /*鏈域指向鏈表中第一個(gè)獲獎(jiǎng)項(xiàng)目的結(jié)點(diǎn)*/ </p><p> }SCHNode; </p><p> typedef struct { </p><p> int n; /* 學(xué)??倲?shù) */ </p><p> SCHNode b[MAX]; </p><p&g
28、t; }ALLNode; </p><p> ALLitems *g1; </p><p> ALLNode *g2; </p><p> void funct1(ALLitems *g1,ALLNode *g2) </p><p> { Schools *p1; &
29、lt;/p><p> Items *p2; </p><p> int i,j,k,m,w,h,x; </p><p> p1=(Schools *)malloc(sizeof(Schools)); </p><p> p2=(Items *)malloc(sizeof(Items));
30、 </p><p> if(!p1||!p2)</p><p> exit(1); </p><p><b> \n\n");</b></p><p> printf("\n
31、******輸入各個(gè)項(xiàng)目信息 ****** \n\n"); </p><p> printf(" 輸入男子項(xiàng)目總數(shù)m:"); </p><p> scanf("%d",&m); </p><p&
32、gt; if(m<0||m>20) </p><p> { printf(" 輸入有誤,m是20以內(nèi)的整數(shù),請(qǐng)重新輸入:"); </p><p> scanf("%d",&m); </p><p><b> } </b></p
33、><p> printf(" 輸入女子項(xiàng)目總數(shù)w:"); </p><p> scanf("%d",&w); </p><p> if(w<0||w>20) </p><p> { printf("
34、 輸入有誤,w是20以內(nèi)的整數(shù),請(qǐng)重新輸入:"); </p><p> scanf("%d",&w); </p><p><b> } </b></p><p> printf(" 輸入?yún)⒓舆\(yùn)動(dòng)會(huì)的學(xué)校總數(shù)n:");
35、 </p><p> scanf("%d",&g2->n); </p><p> if(g2->n<0||g2->n>20) </p><p> { printf(" 輸入有誤,n是20以內(nèi)的整數(shù),請(qǐng)重新輸入:"); </p>&l
36、t;p> scanf("%d",&g2->n); </p><p><b> } </b></p><p> g1->z=m+w;</p><p> printf(" 則項(xiàng)目編號(hào)為男子1-%d,女子%d-%d",m,m+1,g1->z); <
37、;/p><p> printf("\n\n ****記錄運(yùn)動(dòng)會(huì)成績****"); </p><p> printf("\n\n (輸入0標(biāo)志結(jié)束)\n");</p><p> for(k=1;k<=g1->z;k++)
38、 </p><p> { g1->a[k].item=k; </p><p> g1->a[k].firstschool=NULL;</p><p><b> } </b></p><p> for(k=1;k<=g2->n;k++) </p>
39、<p> { g2->b[k].school=k; </p><p> g2->b[k].firstitem=0; </p><p> g2->b[k].score=0;</p><p> g2->b[k].boys=0;</p><p> g2->b[k].girls=0; &
40、lt;/p><p> } </p><p> g2->b[0].score=0;</p><p> g2->b[0].boys=0;</p><p> g2->b[0].girls=0; </p><p> while(i!=0
41、) </p><p> { printf("\n 項(xiàng)目:"); </p><p> scanf("%d",&i); </p><p> if(i!=0) </p><p> { printf("
42、 1.前三名 2.前五名\n"); </p><p> printf(" 請(qǐng)選擇:"); </p><p> scanf("%d",&j); </p><p> if(j!=1&&j!=2) </
43、p><p> { printf(" 輸入有誤,請(qǐng)重新選擇:"); </p><p> scanf("%d",&j); </p><p><b> } </b></p><p> if(j==1)
44、 </p><p> { h=3; </p><p> do{ printf(" 第%d名:學(xué)校(學(xué)校編號(hào)為數(shù)字)",h); </p><p> scanf("%d",&x); </p><p> p1=(Schools *)malloc(sizeof
45、(Schools)); </p><p> p1->school=x; </p><p> p2=(Items *)malloc(sizeof(Items)); </p><p> p2->item=i; </p><p> if(h==3) p2->record=p1->record=2;
46、 </p><p> if(h==2) p2->record=p1->record=3; </p><p> if(h==1) p2->record=p1->record=5; </p><p> p1->next=g1->a[i].firstschool; </p><p> g1-&
47、gt;a[i].firstschool=p1; </p><p> p2->next=g2->b[x].firstitem; </p><p> g2->b[x].firstitem=p2; </p><p> g2->b[x].score=g2->b[x].score+p2->record; /* 累計(jì)總
48、分 */ </p><p> if(i<=m) g2->b[x].boys=g2->b[x].boys+p2->record; /* 累計(jì)男團(tuán)體總分 */ </p><p> else g2->b[x].girls=g2->b[x].girls+p2->record; /* 累計(jì)女團(tuán)體總分 */ </p><
49、;p><b> h--; </b></p><p> }while(x!=0&&h!=0); </p><p><b> } </b></p><p> if(j==2) </p><p> { h=5; </p>
50、;<p> do{ printf(" 第%d名:學(xué)校(學(xué)校編號(hào)為數(shù)字)",h); </p><p> scanf("%d",&x); </p><p> p1=(Schools *)malloc(sizeof(Schools)); </p><p> p1->s
51、chool=x; </p><p> p2=(Items *)malloc(sizeof(Items)); </p><p> p2->item=i; </p><p> if(h==5) p2->record=p1->record=1; </p><p> if(h==4) p2->recor
52、d=p1->record=2; </p><p> if(h==3) p2->record=p1->record=3; </p><p> if(h==2) p2->record=p1->record=5; </p><p> if(h==1) p2->record=p1->record=7; <
53、/p><p> p1->next=g1->a[i].firstschool; </p><p> g1->a[i].firstschool=p1; </p><p> p2->next=g2->b[x].firstitem; </p><p> g2->b[x].firstitem=p2;
54、 </p><p> g2->b[x].score=g2->b[x].score+p2->record; /* 累計(jì)總分 */ </p><p> if(i<=m) g2->b[x].boys=g2->b[x].boys+p2->record; /* 累計(jì)男團(tuán)體總分 */ </p><p>
55、else g2->b[x].girls=g2->b[x].girls+p2->record; /* 累計(jì)女團(tuán)體總分 */ </p><p><b> h--; </b></p><p> }while(x!=0&&h!=0); </p><p><b> } </b&
56、gt;</p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> void save() </p&g
57、t;<p> { FILE *fp1,*fp2; </p><p> fp1=(FILE *)malloc(sizeof(FILE));</p><p> fp2=(FILE *)malloc(sizeof(FILE));</p><p> if((fp1=fopen("sports1","wb"))=
58、=NULL) </p><p> { printf("cannot open file.\n"); </p><p> return; </p><p><b> }</b></p><p> if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1)<
59、/p><p> printf("file write error.\n"); </p><p> fclose(fp1); </p><p> if((fp2=fopen("sports2","wb"))==NULL) </p><p> { printf("
60、;cannot open file.\n"); </p><p> return; </p><p><b> } </b></p><p> if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) </p><p> printf("file writ
61、e error.\n"); </p><p> fclose(fp2); </p><p><b> } </b></p><p> void funct2(ALLNode *g2) /* 輸出各學(xué)??偡?*/ </p><p> { int k; &l
62、t;/p><p> printf("\n\n ****** 輸出各學(xué)校總分 ******\n"); </p><p> printf(" 學(xué)校編號(hào)\t 總分 \n"); </p><p> for(k=1;k<
63、;=g2->n;k++) </p><p> printf(" %d\t\t\t %d\n",k,g2->b[k].score); </p><p> printf("\n"); </p><p> system("pause");
64、</p><p> printf(" 按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p><p> void funct3(ALLNode *g2)
65、 /* 按學(xué)校編號(hào)排序輸出 */ </p><p><b> {</b></p><p><b> int k; </b></p><p> Items *p2;</p><p> p2=(Items *)malloc(sizeof(Items
66、));</p><p> printf("\n\n ****** 按學(xué)校編號(hào)排序輸出 ******\n"); </p><p> printf(" 學(xué)校編號(hào)\t\t\t獲獎(jiǎng)情況 \n"); </p><p> scanf("
67、;%d",&k); </p><p> for(k=1;k<=g2->n;k++) </p><p> { printf("\t\t\t\t\t\t%d\t",k); </p><p> p2=g2->b[k].firstitem; </p><p> whi
68、le(p2!=NULL) </p><p> { printf("項(xiàng)目%d:得%d分 ",p2->item,p2->record); </p><p> p2=p2->next; </p><p><b> } </b></p><p> printf(&
69、quot;\n"); </p><p><b> } </b></p><p> printf("\n"); </p><p> system("pause");</p><p> printf("按任意鍵返回主菜單......");
70、 </p><p> getchar(); </p><p><b> } </b></p><p> void funct4(ALLNode *g2) /* 按學(xué)??偡峙判蜉敵?*/ </p><p> { int i,j,k; </p&g
71、t;<p> Items *p2; </p><p> printf("\n\n ****** 按學(xué)??偡峙判蜉敵?******\n"); </p><p> printf(" 學(xué)校編號(hào)\t\t總分 \n"); </p><p> scanf(&qu
72、ot;%d",&k); </p><p> //printf("輸入要查詢的項(xiàng)目編號(hào):");</p><p> for(i=2;i<=g2->n;i++) </p><p><b> {</b></p><p> printf("%d\t&q
73、uot;,k); </p><p> p2=g2->b[k].firstitem; </p><p> while(p2!=NULL) </p><p> { printf("%d \t\t%d\n",g2->b[k].school,g2->b[k].score); </p><p>
74、 p2=p2->next; </p><p><b> } </b></p><p> printf("\n"); </p><p> g2->b[0].score=g2->b[i].score; </p><p> g2->b[0].boys=g2-
75、>b[i].boys; </p><p> g2->b[0].girls=g2->b[i].girls; </p><p> g2->b[0].school=g2->b[i].school; </p><p><b> j=i-1; </b></p><p> whi
76、le(g2->b[0].score<g2->b[j].score&&j>0) </p><p> { g2->b[j+1].score=g2->b[j].score; </p><p> g2->b[j+1].boys=g2->b[j].boys; </p><p> g2->b
77、[j+1].girls=g2->b[j].girls; </p><p> g2->b[j+1].school=g2->b[j].school; </p><p><b> j--; </b></p><p><b> } </b></p><p> g2-
78、>b[j+1].score=g2->b[0].score; </p><p> g2->b[j+1].boys=g2->b[0].boys; </p><p> g2->b[j+1].girls=g2->b[0].girls; </p><p> g2->b[j+1].school=g2->b[0].
79、school; </p><p><b> } </b></p><p> for(k=1;k<=g2->n;k++) </p><p> printf("%d \t\t%d\n",g2->b[k].school,g2->b[k].score); </p><p
80、> system("pause");</p><p> printf("按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p><p> void funct5(ALLNode *
81、g2) /* 按男團(tuán)體總分排序輸出 */ </p><p> { int i,j,k; </p><p> Items *p2;</p><p> p2=(Items *)malloc(sizeof(Items));</p><p> printf("\n\n
82、 ****** 按男團(tuán)體總分排序輸出 ******\n");</p><p> printf("學(xué)校編號(hào)\t\t男團(tuán)體總分 \n"); </p><p> scanf("%d",&k); </p><p> //printf("輸入要查詢的學(xué)校編號(hào):"
83、;);</p><p> for(i=2;i<=g2->n;i++) </p><p><b> { </b></p><p> printf("%d\t",k); </p><p> p2=g2->b[k].firstitem; </p><
84、p> while(p2!=NULL) </p><p> { printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].boys); </p><p> p2=p2->next; </p><p><b> } </b></p>&
85、lt;p> printf("\n"); </p><p> g2->b[0].score=g2->b[i].score; </p><p> g2->b[0].boys=g2->b[i].
86、boys; </p><p> g2->b[0].girls=g2->b[i].girls; </p><p> g2->b[0].school=g2->b[i].school; </p><p><b> j=i-1; </b></p><p> while(g2->
87、;b[0].boys<g2->b[j].boys&&j>0) </p><p> { g2->b[j+1].score=g2->b[j].score; </p><p> g2->b[j+1].boys=g2->b[j].boys; </p><p> g2->b[j+1].girls
88、=g2->b[j].girls; </p><p> g2->b[j+1].school=g2->b[j].school; </p><p><b> j--; </b></p><p><b> } </b></p><p> g2->b[j+1].
89、score=g2->b[0].score; </p><p> g2->b[j+1].boys=g2->b[0].boys; </p><p> g2->b[j+1].girls=g2->b[0].girls; </p><p> g2->b[j+1].school=g2->b[0].school; &
90、lt;/p><p><b> } </b></p><p> for(k=1;k<=g2->n;k++) </p><p> printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].boys); </p><p> syst
91、em("pause"); // 暫停等待</p><p> printf("按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p>
92、;<p> void funct6(ALLNode *g2) /* 按女團(tuán)體總分排序輸出 */ </p><p> { int i,j,k; </p><p> Items *p2;</p><p> p2=(Items *)malloc(sizeof(Items));</p>&l
93、t;p> printf("\n\n ****** 按女團(tuán)體總分排序輸出 ******\n");</p><p> printf("學(xué)校編號(hào)\t\t女團(tuán)體總分 \n"); </p><p> scanf("%d",&k); </p><p&g
94、t; // printf("輸入要查詢的項(xiàng)目編號(hào):");</p><p> for(i=2;i<=g2->n;i++) </p><p><b> {</b></p><p> printf("%d\t",k); </p><p> p2=g2->
95、;b[k].firstitem;</p><p> while(p2!=NULL) </p><p> { printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].girls); </p><p> p2=p2->next; </p><p><
96、;b> } </b></p><p> printf("\n"); </p><p> g2->b[0].score=g2->b[i].score; </p><p> g2->b[0].boys=g2->b[i].boys; </p><p> g2->
97、;b[0].girls=g2->b[i].girls; </p><p> g2->b[0].school=g2->b[i].school; </p><p><b> j=i-1; </b></p><p> while(g2->b[0].girls<g2->b[j].girls&
98、&j>0) </p><p> { g2->b[j+1].score=g2->b[j].score; </p><p> g2->b[j+1].boys=g2->b[j].boys; </p><p> g2->b[j+1].girls=g2->b[j].girls; </p>&
99、lt;p> g2->b[j+1].school=g2->b[j].school; </p><p><b> j--; </b></p><p><b> } </b></p><p> g2->b[j+1].score=g2->b[0].score; </p&g
100、t;<p> g2->b[j+1].boys=g2->b[0].boys; </p><p> g2->b[j+1].girls=g2->b[0].girls; </p><p> g2->b[j+1].school=g2->b[0].school; </p><p><b> }
101、</b></p><p> for(k=1;k<=g2->n;k++) </p><p> printf("%d\t\t %d\n",g2->b[k].school,g2->b[k].girls); </p><p> system("pause");</p>
102、<p> printf("按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p><p> void funct7(ALLNode *g2) /* 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 */ <
103、;/p><p> { int i,j; </p><p> Items *p2; </p><p> printf("\n ****** 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 ******\n"); </p><p> printf("
104、 輸入要查詢的學(xué)校編號(hào):"); </p><p> scanf("%d",&i); </p><p> printf(" 輸入要查詢的項(xiàng)目編號(hào):"); </p><p> scanf("%d",&j);
105、 </p><p> p2=g2->b[i].firstitem; </p><p> while(p2!=NULL) </p><p> { if(p2->item==j) </p><p> printf(" 學(xué)校編號(hào):%d\t項(xiàng)目
106、%d:得%d分\n",i,p2->item,p2->record); </p><p> p2=p2->next; </p><p><b> } </b></p><p> printf("\n"); </p><p> system("p
107、ause");</p><p> printf(" 按任意鍵返回主菜單......"); </p><p> getchar(); </p><p><b> } </b></p><p> void funct8(ALLi
108、tems *g1) /* 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 */ </p><p> { int i; </p><p> Schools *p1; </p><p> printf("\n*** 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 ***\n"); </p><p> pri
109、ntf("輸入要查詢的項(xiàng)目編號(hào):"); </p><p> scanf("%d",&i); </p><p> printf("項(xiàng)目編號(hào)\t\t\t取得名次的學(xué)校\n"); </p><p> printf("%d\t",i); </p>&l
110、t;p> p1=g1->a[i].firstschool; </p><p> while(p1!=NULL) </p><p> { printf(" 學(xué)校%d:得%d分 ",p1->school,p1->record); </p><p> p1=p1->next; </p>
111、<p><b> } </b></p><p> printf("\n\n"); </p><p> system("pause");</p><p> printf("按任意鍵返回主菜單......"); </p><p>
112、 getchar(); </p><p><b> } </b></p><p> void main() </p><p> { int t; </p><p> g2=(ALLNode*)malloc(sizeof(ALLNode));</p><p> g1=(A
113、LLitems*)malloc(sizeof(ALLitems));</p><p> if(!g2||!g1)</p><p><b> exit(1);</b></p><p> //textcolor(WHITE); </p><p> //textbackground(BLUE); </p
114、><p> //clrscr(); </p><p> system("cls");</p><p> for(;;) </p><p><b> { </b></p><p> printf("\t\t* * * * * * * * * * *
115、 * * * * * * * * * * * *\n"); </p><p> printf("\t\t 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng) \n"); </p><p> printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n");
116、</p><p> printf("\t\t* 1.輸入各個(gè)項(xiàng)目成績并存儲(chǔ)文件 *\t \n"); </p><p> printf("\t\t* 2.統(tǒng)計(jì)各學(xué)??偡?*\t \n"); </p><p> printf("\t\t*
117、3.按學(xué)校編號(hào)排序輸出 *\t \n"); </p><p> printf("\t\t* 4.按學(xué)??偡峙判蜉敵?*\t \n"); </p><p> printf("\t\t* 5.按男團(tuán)體總分排序輸出 *\t \n");
118、 </p><p> printf("\t\t* 6.按女團(tuán)體總分排序輸出 *\t \n"); </p><p> printf("\t\t* 7.按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況 *\t \n"); </p><p> printf("\t\t* 8.按
119、項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校 *\n"); </p><p> printf("\t\t* 0.退出 *\n"); </p><p> printf("\t\t* * * * * * * * * * * * * * * * * * * * * * *\n"); <
120、;/p><p> printf("\t\t \n");</p><p> printf("\t\t \n");</p><p> printf("\t\t
121、 \n");</p><p> printf("\t\t 請(qǐng)選擇(0-8):"); </p><p> loop:scanf("%d",&t); </p><p> system("cls")
122、;</p><p> switch(t) </p><p> { case 1:funct1(g1,g2);save();break; </p><p> case 2:funct2(g2);break; </p><p> case 3:funct3(g2);break; </p><p>
123、 case 4:funct4(g2);break; </p><p> case 5:funct5(g2);break; </p><p> case 6:funct6(g2);break; </p><p> case 7:funct7(g2);break; </p><p> case 8:funct8(g1);b
124、reak; </p><p> case 0:exit(0); </p><p> default:{ printf("輸入有誤,請(qǐng)重新選擇:"); </p><p> goto loop;} </p><p> }//clrscr(); </p><p> system(
125、"cls");</p><p><b> } </b></p><p><b> } </b></p><p><b> 七、測試結(jié)果</b></p><p><b> 1.主菜單窗口</b></p>&
126、lt;p> 2. 輸入各個(gè)項(xiàng)目成績并存儲(chǔ)文件 </p><p> 3. 統(tǒng)計(jì)各學(xué)校總分</p><p> 4. 按學(xué)校編號(hào)排序輸出</p><p> 5. 按學(xué)??偡峙判蜉敵?lt;/p><p> 6. 按男團(tuán)體總分排序輸出</p><p> 7. 按女團(tuán)體總分排序輸出</p><p&
127、gt; 8. 按學(xué)校編號(hào)查詢學(xué)校某個(gè)項(xiàng)目情況</p><p> 9. 按項(xiàng)目編號(hào)查詢?nèi)〉妹蔚膶W(xué)校</p><p><b> 測試非法數(shù)據(jù):</b></p><p> 對(duì)系統(tǒng)進(jìn)行局部非法數(shù)據(jù)測試,以找出系統(tǒng)的bug,例如:提示輸入數(shù)據(jù)的地方輸入了字符或字符串;提示輸入字符y或n的地方輸入了數(shù)據(jù)或字符串。因此設(shè)計(jì)了如下局部非法數(shù)據(jù)測試。&
128、lt;/p><p><b> 九、課程設(shè)計(jì)總結(jié):</b></p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。</p><p> 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng),時(shí)間和空間復(fù)雜度計(jì)算都比較復(fù)雜,運(yùn)動(dòng)會(huì)在調(diào)試的時(shí)候出現(xiàn)的問題最多,頭文件就有很多問題,一開始的
129、時(shí)候出現(xiàn)的120個(gè)錯(cuò)誤都是有關(guān)頭文件的,因?yàn)榧扔胹tudio.h又用iostream,所以問題比較多,隨后統(tǒng)一為studio,h則問題得到解決,從中知道,兩個(gè)頭文件不能混合使用,運(yùn)動(dòng)會(huì)數(shù)涉及到文件的輸入輸出,這里也碰到很多問題,首先是文件不能正常的讀出,以及一些格式的錯(cuò)誤,最后也得到解決,整個(gè)程序最主要的是建立學(xué)校和項(xiàng)目這兩個(gè)鏈表,以及兩者之間的具體關(guān)系,所以這個(gè)地方比較容易搞錯(cuò)。</p><p> 類似的編程
130、問題,在設(shè)計(jì)中還遇到了很多。最后在老師的指導(dǎo)下,和班級(jí)幾個(gè)同學(xué)的幫助下,終于解決,較為完善的完成了任務(wù)。</p><p> 回顧這次課程設(shè)計(jì),使我感慨頗多。的確,從理論到實(shí)踐,在整整兩星期的日子里,學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,從而提高自己的實(shí)際動(dòng)手編程能力和獨(dú)立思考的能力。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)課程設(shè)計(jì)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)論文
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告--運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)-數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)(c語言版)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)課程設(shè)計(jì)
- 運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(含源代碼)
評(píng)論
0/150
提交評(píng)論