


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C+程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:學(xué)生成績管理系統(tǒng)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)(網(wǎng)絡(luò)工程) 班級(jí): 學(xué)號(hào):姓名:指導(dǎo)老師:日期: 33333目錄一、設(shè)計(jì)任務(wù)與要求1. 設(shè)計(jì)內(nèi)容2. 課程設(shè)計(jì)的要求二、系統(tǒng)分析(需求分析)1. 需求分析2. 系統(tǒng)性能要求33. 系統(tǒng)的功能分析34. 系統(tǒng)功能模塊35. 模塊框架圖3三、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 41界面設(shè)計(jì)42. 功能設(shè)計(jì)與實(shí)現(xiàn) 4四、測試結(jié)果 4五、總結(jié) 5六、參考資料 5一、設(shè)計(jì)任務(wù)與要求1. 設(shè)計(jì)內(nèi)容:a. 設(shè)計(jì)四個(gè)類;學(xué)生類(描述學(xué)生基本信息);成績類:班級(jí)類;課程類(描述課程信 息:課程編號(hào),科目名稱(如高等數(shù)學(xué),大學(xué)英語等) ;學(xué)生成績及課程信息用文
2、件保存, 每個(gè)類一個(gè)文件,程序執(zhí)行時(shí)從文件讀入;b能按學(xué)期,按班級(jí)完成對(duì)學(xué)生成績的錄入,修改,能按班級(jí)統(tǒng)計(jì)學(xué)生的成績;求學(xué)生的總 分及平均分 ;并能根據(jù)學(xué)生的平均成績進(jìn)行排序 ,能查詢學(xué)生成績 ,不及格科目及學(xué)生名單 ;能 按班級(jí)輸出學(xué)生的成績單。-設(shè)置學(xué)生的成績信息:學(xué)生學(xué)號(hào)、姓名、所選課程名稱、平時(shí)成績、期末成績、平時(shí)成 績所占百分比-計(jì)算學(xué)生總評(píng)成績:總評(píng)成績 =平時(shí)成績*平時(shí)成績所占百分比+期末成績* (1-平時(shí)成績 所占百分比)-顯示學(xué)生的姓名、所選課程名稱以及平時(shí)成績、期末成績和總評(píng)成績信息。分單人顯示和以班輸出(班成績單格式輸出到文件)-注意,至少一個(gè)班,30人三門課2. 課程設(shè)
3、計(jì)的要求:根據(jù)C+課程所學(xué)的概念、理論和方法,按照 C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng) 規(guī)模的程序來實(shí)現(xiàn)設(shè)計(jì)課程內(nèi)容中的全部功能;設(shè)計(jì)主控模塊程序?qū)o出的程序源代碼 要給出各部分的詳細(xì)注釋自己根據(jù)能力及需要添加相應(yīng)功能模塊,增強(qiáng)模擬系統(tǒng)功能。 包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計(jì)、程序流程圖或結(jié)構(gòu)框圖、邏輯結(jié)構(gòu)設(shè)計(jì),數(shù) 據(jù)庫中的表、視圖(如果使用) 、索引的結(jié)構(gòu)和定義、觸發(fā)器、存儲(chǔ)過程、課程設(shè)計(jì)體會(huì)。二、系統(tǒng)分析(需求分析)1. 需求分析:a. 能對(duì)學(xué)生各科成績進(jìn)行錄入:。b. 能對(duì)學(xué)生的成績進(jìn)行增加。c. 能對(duì)學(xué)生的成績進(jìn)行刪除。d. 能對(duì)學(xué)生的成績進(jìn)行修改。e. 能對(duì)學(xué)生的成績按總成
4、績,姓名,進(jìn)行查詢。f. 能輸出學(xué)生的所有數(shù)據(jù)。g. 能進(jìn)行成績統(tǒng)計(jì)h 能進(jìn)行總分查詢排名 。2. 系統(tǒng)性能要求 :a. 系統(tǒng)安全、可靠;b. 功能齊全;c. 操作方便、界面友好;d 易于維護(hù)和擴(kuò)充。3. 系統(tǒng)的功能分析:資料維護(hù):系統(tǒng)維護(hù)包括對(duì)學(xué)生信息的錄入操作及數(shù)據(jù)表中的信息進(jìn)行瀏覽。 系統(tǒng)功能:可以對(duì)數(shù)據(jù)表中的信息進(jìn)行瀏覽。系統(tǒng)查詢:可以對(duì)學(xué)生的信息進(jìn)行查詢。4. 系統(tǒng)功能模塊學(xué)生成績查詢系統(tǒng)有:成績錄入、增加、刪除、修改,數(shù)據(jù)查詢,排序顯示構(gòu)成。5模塊框架圖學(xué)生成 績管理 系統(tǒng)錄入1增加刪除修改總成績查詢姓名r輸岀所有學(xué)生的成績L成績按總統(tǒng)計(jì)每個(gè)學(xué)生的平均成績成績排名各科不及格的人數(shù)三
5、、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1. 界面設(shè)計(jì)程序運(yùn)行后會(huì)出現(xiàn)一個(gè)簡捷的窗口,便于用戶查詢數(shù)據(jù)。2. 功能設(shè)計(jì)與實(shí)現(xiàn)通過主窗體調(diào)用其他窗體,具體實(shí)現(xiàn)可以參照系統(tǒng)分析相關(guān)內(nèi)容。應(yīng)用系統(tǒng)主控界面包括 記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學(xué)生成績記錄編輯和記錄查詢功能。 記錄查詢功能可以對(duì)數(shù)據(jù)各分類的記錄進(jìn)行查詢四、測試結(jié)果每一個(gè)case都能執(zhí)行,但是有很多的地方都不夠完善,例如:在總成績排序中,只能輸出 總成績,不能單獨(dú)的輸出學(xué)生的相應(yīng)的信息;每次進(jìn)行別的操作之前都要在進(jìn)行一次數(shù)據(jù) 的錄入,不能直接對(duì)原有的文件進(jìn)行讀取。五、總結(jié)此次C+課程設(shè)計(jì),在指導(dǎo)教師的精心教導(dǎo)下,我們學(xué)會(huì)了如何用C+編寫一個(gè)簡單的
6、應(yīng)用程序。首先要對(duì)程序的設(shè)計(jì)要求有一個(gè)比較明確的認(rèn)識(shí),然后系統(tǒng)分析與系統(tǒng)設(shè)計(jì), 最后是代碼設(shè)計(jì)與調(diào)試。程序?qū)崿F(xiàn)上,設(shè)計(jì)了簡單的查詢界面,將各個(gè)功能集中出來按照 程序編寫原則,便于查詢。根據(jù)C+課程所學(xué)的概念、理論和方法,按照C+程序設(shè)計(jì)的基本步驟,設(shè)計(jì)出一個(gè)適當(dāng)規(guī)模的程序;進(jìn)一步加深對(duì)C+語言的理解和掌握。理論聯(lián)系實(shí)際,加深和鞏固所學(xué)的理論知識(shí),提高實(shí)踐能力和計(jì)算機(jī)的綜合運(yùn)用能力。我們編寫程序的過程是辛苦與快樂 的,程序的編寫原則很重要,只要我們?cè)诰幊蹋捅仨毑粩喔倪M(jìn),才能更好提高編程能力。第4頁共15頁六、參考資料C+ 程序設(shè)計(jì)譚浩強(qiáng) 清華大學(xué)出版社附錄:源程序#include#includ
7、e#include#include#includeusing namespacestd;class Tstu /通過定義一個(gè)類來定義數(shù)據(jù)錄入的函數(shù)char name20;int number;float math,cpp,english,average,sum;public:Tstu();Tstu ( char n20, int num,float ma,float cj,float eng ) ;float getsum();/ 得到總分的函數(shù)float getaver(); / 得到平均分的函數(shù)friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 ;Tstu
8、:Tstu ( char n20, int num,float ma,float cj,float eng )strcpy(name,n); /得到姓名number=num; /得到學(xué)號(hào)math=ma; /得到數(shù)學(xué)成績cpp=cj; /得到C+成績english=eng; /得到英語成績float Tstu:getsum() /得到總分的函數(shù)sum=cpp+english+math;return sum;float Tstu:getaver() /得到平均分的函數(shù)average=getsum()/3;return average;void main()cout*歡迎來到學(xué)生成績查詢系統(tǒng) *en
9、dl;cout 請(qǐng)選擇您需要的操作! endl; /菜單的輸出 cout 操作: endl;cout(1) 數(shù)據(jù)錄入 endl;cout(2) 增加學(xué)生 endl;cout(3) 刪除學(xué)生 endl;cout(4) 修改數(shù)據(jù) endl; cout 查詢: endl;cout(5) 按總成績查詢 endl;cout(6) 按姓名查詢 endl;cout(7) 輸出所有學(xué)生的數(shù)據(jù) endl;cout 成績統(tǒng)計(jì) :endl;cout(8) 每個(gè)學(xué)生的平均成績 endl;cout(9) 各科不及格人數(shù) endl;cout 排名 :endl;cout(10) 按總分查詢排名 endl;cout(11)
10、退出 endl;cout 選擇相關(guān)操作請(qǐng)輸入相對(duì)的括號(hào)里的阿拉伯?dāng)?shù)字及字母! p;if(p=1&p=11) chris1=1;elsecout 指令錯(cuò)誤!請(qǐng)重新輸入: endl;while(chris1=0);doswitch(p)case 1: /數(shù)據(jù)的錄入char c; /用于在小項(xiàng)中選擇是否繼續(xù)操作 char name20;int number;float math,cpp,english;docout 請(qǐng)輸入姓名 :name;cout 請(qǐng)輸入學(xué)號(hào) :number;cout 請(qǐng)輸入數(shù)學(xué)成績: math;cout 請(qǐng)輸入 C+ 成績: cpp;cout 請(qǐng)輸入英語成績: english;f
11、stream outfile,infile; / 作一個(gè)文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open(f1.txt,ios:out|ios:app);if(!file) coutf1.txt can not open.n;return;outfilename 學(xué)號(hào) :number 數(shù)學(xué)成績 :mathC+ 成績 :cpp 外語成績 :englishendl;outfile.close();infile.open(f1.txt,ios:in);if(!file) /判斷文件是否打開 coutf1.txt can not open.n;return;char ch;while(
12、infile.get(ch)coutch;coutendl;infile.close();j+;si=new Tstu(name, number,math, cpp, english);i+;cout 數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎 (y/n)c; chris1=0;do if(c!=y&c!=n) cout 指令錯(cuò)誤!請(qǐng)重新輸入! c;else chris1=1;while(chris1=0);while(c=y); /重復(fù)輸入break;case2: / 增加學(xué)生數(shù)據(jù)char name20;int number;float math,cpp,english;char c;docout 請(qǐng)輸入您
13、要增加的學(xué)生的姓名: name;cout 請(qǐng)輸入你要增加的學(xué)生的學(xué)號(hào) :number;cout 請(qǐng)輸入數(shù)學(xué)成績: math;cout請(qǐng)輸入 C+ 成績:cpp;cout 請(qǐng)輸入英語成績: english;fstream outfile,infile;outfile.open(f1.txt,ios:out|ios:app);if(!file)coutf1.txt can not open.n; return;outfilename 學(xué)號(hào) :number 數(shù)學(xué)成績 :mathC+ 成績 :cpp 外語成績 :englishendl;outfile.close();infile.open(f1.tx
14、t,ios:in);if(!file) coutf1.txt can not open.n; return;char h; while(infile.get(h) couth;coutendl;infile.close();j+;si=new Tstu(name,number, math, cpp, english);i+;cout 數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎 (y/n)c;if(c!=y&c!=n)cout 指令錯(cuò)誤!請(qǐng)重新輸入! c;while(c=y);break;case 3:/刪除學(xué)生信息char c;string xingming,line,str,name;do ifstream
15、 fin(f1.txt);fstream outfile(f2.txt,ios:trunc|ios:out); / 作一個(gè)文本文檔在文件 夾中用于顯示所錄入的數(shù)據(jù)cout 請(qǐng)輸入您要?jiǎng)h除的學(xué)生的姓名: xingming;while(!fin.eof() )getline(fin,line);istringstream stream(line);name = line.substr(0,line.find( ,0);/ 找到名字,判斷是否相等 if(name != xingming)outfilelineendl;outfile.close();fin.close();fstream f(f1.
16、txt,ios:trunc|ios:out);ifstream outf(f2.txt);foutf.rdbuf();outf.close();f.close();cout 數(shù)據(jù)刪除成功,想繼續(xù)刪除嗎 (y/n)c;if(c!=y&c!=n)cout 指令錯(cuò)誤!請(qǐng)重新輸入! c;while(c=y);break;case4:/ 修改數(shù)據(jù)string sname,line,str,name;int nu;float eng,ma,com;int flag;char c;if(i=0)cout 系統(tǒng)中沒有輸入數(shù)據(jù) ,請(qǐng)先輸入數(shù)據(jù) !endl;break;doflag=0;coutname;fstr
17、eam fin(f1.txt,ios:in);ofstream outfile(f.txt,ios:trunc|ios:out);coutendl;while(!fin.eof() ) / 在文件中查找 getline(fin,line); istringstream stream(line); sname= line.substr(0,line.find( ,0); if(name!=sname)outfilelineendl;else flag=1;fin.close();if(flag=1)coutnamenumacomeng;coutendl;outfilename 學(xué)號(hào) :nu 數(shù)學(xué)
18、成績 :maC+ 成績 :com 外語成績 :engendl;outfile.close();fstream outf(f1.txt,ios:trunc|ios:out);fstream inf(f.txt,ios:in);outfinf.rdbuf()endl;outf.close();inf.close();if(flag=0)cout 對(duì)不起,您要修改的學(xué)生不存在!請(qǐng)查證后輸入! endl; coutc;coutendl;if(c!=y&c!=n)cout 指令錯(cuò)誤!請(qǐng)重新輸入! endlc;while(c=y);break;case 5:/按總分查詢int j=0;float SUM;
19、char c;int flag;if(i=0)cout 系統(tǒng)中沒有輸入數(shù)據(jù) ,請(qǐng)先輸入數(shù)據(jù) !endl;break;doflag=0;cout 請(qǐng)輸入您要查詢的學(xué)生的總成績: SUM;for(int j=0;jgetsum()=SUM)flag=1;cout 您要查詢的學(xué)生是 :(*sj).nameendl;cout 該生的信息為 :endl;cout 學(xué)號(hào) :(*sj).number 數(shù)學(xué)分?jǐn)?shù) :(*sj).math c+ 分?jǐn)?shù) :(*sj).cpp英語分?jǐn)?shù) (*sj).englishendl;if(flag=0)cout 對(duì)不起 ! 您要查詢的學(xué)生不存在 !endl;coutc;if(c!
20、=y&c!=n)cout 指令錯(cuò)誤!請(qǐng)重新輸入! c;while(c=y);break;case6:/ 按姓名查詢char n20;char c;int j=0;int flag;if(i=0)cout 系統(tǒng)中沒有輸入數(shù)據(jù) ,請(qǐng)先輸入數(shù)據(jù) !endl;break;doflag=0;cout 請(qǐng)輸入要查詢的名字 : n;for(int j=0;ji;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout 您要查詢的學(xué)生是 :(*sj).nameendl;cout 該生的信息是 :學(xué)號(hào) :(*sj).number 數(shù)學(xué)分?jǐn)?shù) :(*sj). mathc+ 分?jǐn)?shù) :(*sj)
21、.cpp 英語分?jǐn)?shù) :(*sj).englishendl;if(flag=0)cout 對(duì)不起您要查詢的學(xué)生不存在 ,請(qǐng)查證后再輸入 !endl;coutc;if(c!=y&c!=n)cout 指令錯(cuò)誤!請(qǐng)重新輸入 :c;while(c=y);break;case 7:/輸出所有學(xué)生數(shù)據(jù)cout 所有學(xué)生數(shù)據(jù)如下 :endl;ifstream file;file.open(f1.txt,ios:in);coutfile.rdbuf();file.close();break;case 8:/統(tǒng)計(jì)每個(gè)學(xué)生的平均成績if(i=0)cout 系統(tǒng)中沒有輸入數(shù)據(jù) ,請(qǐng)先輸入數(shù)據(jù) !endl;break;for(int m=0;mi;m+)cout(*sm).name 學(xué)號(hào) :(*sm).number 總分 :(*sm). getsum() 均分 :(*sm).getaver()endl;break;case 9:/統(tǒng)計(jì)各學(xué)科不及格人數(shù)if(i=0)cout 系統(tǒng)中沒有輸入數(shù)據(jù) ,請(qǐng)先輸入數(shù)據(jù) !endl;break;int m,n,k,j;m=0;n=0;k=0;for(j=0;jmathcppenglish
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝經(jīng)銷合同范本
- 南京2024年江蘇南京大學(xué)智能科學(xué)與技術(shù)學(xué)院專用先進(jìn)技術(shù)準(zhǔn)聘長聘教師崗位招聘筆試歷年參考題庫附帶答案詳解
- 社交心理學(xué)在肥胖治療中的輔助作用
- 亳州2024年安徽亳州渦陽縣面向安徽省退役運(yùn)動(dòng)員專項(xiàng)招聘體育教練員筆試歷年參考題庫附帶答案詳解
- Sulfo-DBCO-UBQ-2-生命科學(xué)試劑-MCE
- N-sec-butyl-Pentylone-hydrochloride-生命科學(xué)試劑-MCE
- Lead-lapemelanotide-zapixetan-生命科學(xué)試劑-MCE
- 疾病治療過程中的心理干預(yù)策略研究報(bào)告
- 2R-4R-UCB7362-生命科學(xué)試劑-MCE
- 電動(dòng)汽車換電模式在醫(yī)療行業(yè)的應(yīng)用案例分析
- 2025年湖北省技能高考(建筑技術(shù)類)《建設(shè)法規(guī)》模擬練習(xí)試題庫(含答案)
- 急性呼衰院前急救流程
- 部編版七年級(jí)語文下冊(cè)《第2課說和做》課件
- 養(yǎng)老服務(wù)信息化發(fā)展-深度研究
- 夫妻離婚協(xié)議書范本2024
- 交管12123學(xué)法減分題庫(含答案)
- 2025年蘇州工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 2025年南京旅游職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 二零二五年度房地產(chǎn)代理合作協(xié)議4篇
- 2024年全國職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(含答案)
評(píng)論
0/150
提交評(píng)論