大型實(shí)驗(yàn)報告_第1頁
大型實(shí)驗(yàn)報告_第2頁
大型實(shí)驗(yàn)報告_第3頁
大型實(shí)驗(yàn)報告_第4頁
大型實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2 014/2015(2) 實(shí)驗(yàn)題目纟器亦系統(tǒng) 學(xué)生姓名。弋 學(xué)生學(xué)號。 學(xué)生班級。 任課教師。 提交日期 計算機(jī)科學(xué)與技術(shù)學(xué)院 歌手比賽系統(tǒng)實(shí)驗(yàn)報告 大型實(shí)驗(yàn)得內(nèi)容 歌手比賽系統(tǒng)(SCS: Singer Con t es t Sys tem)用于對一次歌手比賽得成績進(jìn)行 管理,要求完成得主要得功能包括選手信息管理、評委打分管理??梢酝瓿沙煽兣判颍ò雌?均分),選手?jǐn)?shù)據(jù)査詢,追加學(xué)生數(shù)據(jù),寫入數(shù)據(jù)文件等工作。要求使用學(xué)習(xí)過得C/C+程 序設(shè)計得知識完成歌手比賽系統(tǒng)得設(shè)計與實(shí)現(xiàn)。 二、運(yùn)行環(huán)境 歌手比賽系統(tǒng)(SCS)在Vis ual Studio 2 0 10平臺下開發(fā)臊作系統(tǒng):Windows

2、8. 1。 硬件環(huán)境: 處理器:Intel (R) Core ( TM) i 55 2 57M CPU 2. 7 0 GHz 2、7 0 GHz 內(nèi)存:8、00GB 系統(tǒng)類型:64位操作系統(tǒng) 三、實(shí)驗(yàn)課題分析(主要得模塊功能、流程圖) 3、1歌手比賽系統(tǒng)得主要功能 歌手比賽系統(tǒng)(SCS)主要功能為:選手信息管理、評委打分管理??梢酝瓿沙煽兣?序(按平均分),選手?jǐn)?shù)據(jù)查詢,追加學(xué)生數(shù)據(jù),寫入數(shù)據(jù)文件等。詳細(xì)得系統(tǒng)功能結(jié)構(gòu)為圖 1所示。 歌手比賽系統(tǒng)SCS 菜單模塊選手模塊評委模塊 1、菜單模塊 根拯用戶需求進(jìn)行選擇。菜單模塊包括:(1)輸入選手?jǐn)?shù)據(jù):(2)評委打分;(3)成 績排序(按平均分);

3、(4)數(shù)據(jù)查詢;(5)追加學(xué)生數(shù)據(jù):(6)寫入數(shù)據(jù)文件;(7)退出 系統(tǒng)。 2、選手模塊 存儲選手得姓名、編號、一個評委類,以及該選手得平均分與總分。 3、評委模塊 存儲1 0個評委對一個選手得打分情況。 計算總分功能:根據(jù)10個評委得打分(去掉最髙分與最低分),計算選手得總分。 計算平均分功能:根拯10個評委得打分(去掉最高分與最低分),計算選手得平均分. 還有2個輔助功能:尋找最高分與最低分。 3、2系統(tǒng)分析及設(shè)計 系統(tǒng)涉及對象有兩個基本類:選手類與評委類。還有一個菜單類。 可以采用面向?qū)ο蟮梅绞綄?shí)現(xiàn)歌手比賽系統(tǒng),根據(jù)不同得需求,分為選手類與評委類。英 中選手類中以評委類為成員變量系統(tǒng)得主

4、要得類結(jié)構(gòu)如圖2所示. 分別設(shè)汁菜單類、選手類.評委類,菜單類提供選擇功能。 用文本文件進(jìn)行數(shù)據(jù)得保存,需要保存得數(shù)據(jù)主要包括選手得編號、信息、平均分與排 名等。 3、3系統(tǒng)得實(shí)現(xiàn) (1)類得編寫 系統(tǒng)工程劃為:Test.包含了 Stud em類(選手類),Judge類(圖書類)兩個基本類, 另設(shè)menu類,進(jìn)行具體功能得選擇及實(shí)現(xiàn)。Stud ent類包含選手得編號、姓拿、評委得打 分(Judge聲明得對象obj)、選手得總分與平均分。Judge類包含10個評委得打分。 具體類結(jié)構(gòu)聲明如下: Stude n t 類: cl a ss S t ud e nt public: vo i d s e

5、 t I D (str i ng ID): a vo i d s e t N am e (string name); void s e tObj (J u dge 。s t ring g e t ID( ): a s trin g g e t Nam e (); Jud ge getObjO : a d o uble getSUM (); doubl e g e t AV E (); 。St u d e nt (Stud e nt S t uden t (void): p r ivat e : a s t r ing I D ; a strin g name; 。Judge obj : a d

6、ou b 1 e SUM; a doub I e AVE; ; Jud ge類 c 1 a ss Judg e pub 1 ic: a vo id setGrade(d o u b le g10): dou b le* g e t G ra d e (); vo i d d isp 1 a y 0 ; do u ble sumGr a d e () : /計算總分 d oubl e a v eGr a d e () ;/計算平均分 。do uble getMa x (): 輔助函數(shù),尋找最髙分 o doub I e getMinO; /輔助函數(shù),尋找最低分 。Judge (void); J u

7、 d ge (J u d ge private: d oubl e g r a de 1 0: : Menu 類: c 1 a s s me n u public: a void sei e ct () : / / 選擇操作 v oid i n p u t M e s sage 0 ; /輸入選手信息 v o id i n putGrade () ;/評委打分 void sort 0: /根據(jù)選手成績進(jìn)行排序 v oid con suit () ;/查詢某個選手得成績 v oid i nsert ( ) ;/插入新選手得信息與成績 。void i nput 0; /將選手?jǐn)?shù)據(jù)寫入文件 menu

8、 (v o id); 。me n u (vo i d); pr i va t e: int count : /計數(shù),共有多少組數(shù)據(jù) Stud ent stu MAX: 。Judge jud MAX: ; (3)交互界面以及登錄菜單得實(shí)現(xiàn) 系統(tǒng)運(yùn)行開始得界而如圖5所示: C:Wi n dowssyste m32cm d.exe ”關(guān)心關(guān)心沃務(wù)關(guān)心關(guān)心沃心心關(guān)心沃歡迎進(jìn)入歌手比賽系 C*M*MMKM*M*KM*M*M*MM*M 1輸入選手?jǐn)?shù)據(jù) 2 評委打分 3 成績排序(按平均分) 片數(shù)據(jù)杳詢 5 追加選手?jǐn)?shù)扌居 6 寫入數(shù)據(jù)文件 了退岀系統(tǒng) 請選擇操作項目: 圖5開始登錄界而 主要通過選擇結(jié)構(gòu)與

9、循環(huán)結(jié)構(gòu)實(shí)現(xiàn)界而得前進(jìn)與后退。例如,第一個登錄界而岀現(xiàn)7 個選擇:1、輸入選手?jǐn)?shù)據(jù),2、評委打分,3、成績排序(按平均分)4、數(shù)據(jù)査詢5、追加選 手?jǐn)?shù)據(jù)6、寫入數(shù)據(jù)文件7、退出系統(tǒng)。用s w i tch case分別實(shí)現(xiàn),選擇之后轉(zhuǎn)到下一個 界面. 四、實(shí)驗(yàn)調(diào)試、測試、運(yùn)行記錄及分析 系統(tǒng)在調(diào)試測試過程中遇到若干問題,不過經(jīng)過仔細(xì)反復(fù)得檢查已經(jīng)消除各種b u gc 主要得測試經(jīng)過如下: 開始頁而: C:Windowssystem32cmd.exe ”關(guān)心關(guān)心沃務(wù)關(guān)心關(guān)心沃心心關(guān)心沃歡迎進(jìn)入歌手比賽系 C*M*MMKM*M*KM*M*M*MM*M 1輸入選手?jǐn)?shù)據(jù) 2 評委打分 3 成績排序(按平

10、均分) 片數(shù)據(jù)杳詢 5 追加選手?jǐn)?shù)扌居 6 寫入數(shù)據(jù)文件 了退岀系統(tǒng) 請選擇操作項目: 在開始界而輸入“1即可跳轉(zhuǎn)到輸入選手信息界而,輸入選手信息。 輸入選手信息完畢后,自動返回開始頁而。 諸輪入共有幾位選于: 息 信 手 選 超 各紅灰奕然毛宇三 1A李江王陳毛金張 *1235*067 LgIQOgloolooIGOlooloo 輸入“2 J即可跳轉(zhuǎn)到評委打分頁面。為各選手打分. 輸入分?jǐn)?shù)完畢后,自動返回至開始頁面。 三 S C:Windowssystem32cmd.exe 一 r 諸各位評委打分共10恆評委): 循號為03的庭手的分?jǐn)?shù); 56T8998765 怕號為002的遠(yuǎn)手的分欽: 1

11、234554321 編號為恥3的選手的分?jǐn)?shù): 23456789 10 2 菊號為03的眩手的分Xb 5665788733 第號為005的遠(yuǎn)豐的分效: 34 斗 3566534 編號為ooe的選手的分?jǐn)?shù) 123H5678910 編號為007的選手的分奴? 23 嗎 S6789 10 9 輸入“3”,跳轉(zhuǎn)到排序頁面,根據(jù)選手得平均分進(jìn)行排名。排序完畢后,自動返 回到開始頁面。 C:Windowssystem32cmd.exe 肯選擇操作項目;3 :XXXXXXXXMXXXXXXXXXXMXXX5rjj)5S.K|:|rfJI i+) gr a de i= j、g r ad e i; Judg e:

12、:Judge ( v oid) v o id Judg e : s e tG r a de (doub leg 10) f o r (int i = 0; i ( 1 0; i +) grade i= g i ; double* J u dge: ge tGrade() r eturn grade; void J u d ge : : d i s p lay () for (int i = 0 ; i 10;i+) ( 0 cout” 第” i+l w 位評委得打分就是:grade i end 1 ; d o ub 1 e J u dge: s umGrad e () d ouble max

13、= g e t M a x (); d ou b 1 e mi n = ge t MinO : dou b le Sum =0 : 旺or (i nt i = 0 ; i 10; i+) Sum = S u m + grade 訂; 0 Sum = Sum m a x; Sum = Sum min; ret urn Sum; d o uble Judge:: a v eGrade () double Ave; doubl e max = g e tMax (); double min = get Min (); Moub 1 e S u m = 0 : for(int i = 0; i 10;

14、i+) Sum = Sum + g r ade i ; um = Sum max; Sum = Sum min; Ave = Sum / 8; r et u r n Ave; double Judge: g e tMax () 輔助函數(shù),尋找最高分 od oubl e max = 0; for (in t i = 0; i 10; i 卄) nf (max grade i) a min =grade i; r et urn mi n : int J u dge:: j udgeNO if(grade0=0) 0 r e turn 1; e Ise re t u r n 0 : Stude n

15、t、h #i nc 1 ude using name space std; # include # i n c 1 ude J u dg e、h class Student pub lie: roidsetID(s tri ng I D): void setNam e (s t ring name ); v oid setOb j (Judge s tring getlD(); s tri n g gctNamc(); J udg e getOb j (); double g e tSUM 0 ; o uble getAVE(); Ynt JudgeNullO; 判斷就是否為空 S t u d

16、 ent (Stude n t Stud ent (vo i d); u dent ( v oid); pr i va te: 令tr i ng I D: stri n g nam e ; Judg e obj; Woub 1 e SUM; double AVE; ; St uden t. cp p #incl u de Student、h S tuden t : Stu d ent (void) S tuden t : :Stud e n t(S t uden t SUM = s、 getSUM (); bj = s g e tOb j(); St u dent: :S t u dent(v

17、 o id) void S tudent: s etlD (string id) dD = id ; void S tu d e nt : : se t Name (string n ) ame = n; voi d Stu d ent: set Obj (J u dge vo i d St u d e nt: : s e tAVE (dou b le a v e ) AVE =ave; s trin g S t udent:: ge t ID () retur n I D ; s trin g Stu dent: ge t Name () 叱 e t urn name; d oub le S

18、tud ent: :getSUM () return SUM; do uble Student: : getAVE () ret u r n AVE; Judg e S tud e nt:: g etObj 0 return o bj; i n t S tude n t: : ju d geNull () nf (ID. e mpty () meniK h #i n c 1 u de ios t ream # i n elude #include ” Student, h w #define MAX 100 0 usin g namesp a ce s td; c 1 ass menu pub

19、l i c: void s ele c t (); / /選擇操作 void inpu tMessag e () ;/輸入選手信息 wo id inpu tGr a de(); 評委打分 void sort (); /根據(jù)選手成績排序(平均分) /査詢某個選手得成績 ovoid ins ert () ; / /插入某個新選手得信息與成績 void input (); /將選手?jǐn)?shù)據(jù)寫入文件 也enu (void); menu ( v oid) ;p r iv a t e: H nt count ; /計數(shù),共有多少組數(shù)據(jù) Student s tu MAX; Judge j ud MAX; ; m

20、e n u . cpp #include M StdAfx、h” # include menu、h menu: menu(vo id) count = 0; newcoun t =0; if s tre am f (C :U s e r sapp 1 eD e sk t opdataN txt); if (! f) ( sc out o pen e rro r! coun t ; for(int i =0; i c o unt; i+) stri ng f I D , f name; f) fID f name; stu i x se t I D(fID); stu ix s e tNam e

21、 (fname); M o uble x 10: for ( i nt j = 0; j X j ; 4 dj ud i . setGra d e (x); % t uih se t Obj (jud i ); stui、s e t AVE (ju d i a v e G r a de 0); 0 stuEiJx sctSUM (judi sumG rad e(); f、c lose 0 ; menu: menu (voi d) void menu: :sei e c 10 wh i le (1) # o c h ar n; cout M * * * * 歡迎進(jìn)入歌手比賽系統(tǒng) * * * *e

22、nd 1 (end 1 ; cou t rt t t 1、輸入選手?jǐn)?shù)據(jù) e ndl; 叱out ttt2、評委打分endl; end 1 ; c ou t ” t t t 3、成績排序(按平均分) 。cout *tt t4、數(shù)據(jù)査詢” endl; coutttt5、追加選手?jǐn)?shù)據(jù)” (endl; -cout - t t t6、寫入數(shù)據(jù)文件VVendl; c ou t M ttt7x 退出系統(tǒng)endl; c out (endln; swi t ch (n) 。 case 1 V: a inputMe ssag e (); brea k ; 、c a se 2,: $ i nputGrade ();

23、b r eak; cas e 3 : 3s or t (); break; 叱a s e 4 : sco n s u It 0 ; break; c a se 5: $ nn s e rt 0 ;b r e ak; c as e 9 6: i nput () ; break; ca s e 7Z : 0 n re t urn ;break; default: 0 void menu :inp u tM e s sage () ocou t ( 11 * * * * * ”歡迎進(jìn)入選手信息頁面” * * * * *(end 1 e ndl; COUt) n; coutendl (end 1 e

24、ndl; cou tID) name; 、以下判斷ID就是否重復(fù) 4)o o 1 pank= t rue; for (int j =0 ; j count; j+) if (ID=stu j ge t IDO) 、 a pank=fal s e; ,MutV ”已存在ID相同得選手,請重新輸入!endl; a return; * 町 s tu ix setID (ID); stuix s etN a me (nam e ): / count = n + c ount; flnew c ount=n; co u t (end 1 (endl (en d 1; vo i d me n u : :

25、inputG r ade 0 i f (st u Oh judgcNu 1 1 () cout無選手信息!操作錯誤!返回開始頁面?!眅ndlendlV (endl; e 1 se o cout M * * * * * * *歡迎進(jìn)入評委打分頁面” V* * * * (endlend 1; 0c out請各位評委打分(共10位評委): (endl; 吸o r (in t i = count; i (c o u nt+newco u n t ) ; i+) 叭 double grade 10; 、cout編號為” stu i、getIDO 得選手得分?jǐn)?shù):” end 1 ; for (in t j

26、=0; j grade j; ajudi、setG rad e (grade); 0 dst u i、se t Obj (jud i); 令 tu i % set AVE (jud i av e Grad e (); * stu i、se t SUM( j ud i 、su mGrad e () 4 co unt 二 coun t +newcount; cout (end 1 endl end 1; void men u : so r 10 n f (jud 0n j ud g eN() cout”無選手分?jǐn)?shù)信息!操作錯誤!返回開始頁面?!?Vendl endl (endl; e Ise o

27、cout ( M * * * * * M 歡迎進(jìn)入排序頁面Lv”* *cout各選手按照平均分從高到低得排序如下endl; /以下進(jìn)行冒泡排序 Student temp; St u dent * newStu = new Stu d ent c ount; 排序用得新得數(shù)組 fo r ( i n t p = 0; p count; p+) s newS t up = stu p ; fo r (i n t i =0; i ( coun t - 1 ;i+) J for(i n t j = i+ 1 ; j coun t; j+) 、 do u bl e a v el = newS t u i、

28、get AVE 0 : adouble ave2 = ne wSt u j g e tAVE (); a i f (ave 1 a v e 2 ) 9 沁emp = n e wS t u i ; s newStu i = newStuj ; n e wS tuj = temp; o df or (int k = 0 ; k coun t ;k+) str i ng ID = newStut k 人 get I D (); $ s t r ing name = newStu k、gctName (); endl; 歡迎進(jìn)入査詢頁面n cout”編號:” ID”姓名:VVname sc out (

29、end 1end 1 endl; vo id menu: :consult () cou tV * * * * * */r, (* * * * * * cnd 1 en d 1 叱out”請輸入想査詢得選手得編號:endl; str i ng ID; 叱inID; -int index;/標(biāo)記査詢到得該選手得下標(biāo) coutendl; sforGnt i = 0; i count; i+) (ID = s tu i x g e tID () a i nd e x = i; a 辻(stuih judg eNul 1 O ) a cout無選手分?jǐn)?shù)信息!操作錯誤!返回開始頁面。endlend 1 (endl; 1 se cout”編號為:* ID得選手得成績?nèi)缦耬ndl (end 1 ; $ stu index、g etOb j ()、d isplay (); 6cou

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論