課程設(shè)計(jì)報(bào)告----運(yùn)動(dòng)分?jǐn)?shù)計(jì)分系統(tǒng)_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《 數(shù) 據(jù) 結(jié) 構(gòu) 》課 程 設(shè) 計(jì) 報(bào) 告 書</p><p>  題目名稱:運(yùn)動(dòng)分?jǐn)?shù)計(jì)分系統(tǒng) </p><p><b>  課程設(shè)計(jì)目的</b></p><p><b>  課程設(shè)計(jì)的內(nèi)容</b></p><p>  本課程設(shè)計(jì)的目的利用C++知識(shí)構(gòu)造兩個(gè)鏈表并運(yùn)用冒泡排序

2、的方法對(duì)對(duì)總分進(jìn)行排序的方法,簡(jiǎn)單的設(shè)計(jì)了一個(gè)運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng),實(shí)現(xiàn)以下的一些功能:添加系別、 添加運(yùn)動(dòng)項(xiàng)目 、按系別編號(hào)輸出總分、按總分排序 、按男團(tuán)體總分進(jìn)行排序、按女團(tuán)體總分進(jìn)行排序、按項(xiàng)目編號(hào)進(jìn)行查詢、按系別編號(hào)進(jìn)行查詢⑵本課程設(shè)計(jì)的實(shí)質(zhì)是完成對(duì)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)以及排序和查詢的功能的,通過這次課程設(shè)計(jì)從而加深了使用鏈表和冒泡排序方法的使用,以及加深了通過對(duì)輸入輸出流的使用。</p><p> ?、?課程設(shè)計(jì)內(nèi)

3、容本身的作用:</p><p> ?。?).將運(yùn)動(dòng)會(huì)繁忙的的分?jǐn)?shù)統(tǒng)計(jì)過程簡(jiǎn)單化,而且將數(shù)據(jù)能夠保存下來,使查找起來也方便了很多</p><p>  (2).可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績(jī);</p><p> ?。?).能統(tǒng)計(jì)各系總分,</p><p> ?。?).可以按系編號(hào)、系總分、男女團(tuán)體總分排序輸出;</p>&l

4、t;p>  (5).可以按系編號(hào)查詢系某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號(hào)查詢?nèi)〉们叭蚯拔迕南怠?lt;/p><p>  三.課程設(shè)計(jì)用到的數(shù)據(jù)結(jié)構(gòu)</p><p><b>  1.結(jié)構(gòu)體</b></p><p>  本課程設(shè)計(jì)的是一個(gè)運(yùn)動(dòng)會(huì)計(jì)分系統(tǒng),一個(gè)運(yùn)動(dòng)會(huì)包括運(yùn)動(dòng)項(xiàng)目和參加運(yùn)動(dòng)會(huì)的成員。因此構(gòu)造了兩個(gè)結(jié)構(gòu)體鏈表struct Departm

5、ent,Sport。</p><p><b>  (1)系的定義:</b></p><p>  typedef struct Department //系的結(jié)構(gòu)</p><p><b>  {</b></p><p>  char name[20]; //系的名稱</p&g

6、t;<p>  int number; //系的編號(hào)</p><p>  int boy; //男子團(tuán)體總分</p><p>  int girl; //女子團(tuán)體總分</p><p>  Department *next; }Department;</p><p

7、>  (2)運(yùn)動(dòng)項(xiàng)目定義:</p><p>  typedef struct Sport //運(yùn)動(dòng)項(xiàng)目結(jié)構(gòu)</p><p><b>  {</b></p><p>  char name[20]; //運(yùn)動(dòng)項(xiàng)目名稱</p><p>  int isboy; //0為女項(xiàng)目,

8、1為男項(xiàng)目</p><p>  int is3; //0為取前五名,1為取前五名</p><p>  int number; //項(xiàng)目編號(hào)</p><p>  int first; //第一名系的編號(hào)</p><p>  int second; //第二名

9、系的編號(hào)</p><p>  int third; //第三名系的編號(hào)</p><p>  int fourth; //第四名系的編號(hào)</p><p>  int fifth; //第五名系的編號(hào)</p><p>  Sport *next;</p><p&

10、gt;<b>  }Sport;、</b></p><p>  2、函數(shù)之間的調(diào)用關(guān)系</p><p><b>  系調(diào)用圖</b></p><p>  department_add //添加系別</p><p>  department_Order //用冒泡排序法按總分進(jìn)行排序<

11、;/p><p>  <1>Department department_search //按編號(hào)搜索系</p><p>  department_addmark //加總分</p><p>  department_show //輸出所有系</p><p>  department_isexist

12、 //檢驗(yàn)系是否存在</p><p>  department_output //輸出系</p><p>  department_read //從文本讀入系別數(shù)據(jù)</p><p>  department_write //從文本寫入系別數(shù)據(jù)</p><p>  department_getlong //得到系別鏈

13、表長(zhǎng)度</p><p>  sport_isexist //檢查運(yùn)動(dòng)項(xiàng)目(編號(hào))是否已經(jīng)存在</p><p>  sport_add //添加運(yùn)動(dòng)項(xiàng)目</p><p>  sport_getlong //得到運(yùn)動(dòng)項(xiàng)目鏈表長(zhǎng)度</p><p>  sport_write //從文本寫入運(yùn)動(dòng)項(xiàng)目數(shù)據(jù)</p>

14、<p>  <2>Sport sport_read //從文本讀入運(yùn)動(dòng)項(xiàng)目數(shù)據(jù)</p><p>  sport_output //輸出運(yùn)動(dòng)項(xiàng)目</p><p>  sport_search //運(yùn)動(dòng)搜索項(xiàng)目</p><p><b>  3、冒泡排序的方法</b></p

15、><p>  通過所學(xué)的冒泡的排序的排序方法按總分進(jìn)行排序,從而避免了繁瑣的數(shù)字計(jì)算。冒泡排序的的函數(shù)定義為:void department_order(Department *temp,int type)</p><p><b>  四.核心算法</b></p><p>  主要算法的設(shè)計(jì)思想:</p><p>  本程序

16、主要是使用鏈表來實(shí)現(xiàn)操作。一個(gè)運(yùn)動(dòng)會(huì)包括運(yùn)動(dòng)項(xiàng)目和參加運(yùn)動(dòng)會(huì)的成員。因此需要構(gòu)造兩個(gè)鏈表Department,Sport。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過運(yùn)用輸入與輸出流對(duì)文件操作來實(shí)現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對(duì)于總分的排序使用了冒泡排序。為了使整個(gè)程序的新意和使程序界面看起來更加友好和美觀,又添加了程序啟動(dòng)畫面以及標(biāo)題和顏色設(shè)置。</p><p>  排序的核

17、心算法函數(shù)為:</p><p>  void department_order(Department *temp,int type) //type=0按總分,type=1按男總分,type=2按女總分,</p><p><b>  {</b></p><p>  Department *p,*q,*small,*temp1;</p>

18、<p>  temp1=new Department;</p><p>  temp1->next=NULL;</p><p><b>  p=temp;</b></p><p><b>  while(p) </b></p><p><b>  {</b>

19、</p><p><b>  small=p;</b></p><p>  q=p->next;</p><p><b>  while(q) </b></p><p><b>  {</b></p><p>  switch(type)</

20、p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  if((q->boy+q->girl)<(small->girl+small->boy)) </p><p><b>  {</b></p

21、><p><b>  small=q; </b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  if(q->boy

22、<small->boy) </p><p><b>  {</b></p><p><b>  small=q; </b></p><p><b>  }</b></p><p><b>  break;</b></p><

23、p><b>  case 2:</b></p><p>  if(q->girl<small->girl) </p><p><b>  {</b></p><p><b>  small=q; </b></p><p><b>  }<

24、/b></p><p><b>  break;</b></p><p><b>  default:</b></p><p>  cout<<"error"<<endl;</p><p><b>  }</b></p&g

25、t;<p>  if(small!=p) </p><p><b>  {</b></p><p>  temp1->boy=p->boy; </p><p>  p->boy=small->boy; </p><p>  small->boy=temp1->boy;&l

26、t;/p><p>  temp1->girl=p->girl; </p><p>  p->girl=small->girl; </p><p>  small->girl=temp1->girl;</p><p>  strcpy(temp1->name,p->name);</p>

27、<p>  strcpy(p->name,small->name); </p><p>  strcpy(small->name,temp1->name);</p><p>  temp1->number=p->number; </p><p>  p->number=small->number; </

28、p><p>  small->number=temp1->number; //將系的名字互換</p><p><b>  }</b></p><p>  q=q->next;</p><p><b>  }</b></p><p>  p=p->ne

29、xt;</p><p><b>  }</b></p><p><b>  }</b></p><p>  五.課程設(shè)計(jì)內(nèi)容及相關(guān)程序界面</p><p>  本課程設(shè)計(jì)的主要內(nèi)容是簡(jiǎn)單的設(shè)計(jì)了一個(gè)運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)。</p><p> ?、攀紫榷x本課程設(shè)計(jì)程序運(yùn)行后首先顯

30、示程序啟動(dòng)畫面,其輸出界面如下:</p><p>  ⑵然后進(jìn)入運(yùn)動(dòng)會(huì)分?jǐn)?shù)統(tǒng)計(jì)系統(tǒng)菜單界面:</p><p> ?、傧认葮?gòu)造兩個(gè)鏈表,系和運(yùn)動(dòng)項(xiàng)目,系包括的成員有:系的名字,系的編號(hào)</p><p>  ,男子團(tuán)體總分 ,女子團(tuán)體總分;運(yùn)動(dòng)項(xiàng)目的成員包括:運(yùn)動(dòng)項(xiàng)目名稱,0為女項(xiàng)目、1為男項(xiàng)目 ,0為取前五名、1為取前五名,項(xiàng)目編號(hào),第一名系的編號(hào),第二名系的編號(hào),第

31、三名系的編號(hào),第四名系的編號(hào),然后設(shè)計(jì)一個(gè)菜單選擇的程序來完成對(duì)本課程設(shè)計(jì)的0-8項(xiàng)相關(guān)功能的選擇。在提示‘請(qǐng)選擇:’時(shí),輸入0-8會(huì)進(jìn)入相關(guān)功能的操作系統(tǒng),否則會(huì)輸出‘操作非法!’的相關(guān)提示,其程序界面如下:</p><p>  ②添加系別:輸入:1 進(jìn)入添加系的界面,根據(jù)提示,再輸入:數(shù)學(xué)系。再輸入:1,成功添加了一個(gè)系!然后輸入1可以繼續(xù)添加系別。但是必須要按0退出即可保存。</p><

32、p> ?、厶砑舆\(yùn)動(dòng)項(xiàng)目:輸入:2 進(jìn)入運(yùn)動(dòng)項(xiàng)目添加界面,根據(jù)提示,再輸入:跳高;0;0;1;2;3。之后輸入0。再次進(jìn)入系統(tǒng)界面,輸入2可以繼續(xù)添加。最后輸入0退出提示保存成功。</p><p>  ④按系別編號(hào)輸出總分:輸入:3查看輸出結(jié)果。此時(shí)顯示程序界面面如下:</p><p> ?、莅纯偡峙判颍ò捶?jǐn)?shù)由低到高輸出系別):輸入:4查看輸出結(jié)果。此時(shí)顯示程序界面面如下:</

33、p><p> ?、薨茨袌F(tuán)體總分排序(按分?jǐn)?shù)由低到高輸出系別):輸入:5查看輸出結(jié)果。此時(shí)顯示程序界面面如下:</p><p> ?、甙磁畧F(tuán)體總分排序(按分?jǐn)?shù)由低到高輸出系別):輸入:6查看輸出結(jié)果。此時(shí)顯示程序界面面如下:</p><p> ?、喟错?xiàng)目編號(hào)查詢:輸入:7,根據(jù)提示在輸入1。此時(shí)顯示界面如下:</p><p> ?、岚聪祫e編號(hào)查詢:

34、輸入8,再根據(jù)提示輸入1。此時(shí)顯示界面如下:</p><p><b>  六.心得體會(huì)</b></p><p>  本程序相對(duì)來說比較容易看明白,其中涉及到的一些函數(shù)相對(duì)來說比較容易。但是在剛開始通過調(diào)試還是遇到一些問題。但通過詢問寢室同學(xué)一起幫忙,還有通過到網(wǎng)上百度上查詢出,最后總還是最后還是能正常的運(yùn)行了,通過此次的程序設(shè)計(jì),讓我才正經(jīng)感覺到當(dāng)自己成功設(shè)計(jì)出一個(gè)程

35、序時(shí)的快感,讓我對(duì)C++也有了更深一步的了解,也讓我從新找回了自信與希望。我想在以后的日子里,我將不會(huì)害怕去編程了,因?yàn)橥ㄟ^這次課程設(shè)計(jì)讓我明白了“世上無難事,只怕有心人”,只要你去動(dòng)手,勤于思考,是沒有什么不可能的!在這次設(shè)計(jì)過程中,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。</p><p>  最后由于本人的設(shè)計(jì)能力有限,在設(shè)計(jì)過程中難免出現(xiàn)錯(cuò)誤和一些調(diào)試

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論