《高級程序設計語言》課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)

上傳人:na****u 文檔編號:56904951 上傳時間:2022-02-22 格式:DOC 頁數(shù):38 大?。?48.50KB
收藏 版權申訴 舉報 下載
《高級程序設計語言》課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)_第1頁
第1頁 / 共38頁
《高級程序設計語言》課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)_第2頁
第2頁 / 共38頁
《高級程序設計語言》課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)_第3頁
第3頁 / 共38頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《高級程序設計語言》課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《《高級程序設計語言》課程設計- 學生成績管理系統(tǒng)設計與實現(xiàn)(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、河南工程學院高級程序設計語言課程設計成果報告學生成績管理系統(tǒng)設計與實現(xiàn)學生學號: 學生姓名: 學 院: 計算機學院 專業(yè)班級: 軟件工程1341班 專業(yè)課程: 高級程序設計語言 指導教師: 2014 年 6 月 27 日題 目學生成績管理系統(tǒng)設計與實現(xiàn)考核項目考核內容得分平時考核(30分)出勤情況、態(tài)度、效率;知識掌握情況、基本操作技能、知識應用能力、獲取知識能力系統(tǒng)設計(20分)分析系統(tǒng)的功能模塊編程調試(20分)實現(xiàn)系統(tǒng)的各個功能模塊,并完成調試回答問題(15分)回答老師針對課程設計提出的問題課程設計報告撰寫(10分)嚴格按照規(guī)范要求完成課程設計報告源代碼(5分)按照規(guī)范要求完成課程設計源

2、代碼的排版總 評 成 績指導教師評語:日期: 年 月 日目 錄第1章 系統(tǒng)設計的概述和目的11.1系統(tǒng)設計的目的11.2 系統(tǒng)設計的任務1第2章 系統(tǒng)實現(xiàn)思路22.1 系統(tǒng)需求分析22.2 系統(tǒng)功能分析22.3 系統(tǒng)性能要求3第3章 系統(tǒng)詳細設計43.1模塊設計與分析43.2主函數(shù)設計53.3特色算法分析6第4章 系統(tǒng)調試運行15課程設計體會19參考文獻20第1章 系統(tǒng)設計的概述和目的在計算機領域中,任何好的創(chuàng)意和設計最終都需要通過高水平的程序設計實現(xiàn),因此學習程序設計是計算機及相關專業(yè)學生必備的基本技能之一。1.1系統(tǒng)設計的目的C+課程設計是計算機應用技術專業(yè)的重要實踐性環(huán)節(jié)之一,是學生學習

3、該課程后的一次全面綜合訓練。通過本課程設計的實踐,更進一步總結C+課程學習中的的數(shù)據(jù)類型、程序結構、數(shù)組、函數(shù)、指針、結構體等基本概念,掌握其使用方法。掌握面向對象程序設計中有關類、對象、繼承、重載、多態(tài)性、輸入輸出流類體系、文件操作的基本概念,初步學會用類與對象這種面向對象的程序設計方法編寫應用程序。培養(yǎng)使用面向對象的程序設計方法編寫計算機程序的能力。同時,也鍛煉學生的團隊分工、協(xié)作能力,讓同學們在實踐的過程中,提高發(fā)現(xiàn)問題、分析問題、解決問題的能力。學會團結互助,共同合作,培養(yǎng)良好的團隊精神。1.2 系統(tǒng)設計的任務(1)設計四個類,包括學生類(描述學生基本信息)、成績類、班級類、課程類(描

4、述課程信息:課程編號,科目名稱,如高等數(shù)學,大學英語等);(2)學生成績及課程信息用文件保存,程序執(zhí)行時從文件讀入;(3)能按學期、按班級完成對學生成績的錄入、修改,能按班級統(tǒng)計學生的成績;(4)求學生的總分及平均分,并能根據(jù)學生的平均成績進行排序,能查詢學生成績,不及格科目及學生名單;能按班級輸出學生的成績單。 設置學生的成績信息:學生學號、姓名、所選課程名稱、平時成績、期末成績、平時成績所占百分比 計算學生總評成績:總評成績=平時成績*平時成績所占百分比+期末成績*(1-平時成績所占百分比) 顯示學生的姓名、所選課程名稱以及平時成績、期末成績和總評成績信息。分單人顯示和以班輸出(班成績單格

5、式輸出到文件) 注意:至少應包含一個班、30人、三門課 第2章 系統(tǒng)實現(xiàn)思路系統(tǒng)主要根據(jù)學生成績管理的需要,而建立一個“學生成績管理系統(tǒng)”,以方便對成績的各項管理操作。2.1 系統(tǒng)需求分析學生成績管理系統(tǒng)可以用來管理規(guī)模較大的成績信息,對學生的成績信息進行維護和統(tǒng)計。系統(tǒng)的目標用戶為老師或其他需要統(tǒng)計各種信息的人員。系統(tǒng)可以極大的減少用戶的工作量,為用戶節(jié)省更多的時間,讓用戶在幾秒鐘內獲得各種統(tǒng)計信息,在第一時間對學生成績有全面的了解。系統(tǒng)給用戶提供了簡單而實用的功能,如圖2-1所示。學生成績管理系統(tǒng)操作查詢成績統(tǒng)計按總成績排名錄入增加刪除修改總成績查詢姓名、平均分查詢每個學生的平均成績各科不

6、及格的人數(shù)輸出所有學生的成績 2-1模塊框架圖2.2 系統(tǒng)功能分析根據(jù)課程設計題目的要求,以及我們小組成員的討論,最終確定此程序有以下功能: 1、資料維護:系統(tǒng)維護包括對各個學生姓名、成績、學號的錄入操作,對數(shù)據(jù)表中的信息進行瀏覽。 2、成績查詢:可以對學生成績進行詳細查詢。 3、排列顯示:包括統(tǒng)計學生排名成績等。(1)能夠實現(xiàn)學生學號、姓名、成績的錄入(2)能夠實現(xiàn)對學生信息的瀏覽、查找、刪除(3)能夠實現(xiàn)對學生信息按學號順序顯示,成績排名(4)能夠對各科成績統(tǒng)計情況輸出2.3 系統(tǒng)性能要求根據(jù)學生成績管理系統(tǒng)的標準,以及考慮到用戶的需求,所以我們在編寫系統(tǒng)程序時注意其實用性如下:(1)系統(tǒng)

7、安全、可靠(2)功能齊全(3)操作方便(4)易于維護和擴充第3章 系統(tǒng)詳細設計要開發(fā)學生成績管理信息系統(tǒng),首先需要進行需求分析和總體設計,分析系統(tǒng)的使用對象和用戶需求,設計系統(tǒng)的體系結構,決定使用的開發(fā)工具和后臺數(shù)據(jù)庫,規(guī)劃項目開發(fā)進程。3.1模塊設計與分析(1)輸入學生資料模塊主要功能用來對學生的成績進行收集和輸入。在學生信息保存在系統(tǒng)中的前提下,成績錄入需要輸入學生資料,比如班級,學號,姓名。在準確輸入學生資料后,就可以對該學生的各科成績進行錄入。該學生各科成績輸入成功后,系統(tǒng)會提示是否繼續(xù)進行操作,如果想繼續(xù)輸入學生成績就輸入y,不想再輸入學生成績的話就輸入n,再輸入n之后,系統(tǒng)返回到主

8、菜單。 (2)輸出學生資料模塊主要功能用來對學生的成績進行輸出。在系統(tǒng)已經(jīng)錄入了學生資料成績的前提下,使用該功能可以顯示所有學生的信息,資料等等。具體包括學生的班級,學號,姓名和各科成績。在查看學生的資料,成績各方面的信息后,按任意鍵就可以返回到主菜單。(3) 按學生姓名進行排列模塊主要功能是用來對學生的資料按姓名進行排序。在系統(tǒng)保存學生資料,成績的前提下,使用此功能可以對學生的資料按姓名進行排序,這樣就方便查找姓氏相同或是相近的同學的資料。(4) 添加學生資料模塊主要功能是用來添加學生資料,成績。如果系統(tǒng)有保存學生資料的情況下,想錄入學生成績的話,就不用添加學生資料這模塊。如果系統(tǒng)沒有保存該

9、學生信息的話,就要使用此模塊,在成功添加學生資料后,就可以對該學生進行其他的操作。 (5)按姓名查找,刪除該學生資料模塊主要功能是用來刪除學生資料。在系統(tǒng)保存學生資料的前提下,想刪除某學生的資料,可以輸入學生姓名,系統(tǒng)查找該學生資料后,就可以刪除了。由于學生輟學,畢業(yè)等原因,及時對系統(tǒng)進行更新,刪除一些沒用的信息,可以使系統(tǒng)更加優(yōu)化。 (6)查找并顯示學生資料模塊主要功能是用來查找學生資料。在系統(tǒng)保存了某學生資料的前提下,想要查找該學生資料,可以輸入該學生姓名,這樣系統(tǒng)就會顯示該學生資料和各科成績等信息。 (7)按姓名查找,修改學生資料模塊主要功能是用來修改學生資料。在系統(tǒng)保存了某學生資料的前

10、提下,想要查找該學生資料,可以輸入該學生姓名,系統(tǒng)就會顯示該學生資料和各科成績等信息,這樣就可以修改該學生的資料,成績等信息。 (8)從文件中讀入數(shù)據(jù)模塊主要功能是用來從文件中讀入學生數(shù)據(jù)。由于一些資料可以用Word文檔或Excel表格輸入,故在此模塊中增加了導入數(shù)據(jù)的功能。這樣就方便很多,不用把學生資料一個一個添加,節(jié)省了很多時間精力。 (9)儲存學生資料并退出系統(tǒng)模塊主要功能是用來儲存學生資料。在對系統(tǒng)進行一系列操作,比如添加、刪除、修改學生資料后,對系統(tǒng)的最新操作進行保存,及時更新系統(tǒng),方便下一次的操作。3.2主函數(shù)設計在main()函數(shù)中主要是通過”switch(menu()”選擇判斷

11、來調用相關功能模塊。系統(tǒng)的運行是在一個永真的循環(huán)里進行的,只有在主界面并選擇“退出本系統(tǒng)”時,才會跳出永真循環(huán),并退出程序。主函數(shù)在程序中起核心作用,本程序的主函數(shù)主要完成了界面的設計、調用成績類的函數(shù)計算總成績、平均成績和總評成績,然后是定義指針方便后面調用類的數(shù)據(jù)成員,還定義了全局變量用于輸入數(shù)據(jù)的下標。(1)首先是介紹界面設計和選擇操作的設計: void main()cout 歡迎進入學生成績管理系統(tǒng) endl;cout請選擇你需要的操作!endl;cout操作:endl;cout(1)數(shù)據(jù)錄入endl;cout(2)增加學生endl;cout(3)刪除學生endl;cout(4)修改數(shù)

12、據(jù)endl;cout查詢:endl;cout(5)按總成績查詢endl;cout(6)按平均分查詢endl;cout(7)按姓名查詢endl;cout(8)輸出所以學生的數(shù)據(jù)endl;cout成績統(tǒng)計endl;cout(9)每個學生的平均成績endl;cout(10)各科不及格人數(shù)endl;cout排名endl;cout(11)按總分查詢排名endl;cout(12)退出endl;這里是查詢的主頁面的界面設計,頁面輸出以后都會顯示這些操作選項供用戶選擇,達到了簡潔明了的效果。3.3特色算法分析功能:定義菜單函數(shù),通過輸出函數(shù)顯示系統(tǒng)功能。利用switch語句實現(xiàn)多分支選擇結構。 1.算法思路:

13、switch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,若圓括號中表達式的值與某個case后面的常量表達式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇break語句就退出switch語句。 代碼: void main() /主函數(shù)調用。 int n=0; for(;) switch(menu() case 1: 輸入學生資料 coutsetw(15) 輸入學生資料endl; n=Input(stu,n); break; case 2: 輸出所有學生資料 coutsetw(15) 輸出所有學生資料endl;Display(stu,

14、n); break; case 3: 按姓名排序 coutsetw(15) 按姓名排序endl; Sort(stu,n); coutsetw(15) ; system(pause); break; case 4: 插入學生資料 coutsetw(15) 插入學生資料endl; n=Insert(stu,n); coutsetw(15) ; system(pause); break; case 5: 刪除學生資料 coutsetw(15) 刪除學生資料endl; coutsetw(15) 輸入他(她)的姓名:; n=Delete(stu,n); coutsetw(15) ; system(pau

15、se); break; case 6: 查找學生coutsetw(15) 查找學生endl; Query(stu,n); coutsetw(15) ; system(pause); break; case 7: 修改學生資料 coutsetw(15) 修改學生資料endl; coutsetw(15) 輸入你要修改的學生的姓名:; n=Xiugai(stu,n); system(pause); break; case 8: 從文件中讀入數(shù)據(jù) coutsetw(15) 從文件中讀入數(shù)據(jù)endl; n=AddfromText(stu,n); break; case 9: 將所有資料寫入文件 cout

16、setw(15) 將所有資料寫入文件endl; WritetoText(stu,n); coutsetw(15) ; system(pause); break; (2)首先定義一個類來來定義數(shù)據(jù)函數(shù)的錄入class Tstu 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(); float getaver(); friend void main();

17、 ; Tstu:Tstu ( char n20, int num,float ma,float cj,float eng ) strcpy(name,n); number=num; math=ma; cpp=cj; english=eng; float Tstu:getsum() /得到總分的函數(shù) sum=cpp+english+math; return sum; float Tstu:getaver() average=getsum()/3; return average; (3)然后用switch函數(shù)判斷和選擇case 1: 數(shù)據(jù)的錄入case 2: 增加學生數(shù)據(jù)case 3:刪除學生信息

18、case 4:修改數(shù)據(jù)case 5:按總分查詢case 6:按姓名查詢case 7:輸出所有學生數(shù)據(jù)case 8:統(tǒng)計每個學生的平均成績case 9:統(tǒng)計各學科不及格人數(shù)case 10:按總分排名2.下面是操作選項的選擇下標的設計,設計全局變量可以很好的控制下標的選擇,而且定義的指向各個類的指針可以方便后面操作程序的編寫。(1)cout選擇操作請選擇相應操作前的阿拉伯數(shù)字!p;if(p=1&p=12)chrisl=1;elsecout!輸入錯誤,請重新輸入:endl;while(chrisl=0);doswitch(p)(2)這里是各個操作的具體編譯:其中數(shù)據(jù)錄入、數(shù)據(jù)刪除、按總成績查詢、按平

19、均分查詢、按姓名查詢都是以文件的方式讀入,其他的按總成績排序和不及格人數(shù)的輸出case 1:/數(shù)據(jù)錄入char c;/用于在小項中選擇是否繼續(xù)操作char name30;/定義各個數(shù)據(jù)int number;float math,cpp,chinese;float pingshicj;float zpcj;上面是數(shù)據(jù)成員的定義,接下來是具體操作的編譯:docout請輸入姓名name;cout請輸入學號number;cout請輸入數(shù)學成績math;cout請輸入c+成績cpp;cout請輸入語文成績chinese;cout請輸入平時成績pingshicj;(3)以下是查詢操作的編寫首先為按總分查詢

20、,以指針來調用類中數(shù)據(jù),其他的查詢操作都是以相同的方式設計完成,因代碼篇幅過多這里不一一列出 case 5:/按總分查詢 int j=0;float SUM;char c;int flag; if(i=0) cout數(shù)據(jù)庫中沒有數(shù)據(jù),請輸入后再操endl;break; do flag=0; cout請輸入你要查詢的學生的總成績:SUM; for(int j=0;jgetsum()=SUM) flag=1; cout你要查詢的學生是:(*sj).nameendl; cout該生的信息為:endl; cout學號:(*sj).num數(shù)學分數(shù):(*dj).mathc+分數(shù):(*dj).cpp 語文分

21、數(shù):(*dj).chinese平時成績:(*fj).pingshicjendl; if(flag=0)cout對不起!您要查詢的學生不存在!endl; coutc; if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; ; while(c=y); break; 按平均分查詢操作的設計,您可以方便的查詢到你所希望的平均分的學生輸出所以學生數(shù)據(jù)操作case 6:/輸出所有學生數(shù)據(jù)cout所有學生數(shù)據(jù)如下:endl;ifstream file;file.open(f1.txt,ios:in);coutfile.rdbuf();file.close();break;統(tǒng)計學生的平時成績,以一個

22、if語句判斷系統(tǒng)內是否有數(shù)據(jù),如果沒有數(shù)據(jù)需要重新輸入Case7:/統(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總(*fm)分:.getsum()平均分:(*fm).getaver()平時成績:(*fj).pingshicjendl; break; 統(tǒng)計不及格人數(shù),以if語句判斷是否大于60分case 8:/統(tǒng)計各學科不及格人數(shù)if(i=0)cout系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!endl;break;int m,n,k,j;m=0;n=0;k

23、=0;for(j=0;jmathcppchinese60)k+; cout數(shù)學不及格人數(shù)為:mendl; coutc+不及格人數(shù)為:nendl; cout語文不及格人數(shù)為:kendl; break; 第4章 系統(tǒng)調試運行首先進行模塊測試,在這個系統(tǒng)中,我將我的幾個模塊作為一個單獨的實體來測試,從而保證每個模塊作為一個單元能正確運行。進而進行子系統(tǒng)測試,子系統(tǒng)測試是把經(jīng)過單元測試的模塊放在一起形成一個子系統(tǒng)來測試。模塊相互間的協(xié) 行系統(tǒng)測試,系統(tǒng)測試是把經(jīng)過測試的子系統(tǒng)裝配成一個完整的系統(tǒng)來測試,在這個過程中我發(fā)現(xiàn)設計和編碼的一些錯誤,并改正。進入主界面,首先可以看到,主界面共有11個操作選項,

24、11個小選項又分為4個大的選項:操作、查詢、成績統(tǒng)計和排名,當用戶看完操作選項以后是一條溫馨的提示:選擇操作請選擇相應的阿拉伯數(shù)字。如圖4-1所示。用戶選擇的是數(shù)字“1”,接下來就是輸入學生姓名等信息了。4-1 登陸界面圖輸入完學生信息以后界面顯示的信息,可以看到,當輸入完成時系統(tǒng)會自動顯示出學生信息,如圖4-2所示。4-2學生數(shù)據(jù)的錄入圖選擇刪除操作,可以發(fā)現(xiàn)當完成刪除操作后都會提醒您是否要繼續(xù),如圖4-3。 4-3學生數(shù)據(jù)的刪除圖數(shù)據(jù)的修改操作,您可以發(fā)現(xiàn)當完成刪除操作后都會提醒您是否要繼續(xù),如圖4-4所示。4-4學生數(shù)據(jù)的修改圖執(zhí)行按總成績查詢操作,需要先輸入總成績,如圖4-5所示。 4

25、-5按總成績查詢圖執(zhí)行按學生姓名操作,需要先輸入學生姓名,如圖4-6所示。 4-6按姓名查詢圖每個學生平均成績的輸出,如圖4-7所示。 4-7每個學生的平均成績圖各科不及格人數(shù)的輸出如圖4-8所示。 4-8各科不及格的人數(shù)圖系統(tǒng)的退出,如圖4-9所示。4-9退出圖課程設計體會通過這次的實訓我深刻的體會到了要想把程序做好要有清晰的思路有較強的語言組織能力,一絲的馬虎否則會前功盡棄。程序的檢查和系統(tǒng)的調用程序寫完后并不能保證它一定能運行,所以要對它進行調試發(fā)現(xiàn)其中的弊端并作出相應的修改以完善程序的目的。經(jīng)過努力,課程設計基本完成了。通過本次實訓,我對所學的C+語言知識有同學請教,借助網(wǎng)絡等等。實驗

26、過程中也走了很多的彎路,由于在開始設計的時候思路不時很清晰,對于一些問題不能很好的提出解決問題的方法,在設計過程中,代碼總是重復的修改,在很多問題上,代碼并不時最優(yōu)的。相信在以后的學習中,隨著知識的增多,問題會逐漸得到解決。在課程設計的實踐中,學到很多有用的知識,也積累了不少寶貴的經(jīng)驗。我相信本次的課程設計會使我以后再各種方面都有很大的提高。參考文獻1 譚浩強.C+面向對象程序設計.清華大學出版社2 譚浩強.C+面向對象程序設計習題上機指導.清華大學出版社3 Kenneth C.Louden.編譯原理及實踐.機械工業(yè)出版社4 H.M.Deitel(美) P.J.Deitel(美).C+大學教程

27、.電子工業(yè)出版社5 Herbert Schildt.C+編譯藝術.清華大學出版社6 Al Stevens Clayton Walnum(美).標準C+寶典.電子工業(yè)出版社#include #include #include#include#includeusing namespace std; class Tstu /通過定義一個類來定義數(shù)據(jù)錄入的函數(shù) char name20; int number; float math,cpp,english,average,sum; public: Tstu() ; Tstu ( char n20, int num,float ma,float cj,f

28、loat 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; /得到英語成績 float Tstu:getsum() /得到總分的函數(shù) sum=cpp+

29、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; cout(5)按總成績查詢endl; cout(6)按姓名查詢endl; cout(7)輸出所有學生

30、的數(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; /用于在小項中選擇是否繼續(xù)操作 char name20; int number; float mat

31、h,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; outfilename 學號:number 數(shù)學成績:math C+成績:cpp 外語成績:englishendl; ou

32、tfile.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; do if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; else chris1=1;

33、 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,infile; outfile.open(f1.txt,ios:out|ios:app); if(!file) cou

34、tf1.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(); j+; si=new Tstu(name,number, math, cpp, english); i+; cout

35、數(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請輸入您要刪除的學生的姓名:xingming; while(!fin.eof() ) getline(fin,line); istringstream st

36、ream(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ù)刪除成功,想繼續(xù)刪除嗎(y/n)c; if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; while(c=y); br

37、eak; 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.eof() ) /在文件中查找 getline(fin,line); istringstream stream(line);

38、 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:out);fstream inf(f.txt,ios:in);outfinf.rdbuf()endl;outf.close();inf

39、.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請輸入您要查詢的學生的總成績:SUM; for(int j=0;jgetsum()=SUM) flag=1;cout您要查詢的學生是:(*sj)

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

41、查詢的名字: 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ù)如下:end

42、l; ifstream file; file.open(f1.txt,ios:in); coutfile.rdbuf(); file.close(); break; 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; case 9:/統(tǒng)計各學科不及格人數(shù) if(i=0) cout系統(tǒng)中沒有輸入數(shù)據(jù),請先輸入數(shù)據(jù)!endl;break; int m,n,k,j;m=0;n=0;k=0; for(j=0;jmathcppenglish60)k+;

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!