




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄目錄1 引 言.21.1 課題背景及意義 .21.2 可行性分析 .22 系統(tǒng)需求分析.42.1 功能需求分析 .42.2 性能需求分析 .42.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計 .43 詳細(xì)設(shè)計.63.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計 .63.2 系統(tǒng)函數(shù)的組成、功能、參數(shù)說明、相互調(diào)用關(guān)系.74 設(shè)計測試流程.95 結(jié)束語.14參考文獻(xiàn) .15附錄 .16 學(xué)生成績管理系統(tǒng)- 1 -學(xué)生成績管理系統(tǒng)學(xué)生成績管理系統(tǒng)學(xué)生姓名:張亮學(xué)生姓名:張亮 指導(dǎo)老師:胡寧靜指導(dǎo)老師:胡寧靜摘 要 本課程設(shè)計主要解決學(xué)生成績管理問題。使用計算機(jī)進(jìn)行信息管理,不僅提高了工作效率,而且大大的提高了其安全性.尤其對于復(fù)雜的信息管理,計
2、算機(jī)能夠充分發(fā)揮它的優(yōu)越性.學(xué)生成績管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。在課程設(shè)計中,系統(tǒng)開發(fā)平臺為 Windows XP,程序設(shè)計設(shè)計語言采用 Visual C+,程序運(yùn)行平臺為 Windows 98/2000/XP。在程序設(shè)計中,采用了面向?qū)ο蠼鉀Q問題的方法。程序通過調(diào)試運(yùn)行,初步實(shí)現(xiàn)了設(shè)計目標(biāo)。關(guān)鍵詞 程序設(shè)計;C+;成績管理 學(xué)生成績管理系統(tǒng)- 2 -1 引引 言言 為方便對 學(xué)生成績 進(jìn)行高效的管理,編寫該程序以提高 學(xué)生成績 管理效率。使用該程序之后, 學(xué)校管理者 可以查詢某位 學(xué)生、某個科目的成績 情況,還可以對學(xué)生成績進(jìn)行排名
3、,對學(xué)生的數(shù)據(jù)進(jìn)行修改和刪除,其中排名包括總分排名和各個科目的排名 ,學(xué)生可以更具自己的個人信息進(jìn)行成績查詢,查詢結(jié)果包括各個科目的分?jǐn)?shù)、總分和平均分。通過本系統(tǒng)可以很好的掌握學(xué)生成績的分布,減輕管理人員的負(fù)擔(dān),也使學(xué)生的成績和信息長時期的保留。1.1 課題背景及意義課題背景及意義一直以來人們使用傳統(tǒng)的人工方式 管理學(xué)生成績, 在計算機(jī)尚未在 學(xué)校廣泛使用之前, 學(xué)生成績管理 主要依靠手工。一個最典型的手工處理過程就是:當(dāng)考試完后,老師就要把學(xué)生成績登記到文檔中,當(dāng)老師或?qū)W生要查詢成績的時候要一個一個去找,總分、平均分都需要一個一個累加起來算,很麻煩,不過最麻煩的還是排名,不能一目了然。以上所
4、描述的手工過程的不足之處顯而易見,首先處理學(xué)生成績 的效率很低,其次處理能力比較低,一段時間內(nèi),所能服務(wù)的讀者人數(shù)是有限的。利用計算機(jī)來處理這些流程無疑會極大程度地提高效率和處理能力。我們很清晰的看到自己的各個科目成績和每個科目的排名和總分排名以及所有學(xué)生的成績分布,而且還是零失誤 ,所有的都是一目了然。極大的方便了學(xué)生和老師。為提高成績管理效率,管理人員 的工作負(fù)擔(dān),有必要開發(fā)一個小型 成績管理系統(tǒng) 來對學(xué)生成績實(shí)施有效管理。1.2 可行性分析可行性分析(1)經(jīng)濟(jì)可行性分析作為學(xué)校這樣的商業(yè)性質(zhì)較小的場所,其經(jīng)濟(jì)成分比重相對較少,主要是支出的費(fèi)用:其中包括設(shè)備購置費(fèi)、軟件開發(fā)費(fèi)用、管理和維護(hù)
5、費(fèi)、人員工資和培訓(xùn)費(fèi)等。由于各個學(xué)校實(shí)行統(tǒng)一操作,系統(tǒng)共享,其設(shè)備購置,人員工資,維護(hù)費(fèi)用相對較少, 學(xué)生成績管理系統(tǒng)- 3 -而且本系統(tǒng)的費(fèi)用很低。(2)技術(shù)可行性分析 技術(shù)上的可行性分析主要分析現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,硬件、軟件配置能否滿足開發(fā)者的需要,各類技術(shù)人員的數(shù)量,水平,來源等。學(xué)生成績管理系統(tǒng)的工作主要是在學(xué)生和老師之間架起一座橋梁,能相互溝通信息和處理信息。這一特點(diǎn)非常適合計算機(jī)特點(diǎn),通過網(wǎng)絡(luò) internet 技術(shù),發(fā)揮計算機(jī)的信息傳輸速度快、準(zhǔn)確度高的優(yōu)勢。計算機(jī)硬件和軟件技術(shù)的飛速發(fā)展,為系統(tǒng)的建設(shè)提供了技術(shù)條件。(3)社會可行性分析社會可行性有時也稱為操作可行
6、性,主要論證新系統(tǒng)在企業(yè)或機(jī)構(gòu)開發(fā)和運(yùn)行的可能性以及運(yùn)行后可能一起的對企業(yè)或機(jī)構(gòu)的影響,即組織內(nèi)外是否具備接受和使用新系統(tǒng)的條件。在當(dāng)前信息技術(shù)飛速發(fā)展的大環(huán)境下,計算機(jī)技術(shù)和軟件技術(shù)的更新是學(xué)校完全有可能也有能力采用這樣先進(jìn)的管理技術(shù)。它對學(xué)校帶來的影響可以看到:對傳統(tǒng)管理理念的沖擊,可能引起管理層的變動和人員的調(diào)整。對學(xué)校工作人員的要求提高,使學(xué)校在一定的可能下進(jìn)行機(jī)構(gòu)精簡,迫使工作人員繼續(xù)學(xué)習(xí)新知識,拓寬學(xué)校在市場環(huán)境下的生存空間。對學(xué)生和管理人員業(yè)務(wù)方式的轉(zhuǎn)變和擴(kuò)充。 學(xué)生成績管理系統(tǒng)- 4 -2 系統(tǒng)需求分析系統(tǒng)需求分析2.1 功能需求分析功能需求分析1)錄入數(shù)據(jù):將學(xué)生姓名、語文、
7、數(shù)學(xué)、英語成績寫入文件。2)增加人員:增加學(xué)生,并將學(xué)生姓名和成績寫入文件。3)刪除人員:刪除學(xué)生信息和成績。4)修改數(shù)據(jù):修改學(xué)生成績。5)按總成績查詢:根據(jù)總分查詢學(xué)生成績,包括平均分。6)按姓名查詢:根據(jù)學(xué)生姓名查詢學(xué)生成績,包括總分和平均分。7)輸出所有學(xué)生成績:輸出文件中所有學(xué)生數(shù)據(jù)。8)按總分排名:按照總分從高到低排序。9)按語文成績排名:按照語文成績從高到低排序。10) 按數(shù)學(xué)成績排名:按照數(shù)學(xué)成績從高到低排序。11) 按英語成績排名:按照英語成績從高到低排序。2.2 性能需求分析性能需求分析1硬件環(huán)境處理器:Inter CR300 或是更高。內(nèi)存:128MB(建議 196MB)
8、 。硬盤空間:20MB。2軟件環(huán)境操作系統(tǒng): Windows 98/ XP 或是 Windows 2000/Windows NT Server 4.0。2.3 系統(tǒng)總體結(jié)構(gòu)設(shè)計系統(tǒng)總體結(jié)構(gòu)設(shè)計對學(xué)生成績進(jìn)行管理的系統(tǒng),主要劃分為以下三個模塊:1)操作:包括錄入數(shù)據(jù)、增加人員、刪除人員、修改數(shù)據(jù)。2)查詢:包括按總成績查詢、按姓名查詢、輸出所有學(xué)生成績。3)排名:按總分排名、按語文成績排名、按數(shù)學(xué)成績排名、按英語成績排名根據(jù)需求分析的結(jié)果,總體結(jié)構(gòu)如圖 2-1 所示。 學(xué)生成績管理系統(tǒng)- 5 -學(xué)生成績管理系統(tǒng)操作查詢排名增加人員按總成績查詢錄入數(shù)據(jù)刪除人員修改數(shù)據(jù)按姓名查詢輸出全部數(shù)據(jù)按總分排
9、名語文成績排名數(shù)學(xué)成績排名英語成績排名圖 2.1 系統(tǒng)總體結(jié)構(gòu) 學(xué)生成績管理系統(tǒng)- 6 -3 詳細(xì)設(shè)計詳細(xì)設(shè)計3 3.1 1 數(shù)據(jù)結(jié)構(gòu)設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計(1) 類的設(shè)計表表 3-1 Stu 類成員列表類成員列表Stu 類char name20;double math;double chinese;double english;double average;double sum;double getsum();double getaver();(2)系統(tǒng)包含的類庫#include 輸入輸出流#includeString 類#include文件輸入/輸出操作(3)各個變量的定義和作用char nam
10、e20; 學(xué)生姓名double math; 數(shù)學(xué)成績double chinese; 語文成績double english; 英語成績double average; 平均分double sum; 總分Stu *s50; 對象數(shù)組記錄學(xué)生成績 學(xué)生成績管理系統(tǒng)- 7 -3.23.2 系統(tǒng)函數(shù)的組成、功能、參數(shù)說明、相互調(diào)用關(guān)系系統(tǒng)函數(shù)的組成、功能、參數(shù)說明、相互調(diào)用關(guān)系主函數(shù)主函數(shù) main()調(diào)用菜單操作函數(shù) handle_menu()實(shí)現(xiàn)菜單的輸出和操作,調(diào)用 index()打印首頁。以及刪除動態(tài)對象。菜單操作函數(shù)菜單操作函數(shù) voidvoid handle_menu()這是一個無參的函數(shù),通
11、過調(diào)用菜單函數(shù) menu()實(shí)現(xiàn)菜單的輸出,利用 do-while()語句和 switch()語句實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的字符選項來調(diào)用相應(yīng)的函數(shù),進(jìn)行相應(yīng)的操作。菜單函數(shù)菜單函數(shù) void menu()這是一個無參函數(shù),主要實(shí)現(xiàn)“功能選擇”的界面,在這個界面里有顯示系統(tǒng)的十一大功能,根據(jù)每個功能前面的序號進(jìn)行選擇。打印首頁函數(shù)打印首頁函數(shù) void index()這是一個無參函數(shù),主要功能是打印本系統(tǒng)的相關(guān)信息。默認(rèn)構(gòu)造函數(shù)默認(rèn)構(gòu)造函數(shù) Stu: Stu()這是Stu 類中的一個默認(rèn)構(gòu)造函數(shù),實(shí)現(xiàn)對象的初始化。有參構(gòu)造函數(shù)有參構(gòu)造函數(shù) Stu: Stu(char n20,double
12、 ma,double chin,double eng)這個函數(shù)的功能主要是對對象的數(shù)據(jù)成員賦值。求總分函數(shù)求總分函數(shù) double Stu:getsum()這是一個無參函數(shù),主要功能是將每個對象的語文、數(shù)學(xué)、英語三科成績求和,返回總分 sum。求平均分函數(shù)求平均分函數(shù) double Stu:getaver()這是一個無參函數(shù),調(diào)用 double Stu:getsum()平均分,返回平均分 average操作操作 0 數(shù)據(jù)錄入函數(shù)數(shù)據(jù)錄入函數(shù) void operate0()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),該函數(shù)可將用戶輸入的學(xué)生的信息保存到文件d:document,輸入完成后會提
13、示用戶是否要繼續(xù)錄入。操作操作 1 增加人員函數(shù)增加人員函數(shù) void operate1()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),該函數(shù)可以增加學(xué)生人數(shù),提示用戶輸入的學(xué)生的信息,并保存到文件d:document,輸入完成后會提示用戶是否要繼續(xù)錄入。 學(xué)生成績管理系統(tǒng)- 8 -操作操作 2 刪除人員函數(shù)刪除人員函數(shù) void operate2()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)會提示用戶輸入需要刪除學(xué)生的姓名,然后查找該學(xué)生,刪除該學(xué)生數(shù)據(jù),并將其后指針往前移動一位,最后提示用戶是否繼續(xù)刪除。操作操作 3 修改數(shù)據(jù)函數(shù)修改數(shù)據(jù)函數(shù) void operate3
14、()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)會提示用戶輸入需要修改學(xué)生的姓名,該函數(shù)的功能是修改學(xué)生的成績,防止了錄入數(shù)據(jù)時的錯誤,保證了系統(tǒng)的完備性。操作操作 4 按總成績查詢函數(shù)按總成績查詢函數(shù) void operate4()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)會提示用戶輸入需要查詢的總分,然后輸出所有該分?jǐn)?shù)的學(xué)生的成績,并提示用戶是否需要繼續(xù)查詢。操作操作 5 按姓名查詢函數(shù)按姓名查詢函數(shù) void operate5()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù)。進(jìn)入后系統(tǒng)會提示用戶輸入需要查詢的學(xué)生姓名,然后輸出該學(xué)生的成績,并提示用戶是否需
15、要繼續(xù)查詢。操作操作 6 輸出所有學(xué)生的數(shù)據(jù)函數(shù)輸出所有學(xué)生的數(shù)據(jù)函數(shù) void operate6()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)將自動輸出該系統(tǒng)下所有學(xué)生的成績,但并不排序,而是按照錄入是的順序輸出,輸出之后提示用戶是否需要進(jìn)行其它操作。操作操作 7 按總分排名函數(shù)按總分排名函數(shù) void operate7()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)將按照總分從高到低自動輸出該系統(tǒng)下所有學(xué)生的成績,輸出之后提示用戶是否需要進(jìn)行其它操作。操作操作 8 按語文成績排名函數(shù)按語文成績排名函數(shù) void operate8()這是一個無參函數(shù),是 Stu
16、 類的一個友元函數(shù),進(jìn)入后系統(tǒng)將按照語文成績從高到低自動輸出該系統(tǒng)下所有學(xué)生的成績,輸出之后提示用戶是否需要進(jìn)行其它操作。操作操作 9 按數(shù)學(xué)成績排名函數(shù)按數(shù)學(xué)成績排名函數(shù) void operate9()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)將按照數(shù)學(xué)成績從高到低自動輸出該系統(tǒng)下所有學(xué)生的成績,輸出之后提示用戶是否需要進(jìn)行其它操作。操作操作 y 按英語成績排名函數(shù)按英語成績排名函數(shù) void operatey()這是一個無參函數(shù),是 Stu 類的一個友元函數(shù),進(jìn)入后系統(tǒng)將按照英語成績從高到低自動輸出該系統(tǒng)下所有學(xué)生的成績,輸出之后提示用戶是否需要進(jìn)行其它操作。 學(xué)生成績管理
17、系統(tǒng)- 9 -4 設(shè)計測試流程設(shè)計測試流程1. 進(jìn)入系統(tǒng),顯示本系統(tǒng)相關(guān)信息。如圖 4.1 所示。圖 4.1 系統(tǒng)主頁2. 根據(jù)系統(tǒng)提示,進(jìn)入菜單界面。如圖 4.2 所示。 學(xué)生成績管理系統(tǒng)- 10 -圖 4.2 菜單界面3.輸入 0,回車,按提示輸入數(shù)據(jù)。如圖 4.3 所示。圖 4.3 錄入數(shù)據(jù)輸入 y,回車,進(jìn)行其他操作,將會回到圖 4.1 所示的菜單界面。4.回到菜單界面在輸入 1,回車,增加人員,按提示輸入數(shù)據(jù)。如圖 4.4 所示。 學(xué)生成績管理系統(tǒng)- 11 -圖 4.4 增加人員輸入 y,回車,進(jìn)行其他操作,將會回到圖 4.1 所示的菜單界面5.回到菜單界面再輸入 6,回車,輸出所有
18、學(xué)生的數(shù)據(jù),檢測操作 0 和操作 1。運(yùn)行結(jié)果如圖 4.5 所示。圖 4.5 輸出所有學(xué)生的數(shù)據(jù)輸入 y,回車,進(jìn)行其他操作,將會回到圖 4.1 所示的菜單界面6.回到菜單界面再輸入 7,回車,測試按總分排名。運(yùn)行結(jié)果如圖 4.6 所示。圖 4.6 所有學(xué)生總分排名輸入 y,回車,進(jìn)行其他操作,將會回到圖 4.1 所示的菜單界面7.回到菜單界面再輸入 3,回車,測試修改數(shù)據(jù)。修改完后,進(jìn)入菜單,選擇操作 6 輸出所有學(xué)生數(shù)據(jù)。修改如下: 學(xué)生成績管理系統(tǒng)- 12 -張亮:語文 99 數(shù)學(xué) 98 英語 97吳豪:語文 98 數(shù)學(xué) 97 英語 99劉杰:語文 97 數(shù)學(xué) 99 英語 98運(yùn)行結(jié)果如
19、圖 4.7 所示。圖 4.7 修改后的數(shù)據(jù)8.運(yùn)用修改后的數(shù)據(jù),測試按語文、數(shù)學(xué)、英語成績排名。(1)測試按語文成績,運(yùn)行結(jié)果如圖 4.8 所示。圖 4.8 按語文成績排名(2)測試按數(shù)學(xué)成績,運(yùn)行結(jié)果如圖 4.9 所示。圖 4.9 按數(shù)學(xué)成績排名(3)測試按英語成績,運(yùn)行結(jié)果如圖 4.10 所示。 學(xué)生成績管理系統(tǒng)- 13 -圖 4.10 按英語成績排名9.回到菜單界面再輸入 2,測試刪除數(shù)據(jù),刪除學(xué)生劉杰的數(shù)據(jù)。運(yùn)行結(jié)果如圖 4.11所示。圖 4.11 測試刪除數(shù)據(jù)10.回到菜單界面再輸入 4,測試按總分查詢,運(yùn)行結(jié)果如圖 4.12 所示。圖 4.12 按總分查詢按總分查詢11.回到菜單界
20、面再輸入 5,測試按姓名查詢,運(yùn)行結(jié)果如圖 4.13 所示。圖 4.13 按姓名查詢按姓名查詢12.測試完畢。輸入 n,退出系統(tǒng)。 學(xué)生成績管理系統(tǒng)- 14 -5 結(jié)束語結(jié)束語在本次課程設(shè)計過程中,胡寧靜老師從選題、構(gòu)思、資料收集到最后定稿的各個環(huán)節(jié)給予細(xì)心指導(dǎo),使我對軟件工程有了更深刻的認(rèn)識,在此表示衷心地感謝。在整個過程中,我查閱了大量的關(guān)于書籍借閱管理系統(tǒng)的資料和網(wǎng)站,在老師的指導(dǎo)和自己的努力下,終于完成了本次課程設(shè)計。在為期兩周的課程設(shè)計過程中,使我熟悉了C+編程語言,但也體現(xiàn)了我的種種不足,希望在以后的學(xué)習(xí)生活當(dāng)中能夠改正。同時我還要感謝指導(dǎo)過我的每一位老師,他們給了我很大的指導(dǎo)和幫
21、助,還有在我陷入困境時幫助過我的同學(xué)們。 學(xué)生成績管理系統(tǒng)- 15 -參考文獻(xiàn)參考文獻(xiàn)1 楊路明,C 語言程序設(shè)計教程.北京:北京郵電大學(xué)出版社,2005(2009.7 重?。? 譚浩強(qiáng),C+程序設(shè)計. 北京:清華大學(xué)出版社,2004.63 楊路明,C 語言程序設(shè)計上機(jī)指導(dǎo)與習(xí)題選解.北京:北京郵電大學(xué)出版社,2005 學(xué)生成績管理系統(tǒng)- 16 -附錄附錄設(shè)計源程序清單設(shè)計源程序清單/head.h#if !defined(HEAD_H)#define HEAD_H#include#include#includeusing namespace std;/*聲明 Stu 類*/class Stup
22、rivate:char name20;/姓名double math,chinese,english,average,sum;public:Stu()/默認(rèn)構(gòu)造函數(shù)Stu(char n20,double ma,double chin,double eng);/聲明有參構(gòu)造函數(shù)double getsum();/聲明求總分函數(shù)double getaver();/聲明求平均分函數(shù)friend void operate0();/聲明有友元函數(shù)操作 0 數(shù)據(jù)錄入friend void operate1();/聲明有友元函數(shù)操作 1 增加人員friend void operate2();/聲明有友元函數(shù)操作
23、 2 刪除人員 學(xué)生成績管理系統(tǒng)- 17 -friend void operate3();/聲明有友元函數(shù)操作 3 修改數(shù)據(jù)friend void operate4();/聲明有友元函數(shù)操作 4 按總成績查詢friend void operate5();/聲明有友元函數(shù)操作 5 按姓名查詢friend void operate6();/聲明有友元函數(shù)操作 6 輸出所有學(xué)生數(shù)據(jù)friend void operate7();/聲明有友元函數(shù)操作 7 按總分排名friend void operate8();/聲明有友元函數(shù)操作 8 按語文成績排名friend void operate9();/聲明有
24、友元函數(shù)操作 9 按數(shù)學(xué)成績排名friend void operatey();/聲明有友元函數(shù)操作 y 按英語成績排名;/*聲明函數(shù)原型*/void menu();/聲明菜單函數(shù)void handle_menu();/聲明菜單操作函數(shù)#endif/stu.cpp#includehead.h/*定義 Stu 類*/Stu:Stu(char n20,double ma,double chin,double eng)/定義有參構(gòu)造函數(shù)strcpy(name,n); math=ma; chinese=chin; english=eng;double Stu:getsum()/定義求總分函數(shù)sum=ch
25、inese+english+math;return sum;double Stu:getaver()/定義求平均分函數(shù)average=getsum()/3;return average;/operate0.cpp#includehead.h/*操作 0 數(shù)據(jù)錄入函數(shù)定義*/int i=0;/定義全局變量int j=0;/定義全局變量 學(xué)生成績管理系統(tǒng)- 18 -Stu *s50;/定義對象數(shù)組void operate0()char name20;char c; ofstream *file50; bool flag2=0;double math,chinese,english;docout請輸
26、入姓名:name;cout請輸入數(shù)學(xué)成績:math;cout請輸入語文成績:chinese;cout請輸入外語成績:english;filej=new ofstream(d:document,ios:ate);/通過文件保存學(xué)生成績到d:document*filej姓名name數(shù)學(xué)成績math語文成績chinese外語成績englishendl; j+; si=new Stu(name, math, chinese, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; flag2=0; do if(c!=y&c!=n) cout指令錯誤!請重新輸入!c; el
27、se flag2=1; while(flag2=0); while(c=y); /operate1.cpp#includehead.h/*操作 1 增加人員函數(shù)定義*/extern i; /引用外部變量 學(xué)生成績管理系統(tǒng)- 19 -extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate1()char name20;char c; ofstream *file50; bool flag2=0; double math,chinese,english;docout請輸入您要增加的學(xué)生的姓名:name;cout請輸入數(shù)學(xué)成績:math;cout請輸入
28、語文成績:chinese;cout請輸入外語成績:english;filej=new ofstream(d:document,ios:ate);/通過文件保存學(xué)生成績到d:document*filej姓名name數(shù)學(xué)成績math語文成績chinese外語成績englishendl; j+; si=new Stu(name, math, chinese, english); i+; cout數(shù)據(jù)錄入成功,想繼續(xù)錄入嗎(y/n)c; flag2=0; do if(c != y & c != n) cout指令錯誤!請重新輸入!c; else flag2 = 1; while(flag2 =
29、 0); while(c = y); /operate2.cpp#includehead.h/*操作 2 刪除人員函數(shù)定義*/ 學(xué)生成績管理系統(tǒng)- 20 -extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate2()char name20;char c; bool flag3=0;docout請輸入您要刪除的學(xué)生姓名:name;for(int h=0;hname) = 0)flag3 = 1; i-;dosh=sh+1;h+;while(h=i);if(flag3=0)cout您要求刪除的對象本來就不存在!請檢
30、查輸入的正確性!;cout要繼續(xù)刪除嗎?(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);/operate3.cpp#includehead.h/*操作 3 修改數(shù)據(jù)函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量 學(xué)生成績管理系統(tǒng)- 21 -extern Stu *s50;/引用外部變量void operate3()char name20;char c; bool flag2=0; double math,chinese,english;double mat,chin,eng;docout請輸入您要修改的學(xué)
31、生的姓名:name;for(int h=0;hname)=0)flag2=1; cout請輸入新的數(shù)學(xué)成績:mat;cout請輸入新的語文成績:chin;cout請輸入新的外語成績:eng;sh-chinese=chin;sh-math=mat;sh-english=eng;cout數(shù)據(jù)修改成功!;if(flag2=0)cout您要修改的學(xué)生本來就不存在!請檢查重新輸入!endl;cout想繼續(xù)修改嗎(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y); /operate4.cpp#includehead.h/* 學(xué)生成績管理系統(tǒng)- 22 -*
32、操作 4 按總成績查詢函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate4()char c; double t;doint flag1=0;cout請輸入你要查詢學(xué)生的總成績t;for(int q=0;qgetsum()=t)flag1=1;cout您要查詢的學(xué)生是:(*sq).nameendl;if(flag1=0)cout對不起!您要查詢的學(xué)生不存在!endl; cout您想繼續(xù)查詢嗎?(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);/
33、operate5.cpp#includehead.h/*操作 5 按姓名查詢函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate5() 學(xué)生成績管理系統(tǒng)- 23 -char name20;char c; char n20;doint flag=0;cout請輸入你要查詢的學(xué)生姓名n;for(int j=0;ji;j+)if(strcmp(n,(*sj).name)=0)flag=1;cout您要查詢的學(xué)生是:(*sj).nameendl;cout(*sj).name的總成績成績是(*sj).get
34、sum()endl平均成績是:(*sj).getaver()endl; if(flag=0)cout對不起!您要查詢的學(xué)生不存在!endl;cout您想繼續(xù)查詢嗎?(y/n)c;if(c!=y&c!=n)cout指令錯誤!請重新輸入!c;while(c=y);/operate6.cpp#includehead.h/*操作 6 輸出所有學(xué)生的數(shù)據(jù)函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate6()char name20;char c; bool flag2=0; 學(xué)生成績管理系統(tǒng)- 2
35、4 -cout本系統(tǒng)所有學(xué)生數(shù)據(jù)如下:endl;if(i=0)cout管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!endl;for(int k=0;ki;k+)/數(shù)據(jù)輸出coutk+1 姓名: name 語文: chinese 數(shù)學(xué):math 外語:english 總分:(*sk).getsum() 平均分:(*sk).getaver()endl;/operate7.cpp#includehead.h/*操作 7 按總分排名函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate7()char name
36、20;char c; bool flag2=0; int t;Stu b;cout本系統(tǒng)所有學(xué)生排名如下: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; 學(xué)生成績管理系統(tǒng)- 25 -if(i=0)cout管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!; for(int k=0;ki;k+)/數(shù)據(jù)輸出coutk+1 姓名: name 語文: chinese 數(shù)學(xué):math 外語:english 總分:(*sk).getsum() 平均分:(*sk).geta
37、ver()endl;/operate8.cpp#includehead.h/*操作 8 按語文成績排名函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate8()char name20;char c; bool flag2=0; double math,chinese,english;int t;Stu b;cout本系統(tǒng)所有學(xué)生語文排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;ychinesechinese)t=y;if(t!=x)b=*st; *
38、st=*sx; *sx=b; 學(xué)生成績管理系統(tǒng)- 26 -if(i=0)cout管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!;for(int k=0;ki;k+)/數(shù)據(jù)輸出coutk+1 姓名: name 語文: chinese 數(shù)學(xué):math 外語:english 總分:(*sk).getsum() 平均分:(*sk).getaver()endl;/operate9.cpp#includehead.h/*操作 9 按數(shù)學(xué)成績排名函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operate9()char n
39、ame20;char c; bool flag2=0; double math,chinese,english;int t;Stu b;cout本系統(tǒng)所有學(xué)生數(shù)學(xué)排名如下:endl;for(int x=0;xi;x+)t=x;for(int y=x+1;ymathmath)t=y;if(t!=x)b=*st; *st=*sx; *sx=b; 學(xué)生成績管理系統(tǒng)- 27 -if(i=0)cout管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!;for(int k=0;ki;k+)/數(shù)據(jù)輸出coutk+1 姓名: name 語文: chinese 數(shù)學(xué):math 外語:english 總分:(*sk).g
40、etsum() 平均分:(*sk).getaver()endl;void operatey()#includehead.h/*操作 y 按英語成績排名函數(shù)定義*/extern i; /引用外部變量extern j; /引用外部變量extern Stu *s50;/引用外部變量void operatey()char name20;char c; bool flag2=0; double math,chinese,english;int t;Stu b;cout本系統(tǒng)所有學(xué)生英語排名如下:endl;for(int x=0;xi-1;x+)t=x;for(int y=x+1;yenglishenglish)t=y;if(t!=x)b=*st; *st=*sx; *sx=b; 學(xué)生成績管理系統(tǒng)- 28 -if(i=0)cout管理系統(tǒng)中沒有錄入數(shù)據(jù)或者數(shù)據(jù)已經(jīng)被刪除!;for(int k=0;ki;k+)/數(shù)據(jù)輸出coutk+1 姓名: name 語文: chinese 數(shù)學(xué):math 外語:english 總分:(*sk).getsum() 平均分:(*sk).getaver()endl;/學(xué)生成績管理系統(tǒng).cpp#includehead.hextern i; /引用外部變量extern Stu *s50;/引用外部變量int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一度房室傳導(dǎo)阻滯的臨床護(hù)理
- 幼兒教師資格考試試題及答案
- 宜賓國企面試題目及答案
- 醫(yī)院護(hù)理面試題庫及答案
- 一級消防模擬試題及答案
- 興福銀行筆試題庫及答案
- 刑法法律基礎(chǔ)試題及答案
- 裝配式建筑EPC供應(yīng)鏈質(zhì)量保障與節(jié)能降耗合作協(xié)議
- 銀行承兌匯票債務(wù)本金結(jié)算與票據(jù)管理協(xié)議
- 參觀兵馬俑心得體會模版
- 人工智能訓(xùn)練師(三級)職業(yè)技能鑒定理論考試題(附答案)
- 私人月嫂合同協(xié)議書下載
- 商標(biāo)基礎(chǔ)知識試題及答案
- 浙江開放大學(xué)2025年《行政復(fù)議法》形考作業(yè)2答案
- 消防改造協(xié)議書范本
- 職業(yè)心理健康課件
- 江蘇省南通市2025屆高三三模 地理試題(含答案)
- 年度安全生產(chǎn)月啟動講話稿材料
- 寧波中考社會試題及答案
- 2025年三級安全培訓(xùn)考試試題及參考答案【完整版】
- 金華市金廈商品混凝土有限公司年產(chǎn)60萬方清潔型預(yù)拌混凝土遷建項目環(huán)評報告
評論
0/150
提交評論