C++成績管理系統(tǒng)-最終版_第1頁
C++成績管理系統(tǒng)-最終版_第2頁
C++成績管理系統(tǒng)-最終版_第3頁
C++成績管理系統(tǒng)-最終版_第4頁
C++成績管理系統(tǒng)-最終版_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C++成績管理系統(tǒng)---最終版C++成績管理系統(tǒng)---最終版C++成績管理系統(tǒng)---最終版xxx公司C++成績管理系統(tǒng)---最終版文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度課程設(shè)計(jì)(論文)任務(wù)書軟件學(xué)院機(jī)械電子工程專業(yè)2010-1班一、課程設(shè)計(jì)(論文)題目學(xué)生成績管理系統(tǒng)二、課程設(shè)計(jì)(論文)工作自2011年6月27日起至2011年6月29日止。三、課程設(shè)計(jì)(論文)地點(diǎn):軟件學(xué)院實(shí)訓(xùn)中心四、課程設(shè)計(jì)(論文)內(nèi)容要求:1.本課程設(shè)計(jì)的目的(1)使學(xué)生掌握系統(tǒng)各功能模塊的基本工作原理;(2)掌握C++的基本編程原理和及基本的編程方法;(3)使學(xué)生學(xué)會(huì)系統(tǒng)調(diào)試;(4)培養(yǎng)學(xué)生分析、解決問題的能力;(5)提高學(xué)生的軟件文檔寫作能力。2.課程設(shè)計(jì)的任務(wù)及要求1)基本要求:(1)分析系統(tǒng)各功能模塊的工作原理;(2)至少有查找,排序、插入、刪除等功能;(3)提出系統(tǒng)的設(shè)計(jì)方案;(4)對(duì)所進(jìn)行編程、調(diào)試、修改。2)創(chuàng)新要求:在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如:文件流等;3)課程設(shè)計(jì)論文編寫要求(1)要按照書稿的規(guī)格打印謄寫畢業(yè)論文(2)論文包括目錄、緒論、正文、小結(jié)、參考文獻(xiàn)、附錄等(3)畢業(yè)論文裝訂按學(xué)校的統(tǒng)一要求完成4)答辯與評(píng)分標(biāo)準(zhǔn):(1)完成原理分析:20分;(2)完成設(shè)計(jì)過程:40分;(3)完成調(diào)試運(yùn)行結(jié)果正確:25分;(4)答辯:15分。5)參考文獻(xiàn):(1)譚浩強(qiáng).《C++程序設(shè)計(jì)實(shí)踐指導(dǎo)》清華大學(xué)出版社(2)譚浩強(qiáng).《C++程序設(shè)計(jì)》清華大學(xué)出版社(3)//6)課程設(shè)計(jì)進(jìn)度安排內(nèi)容天數(shù)地點(diǎn)總體需求與分析構(gòu)思及收集資料1圖書館各模塊的編程實(shí)現(xiàn),調(diào)試與修改3機(jī)房撰寫論文與答辯1圖書館,學(xué)生簽名:2010年6月28日課程設(shè)計(jì)(論文)評(píng)審意見(1)完成原理分析(20分):優(yōu)()、良()、中()、一般()、差();(2)設(shè)計(jì)分析(25分):優(yōu)()、良()、中()、一般()、差();(3)完成調(diào)試(20分):優(yōu)()、良()、中()、一般()、差();(4)運(yùn)行結(jié)果(20分):優(yōu)()、良()、中()、一般()、差();(5)答辯(15分):優(yōu)()、良()、中()、一般()、差();(6)格式規(guī)范性及考勤是否降等級(jí):是()、否()評(píng)閱人簽名:職稱:講師2010年6月20日學(xué)生成績管理系統(tǒng)設(shè)計(jì)報(bào)告需求分析:用數(shù)組或鏈表數(shù)據(jù)結(jié)構(gòu)完成一個(gè)學(xué)生成績管理系統(tǒng),此系統(tǒng)的具體功能要求如下:(1)學(xué)生信息錄入功能

1)用戶從鍵盤輸入每個(gè)學(xué)生的信息:學(xué)號(hào)、姓名、性別、數(shù)學(xué)、英語、C++、程序設(shè)計(jì)、物理五門課成績。

2)可插入一個(gè)或多個(gè)學(xué)生信息到當(dāng)前編輯的班級(jí)數(shù)據(jù)中。3)可刪除一個(gè)或多個(gè)學(xué)生信息。(2)文件保存功能

1)學(xué)生信息每一班存為一個(gè)數(shù)據(jù)文件,數(shù)據(jù)文件可在程序中打開、編輯和重新保存。

2)用戶輸入學(xué)生信息可隨時(shí)保存數(shù)據(jù)文件。

(3)文件打開功能

1)程序只能對(duì)當(dāng)前打開的數(shù)據(jù)文件進(jìn)行編輯。

(4)查詢功能

1)瀏覽所有學(xué)生信息;

2)按學(xué)號(hào)查詢學(xué)生信息;

3)按姓名查詢學(xué)生信息;

4)查詢一個(gè)班總成績和平均成績;

5)查詢一個(gè)班某一門課總成績和平均成績;

(5)報(bào)表輸出功能

1)按學(xué)號(hào)輸出一個(gè)班學(xué)生信息:學(xué)號(hào)、姓名、性別、數(shù)學(xué)、英語、C++、程序設(shè)計(jì)、物理成績和總成績,到屏幕和文件。2)按總成績輸出從高到低輸出學(xué)號(hào)、姓名信息。注:以上功能以菜單形式供用戶使用,并有一定的容錯(cuò)功能。概要設(shè)計(jì)整體框架:整個(gè)學(xué)生成績管理系統(tǒng)采用鏈表作為基本數(shù)據(jù)結(jié)構(gòu),創(chuàng)建一個(gè)類student用于保存學(xué)生的數(shù)據(jù)且是鏈表中的一個(gè)節(jié)點(diǎn)。類list作為保存整個(gè)鏈表之用。主函數(shù)通過switch語句來根據(jù)用戶的需要連接各個(gè)模塊,以實(shí)現(xiàn)用戶的需要。模塊基本介紹:用戶輸入模塊在此模塊中,用戶將根據(jù)菜單提示結(jié)合自己的需求輸入一個(gè)0~11的值,來實(shí)現(xiàn)一定的功能。學(xué)生信息錄入模塊此模塊可以讓用戶從鍵盤輸入每個(gè)學(xué)生的信息:學(xué)號(hào)、姓名、性別、數(shù)學(xué)、英語、C++、程序設(shè)計(jì)、物理五門課成績。用戶可插入一個(gè)或多個(gè)學(xué)生信息到當(dāng)前編輯的班級(jí)數(shù)據(jù)中。用戶可刪除一個(gè)或多個(gè)學(xué)生信息。文件保存功能模塊

用戶在確定以錄入的成績無誤之后,可以將學(xué)生信息以每一班為單位存為一個(gè)數(shù)據(jù)文件。用戶輸入的學(xué)生信息可隨時(shí)保存數(shù)據(jù)文件。文件打開功能模塊用戶可以用此模塊將數(shù)據(jù)文件在程序中打開、編輯,程序只能對(duì)當(dāng)前打開的數(shù)據(jù)文件進(jìn)行編輯。查詢功能模塊在此模塊里,用戶可實(shí)現(xiàn)以下操作:1.瀏覽所有學(xué)生信息;2.按學(xué)號(hào)查詢學(xué)生信息;3.按姓名查詢學(xué)生信息;4.查詢一個(gè)班每個(gè)人的總成績和平均成績;5.查詢一個(gè)班某一門課每個(gè)人的總成績和平均成績;6)進(jìn)行成績的統(tǒng)計(jì)分析:包括總?cè)藬?shù),每門課的最高成績、最低成績、平均成績、及格人數(shù)。報(bào)表輸出功能模塊在此模塊中,用戶可以瀏覽所有學(xué)生的信息,或者可以按學(xué)號(hào)輸出一個(gè)班學(xué)生信息:學(xué)號(hào)、姓名、性別、數(shù)學(xué)、英語、C++、程序設(shè)計(jì)、物理成績和總成績,到屏幕和文件。也可以按總成績輸出從高到低輸出學(xué)號(hào)、姓名信息。模塊圖:開始開始m值1,3,4值8值7,2,6,5值10,學(xué)生信息錄入模塊文件打開功能模塊查詢功能模塊報(bào)表輸出功能模塊用戶輸入,并將值保存至m中m結(jié)束詳細(xì)設(shè)計(jì)主要功能模塊的算法設(shè)計(jì)思路:1.用戶輸入模塊設(shè)計(jì)提示用戶輸入一個(gè)0~11的值,并存儲(chǔ)在一個(gè)整型變量m中。2.學(xué)生信息錄入模塊設(shè)計(jì)通過應(yīng)用list中的instu()函數(shù),來新建一個(gè)鏈表中的節(jié)點(diǎn),即一個(gè)新的學(xué)生信息,來進(jìn)行成績的錄入功能。成績修改功能,可以根據(jù)姓名或?qū)W號(hào)進(jìn)行查詢并修改相應(yīng)的課程的成績,使用了voidsearch(chars[10],int)和voidsearch1(chars[20],int)函數(shù)進(jìn)行操作。search函數(shù)根據(jù)姓名查找,search1函數(shù)根據(jù)學(xué)號(hào)進(jìn)行查找。因?yàn)閷W(xué)號(hào)和姓名,都是存儲(chǔ)在字符數(shù)組中的,所以都是通過字符串的比較進(jìn)行查找的。然后根據(jù)整形參數(shù)進(jìn)行對(duì)應(yīng)的課程成績的修改。成績刪除功能,也是可以根據(jù)姓名或?qū)W號(hào)進(jìn)行刪除,查詢的算法和成績修改功能的查詢方法是一樣的,當(dāng)找到要?jiǎng)h除的節(jié)點(diǎn)時(shí),因?yàn)楣?jié)點(diǎn)都是在堆內(nèi)存中保存的,所以可以直接delete掉,并將前一個(gè)節(jié)點(diǎn)的next指針指向被刪掉的節(jié)點(diǎn)的next指針?biāo)赶虻墓?jié)點(diǎn)。3.查詢功能模塊可以根據(jù)姓名或?qū)W號(hào)進(jìn)行查找,搜索方法和前幾個(gè)模塊相同。通過outstu1(char*n)和outstu(char*n)來進(jìn)行輸出??偝煽兒推骄煽兊牟樵兺ㄟ^函數(shù)voidoutsum(char*)和voidoutsum1(char*)來完成。通過函數(shù)scanall()來瀏覽所有學(xué)生的信息。通過函數(shù)think()來進(jìn)行成績的統(tǒng)計(jì)分析。4.報(bào)表輸出功能模塊通過建立一個(gè)新的類classstucopy用于拷貝student的數(shù)據(jù),并實(shí)現(xiàn)排序功能。創(chuàng)建一個(gè)stucopystu[M]數(shù)組,將原鏈表的數(shù)據(jù)拷貝與數(shù)組中,然后用選擇排序方法將數(shù)組排序,然后用output按照標(biāo)準(zhǔn)的格式輸出數(shù)據(jù)文件。實(shí)踐結(jié)果圖程序結(jié)構(gòu)源代碼:#include<>#include<>#include<>#include<> constintM=20;classstucopy據(jù)學(xué)號(hào)查詢2.根據(jù)姓名查詢"<<endl<<"請(qǐng)輸入:"; cin>>n; switch(n){ case1: cout<<"請(qǐng)輸入學(xué)號(hào)\n"; cin>>id; (id); cout<<"\n";break; case2: cout<<"請(qǐng)輸入姓名\n"; cin>>name; (name); cout<<"\n";break;}break;case3: cout<<"1.根據(jù)學(xué)號(hào)查詢2.根據(jù)姓名查詢"<<endl<<"請(qǐng)輸入:"; cin>>n; switch(n){ case1: cout<<"請(qǐng)輸入學(xué)號(hào)\n"; cin>>id; (id); cout<<"\n"; cout<<setw(6)<<"1.數(shù)學(xué)"<< setw(6)<<"2.英語"<<setw(6)<<"++"<< setw(14)<<"4.程序設(shè)計(jì)"<<setw(6)<<"5.物理"<<endl; cout<<"請(qǐng)輸入要修改的課程編號(hào):"; cin>>j; (id,j);break; case2: cout<<"請(qǐng)輸入姓名\n"; cin>>name; (name); cout<<"\n"; cout<<setw(6)<<"1.數(shù)學(xué)"<< setw(6)<<"2.英語"<<setw(6)<<"++"<< setw(14)<<"4.程序設(shè)計(jì)"<<setw(6)<<"5.物理"<<endl; cout<<"請(qǐng)輸入課程編號(hào):"; cin>>j; (name,j);break;}break;case4: cout<<"1.根據(jù)學(xué)號(hào)刪除2.根據(jù)姓名刪除"<<endl<<"請(qǐng)輸入:"; cin>>n; switch(n){ case1: cout<<"請(qǐng)輸入學(xué)號(hào)\n"; cin>>id; (id); (id);break; case2: cout<<"請(qǐng)輸入姓名\n"; cin>>name; (name); (name);break;}break;case5:();break;case6: cout<<"1.根據(jù)學(xué)號(hào)查詢2.根據(jù)姓名查詢"<<endl<<"請(qǐng)輸入:"; cin>>n; switch(n){ case1: cout<<"請(qǐng)輸入學(xué)號(hào)\n"; cin>>id; (id);break; case2: cout<<"請(qǐng)輸入姓名\n"; cin>>name; (name);break;}break;case7: cout<<setw(8)<<"學(xué)號(hào)"<<setw(8)<<"姓名"<<setw(6)<<"性別"<<setw(6)<<"數(shù)學(xué)"<< setw(6)<<"英語"<<setw(6)<<"C++"<< setw(14)<<"程序設(shè)計(jì)"<<setw(6)<<"物理"<<setw(8)<<"總成績"<< setw(10)<<"平均成績"<<"\n"; (); break;case8: cout<<"請(qǐng)輸入文件名:"<<endl; cin>>file; (file); if()) { cout<<"Filedoesnotexist"<<endl; break; } (temp,80); (temp,80); if()){cout<<"文件中無數(shù)據(jù)!"<<endl;break;} input>>id>>name>>sex1>>grade1[0]>>grade1[1]>>grade1[2]>> grade1[3]>>grade1[4]; input>>temp; input>>temp;d[j]=p->id[j]; } for(j=0;j<10;j++) { stu[i].name[j]=p->name[j]; } for(j=0;j<10;j++) { stu[i].sex[j]=p->sex[j]; } stu[i].sumsum=p->outsum(); stu[i].average=p->outav(); } for(n=0;n<i-1;n++) for(j=1;j<i;j++) { if(stu[n].sumsum<stu[j].sumsum) { stutemp=stu[j]; stu[j]=stu[n]; stu[n]=stutemp; } } cout<<setw(8)<<"學(xué)號(hào)"<<setw(8)<<"姓名"<<setw(6)<<"性別"<<setw(8)<<"總成績"<< setw(10)<<"平均成績"<<"\n"; for(j=0;j<i;j++) cout<<setw(8)<<stu[j].id<<setw(8)<<stu

溫馨提示

  • 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. 人人文庫網(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)論