c++課程設計46387_第1頁
c++課程設計46387_第2頁
c++課程設計46387_第3頁
c++課程設計46387_第4頁
c++課程設計46387_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.目錄學生成績管理系統(tǒng)21.需求分析22概要設計23詳細設計33.1信息錄入功能33.2增加功能53.3刪除功能73.4修改功能83.5查詢各個學生平均分103.6信息瀏覽功能114該設計所用的技術115課程設計總結126參考文獻127全部代碼13精品.學生成績管理系統(tǒng)1.需求分析學校的學生成績信息管理是學校管理中的一項重要任務,以往的手工操作已經(jīng)不能適應現(xiàn)在辦公的需要.為了擺脫繁瑣的勞動,提高工作效率,利用計算機進行信息處理成為必然.開發(fā)功能完善及安全可靠的管理系統(tǒng)可以大大提高學校資源的利用率,及時,準確地獲取需要的信息,充分發(fā)揮人員的工作潛力。因此,不難想象,正是咨詢業(yè)的迅速發(fā)展使得人們從

2、過去的手工勞動中得以解脫.同時,編寫一套完善的學生成績管理系統(tǒng)的任務就顯得尤為重要。軟件開發(fā)的意圖為便于學校的管理,方便查看有關學校及學生的情況。如教務處對學生成績的修改、刪除、查找、添加等。2概要設計設計一個學生成績管理系統(tǒng),使之能完成以下功能:1信息錄入功能2信息查詢功能3信息刪除功能4信息修改功能5信息瀏覽功能6. 查詢各個學生平均分7. 各科不及格人數(shù)8. 各學生按總分排名使用的關于學生信息的信息表2-1 學生表名稱標識符類型備注索引indexint自加1學號idint唯一性姓名namestring不唯一數(shù)學成績mdouble非空英語成績edouble非空c+成績cdouble非空總分

3、sumdouble非空平均分avgfloat非空精品.3詳細設計學生成績管理系統(tǒng)的界面如下:3.1信息錄入功能界面如下:代碼如下精品.case 1: /數(shù)據(jù)的錄入 char c; /用于在小項中選擇是否繼續(xù)操作 char name20; int number; float math,cpp,english; do cout請輸入姓名:name; cout請輸入學號:number; cout請輸入數(shù)學成績:math; cout請輸入c+成績:cpp; cout請輸入英語成績:english; fstream outfile,infile; /作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outf

4、ile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學號:number 數(shù)學成績:math c+成績:cpp 外語成績:englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開 coutf1.txt can not open.n; return; char ch; while(infile.get(ch) coutch; coutendl; infile.close()

5、; 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指令錯誤!請重新輸入!c; else chris1=1; while(chris1=0); while(c=y); /重復輸入 break; 3.2增加功能界面如下:代碼如下: case 2: /增加學生數(shù)據(jù) char name20; int number; float math,cpp,english; char c; do cout請輸入您要增加的學生的姓名:n

6、ame; 精品. cout請輸入你要增加的學生的學號:number; cout請輸入數(shù)學成績:math; cout請輸入c+成績:cpp; cout請輸入英語成績:english; fstream outfile,infile; outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學號:number 數(shù)學成績:math c+成績:cpp 外語成績:englishendl; outfile.close(); infile.open(f1.txt,ios:in)

7、; 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指令錯誤!請重新輸入!c; while(c=y); break; 精品.3.3刪除功能界面如下:代碼如下: case 3:/刪除學生信息 char c; string xingming,li

8、ne,str,name; do ifstream fin(f1.txt); fstream outfile(f2.txt,ios:trunc|ios:out); /作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout請輸入您要刪除的學生的姓名:xingming; while(!fin.eof() ) getline(fin,line); istringstream stream(line); name = line.substr(0,line.find( ,0);/找到名字,判斷是否相等 if(name != xingming) outfilelineendl; outfile.close(

9、); fin.close();精品. fstream f(f1.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指令錯誤!請重新輸入!c; while(c=y); break; 3.4修改功能界面如下:代碼如下: case 4:/修改數(shù)據(jù) string sname,line,str,name; int nu;float eng,ma,com;int flag;char c;精品.if(

10、i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!endl;break;do flag=0; coutname; fstream 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.clo

11、se(); if(flag=1) coutnamenumacomeng;coutendl;outfilename 學號:nu 數(shù)學成績:ma c+成績: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對不起,您要修改的學生不存在!請查證后輸入!endl; coutc; coutendl;精品. if(c!=y&c!=n) cou

12、t 指令錯誤!請重新輸入!endlc; while(c=y);break; 3.5查詢各個學生平均分界面如下:代碼如下:case 8:/統(tǒng)計每個學生的平均成績 if(i=0) cout系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!endl;break; for(int m=0;mi;m+) cout(*sm).name 學號:(*sm).number 總分:(*sm).getsum() 均分:(*sm).getaver()endl; 精品. break; 3.6信息瀏覽功能界面如下:代碼如下:case 7:/輸出所有學生數(shù)據(jù) cout所有學生數(shù)據(jù)如下:endl; ifstream file; file.o

13、pen(f1.txt,ios:in); coutfile.rdbuf(); file.close(); break; 4該設計所用的技術使用c+面向?qū)ο笳Z言開發(fā),代碼中使用了for,while,if,switch等循環(huán)判斷語句,主函數(shù)依次調(diào)用外圍函數(shù),各個函數(shù)之間使用數(shù)組首地址傳遞,各個模塊之間堅持高內(nèi)聚低耦合的原則,最大程度上改善本軟件的健壯性和可修改性。精品.5課程設計總結課程設計結束了,在這次的課程設計中不僅檢驗了我所學習的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設計過程中,與同學分工設計,和同學們相互探討,相互學習,相互監(jiān)督。學會了合作,學會了運籌帷

14、幄,學會了寬容,學會了理解,也學會了做人與處世。課程設計是我們專業(yè)課程知識綜合應用的實踐訓練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程”千里之行始于足下”,通過這次課程設計,我深深體會到這句千古名言的真正含義我今天認真的進行課程設計,學會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎通過這次模具設計,本人在多方面都有所提高。通過這次模具設計,綜合運用本專業(yè)所學課程的理論和生產(chǎn)實際知識進行一次冷沖壓模具設計工作的實際訓練從而培養(yǎng)和提高學生獨立工作能力,鞏固與擴充了冷沖壓模具設計等課程所學的內(nèi)容,掌握冷沖壓模具設計的方法和步驟,掌握冷沖壓模具設計的基本的模具技能懂得了

15、怎樣分析零件的工藝性,怎樣確定工藝方案,了解了模具的基本結構,提高了計算能力,繪圖能力,熟悉了規(guī)范和標準,同時各科相關的課程都有了全面的復習,獨立思考的能力也有了提高。在這次設計過程中,體現(xiàn)出自己單獨設計模具的能力以及綜合運用知識的能力,體會了學以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學習的不足和薄弱環(huán)節(jié),從而加以彌補。在此感謝我們的老師.,老師嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪;這次模具設計的每個實驗細節(jié)和每個數(shù)據(jù),都離不開老師您的細心指導。而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設計。同時感

16、謝對我?guī)椭^的同學們,謝謝你們對我的幫助和支持,讓我感受到同學的友誼。 由于本人的設計能力有限,在設計過程中難免出現(xiàn)錯誤,懇請老師們多多指教,我十分樂意接受你們的批評與指正,本人將萬分感謝。6參考文獻1.c程序設計課程設計 劉振安編著 2.c+ builder和delphi課程設計與系統(tǒng)開發(fā)案例 伍俊良 清華大學出版社 3.visual c+課程設計案例精編 嚴華峰 中國水利水電出版社 2004 4.visual c+課程設計與系統(tǒng)開發(fā)案例 伍俊良 清華大學出版社 2002 5.visual c+語言課程設計 : 案例精選與編程指導 陳清華朱紅 東南大學出版社 2003 精品.6.visual

17、c+課程設計案例精編 中國水利水電出版社 2002 7.數(shù)據(jù)結構課程設計案例精編 : 用c/c+描述 李建學李光元吳春芳 清華大學出版社 7-302-14536-9 2007 8.譚浩強.c程序設計(第三版)m.北京:清華大學出版社,2007. 7全部代碼#include #include #include#include#includeusing namespace std; class tstu /通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) char name20; int number; float math,cpp,english,average,sum; public: tstu() ; t

18、stu ( char n20, int num,float ma,float cj,float eng ) ; float getsum();/得到總分的函數(shù) float getaver(); /得到平均分的函數(shù) friend void main(); /將主函數(shù)定義為友元函數(shù),方便訪問類中的成員 ; tstu:tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); /得到姓名 number=num; /得到學號 math=ma; /得到數(shù)學成績 cpp=cj; /得到c+成績 english=eng; /得

19、到英語成績 float tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float tstu:getaver() /得到平均分的函數(shù) 精品. average=getsum()/3; return average; void main() cout*歡迎來到學生成績查詢系統(tǒng)*endl; cout請選擇您需要的操作!endl; /菜單的輸出 cout操作:endl; cout(1)數(shù)據(jù)錄入endl; cout(2)增加學生endl; cout(3)刪除學生endl; cout(4)修改數(shù)據(jù)endl; cout查詢:endl; cou

20、t(5)按總成績查詢endl; cout(6)按姓名查詢endl; cout(7)輸出所有學生的數(shù)據(jù)endl; cout成績統(tǒng)計:endl; cout(8)每個學生的平均成績endl; cout(9)各科不及格人數(shù)endl; cout排名:endl; cout(10)按總分查詢排名endl; cout(11)退出endl; cout選擇相關操作請輸入相對的括號里的阿拉伯數(shù)字及字母!p; if(p=1&p=11) chris1=1; else cout指令錯誤!請重新輸入:endl; while(chris1=0); do switch(p) case 1: /數(shù)據(jù)的錄入 精品. char c;

21、 /用于在小項中選擇是否繼續(xù)操作 char name20; int number; float math,cpp,english; do cout請輸入姓名:name; cout請輸入學號:number; cout請輸入數(shù)學成績:math; cout請輸入c+成績:cpp; cout請輸入英語成績:english; fstream outfile,infile; /作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilenam

22、e 學號:number 數(shù)學成績:math c+成績:cpp 外語成績:englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) /判斷文件是否打開 coutf1.txt can not open.n; return; char ch; while(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

23、; do if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; 精品. else chris1=1; while(chris1=0); while(c=y); /重復輸入 break; case 2: /增加學生數(shù)據(jù) char name20; int number; float math,cpp,english; char c; do cout請輸入您要增加的學生的姓名:name; cout請輸入你要增加的學生的學號:number; cout請輸入數(shù)學成績:math; cout請輸入c+成績:cpp; cout請輸入英語成績:english; fstream outfile,infi

24、le; outfile.open(f1.txt,ios:out|ios:app); if(!file) coutf1.txt can not open.n; return; outfilename 學號:number 數(shù)學成績:math c+成績:cpp 外語成績:englishendl; outfile.close(); infile.open(f1.txt,ios:in); if(!file) coutf1.txt can not open.n; return; char h; while(infile.get(h) couth; 精品. coutendl; infile.close();

25、 j+; si=new tstu(name,number, math, cpp, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; while(c=y); break; case 3:/刪除學生信息 char c; string xingming,line,str,name; do ifstream fin(f1.txt); fstream outfile(f2.txt,ios:trunc|ios:out); /作一個文本文檔在文件夾中用于顯示所錄入的數(shù)據(jù) cout請輸入您要刪除的學生的姓名:xingm

26、ing; 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.txt,ios:trunc|ios:out); ifstream outf(f2.txt); foutf.rdbuf(); outf.close(); f.close(); cout數(shù)據(jù)刪除成功,想

27、繼續(xù)刪除嗎(y/n)c; 精品. if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; while(c=y); break; case 4:/修改數(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ù),請先輸入數(shù)據(jù)!endl;break;do flag=0; coutname; fstream fin(f1.txt,ios:in); ofstream outfile(f.txt,ios:trunc|ios:out); coutendl; while(!fin

28、.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 學號:nu 數(shù)學成績:ma c+成績:com 外語成績:engendl; 精品.outfile.close();fstream outf(f1.txt,ios:trunc|ios:o

29、ut);fstream inf(f.txt,ios:in);outfinf.rdbuf()endl;outf.close();inf.close(); if(flag=0)cout對不起,您要修改的學生不存在!請查證后輸入!endl; coutc; coutendl; if(c!=y&c!=n) cout 指令錯誤!請重新輸入!endlc; while(c=y);break; case 5:/按總分查詢 int j=0;float sum;char c;int flag; if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!endl;break; do flag=0; cout請輸入您要查

30、詢的學生的總成績:sum; for(int j=0;jgetsum()=sum) flag=1;cout您要查詢的學生是:(*sj).nameendl;cout該生的信息為:endl;cout 學號:(*sj).number 數(shù)學分數(shù):(*sj).math c+分數(shù):(*sj).cpp 英語分數(shù)(*sj).englishendl;精品. if(flag=0)cout對不起!您要查詢的學生不存在!endl;coutc;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c; ; while(c=y); break; case 6:/按姓名查詢 char n20;char c;int j=0;

31、int flag; if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!endl;break; do flag=0; cout請輸入要查詢的名字: n; for(int j=0;ji;j+) if(strcmp(n,(*sj).name)=0)flag=1;cout您要查詢的學生是:(*sj).nameendl;cout該生的信息是:學號:(*sj).number 數(shù)學分數(shù):(*sj).mathc+分數(shù):(*sj).cpp英語分數(shù):(*sj).englishendl; if(flag=0)cout對不起您要查詢的學生不存在,請查證后再輸入!endl;coutc;if(c!=y&c!=n)cout指令錯誤!請重新輸入:c; while(c=y); break; case 7:/輸出所有學生數(shù)據(jù) cout所有學生數(shù)據(jù)如下:endl; ifstream file; file.open(f1.txt,ios:in); cout

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論