




已閱讀5頁,還剩17頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
面向對象的編程技術課程設計實驗報告學 號:班 級:專 業:姓 名:設計時間:課程設計一、使用c+的面向對象程序設計方法(類機制)設計程序課程題目:學生成績管理系統1、 實驗目的1.在編輯應用程序過程中,逐步加深對C+語言編程的理解; 2.加強實踐的能力,動手能力,同時進一步對所學的知識進行鞏固;3.培養初步C+編程的能力,為以后的學習奠定基礎。二、實驗內容學生成績管理系統 本學生成績管理系統程序是一個具有對學生信息進行錄入、添加、刪除、根據學號進行學生信息的查詢、顯示已有學生信息的顯示、對學生成績進行統計(包括總分,平均分等),可以對已有的學生信息進行修改,保存和讀取輸入的數據等功能。一切功能都可以在運行的軟件中運行。三、功能要求(1)信息維護:學生信息數據要以文件的形式保存,能實現學生信息數據的維護。此模塊包括子模塊有:增加學生信息、刪除學生信息、修改學生信息(2)信息查詢:查詢時可實現按姓名查詢、按學號查詢(3) 成績統計:輸入任意的一個課程名(如數學)和一個分數段(如60-70),統計出在此分數段的學生情況。(4)排序:能對用戶指定的任意課程名,按成績升序或降序排列學生數據并顯示排序結果(使用表格的形式顯示排序后的輸出結果)(使用多種方法排序者)4、 流程圖學生成績管理系統 主菜單界面刪 除 學 生 成 績添 加 學 生 成 績輸 入 學 生 成 績讀 取 學 生 成 績學生總分和平均分修 改 學 生 成 績成 績 查 詢 系 統四、運行環境 VC+6.0。五、實驗代碼處理#include#include#includeclass stuchar name20;double math,chinese,english,average,sum;public:stu()stu(char n20,double ma,double chin,double eng)strcpy(name,n);math=ma;chinese=chin;english=eng;double getsum()sum=chinese+english+math;return sum;double getaver()average=getsum()/3;return average;friend void main();void main()cout*歡迎來到學生成績管理系統*endl; cout*endl; cout* 請選擇您需要的操作!*endl;cout* 操作: *endl;cout*(0)數據錄入*endl;cout*(1)增加人員*endl;cout*(2)刪除人員*endl;cout*(3)修改數據*endl;cout* 查詢: *endl;cout*(4)按總成績查詢*endl;cout*(5)按姓名查詢*endl;cout*(6)輸出所有學生的數據*endl;cout* 成績名詞 *endl;cout*(7)按總分查詢排名*endl;cout*(8)按語文查詢排名*endl;cout*(9)按數學查詢排名*endl;cout*(y)按英語查詢排名*endl;cout選擇相關操作請輸入相對的括號里的阿拉伯數字!endl; cout*p;if(p=0&p=10)flag2=1;elsecout指令錯誤!請重新輸入:endl;while(flag2=0);doswitch(p)case 0:char c;char name20;double math,chinese,english;docout請輸入姓名name;cout請輸入數學成績:math;cout請輸入語文成績:chinese;cout請輸入外語成績:english;filej=new ofstream(d:document,ios:ate);*filej姓名name數學成績math語文成績chinese外語成績englishendl;j+;si=new stu(name, math, chinese, english);i+;cout數據錄入成功,想繼續錄入嗎(y/n)c;flag2=0;doif(c!=y&c!=n)cout指令錯誤!請重新輸入!c;elseflag2=1;while(flag2=0);while(c=y);break;case 4:double t;char c;doint flag1=0;cout請輸入你要查詢學生的總成績t;for(int q=0;qgetsum()=t)flag1=1;cout您要查詢的學生是:(*sq).nameendl;if(flag1=0)cout對不起!您要查詢的學生不存在!endl;cout您想繼續查詢嗎?(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);break;case 5:char n20;int j=0;char c;doint flag=0;cout請輸入你要查詢的學生姓名n;for(int j=0;ji;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout您要查詢的學生是:(*sj).nameendl;cout(*sj).name的總成績成績是(*sj).getsum()endl平均成績是:(*sj).getaver()endl;if(flag=0)cout對不起!您要查詢的學生不存在!endl;cout您想繼續查詢嗎?(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);break;case 1:char name20;double math,chinese,english;char c;docout請輸入您要增加的學生的姓名:name;cout請輸入數學成績:math;cout請輸入語文成績:chinese;cout請輸入外語成績:english;filej=new ofstream(d:document,ios:ate);*filej姓名name數學成績math語文成績chinese外語成績englishendl;j+;si=new stu(name, math, chinese, english);i+;cout數據錄入成功,想繼續錄入嗎(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);break;case 2:char name20;bool flag3=0;char c;docout請輸入您要刪除的學生姓名:name;for(int h=0;hname)=0)flag3=1;i-;dosh=sh+1;h+;while(h=i);if(flag3=0)cout您要求刪除的對象本來就不存在!請檢查輸入的正確性!;cout要繼續刪除嗎?(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);break;case 3:char name20;double mat,chin,eng;flag2=0;char c;docout請輸入您要修改的學生的姓名:name;for(int h=0;hname)=0)flag2=1;cout請輸入新的數學成績:mat;cout請輸入新的語文成績:chin;cout請輸入新的外語成績:eng;sh-chinese=chin;sh-math=mat;sh-english=eng;cout數據修改成功!;if(flag2=0)cout您要修改的學生本來就不存在!請檢查重新輸入!endl;cout想繼續修改嗎(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);break;case 6:cout本系統所有學生數據如下:endl;if(i=0)cout管理系統中沒有錄入數據或者數據已經被刪除!endl;for(int k=0;ki;k+)coutk+1 姓名: name語文: chinese數學: math外語: english總分: (*sk).getsum()平均分: (*sk).getaver()endl;break;case 7:int t;stu b;cout本系統所以學生排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ygetsum()getsum()t=y;if(t!=x)b=*sx;*sx=*st;*st=b;if(i=0)cout管理系統中沒有錄入數據或者數據已經被刪除!;for(int k=0;ki;k+)coutk+1 姓名: name語文: chinese數學: math外語: english總分: getsum()平均分: getaver()endl;break;case 8:int t;stu b;cout本系統所以學生語文排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ychinese)chinese)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系統中沒有錄入數據或者數據已經被刪除!;for(int k=0;ki;k+)coutk+1 姓名: name語文: chinese數學: math外語: english總分: getsum()平均分: getaver()endl;break;case 9:int t;stu b;cout本系統所以學生數學排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ymath)math)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系統中沒有錄入數據或者數據已經被刪除!;for(int k=0;ki;k+)coutk+1 姓名: name語文: chinese數學: math外語: english總分: getsum()平均分: getaver()endl;break;case y:int t;stu b;cout本系統所以學生英語排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;yenglish)english)t=y;if(t!=x)b=*st;*st=*sx;*sx=b;if(i=0)cout管理系統中沒有錄入數據或者數據已經被刪除!;for(int k=0;ki;k+)coutk+1 姓名: name語文: chinese數學: math外語: english總分: getsum()平均分: getaver()endl;break;cout您想繼續進行其他操作嗎?(y/n)w;if(w!=y&w!=n)cout指令錯誤!請重新輸入!endl;elseflag4=1;while(flag4=0);if(w=y)cout請輸入操作代碼(0 錄入/4 按總分查詢/5 按姓名查詢/1 增加人員/2 刪除人員/3 修改數據/6 顯示所有成員數據/7 按總分排名/8 按語文排名/9按數學排名/y按英語排名)p;while(w=y);for(int x=0;xi;x+)delete sx;coutdelete all members!endl;6、 程序運行結果1主菜單界面2添加學生記錄3顯示學生記錄4按姓名查找學生成績5按總分排名6增加成員7刪除成員8修改成員數據四、 課程設計總結 這是一個綜合性較強,很實際的一個編程實例。剛學C+時候,感覺類和對象還挺有意思的,剛接觸到這個題目時,覺得應該沒什么大問題吧,我自認為一些基本知識點都已經掌握了。可是,真的當我動手編程的時候,才發現并沒有想象中的那么簡單。單個知識點是弄清了,但是,將所有的知識點綜合起來運用時,就碰到了各種各樣的問題了。有時候,一個錯誤得找好久,才能發現。本系統的重點就是要會建立兩個類。一個是學生類,用來存放一個學生的成績記錄,相當于一個結構體的功能吧。另一個類是學生成績記錄系統類,該類用來存放多個學生的成績記錄。難點就是學生類里各個功能的實現。總的來說,添加,顯示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業固體廢棄物處置方法與成效評估
- 工業安全在智能制造中的重要性
- 工業機器人與自動化設備在注塑中的應用
- 工業機器人技術的現狀與展望
- 工業自動化中的新材料與傳感器技術
- 工業物聯網的網絡安全防護策略
- 工業級智能硬件產品設計與可靠性研究
- 工業節能減排技術與應用案例分析
- 工業節能減排的途徑與方法
- 工作中的自我管理與職業成長規劃
- 湖北襄陽市檢察機關-襄陽市城郊地區檢察院招考聘用67人模擬預測(共500題)筆試參考題庫附答案詳解
- 2023-2024學年河南省濮陽市小學語文五年級期末提升測試題附參考答案和詳細解析
- 延長石油筆試題庫
- 阿里巴巴開店注意事項
- 思想政治理論綜合實踐知到章節答案智慧樹2023年太原理工大學
- 臍灸技術評分標準
- 旅游俄語知到章節答案智慧樹2023年海南外國語職業學院
- 鄉村規劃原理智慧樹知到答案章節測試2023年同濟大學
- ArcGIS高級制圖技術
- 角膜接觸鏡學智慧樹知到答案章節測試2023年山東中醫藥大學
- Unit 2 Neither Pine nor Apple in Pineapple-高中英語外研版(2019)必修第一冊
評論
0/150
提交評論