c語(yǔ)言運(yùn)動(dòng)會(huì)成績(jī)管理程序_第1頁(yè)
c語(yǔ)言運(yùn)動(dòng)會(huì)成績(jī)管理程序_第2頁(yè)
c語(yǔ)言運(yùn)動(dòng)會(huì)成績(jī)管理程序_第3頁(yè)
c語(yǔ)言運(yùn)動(dòng)會(huì)成績(jī)管理程序_第4頁(yè)
c語(yǔ)言運(yùn)動(dòng)會(huì)成績(jī)管理程序_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)結(jié)構(gòu)程序課程設(shè)計(jì)報(bào)告數(shù)據(jù)結(jié)構(gòu)程序課程設(shè)計(jì)報(bào)告 題目題目:運(yùn)動(dòng)會(huì)成績(jī)管理 班級(jí)班級(jí):xxxxx 學(xué)號(hào)學(xué)號(hào):xxxxxxx 姓名姓名:xxx 指導(dǎo)教師指導(dǎo)教師:xxx 2011 年 11 月 14 日 目錄目錄 一、前言一、前言1 二、問題描述二、問題描述.3 三、設(shè)計(jì)及實(shí)現(xiàn)要點(diǎn)三、設(shè)計(jì)及實(shí)現(xiàn)要點(diǎn).4 1、程序結(jié)構(gòu)體定義.4 2、程序總體設(shè)計(jì).4 3、程序的函數(shù)設(shè)計(jì).5 4、界面的設(shè)計(jì).6 5、程序運(yùn)行的流程圖.6 四、源程序四、源程序.8 五、運(yùn)行程序以及測(cè)試程序五、運(yùn)行程序以及測(cè)試程序.21 1、初始化數(shù)據(jù)的測(cè)試.21 2、按鍵測(cè)試.21 3、功能測(cè)試.21 4、運(yùn)行測(cè)試.22 六、不足之

2、處六、不足之處.22 七、小結(jié)七、小結(jié).22 八、參考文獻(xiàn)八、參考文獻(xiàn).22 一、前言一、前言 隨著中國(guó)加入wto,意味著我國(guó)要在同一個(gè)網(wǎng)絡(luò)平臺(tái)上參與國(guó)際競(jìng)爭(zhēng),同 世界接軌 .這對(duì)我們既是一個(gè)機(jī)遇,也是一個(gè)挑戰(zhàn) .信息技術(shù)也滲透到生活中的 各個(gè)領(lǐng)域。無論是教育,衛(wèi)生,還是政治,經(jīng)濟(jì)無不折射出信息技術(shù)的影子。當(dāng)然 體育也不會(huì)例外。尤其在2008 年的奧運(yùn)會(huì)中計(jì)算機(jī)技術(shù)更是發(fā)揮的淋漓盡致。 信息的傳輸愈加快捷,這也使得人類的生活節(jié)奏加快。人們?yōu)榱粟s上時(shí)代的腳 步,總在不停的吸收新的信息。為了適應(yīng)這種快捷奏的生活,因此,一些簡(jiǎn)便快捷 的應(yīng)用軟件如雨后春筍般出現(xiàn)在人們的視線里。這些軟件讓人們?cè)谔幚頂?shù)據(jù)

3、信息時(shí), 不但提高了速度,也提高了效率。為人們帶來了方便。 經(jīng)過一個(gè)學(xué)期對(duì) 數(shù)據(jù)結(jié)構(gòu) 這門課程的學(xué)習(xí),以及平時(shí)自己做的相應(yīng)的程 序設(shè)計(jì)題。為了將自己的所學(xué)知識(shí)學(xué)以致用,同時(shí)也為了提高自己的編程水平,培 養(yǎng)用計(jì)算機(jī)解決實(shí)際問題的能力。本報(bào)告將推出一款對(duì)運(yùn)動(dòng)會(huì)成績(jī)管理的程序。它 將為我們?cè)诨I辦完運(yùn)動(dòng)會(huì)后,讓我們對(duì)分?jǐn)?shù)的統(tǒng)計(jì)和計(jì)算,以及最終結(jié)果的查詢提 供方便。數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)專業(yè)基礎(chǔ)課,該課程的目標(biāo)就是使學(xué)生學(xué)會(huì)如何從問 題出發(fā),分析數(shù)據(jù),構(gòu)造求解問題的數(shù)據(jù)結(jié)構(gòu)和算法,培養(yǎng)學(xué)生有一定進(jìn)行較復(fù)雜 程序設(shè)計(jì)的能力。 二、問題描述二、問題描述 運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)是對(duì)運(yùn)動(dòng)會(huì)最終得分進(jìn)行處理的程序。它包含

4、對(duì)各個(gè)學(xué)校 總分?jǐn)?shù)、男子總分和女子總分的計(jì)算;分別按學(xué)??偡帧⒛凶涌偡趾团涌偡峙判?輸出;還有按學(xué)校查詢和按運(yùn)動(dòng)項(xiàng)目查詢;以及當(dāng)某項(xiàng)目成績(jī)輸入有誤時(shí),進(jìn)行修 改和更正等一些操作。程序還有一些可供選擇功能。完全的人性化,每一步都有相 應(yīng)的提示,讓人們知道該做什么。程序還有存入文件中,也可去文件中查看成績(jī)。 現(xiàn)在要求在vc 環(huán)境下運(yùn)行。 基基本本功功能能: 1、 按學(xué)校編號(hào)排序輸出; 2、 按學(xué)校總分排序輸出; 3、 按學(xué)校男子總分排序輸出; 4、 按學(xué)校女子總分排序輸出; 5、 查詢某個(gè)學(xué)校成績(jī); 6、 查詢某個(gè)項(xiàng)目成績(jī); 7、 按項(xiàng)目修改成績(jī); 8、 輸入學(xué)校成績(jī); 9、 退出程序; 三、設(shè)

5、計(jì)及實(shí)現(xiàn)要點(diǎn)三、設(shè)計(jì)及實(shí)現(xiàn)要點(diǎn) 1 1、程序結(jié)構(gòu)體定義、程序結(jié)構(gòu)體定義 項(xiàng)目結(jié)構(gòu)體:項(xiàng)目結(jié)構(gòu)體: struct pro int z; string name; /項(xiàng)目名稱 int snum14;/前 3 名學(xué)校的編號(hào) int snum6;/前 5 名學(xué)校的編號(hào) p21; 學(xué)校結(jié)構(gòu)體:學(xué)校結(jié)構(gòu)體: struct school int num; string name; /學(xué)校名稱 int score; /學(xué)??偡?int male; /男子總分 int female; /女子總分 sch21; 2 2、程序總體設(shè)計(jì)、程序總體設(shè)計(jì) 本程序主要包括四大模塊:輸入輸出模塊、數(shù)據(jù)處理模塊、查詢模塊和程序

6、結(jié) 束模塊。輸入輸出模塊的主要功能是接收鍵盤傳來的信息,將信息存入相應(yīng)的結(jié)構(gòu) 體里,等待信息的處理。將處理好的數(shù)據(jù)按各種形式輸出并顯示在屏幕上;數(shù)據(jù)處 理模塊主要的功能是將接收來的數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)進(jìn)行計(jì)算和整理好,并再存 入結(jié)構(gòu)體中;查詢模塊的主要功能是按照用戶的要求以某種方式將處理好的數(shù)據(jù)顯 示在屏幕上;程序結(jié)束模塊主要功能是調(diào)用結(jié)束顯示系統(tǒng),結(jié)束程序。 運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)的整體結(jié)構(gòu):運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)的整體結(jié)構(gòu): 主循環(huán)控制模塊 數(shù)據(jù)輸入模塊 信息查詢模塊 程序結(jié)束模塊數(shù)據(jù)處理模塊 數(shù)據(jù)輸出 模塊 3 3、程序的函數(shù)設(shè)計(jì)、程序的函數(shù)設(shè)計(jì) 函數(shù)原型函數(shù)功能 函數(shù)處理描述 void mai

7、n()主函數(shù) 全局控制程序的運(yùn)行 void input()錄入信息 按提示輸入運(yùn)動(dòng)會(huì)的成績(jī) void menu()菜單面板 顯示功能菜單以便選擇 void bianhao()編號(hào)排序 按學(xué)校的編號(hào)排序輸出 void zongfentongji()總分排序 按學(xué)校的總分排序輸出 void malezongfen()男子總分排序 按學(xué)校的男子總分排序輸 出 void femalezongfen()女子總分排序 按學(xué)校的女子總分排序輸 出 void chaxunsch()查詢學(xué)校信息 按提示查詢學(xué)校的分?jǐn)?shù)和 名次 viod chaxunxiangmu()查詢項(xiàng)目信息 查詢?nèi)我忭?xiàng)目的得主和相 關(guān)信息

8、void xiugaixiangmuchengji() 修改項(xiàng)目成績(jī) 按照項(xiàng)目來修改成績(jī) void print(int i)輸出顯示系統(tǒng) 被各個(gè)排序輸出函數(shù)調(diào)用 void thank()結(jié)束顯示系統(tǒng) 程序結(jié)束時(shí)顯示的內(nèi)容 4 4、界面的設(shè)計(jì)、界面的設(shè)計(jì) 系統(tǒng)使用基本語(yǔ)言輸入輸出函數(shù)處理該程序。在輸入完基本的錄入信息后,用戶可 通過菜單面板來選擇功能來運(yùn)行程序。菜單共提供了八種功能以便選擇選擇,分為 排序、查詢和修改功能。其菜單面板如下: 使用的函數(shù)及其功能使用的函數(shù)及其功能 5 5、程序運(yùn)行的流程圖、程序運(yùn)行的流程圖 開始 主菜單 按 學(xué) 校 編 號(hào) 排 序 輸 出 按 學(xué) 校 總 分 排 序

9、 輸 出 按 學(xué) 校 男 子 總 分 排 序 輸 出 按 學(xué) 校 女 子 總 分 排 序 輸 出 查 詢 某 個(gè) 學(xué) 校 成 績(jī) 查 詢 某 個(gè) 項(xiàng) 目 成 績(jī) 按 項(xiàng) 目 修 改 成 績(jī) 退 出 輸 入 學(xué) 校 成 績(jī) 結(jié)束 四、源程序四、源程序 #include stdafx.h #include #include #include #include #include #include #include using namespace std; int n; /n 個(gè)學(xué)校 int m; /m 個(gè)男子項(xiàng)目 int w; /w 個(gè)女子項(xiàng)目 struct pro /表示項(xiàng)目的結(jié)構(gòu)體 int z;

10、 char name10; /項(xiàng)目名稱 int snum14;/前 3 名學(xué)校的編號(hào) int snum6;/前 5 名學(xué)校的編號(hào) p21; struct school /表示學(xué)校的結(jié)構(gòu)體 int num; char name10; /學(xué)校名稱 int score; /學(xué)??偡?int male; /男子總分 int female; /女子總分 sch21; int a101101; int integer3=5,3,2; int integral5=7,5,3,2,1; /評(píng)分標(biāo)準(zhǔn)設(shè)置 void input() /錄入信息 int i,j,y,x; printf(*n); printf(ntt

11、 運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)n); printf(n 請(qǐng)輸入學(xué)校數(shù)目(5=n=5 if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); for(i=1;; schi.score=0; schi.female=0; schi.male=0; schi.num=i; printf(輸入男子項(xiàng)目數(shù)1_20和女子項(xiàng)目數(shù)1_20:n); y=0; while(1) scanf(%d%d, if(m=1 if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); for(i=1;i=m+w;i+) printf(輸入第%d 項(xiàng)目個(gè)的名稱:n

12、,i); scanf(%s,); printf(請(qǐng)選擇該項(xiàng)目設(shè)立的獎(jiǎng)項(xiàng)數(shù)(3 或 5 項(xiàng)):n); y=0; while(1) scanf(%d, if(pi.z=3|pi.z=5) y=1; if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); printf(輸入第%d 個(gè)項(xiàng)目的前%d 名的學(xué)校編號(hào):n,i,pi.z); for(j=1;j=1 if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); if(pi.z=3) pi.snum1j=x; schx.score+=integerj-1; if(i=m) schx.

13、male+=integerj-1; else schx.female+=integerj-1; else pi.snumj=x; schx.score+=integralj-1; if(i=m) schx.male+=integralj-1; else schx.female+=integralj-1; ofstream outfile1(c:運(yùn)動(dòng)會(huì)分?jǐn)?shù)總分表.txt,ios:out); if(! outfile1) cerropen error!endl; outfile1編號(hào) 學(xué)校名稱 總分 男子總分 女子總分nendl; for(i=1;i=n;i+)/i=schi outfile1sc

14、hi.numsetw(8)setw(12)schi.score setw(12)schi.malesetw(12)schi.femaleendl; outfile1.close(); void print(int i) coutschi.numsetw(13)setw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleendl; /按編號(hào)排序 void bianhao() int i,j; school t; for(i=1;in;i+) for(j=i;jschj.num) t=schi;schi=schj;s

15、chj=t; printf(n 按編號(hào)排列:n); printf(編號(hào) 學(xué)校名稱 總分 男子總分 女子總分n); for(i=1;i=n;i+) print(i); /總分函數(shù) void zongfentongji() /按學(xué)??偡峙判?int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.scoreschj.score) t=schi;schi=schj;schj=t; printf(n 按學(xué)??偡峙帕?n); printf(編號(hào) 學(xué)校名稱 總分 男子總分 女子總分n); for(i=1;i=n;i+) coutschi.nums

16、etw(13)setw(8)schi.scoresetw(9) schi.malesetw(10)schi.femaleendl; /按學(xué)校男總分排序 void malezongfen() int i,j; school t; for(i=1;in;i+) for(j=i;j=n;j+) if(schi.maleschj.male) t=schi;schi=schj;schj=t; printf(n 按學(xué)校男子總分排列:n); printf(編號(hào) 學(xué)校名稱 總分 男子總分 女子總分n); for(i=1;i=n;i+) print(i); ofstream outfile1(

17、c:運(yùn)動(dòng)會(huì)男子總分排序表.txt,ios:out); if(! outfile1) cerropen error!endl; outfile1編號(hào) 學(xué)校名稱 總分 男子總分 女子總分nendl; for(i=1;i=n;i+)/i=schi outfile1schi.numsetw(8)setw(12)schi.score setw(12)schi.malesetw(12)schi.femaleendl; outfile1.close(); /按學(xué)校女總分排序 void femalezongfen() int i,j; school t; for(i=1;in;i+) for

18、(j=i;j=n;j+) if(schi.femaleschj.female) t=schi;schi=schj;schj=t; printf(n 按學(xué)校女子總分排列:n); printf(n 編號(hào) 學(xué)校名稱 總分 男子總分 女子總分n); for(i=1;i=n;i+) print(i); printf(n); ofstream outfile1(c:運(yùn)動(dòng)會(huì)女子總分排序表.txt,ios:out); if(! outfile1) cerropen error!endl; outfile1編號(hào) 學(xué)校名稱 總分 男子總分 女子總分nendl; for(i=1;i=n;i+)/i=schi out

19、file1schi.numsetw(8)setw(12)schi.score setw(12)schi.malesetw(12)schi.female=1 if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:); printf(該學(xué)校相關(guān)信息:n); printf(n 編號(hào) 學(xué)校名稱 總分 男子總分 女子總分n); for(i=1;i=n;i+) if(schi.num=s) print(i); break; cout=1 if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:); if(ps.z=3) printf(前 3 名學(xué)

20、校編號(hào)及名稱為:n); printf(名次t 編號(hào)t 學(xué)校名稱n); for(i=1;i=3;i+) coutisetw(12)ps.snum1isetw(12)sch ps.snum1i .nameendl; coutendl; else printf(前 5 名學(xué)校編號(hào)及名稱為:n); printf(名次t 編號(hào)t 學(xué)校名稱n); for(i=1;i=5;i+) coutisetw(12)ps.snumisetw(12)sch ps.snumi .nameendl; coutendl; /按項(xiàng)目修改成績(jī) void xiugaixiangmuchengji() int i,j,k,x,y;

21、printf(輸入需要修改的項(xiàng)目編號(hào):n); y=0; while(1) scanf(%d, if(k0) y=1; if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); if(pk.z=3) for(i=1;i=pk.z;i+) if(k=m) schpk.snum1i.score=schpk.snum1i.score-integeri-1; schpk.snum1i.male=schpk.snum1i.male-integeri-1; else schpk.snum1i.score=schpk.snum1i.score-integeri-1; schpk.sn

22、um1i.female=schpk.snum1i.female-integeri-1; else for(i=1;i=pk.z;i+) if(k=m) schpk.snumi.score=schpk.snumi.score-integrali-1; schpk.snumi.male=schpk.snumi.male-integrali-1; else schpk.snumi.score=schpk.snumi.score-integrali-1; schpk.snumi.female=schpk.snumi.female-integrali-1; printf(輸入第%d 個(gè)項(xiàng)目設(shè)立的獎(jiǎng)項(xiàng)數(shù)(

23、3 或 5 項(xiàng)):n,k); y=0; while(1) scanf(%d, if(pk.z=3|pk.z=5) y=1; if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); printf(輸入第%d 個(gè)項(xiàng)目的前%d 名的學(xué)校編號(hào):n,k,pk.z); for(j=1;j=1 if(y) break; else printf(輸入數(shù)據(jù)有誤,請(qǐng)重新輸入:n); if(pk.z=3) pk.snum1j=x; schx.score+=integerj-1; if(k=m) schx.male+=integerj-1; else schx.female+=intege

24、rj-1; else pk.snumj=x; schx.score+=integralj-1; if(k=m) schx.male+=integralj-1; else schx.female+=integralj-1; /程序結(jié)束顯示系統(tǒng) void thank() int i; char *thank1=謝,謝,使,用; for(i=0;i4;i+) printf(%s,thank1i); sleep(300); char *thank2=【,k,u,n,z,a,i,e,r,】; for(i=0;i10;i+) printf(%s,thank2i); sleep(100); char *th

25、ank3=運(yùn),動(dòng),會(huì),成,績(jī),管,理,系,統(tǒng); for(i=0;i9;i+) printf(%s,thank3i); sleep(300); printf(n); char *thank4=b,y,e,-,b,y,e,_; for(i=0;i8;i+) printf(%s,thank4i); sleep(100); coutendl; sleep(500); /菜單面板 void menu() printf(*歡迎使用運(yùn)動(dòng)會(huì)成績(jī)管理系統(tǒng)*n); printf(t 1.按學(xué)校編號(hào)排序輸出 n); printf(t 2.按學(xué)??偡峙判蜉敵?n); printf(t 3.按學(xué)校男生總分排序輸出 n)

26、; printf(t 4.按學(xué)校女生總分排序輸出 n); printf(t 5.查詢某個(gè)學(xué)校成績(jī) n); printf(t 6.查詢某個(gè)項(xiàng)目成績(jī) n); printf(t 7.按項(xiàng)目修改成績(jī) n); printf(t 8.輸入學(xué)校成績(jī) n); printf(t 0.退出程序 n); printf(選擇您需要的操作(選擇序號(hào)):n); / 主函數(shù) void main() char s5; const m=30; menu(); char choose; bool flag; while(flag) choose=getchar(); switch(choose) case 1: system(c

27、ls); printf(你選擇的是按學(xué)校編號(hào)排序輸出功能!n); system(pause); system(cls); bianhao(); system(pause); system(cls); menu(); getchar(); break; case 2: system(cls); printf(你選擇的是按學(xué)校總分排序輸出功能!n); system(pause); system(cls); zongfentongji(); system(pause); system(cls); menu(); getchar(); break; case 3: system(cls); print

28、f(你選擇的是按學(xué)校男生總分排序輸出功能!n); system(pause); system(cls); malezongfen(); system(pause); system(cls); menu(); getchar(); break; case 4: system(cls); printf(你選擇的是按學(xué)校女生總分排序輸出功能!n); system(pause); system(cls); femalezongfen(); system(pause); system(cls); menu(); getchar(); break; case 5: system(cls); printf(

29、你選擇的是查詢某個(gè)學(xué)校成績(jī)!n); system(pause); system(cls); chaxunsch(); system(pause); system(cls); menu(); getchar(); break; case 6: system(cls); printf(你選擇的是查詢某個(gè)項(xiàng)目成績(jī)!n); system(pause); system(cls); chaxunxiangmu(); system(pause); system(cls); menu(); getchar(); break; case 7: system(cls); printf(你選擇的是按項(xiàng)目修改成績(jī)功能

30、!n); system(pause); system(cls); xiugaixiangmuchengji(); system(pause); system(cls); menu(); getchar(); break; case 8: system(cls); system(pause); system(cls); input(); system(pause); system(cls); menu(); getchar(); break; case 0: char s15=n; system(cls); printf(你確定要退出系統(tǒng)?y/n:n); scanf(%s,s); if(strcmp(s,s1) system(cls); thank(); sleep(500); exit(0); else system(cls); menu(); getchar(); 五、運(yùn)行程序以及測(cè)試程序五、運(yùn)行程序以及測(cè)試程序 程序的基本功能在前面已經(jīng)大概的說了,分為八個(gè)功能。在錄入完數(shù)據(jù)后,就 可逐一的對(duì)其功能進(jìn)行測(cè)試了。在使用程序時(shí)可以看出它的操作是比較簡(jiǎn)單的,因 此它的測(cè)試也比較簡(jiǎn)單。主要的測(cè)試有:程序的界面是否按照設(shè)想繪制而成、設(shè)置 的功能是否實(shí)現(xiàn)、系統(tǒng)能否正常結(jié)束等 1 1、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論