版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告設(shè)計題目:運動會數(shù)據(jù)庫系統(tǒng)專業(yè)軟件工程班級軟件091班學(xué)牛-鄭澤奇學(xué)號3090921013指導(dǎo)教師周紅芳/李兵起止時間2011-7-4至2011-7-82011年春季學(xué)期目錄一、具體任務(wù)4二、軟件環(huán)境4三、算法設(shè)計思想及流程圖5四、源代碼6五、運行結(jié)果32六、收獲及體會34七、參考文獻34課設(shè)任務(wù)本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計的主題是學(xué)生利用所學(xué)的數(shù)據(jù)結(jié)構(gòu)知識編寫程序。作品為學(xué)生本人親自設(shè)計制作,不能由他人代替,嚴(yán)禁抄襲他人作品,一經(jīng)發(fā)現(xiàn)將取消本次教學(xué)實習(xí)的成績。作品應(yīng)附上word文檔格式的說明,包括設(shè)計理念、作品特點、作品自評及個人小節(jié),并指明所用的工作平臺和工具軟件。文件名均使用
2、英文名或拼音(小寫)。評語(教師填寫)、具體任務(wù)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書0題目:學(xué)生運動會成績數(shù)據(jù)庫功能:學(xué)生運動會成績數(shù)據(jù)庫系統(tǒng)記錄某校運動會上全部運動項目,各系獲得的分?jǐn)?shù)及排名的情況,包括50、100、200,400,1500米,跳高,跳遠,標(biāo)槍,鉛球鐵餅等。進入系統(tǒng)后可以輸入和修改某個項目的結(jié)果情況,可以按各系院編號輸出總分;按總分排序;按男團體總分排序;按系院編號查詢;按項目編號查詢;按女團體總分排序。分步實施:1)初步完成總體設(shè)計,搭好框架,確定人機對話的界面,確定函數(shù)個數(shù);2)完成最低要求:建立一個文件,包括某個系,5個項目的得分情況,能對文件中的信息進行擴充(追加),修改和刪除;3
3、)進一步要求:完成對多個系,多個項目的得分排序,以及完成系統(tǒng)查詢功能。有興趣的同學(xué)可以自己擴充系統(tǒng)功能。鍵盤輸入:系院數(shù)目,男子項目數(shù)女子項目數(shù),(每項目取前三名,分別為10,5,2分)要求:1)界面友好,函數(shù)功能要劃分好2)總體設(shè)計應(yīng)畫一流程圖3)程序要加必要的注釋4)要提供程序測試方案5)程序一定要經(jīng)得起測試,寧可功能少一些,也要能運行起來,不能運行的程序是沒有價值的。、軟件環(huán)境MicrosoftVisualC+6.0三、算法設(shè)計思想及流程圖律動會面據(jù)陣索-S-數(shù)據(jù)排序*查詢數(shù)據(jù)圖1系統(tǒng)流程圖圖2輸入流程圖修儀:全院:數(shù)據(jù)改“據(jù)修項數(shù)圖3修改流程圖四、源代碼/*運動會成績數(shù)據(jù)庫系統(tǒng)*編寫日
4、期:2011/7/4*作者:鄭澤奇*/#include<iostream>#include<string.h>usingnamespacestd;/學(xué)生typedefstructcharsex;chardepartment10;intscore;Student;/項目排名typedefstructeventRankcharevent10;Studentfirst;Studentsecond;Studentthird;structeventRank*next;EventRankNode,*EventRankLink;/院系排名typedefstructdepartment
5、Rankchardepartment10;intscore;structdepartmentRank*next;DepartmentRankNode,*DepartmentRankLink;/各種子函數(shù)voidinitSystem(int&,int&,int&,EventRankLink&,EventRankLink&,DepartmentRankLink&,DepartmentRankLink&,DepartmentRankLink&);intoperateChoose();voiddoChosen(int,FILE*,Even
6、tRankLink,EventRankLink,DepartmentRankLink,int,int,DepartmentRankLink,DepartmentRankLink);voidinput(FILE*,EventRankLink,EventRankLink,int,int);voidmodify(EventRankLink,EventRankLink);voidsearch(DepartmentRankLink,DepartmentRankLink,DepartmentRankLink,EventRankLink,EventRankLink);voidinitManEventLink
7、(int,EventRankLink&);voidinitWomanEventLink(int,EventRankLink&);voidinitDepartmentLink(int,DepartmentRankLink&);voidinputData(EventRankLink,int);voidwriteToFile(FILE*,EventRankLink,EventRankLink);voidreadFromFile(FILE*,EventRankLink,EventRankLink);voidrank(FILE*,EventRankLink,EventRankLi
8、nk,DepartmentRankLink,DepartmentRankLink,DepartmentRankLink);voidrankDepartment(EventRankLink,DepartmentRankLink);voidrankDepartmentAll(EventRankLinkmanEventRankLink,EventRankLinkwomanEventRankLink,DepartmentRankLinkdepartmentRankLink);voidinitUnranked(EventRankLink,DepartmentRankLink);voidshow(Depa
9、rtmentRankLink);voidenterChosen(int,EventRankLink,EventRankLink);voidmodifyEvent(EventRankNode*);voidshowOneEvent(EventRankNode*);voidrelease(EventRankLink,EventRankLink,DepartmentRankLink,DepartmentRankLink,DepartmentRankLink);/程序開始于此intmain()/院系數(shù)量/男子項目總數(shù)/女子項目總數(shù)/選擇操作序號/存放排名情況的文件/存放男子項目排名情況/存放女子項目排名
10、情況/系統(tǒng)執(zhí)行過程中需要的變量intdepartmentAmount=0;intmanEventAmount=0;intwomanEventAmount=0;intoperateOrder=1;FILE*rankFile=NULL;EventRankLinkmanRankLink=NULL;EventRankLinkwomanRankLink=NULL;DepartmentRankLinkdepartmentRankLink=NULL;/存放院系排名情況DepartmentRankLinkdepartmentManRankLink=NULL;/存放男團總分排名DepartmentRankLin
11、kdepartmentWomanRankLink=NULL;/存放女團總分排名cout<<"歡迎來到運動會成績數(shù)據(jù)庫系統(tǒng)"<<endl;initSystem(departmentAmount,manEventAmount,womanEventAmount,manRankLink,womanRankLink,departmentRankLink,departmentManRankLink,departmentWomanRankLink);while(operateOrder)operateOrder=operateChoose();doChosen(o
12、perateOrder,rankFile,manRankLink,womanRankLink,departmentRankLink,manEventAmount,womanEventAmount,departmentManRankLink,departmentWomanRankLink);system("cls");release(manRankLink,womanRankLink,departmentManRankLink,departmentWomanRankLink,departmentRankLink);cout<<"歡迎使用n"re
13、turn0;/系統(tǒng)初始化voidinitSystem(int&departmentAmount,int&manEventAmount,int&womanEventAmount,EventRankLink&manRankLink,EventRankLink&womanRankLink,DepartmentRankLink&departmentRankLink,DepartmentRankLink&departmentManRankLink,DepartmentRankLink&departmentWomanRankLink)II.c
14、out<<"請輸入?yún)⒓舆\動會的院系數(shù):cin>>departmentAmount;cout<<"請輸入男子項目數(shù):"cin>>manEventAmount;cout<<"請輸入女子項目數(shù):"cin>>womanEventAmount;system("cls");initManEventLink(manEventAmount,manRankLink);initWomanEventLink(womanEventAmount,womanRankLink);in
15、itDepartmentLink(departmentAmount,departmentRankLink);initDepartmentLink(departmentAmount,departmentManRankLink);initDepartmentLink(departmentAmount,departmentWomanRankLink);/選擇一下功能intoperateChoose()intitem;while(true)/功能菜單cout<<"請在以下功能中選擇n"<<"1.輸入信息n"<<"2.
16、修改信息n"<<"3.查詢信息n"<<"4.信息排序n"<<"5.退出n”;/輸入選擇的功能cin>>item;switch(item)case 1: system("cls");return1;case 2: system("cls");return2;case 3: system("cls");return3;case 4: system("cls");return4;case 5: system(&qu
17、ot;cls");return0;default:cout<<"輸入錯誤"<<endl;system("pause");/清屏以便重新輸入system("cls");/進行所選擇的功能voiddoChosen(intoperateOrder,FILE*rankFile,EventRankLinkmanRankLink,EventRankLinkwomanRankLink,DepartmentRankLinkdepartmentRankLink,intmanEventAmount,intwomanEve
18、ntAmount,DepartmentRankLinkdepartmentManRankLink,DepartmentRankLinkdepartmentWomanRankLink)/按選擇進入不同功能的函數(shù)switch(operateOrder)case 1: input(rankFile,manRankLink,womanRankLink,manEventAmount,womanEventAmount);break;case 2: modify(manRankLink,womanRankLink);break;case 3: search(departmentManRankLink,dep
19、artmentWomanRankLink,departmentRankLink,manRankLink,womanRankLink);break;case 4: rank(rankFile,manRankLink,womanRankLink,departmentRankLink,departmentManRankLink,departmentWomanRankLink);break;default:break;/輸入數(shù)據(jù)voidinput(FILE*inputFile,EventRankLinkmanRankLink,EventRankLinkwomanRankLink,intmanEvent
20、Amount,intwomanEventAmount)inputFile=fopen("rank.bin","ab+");if(inputFile=NULL)cout<<"文件打開錯誤"<<endl;system("pause");return;)/文件成功打開cout<<"輸入男子項目排名"<<endl;inputData(manRankLink,manEventAmount);cout<<"輸入女子項目排名"&l
21、t;<endl;inputData(womanRankLink,womanEventAmount);writeToFile(inputFile,manRankLink,womanRankLink);fclose(inputFile);)/男子項目鏈表初始化voidinitManEventLink(intmanEventAmount,EventRankLink&manRankLink)EventRankNode*s;s=(EventRankNode*)malloc(sizeof(EventRankNode);s->next=manRankLink;manRankLink=s;
22、for(inti=0;i<manEventAmount;i+)s=(EventRankNode*)malloc(sizeof(EventRankNode);/初始化男子項目的所有數(shù)據(jù)s->first.score=0;s->second.score=0;s->third.score=0;s->first.sex='m's->second.sex='m's->third.sex='m's->next=manRankLink->next;manRankLink->next=s;EventRan
23、kLink/女子項目鏈表初始化voidinitWomanEventLink(intwomanEventAmount,&womanRankLink)EventRankNode*s;s=(EventRankNode*)malloc(sizeof(EventRankNode);s->next=womanRankLink;womanRankLink=s;for(inti=0;i<womanEventAmount;i+)s=(EventRankNode*)malloc(sizeof(EventRankNode);/初始化女子項目的所有數(shù)據(jù)s->first.score=0;s-&
24、gt;second.score=0;s->third.score=0;s->first.sex='w's->second.sex='w's->third.sex='w's->next=womanRankLink->next;womanRankLink->next=s;)/院系排名初始化voidinitDepartmentLink(intdepartmentAmount,DepartmentRankLink&departmentRankLink)DepartmentRankNode*s;s=(Dep
25、artmentRankNode*)malloc(sizeof(DepartmentRankNode);s->next=departmentRankLink;departmentRankLink=s;for(inti=0;i<departmentAmount;i+)s=(DepartmentRankNode*)malloc(sizeof(DepartmentRankNode);strcpy(s->department,"xx");/初始化院系總分?jǐn)?shù)s->score=0;s->next=departmentRankLink->next;dep
26、artmentRankLink->next=s;)/輸入數(shù)據(jù)到內(nèi)存voidinputData(EventRankLinkrankLink,intEventAmount)EventRankNode*s=rankLink->next;for(inti=0;i<EventAmount&&s;i+)cout<<"第"<<i+1<<”個項目n”;cin>>s->event;cout<<"n名次院系"<<endl;cout<<"1&q
27、uot;cin>>s->first.department;cout<<"2"cin>>s->second.department;cout<<"3"cin>>s->third.department;s->first.score=10;s->second.score=5;s->third.score=2;s=s->next;system("cls");/數(shù)據(jù)寫入文件voidwriteToFile(FILE*writeFile,EventR
28、ankLinkmanRankLink,EventRankLinkwomanRankLink)EventRankNode*s=manRankLink->next;while(s)fwrite(s,sizeof(EventRankNode)-sizeof(EventRankNode*),1,writeFile);s=s->next;s=womanRankLink->next;while(s)fwrite(s,sizeof(EventRankNode)-sizeof(EventRankNode*),1,writeFile);s=s->next;)/排序voidrank(FIL
29、E*readFile,EventRankLinkmanRankLink,EventRankLinkwomanRankLink,DepartmentRankLinkdepartmentRankLink,DepartmentRankLinkdepartmentManRankLink,DepartmentRankLinkdepartmentWomanRankLink)readFromFile(readFile,manRankLink,womanRankLink);/分成三項進行排序rankDepartment(manRankLink,departmentManRankLink);rankDepart
30、ment(womanRankLink,departmentWomanRankLink);rankDepartmentAll(manRankLink,womanRankLink,departmentRankLink);cout<<"男子團體排名"<<endl;show(departmentManRankLink);cout<<"n女子團體排名"<<endl;show(departmentWomanRankLink);cout<<"n全院排名"<<endl;show(
31、departmentRankLink);system("pause");/男子項目的排序voidrankDepartment(EventRankLinkmanRankLink,DepartmentRankLinkdepartmentManRankLink)/排序前對男子項目鏈表初始化initUnranked(manRankLink,departmentManRankLink);DepartmentRankNode*t;DepartmentRankNode*s=departmentManRankLink->next,*max,temp;/開始排序while(s)max=
32、s;t=s;while(t->next)if(t->next->score>t->score)max=t->next;t=t->next;strcpy(temp.department,s->department);strcpy(s->department,max->department);strcpy(max->department,temp.department);temp.score=s->score;s->score=max->score;max->score=temp.score;s=s->
33、next;/全體項目的排序voidrankDepartmentAll(EventRankLinkmanRankLink,EventRankLinkwomanRankLink,DepartmentRankLinkdepartmentRankLink)/排序前對鏈表初始化initUnranked(manRankLink,departmentRankLink);initUnranked(womanRankLink,departmentRankLink);DepartmentRankNode*t;DepartmentRankNode*s=departmentRankLink->next,*max
34、,temp;/開始排序while(s)max=s;t=s;while(t->next)if(t->next->score>t->score)max=t->next;t=t->next;strcpy(temp.department,s->department);strcpy(s->department,max->department);strcpy(max->department,temp.department);temp.score=s->score;s->score=max->score;max->sc
35、ore=temp.score;s=s->next;/排序前初始化男子或女子項目鏈表voidinitUnranked(EventRankLinkeventRankLink,DepartmentRankLinkdepartmentRankLink)EventRankNode*es=eventRankLink->next;DepartmentRankNode*ds,*dt=departmentRankLink->next;while(es)/存入第一個人的成績ds=departmentRankLink->next;while(ds)if(strcmp(es->first
36、.department,ds->department)=0)ds->score+=es->first.score;break;)if(ds->next=NULL)strcpy(dt->department,es->first.department);dt->score+=es->first.score;dt=dt->next;)ds=ds->next;)/存入第二個人的成績ds=departmentRankLink->next;while(ds)if(strcmp(es->second.department,ds->
37、department)=0)ds->score+=es->second.score;break;if(ds->next=NULL)strcpy(dt->department,es->second.department);dt->score+=es->second.score;dt=dt->next;)ds=ds->next;)/存入第三個人的成績ds=departmentRankLink->next;while(ds)if(strcmp(es->third.department,ds->department)=0)ds-&
38、gt;score+=es->third.score;break;)if(ds->next=NULL)strcpy(dt->department,es->third.department);dt->score+=es->third.score;dt=dt->next;)ds=ds->next;)es=es->next;/顯小院系排名voidshow(DepartmentRankLinkdepartmentRankLink)DepartmentRankNode*s=departmentRankLink->next;inti=1;cout&
39、lt;<"名次院系得分n”;while(s)cout<<""<<i<<""<<s->department<<"t"<<s->score<<endl;i+;s=s->next;)/顯小項目排名voidshowEvent(EventRankLinkeventRankLink)EventRankNode*s=eventRankLink->next;inti=1;while(s)cout<<"n第&
40、quot;<<i<<"個項目"<<s->event<<endl;cout<<"名次院系n”;cout<<""<<1<<"t"<<s->first.department<<endl;cout<<""<<2<<"t"<<s->second.department<<endl;cout<<
41、;""<<3<<"t"<<s->third.department<<endl;s=s->next;i+;/修改信息voidmodify(EventRankLinkmanRankLink,EventRankLinkwomanRankLink)EventRankNode*em,*ew;cout<<"選擇要修改的記錄n"intchoose=1;while(choose)intitem=1;em=manRankLink->next;ew=womanRankLink-
42、>next;while(em)cout<<item<<"."<<"男子"<<em->event<<endl;em=em->next;item+;)while(ew)cout<<item<<"."<<"女子"<<ew->event<<endl;ew=ew->next;item+;)cout<<"0.返回n”;cin>>choose;sy
43、stem("cls");enterChosen(choose,manRankLink,womanRankLink);/查詢信息voidsearch(DepartmentRankLinkdepartmentManRankLink,DepartmentRankLinkdepartmentWomanRankLink,DepartmentRankLinkdepartmentRankLink,EventRankLinkeventManRankLink,EventRankLinkeventWomanRankLink)intchoose;while(choose)cout<<
44、"1.查詢項目排名情況n"<<"2.查詢院系排名情況n”<<"0.返回n"cin>>choose;system("cls");switch(choose)case 1: cout<<"男子項目排名n"showEvent(eventManRankLink);cout<<"女子項目排名n"showEvent(eventWomanRankLink);break;case 2: cout<<"男子團體排名n”;s
45、how(departmentManRankLink);cout<<"女子團體排名n"show(departmentWomanRankLink);cout<<"全院排名n"show(departmentRankLink);break;case0:return;default:cout<<"輸入錯誤n"system("pause");system("cls");)/進入選擇的修改項目voidenterChosen(intchoose,EventRankLinkma
46、nRankLink,EventRankLinkwomanRankLink)EventRankNode*em=manRankLink->next;EventRankNode*ew=womanRankLink->next;intseq=1;while(em)if(choose=seq)showOneEvent(em);modifyEvent(em);return;)elseem=em->next;seq+;)while(ew)if(choose=seq)showOneEvent(ew);modifyEvent(ew);return;)elseseq+;ew=ew->next
47、;)/修改某個項目voidmodifyEvent(EventRankNode*oneEvent)cout<<"請?zhí)钊胍薷牡男畔"if(oneEvent->first.sex='m')cout<<"男子";elsecout<<"女子";cout<<oneEvent->event<<"n名次院系n"<<"1t"cin>>oneEvent->first.department;cou
48、t<<"2t"cin>>oneEvent->second.department;cout<<"3t"cin>>oneEvent->third.department;cout<<"修改成功n"system("pause");system("cls");)/顯示某個項目voidshowOneEvent(EventRankNode*eo)if(eo->first.sex='m')cout<<"男子&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙江省嘉興市海關(guān)公開招聘人員備考題庫及一套完整答案詳解
- 2025年中山大學(xué)腫瘤防治中心放療科何立儒教授課題組自聘技術(shù)員招聘備考題庫及一套答案詳解
- 2025中信國安實業(yè)集團有限公司專業(yè)技術(shù)人員常態(tài)化招聘11人模擬筆試試題及答案解析
- 貴陽市觀山湖區(qū)第八中學(xué)2026年春季學(xué)期臨聘教師招聘備考題庫及1套參考答案詳解
- 2025年阿拉爾市匯農(nóng)市場運營管理有限公司招聘備考題庫含答案詳解
- 2025年杭州之江灣股權(quán)投資基金管理有限公司招聘備考題庫及答案詳解1套
- 2025年天津北海油人力資源咨詢服務(wù)有限公司招聘外包工作人員備考題庫含答案詳解
- 2025浙江寧波國富商業(yè)保理有限公司招聘1人筆試備考重點題庫及答案解析
- 2025貴州黔西南州人民醫(yī)院秋季赴省內(nèi)外高校引進高層次人才和急需緊缺人才16人筆試備考重點題庫及答案解析
- 2025年武漢國有企業(yè)招聘泛半導(dǎo)體產(chǎn)業(yè)園招商運營專業(yè)人才5人備考題庫含答案詳解
- 《臺式香腸烤制方法》課件
- 常用計量值控制圖系數(shù)表
- 馬克思主義經(jīng)典著作選讀智慧樹知到課后章節(jié)答案2023年下四川大學(xué)
- 慢性阻塞性肺疾病急性加重期機械通氣
- 傳染病學(xué)智慧樹知到課后章節(jié)答案2023年下溫州醫(yī)科大學(xué)
- 濕熱滅菌驗證方案及報告
- 工業(yè)區(qū)位因素及其變化高一地理人教版(2019)必修二
- 2022年5月CATTI英語三級口譯實務(wù)真題(最全回憶版)
- 畫法幾何知到章節(jié)答案智慧樹2023年浙江大學(xué)
- 少年宮剪紙社團活動記錄
- 生命科學(xué)前沿技術(shù)智慧樹知到答案章節(jié)測試2023年蘇州大學(xué)
評論
0/150
提交評論