版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p> 2011年 1 月 20 日</p><p><b> 目 錄</b></p><p> 1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書..............................................................
2、...............................1</p><p> 1.1、題目....................................................................................................................1</p><p> 1.2、要求.............
3、.......................................................................................................1</p><p> 2、總體設(shè)計.......................................................................................
4、...............................1</p><p> 2.1、功能模塊設(shè)計......................................................................................................1</p><p> 2.2、所有功能模塊的流程圖...............
5、..........................................................................2</p><p> 3、詳細(xì)設(shè)計....................................................................................................................
6、.....3</p><p> 3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明.........................................................3</p><p> 3.2、算法的設(shè)計思想............................................................................
7、........................3</p><p> 4、調(diào)試與測試:.................................................................................................................4</p><p> 4.1、調(diào)試方法與步驟:...............
8、..................................................................................4</p><p> 4.2、測試結(jié)果的分析與討論:.......................................................................................4</p>
9、<p> 4.3、測試過程中遇到的主要問題及采取的解決措施:..................................................6</p><p> 5、源程序清單和執(zhí)行結(jié)果.................................................................................................
10、..7</p><p> 6、總結(jié)..............................................................................................................................11</p><p> 7、參考文獻(xiàn).................................
11、.....................................................................................11</p><p> 1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書</p><p><b> 1.1、題目</b></p><p><b> 成績管理系統(tǒng)</b>&
12、lt;/p><p><b> 1.2、要求</b></p><p> 對一個班級的多門課程的成績進(jìn)行管理,能夠?qū)崿F(xiàn)一個班級學(xué)生信息的輸入、輸出、查找、刪除、修改、排序、求平均分和及格率等操作。</p><p><b> 2、總體設(shè)計</b></p><p> 2.1、功能模塊設(shè)計</p&g
13、t;<p> 根據(jù)課程設(shè)計題目的功能要求,各個功能模塊的組成框圖如下</p><p> 2.2、所有功能模塊的流程圖</p><p><b> 3、詳細(xì)設(shè)計</b></p><p> 3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明</p><p> 定義一個學(xué)生類,其中包括學(xué)生的個人信息等私有成員
14、,含有輸入信息,查詢信息等成員函數(shù)。</p><p> class student{</p><p><b> public:</b></p><p> student();</p><p> student(int a,string b,string c,int d,int e,int f,int g);<
15、;/p><p> student(student &s);</p><p> int getstudent();</p><p> int change();</p><p> void input();</p><p> static int getcountp(){return countp1;}&l
16、t;/p><p> int getnumber(){return number;}</p><p> int getsub(){return Chinese+Math+English;}</p><p> static void swap(student &s1,student &s2);</p><p><b>
17、 private:</b></p><p> static int countp1;</p><p> int number;</p><p> string name;</p><p> string gender;</p><p><b> int age;</b>&l
18、t;/p><p> int Chinese;</p><p><b> int Math;</b></p><p> int English;</p><p><b> };</b></p><p> 3.2、算法的設(shè)計思想</p><p>
19、1、首先建立一個學(xué)生類,包含他的所有信息,比如學(xué)( number )、姓名( name )、性別( gender )、年齡( age )和各科的成績( Chinese, math, English );</p><p> 2、然后在編寫相應(yīng)的各個小的函數(shù)段,主要有添加( student(int a,string b,string c,int d,int e,int f,int g) ),查找(int getst
20、udent() ),修改(int change() ),排序等;</p><p> 3、最后在main()函數(shù)中再利用switch()的選擇功能對所需要執(zhí)行的操作進(jìn)行選擇,主要有:</p><p> 1、添加一個學(xué)生的信息 </p><p> 2、查詢一個學(xué)生的信息</p><p> 3、更改一個學(xué)生的信息 </p&
21、gt;<p> 4、查看所有學(xué)生的信息</p><p> 5、查看一個學(xué)生的總成績 </p><p> 6、查看全班的平均分</p><p> 7、查看排名后的結(jié)果 </p><p> 8、查看該班的及格率</p><p><b> 9、退出該操作系統(tǒng)</b><
22、;/p><p><b> 4、調(diào)試與測試:</b></p><p> 4.1、調(diào)試方法與步驟:</p><p> 第一步:添加學(xué)生信息</p><p> 第二步:查詢一個學(xué)生信息</p><p> 第三步:更改一個學(xué)生信息</p><p> 第四步:查看所有學(xué)生信息
23、</p><p> 第五步:查看一個學(xué)生的總成績</p><p> 第六步:查看全班平均分</p><p> 第七步:查看排名后結(jié)果</p><p> 第八步:查看全班的及格率</p><p> 第九步:退出該操作系統(tǒng)</p><p> 4.2、測試結(jié)果的分析與討論:(見下頁)<
24、;/p><p> 4.3、測試過程中遇到的主要問題及采取的解決措施:</p><p> 1、所輸入的格式不符合要求,可能會導(dǎo)致輸出的錯誤,這時應(yīng)該重新輸入</p><p> 2、當(dāng)輸入的學(xué)號有重復(fù)的時候,在查找過程中就會發(fā)現(xiàn),故而希望不要輸入相同的學(xué)號</p><p> 3、改程序還只是一些簡單的處理過程的程序,若要想將其變得更加的完美,
25、還希望大家多多幫忙</p><p> 5、源程序清單和執(zhí)行結(jié)果</p><p> #include<iostream></p><p> #include<string></p><p> using namespace std;</p><p> class student{//類的
26、定義</p><p><b> public:</b></p><p> student();//默認(rèn)構(gòu)造函數(shù)</p><p> student(int a,string b,string c,int d,int e,int f,int g);//構(gòu)造函數(shù)</p><p> student(student &am
27、p;s);//復(fù)制構(gòu)造函數(shù)</p><p> int getstudent();//讀取學(xué)生信息</p><p> int change();//更改學(xué)生信息</p><p> void input();//輸入學(xué)生信息</p><p> static int getcountp(){return countp1;}//計算學(xué)生數(shù)&l
28、t;/p><p> int getnumber(){return number;}//讀取學(xué)生學(xué)號</p><p> int getsub(){return Chinese+Math+English;}//讀取學(xué)生總成績</p><p> static void swap(student &s1,student &s2);//交換學(xué)生信息</
29、p><p><b> private:</b></p><p> static int countp1;//計數(shù)器(學(xué)生數(shù))</p><p> int number;//學(xué)號</p><p> string name;//姓名</p><p> string gender;//性別</
30、p><p> int age;//年齡</p><p> int Chinese;//語文成績</p><p> int Math;//數(shù)學(xué)成績</p><p> int English;//英語成績</p><p><b> };</b></p><p> int
31、 student::countp1=0;//靜態(tài)常量</p><p> student::student(){//默認(rèn)構(gòu)造函數(shù)的實現(xiàn)</p><p> number=0;name="wang";gender="nan";age=21;Chinese=0;Math=0;English=0;</p><p><b>
32、 }</b></p><p> student::student(int a,string b,string c,int d,int e,int f,int g){//構(gòu)造函數(shù)的實現(xiàn)</p><p> number=a;name=b;gender=c;age=d;Chinese=e;Math=f;English=g;</p><p><b&g
33、t; }</b></p><p> student::student(student &s){//復(fù)制構(gòu)造函數(shù)的實現(xiàn)</p><p> number=s.number;name=s.name;gender=s.gender;age=s.age;Chinese=s.Chinese;Math=s.Math;English=s.English;</p>&
34、lt;p><b> }</b></p><p> int student::change(){//更改學(xué)生信息函數(shù)的實現(xiàn)</p><p><b> char xx;</b></p><p> cout<<"請輸入要改變的數(shù)據(jù)"<<endl;</p>&
35、lt;p> cout<<"a代表number,b代表name,c代表gender,"<<endl;</p><p> cout<<"d代表age,e代表Chinese,f代表Math,g代表English"<<endl;</p><p><b> cin>>xx;<
36、;/b></p><p> cout<<"將信息更改為: ";</p><p> switch(xx){</p><p><b> case 'a':</b></p><p> cin>>number; break;</p><
37、p><b> case 'b':</b></p><p> cin>>name; break;</p><p><b> case 'c':</b></p><p> cin>>gender; break;</p><p>&
38、lt;b> case 'd':</b></p><p> cin>>age; break;</p><p><b> case 'e':</b></p><p> cin>>Chinese; break;</p><p><b&g
39、t; case 'f':</b></p><p> cin>>Math; break;</p><p><b> case 'g':</b></p><p> cin>>English; break;</p><p><b> }
40、</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> int student::getstudent(){//讀取學(xué)生信息函數(shù)的實現(xiàn)</p><p> cout<<number<<"
41、; "<<name<<" "<<gender<<" "<<" "<<age<<" "<<Chinese<<" "<<Math<<" "<<English<<
42、;endl;</p><p><b> return 0;</b></p><p><b> }</b></p><p> void student::input(){//輸入學(xué)生信息函數(shù)的實現(xiàn)</p><p> cin>>number>>name>>ge
43、nder>>age>>Chinese>>Math>>English;</p><p> countp1++;</p><p><b> }</b></p><p> void student::swap(student &s1,student &s2){//交換學(xué)生信息函數(shù)的
44、實現(xiàn)</p><p> student s3;</p><p> if(s1.getsub()<s2.getsub()){</p><p><b> s3=s1;</b></p><p><b> s1=s2;</b></p><p><b> s2
45、=s3;</b></p><p><b> }</b></p><p><b> }</b></p><p> int main(){//主函數(shù)</p><p> int i,n,ava=0;//定義變量</p><p> int countp=0;&
46、lt;/p><p> float ava1;</p><p> double k=0;</p><p> student a[100];</p><p> cout<<" *************************************************"<<en
47、dl;</p><p> cout<<" ☆ 歡迎來到學(xué)生成績管理系統(tǒng) ☆ "<<endl;</p><p> cout<<" *************************************************"<<endl;
48、</p><p> for(i=0;n!=9;i++){//循環(huán)的實現(xiàn)</p><p> cout<<" *************************************************"<<endl;</p><p> cout<<"
49、 請選擇您要執(zhí)行的操作: "<<endl;</p><p> cout<<" 1、添加一個學(xué)生的信息 2、查詢一個學(xué)生的信息"<<endl;</p><p> cout<<" 3、更改一個學(xué)生的信息 4、查看所有學(xué)生的信息"
50、<<endl;</p><p> cout<<" 5、查看一個學(xué)生的總成績 6、查看全班的平均分"<<endl;</p><p> cout<<" 7、查看排名后的結(jié)果 8、查看該班的及格率"<<endl;</p><p
51、> cout<<" 9、退出該操作系統(tǒng) "<<endl;</p><p> cout<<" *************************************************"<<endl;</p><p><b> cin>&
52、gt;n;</b></p><p> switch(n){//switch語句的實現(xiàn)</p><p> case 1://添加一個學(xué)生的信息</p><p> if(countp<100){</p><p> cout<<" 學(xué)號 "<<" 姓名 "&
53、lt;<" 性別"<<" 年齡 "<<"語文成績"<<" 數(shù)學(xué)成績"<<" 英語成績"<<endl;</p><p> a[countp].input();</p><p> countp=student::getcoun
54、tp();</p><p><b> }</b></p><p><b> break;</b></p><p> case 2://查詢一個學(xué)生的信息</p><p> int m1,p; </p><p> cout<<"請輸入你要查看的學(xué)
55、生的學(xué)號: ";</p><p><b> cin>>m1;</b></p><p> for(p=0;p<countp;p++)</p><p> if(m1==a[p].getnumber())</p><p> a[p].getstudent();</p><
56、p> if(p>countp)</p><p> cout<<"您所輸入的信息不對,無法查詢"<<endl;</p><p><b> break;</b></p><p> case 3: //更改一個學(xué)生的信息</p><p> int m2,p1;&
57、lt;/p><p> cout<<"請輸入你要修改的學(xué)生的學(xué)號: ";</p><p><b> cin>>m2;</b></p><p> for(p1=0;p1<countp;p1++)</p><p> if(m2==a[p1].getnumber())<
58、/p><p> a[p1].change();</p><p> if(p1>countp)</p><p> cout<<"您所輸入的信息不對,無法查詢"<<endl;</p><p><b> break;</b></p><p> ca
59、se 4://查看所有學(xué)生的信息</p><p><b> int m3;</b></p><p> for(m3=0;m3<countp;m3++)</p><p> a[m3].getstudent();</p><p><b> break;</b></p><
60、;p> case 5://查看一個學(xué)生的總成績</p><p> int m4,p2; </p><p> cout<<"請輸入你要查看的學(xué)生的學(xué)號: ";</p><p><b> cin>>m4;</b></p><p> for(p2=0;p2<co
61、untp;p2++)</p><p> if(m4==a[p2].getnumber()){</p><p> cout<<"該學(xué)生的總成績是: ";</p><p> cout<<a[p2].getsub()<<endl;</p><p><b> }</b&g
62、t;</p><p> if(p>countp)</p><p> cout<<"您所輸入的信息不對,無法查詢"<<endl;</p><p><b> break;</b></p><p> case 6://查看全班的平均分</p><p&
63、gt;<b> int m5;</b></p><p> for(m5=0;m5<countp;m5++)</p><p> ava=ava+a[m5].getsub();</p><p> ava1=static_cast<float>(ava);</p><p> cout<<
64、"全班的平均成績是: "<<(ava1/countp)<<endl;</p><p><b> break;</b></p><p> case 7://查看排名后的結(jié)果</p><p> int m6,m7;</p><p> for(m6=0;m6<count
65、p;m6++)</p><p> for(m7=1;m7<countp;m7++)</p><p> student::swap(a[m6],a[m7]);</p><p> for(m6=0;m6<countp;m6++){</p><p> cout<<"第"<<m6+1&l
66、t;<"名是: "<<endl;</p><p> a[m6].getstudent();</p><p><b> }</b></p><p><b> break;</b></p><p> case 8://查看該班的及格率</p>
67、<p><b> int m8;</b></p><p> for(m8=0;m8<countp;m8++){</p><p> if(a[m8].getsub()>=180)</p><p><b> k++;</b></p><p><b> }<
68、/b></p><p> cout<<"該班的及格率是: "<<(k/countp)*100<<"%"<<endl;</p><p><b> break;</b></p><p> case 9://退出該操作系統(tǒng)</p><
69、;p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }//主函數(shù)結(jié)束</b>
70、</p><p><b> 6、總結(jié)</b></p><p> 本程序在剛開始調(diào)試時有許多錯誤,但在我的努力及同學(xué)的幫助下都被一一克服,現(xiàn)在在操作本程序時可根據(jù)提示進(jìn)行相關(guān)操作,能正確輸出結(jié)果。在剛開始的幾次調(diào)試中曾經(jīng)出現(xiàn)過不能運行、不會正確輸出結(jié)果、不能進(jìn)行循環(huán)練習(xí)等等問題。經(jīng)過我的努力及同學(xué)的幫助,這些問題得到克服,并且使程序的功能也得到了一定的完善,并且給出
71、正確答案。</p><p> 在這次設(shè)計過程中,不僅復(fù)習(xí)課本上所學(xué)知識,還通過查資料、問同學(xué)學(xué)到了課本上沒有的知識。從而啟發(fā)我,要想寫好程序,在寫好課本知識的同時還需要多讀和專業(yè)有關(guān)的一些書籍,同時還需要多動腦子,盡量把所學(xué)的知識綜合起來應(yīng)用,力爭寫出完美的程序。除此之外,我還得到了一些有用的教訓(xùn):寫程序時必須要細(xì)心,不能輸錯一個字符標(biāo)點,就連全角半角也得注意。在修改時要有耐心,編譯出錯后必須逐個錯誤去改正,絕
72、不能心急浮躁,否則修改之后還會有新的錯誤。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]嚴(yán)蔚敏,陳文博編著.數(shù)據(jù)結(jié)構(gòu)及應(yīng)用算法教程.北京:清華大學(xué)出版社</p><p> ?。?]寧正元.數(shù)據(jù)結(jié)構(gòu)-用C語言描述.北京:中國水利水電出版社,2000</p><p> ?。?]蘇仕華主編.數(shù)據(jù)結(jié)構(gòu)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--成績管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--- 學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生成績管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理系統(tǒng)(部分)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-學(xué)生成績查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---學(xué)生成績管理問題
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航班管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—機場管理系統(tǒng)
評論
0/150
提交評論