




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-C+:31.32.3 31.32.3- 41.42.4 4 5 5 51.a.b., , , ; ; , , ;= * + *1-302.-根據 C+課程所學的概念、理論和方法,按照 C+程序設計的基本步驟,設計出一個適當規模的程序來實現設計課程內容中的全部功能;設計主控模塊程序對給出的程序源代碼要給出各部分的詳細注釋自己根據能力及需要添加相應功能模塊,增強模擬系統功能。包括系統的功能分析、系統的功能模塊設計、程序流程圖或結構框圖、邏輯結構設計,數據庫中的表、視圖(如果使用) 、索引的結構和定義、觸發器、存儲過程、課程設計體會。二、系統分析(需求分析)1. 需求分析:a.
2、能對學生各科成績進行錄入 : 。b. 能對學生的成績進行增加。c. 能對學生的成績進行刪除。d. 能對學生的成績進行修改。e. 能對學生的成績按總成績,姓名,進行查詢。f. 能輸出學生的所有數據。g. 能進行成績統計h 能進行總分查詢排名。2. 系統性能要求:a. 系統安全、可靠;b. 功能齊全;c. 操作方便、界面友好;d 易于維護和擴充。3. 系統的功能分析:資料維護:系統維護包括對學生信息的錄入操作及數據表中的信息進行瀏覽。系統功能:可以對數據表中的信息進行瀏覽。系統查詢:可以對學生的信息進行查詢。4. 系統功能模塊學生成績查詢系統有:成績錄入、增加、刪除、修改,數據查詢,排序顯示構成。
3、5. 模塊框架圖-學生成績管理系統操作查詢成績按總統計成績排名錄入增加刪除修改總成績姓名輸出所每個學各科不查詢有學生生的平及格的的成績均成績人數三、系統設計與實現1. 界面設計程序運行后會出現一個簡捷的窗口,便于用戶查詢數據。2. 功能設計與實現通過主窗體調用其他窗體,具體實現可以參照系統分析相關內容。應用系統主控界面包括記錄編輯和記錄查詢等功能模塊。記錄編輯功能完成學生成績記錄編輯和記錄查詢功能。記錄查詢功能可以對數據各分類的記錄進行查詢四、測試結果每一個 case 都能執行,但是有很多的地方都不夠完善,例如:在總成績排序中,只能輸出總成績,不能單獨的輸出學生的相應的信息;每次進行別的操作之
4、前都要在進行一次數據的錄入,不能直接對原有的文件進行讀取。五、總結此次 c+課程設計,在指導教師的精心教導下,我們學會了如何用 C+編寫一個簡單的應用程序。首先要對程序的設計要求有一個比較明確的認識,然后系統分析與系統設計,最后是代碼設計與調試。程序實現上,設計了簡單的查詢界面,將各個功能集中出來按照程序編寫原則,便于查詢。根據 C+課程所學的概念、理論和方法,按照 C+程序設計的基本步驟,設計出一個適當規模的程序;進一步加深對 C+語言的理解和掌握。理論聯系實際,加深和鞏固所學的理論知識,提高實踐能力和計算機的綜合運用能力。我們編寫程序的過程是辛苦與快樂的,程序的編寫原則很重要,-只要我們在
5、編程, 就必須不斷改進, 才能更好提高編程能力。六、參考資料C+程序設計 譚浩強 清華大學出版社附錄:源程序#include#include#include#include#includeusing namespace std;class Tstu /通過定義一個類來定義數據錄入的函數char name20;int number;float math,cpp,english,average,sum;public:Tstu();Tstu ( char n20, int num,float ma,float cj,floateng ) ;float getsum();/得到總分的函數float g
6、etaver(); /得到平均分的函數friend void main(); /將主函數定義為友元函數,方便訪問類中的成員;Tstu:Tstu(charn20,intnum,floatma,floatcj,float eng )strcpy(name,n); /得到姓名number=num; /得到學號math=ma; /得到數學成績cpp=cj; /得到 c+成績-english=eng; /得到英語成績float Tstu:getsum() /得到總分的函數sum=cpp+english+math;return sum;float Tstu:getaver() /得到平均分的函數avera
7、ge=getsum()/3;return average;void main()cout*歡迎來到學生成績查詢系統*endl;cout請選擇您需要的操作!endl; /菜單的輸出cout操作: endl;cout(1) 數據錄入 endl; cout(2) 增加學生 endl; cout(3) 刪除學生 endl; cout(4) 修改數據 endl; cout 查詢: endl; cout(5) 按總成績查詢 endl; cout(6) 按姓名查詢 endl; cout(7) 輸出所有學生的數據 endl; cout 成績統計 :endl;cout(8) 每個學生的平均成績 endl; co
8、ut(9) 各科不及格人數 endl; cout 排名 :endl;-cout(10)按總分查詢排名endl;cout(11)退出 endl;cout選擇相關操作請輸入相對的括號里的阿拉伯數字及字母! p;if(p=1&p=11)chris1=1;elsecout 指令錯誤!請重新輸入: endl; while(chris1=0);doswitch(p)case 1: /數據的錄入char c; /用于在小項中選擇是否繼續操作char name20;int number;float math,cpp,english;docout請輸入姓名 :name;cout請輸入學號 :number;cou
9、t 請輸入數學成績: 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 數 學 成 績 :mathC+ 成 績 :cpp 外語成績 :englishendl;outfile.close();infile.open(f1.txt,ios:in);if(!fi
10、le) /判斷文件是否打開 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數據錄入成功,想繼續錄入嗎-(y/n)c;chris1=0;doif(c!=y&c!=n) cout 指令錯誤!請重新輸入! c;elsechris1=1;while(chris1=0);while(c=y); /重復輸入break;case 2: /增加學生數據char n
11、ame20;int number;float math,cpp,english;char c;docout請輸入您要增加的學生的姓名:name;cout請輸入你要增加的學生的學號 :number;cout 請輸入數學成績: 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 數學成績 :math C+ 成績 :c
12、pp 外語成績 :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();j+;si=newTstu(name,number,math, cpp,english);i+;cout數據錄入成功,想繼續錄入嗎(y/n)c;if(c!=y&c!=n)-cout指令錯誤!請重新輸入!c;while(c=y);break;case 3:/刪除學生信息
13、char c;string xingming,line,str,name;do ifstream fin(f1.txt); fstreamoutfile(f2.txt,ios:trunc|ios:out); /作一個文本文檔在文件夾中用于顯示所錄入的數據cout 請輸入您要刪除的學生的姓名: xingming;while(!fin.eof() )getline(fin,line);istringstreamstream(line);name=line.substr(0,line.find( ,0);/找到名字,判斷是否相等if(name != xingming)outfilelineendl;
14、outfile.close();fin.close();-fstreamf(f1.txt,ios:trunc|ios:out);ifstream outf(f2.txt);foutf.rdbuf();outf.close();f.close();cout數據刪除成功,想繼續刪除嗎 (y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);break;case 4:/修改數據string sname,line,str,name;int nu;float eng,ma,com;int flag;char c;if(i=0)cout系 統 中 沒 有 輸 入 數
15、 據 , 請 先 輸 入 數據 !endl;break;doflag=0;coutname;fstream fin(f1.txt,ios:in);-ofstreamoutfile(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)cou
16、tnamenumacomeng;coutendl;outfilename 學號 :nu 數學成績 :ma C+ 成績 :com 外語成績 :engendl;outfile.close();fstreamoutf(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)cout指令錯誤!請重新輸入!endlc;while(
17、c=y);break;case 5:/按總分查詢int j=0;float SUM;char c;int flag;if(i=0)cout系 統 中 沒 有 輸 入 數 據 , 請 先 輸 入 數據 !endl;break;doflag=0;cout請輸入您要查詢的學生的總成績:SUM;for(int j=0;jgetsum()=SUM)flag=1;cout您要查詢的學生-是 :(*sj).nameendl;cout 該生的信息為 :endl;cout學號 :(*sj).number數學分數:(*sj).mathc+分數:(*sj).cpp英語分數(*sj).englishendl;if(f
18、lag=0)cout對不起 ! 您要查詢的學生不存在 !endl;coutc;if(c!=y&c!=n)cout 指令錯誤!請重新輸入!c;while(c=y);break;case 6:/按姓名查詢char n20;char c;int j=0;int flag;if(i=0)cout系 統 中 沒 有 輸 入 數 據 , 請 先 輸 入 數據 !endl;break;doflag=0;cout 請輸入要查詢的名字 : n;for(int j=0;ji;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout您要查詢的學生是 :(*sj).nameendl;cout該
19、生的信息是:學號:(*sj).number數學分數 :(*sj).mathc+分 數 :(*sj).cpp英 語分數 :(*sj).englishendl;if(flag=0)cout 對不起您要查詢的學生不存在 , 請查證后再輸入 !endl;coutc;if(c!=y&c!=n)cout 指令錯誤!請重新輸入 :c;while(c=y);break;case 7:/輸出所有學生數據cout所有學生數據如下:endl;ifstream file;file.open(f1.txt,ios:in);coutfile.rdbuf();-file.close();break;case 8:/統計每個
20、學生的平均成績if(i=0)cout系統中沒有輸入數據,請先輸入數據 !endl;break;for(int m=0;mi;m+)cout(*sm).name學號:(*sm).number總分:(*sm).getsum()均分 :(*sm).getaver()endl;break;case 9:/統計各學科不及格人數if(i=0)cout系統中沒有輸入數據,請先輸入數據 !endl;break;int m,n,k,j;m=0;n=0;k=0; for(j=0;jmathcppenglish60)k+;-cout 數學不及格人數為 :mendl; coutc+ 不及格人數為 :nendl; cout 英語不及格人數為 :kendl; break;case 10:/按總分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 帳篷露營活動方案
- 重癥肺炎與氣管切開管理規范
- 漢語知識考試題及答案
- 排球水平測試題及答案
- 抖音八十萬java面試題及答案
- 奧運英語面試題及答案
- 營養員考試題及答案
- java面試題及答案范本
- 船舶制造2025年訂單趨勢報告:船舶制造產業鏈上下游分析
- 2025年虛擬軸加工中心或虛擬軸銑床項目申請報告
- 智能化熱模鍛技術
- 個人車位租賃合同電子版 個人車位租賃合同
- 普惠性托育機構申請托育中心情況說明基本簡介
- 外輪理貨業務基礎-理貨單證的制作
- 《水火箭制作》課件
- 網絡安全預防電信詐騙主題班會PPT
- 農村垃圾清運投標方案
- 優秀物業管理項目評選方案
- 圖書管理系統畢業論文參考文獻精選,參考文獻
- 中國當代舊體詩選讀幻燈片
- 吉林省全省市縣鄉鎮衛生院街道社區衛生服務中心基本公共衛生服務醫療機構信息名單目錄995家
評論
0/150
提交評論