C++課程設(shè)計說明書_第1頁
C++課程設(shè)計說明書_第2頁
C++課程設(shè)計說明書_第3頁
C++課程設(shè)計說明書_第4頁
C++課程設(shè)計說明書_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、山東建筑大學(xué)計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計說明書題目:學(xué)牛選課管理系統(tǒng)課程:c+課程設(shè)計院(部):計算機科學(xué)與技術(shù)學(xué)院專業(yè):計算機科學(xué)與技術(shù)班 級:計科111學(xué)生姓名:張煥強學(xué) 號:2011111009指導(dǎo)教師:趙洪鑾完成日期:2012.12.3目錄1、課程設(shè)計口的22、課程設(shè)計任務(wù)與要求23、c+語言成績管理系統(tǒng)24、學(xué)生選課管理系統(tǒng)75、參考文獻176、課程設(shè)計總結(jié)177、課程設(shè)計指導(dǎo)教師評語188、附件191、課程設(shè)計冃的c+語言是計算機科學(xué)與技術(shù)專業(yè)最重要的一門專業(yè)基礎(chǔ)課, 涉及知識點多,所以對于它的學(xué)習(xí)光靠理論是不夠的,必須深入到實 踐之中,從實踐中總結(jié)經(jīng)驗,尋找自己的不足,彌補自己的

2、理論知識 的缺陷。通過實踐,建立課程設(shè)計的整體思想,鍛煉編寫程序,調(diào)試 程序的能力,培養(yǎng)獨立學(xué)習(xí)、吸取他人經(jīng)驗、探索前沿知識的習(xí)慣, 樹立團隊協(xié)作精神。2、課程設(shè)計任務(wù)與要求設(shè)計題目學(xué)生選課管理系統(tǒng)指導(dǎo)教帥|趙洪鑾班級計科1111學(xué)生張煥強知數(shù)設(shè)要 已參與計求1、主要參數(shù):選課信息:課程編號、課程名稱、總學(xué)時、學(xué) 分、授課老師;選課學(xué)生信息:學(xué)號、姓名、專業(yè)、班級等信 息,每位學(xué)生只能選擇一門課程。2、完成以下功能:課程信息錄入(課程信息用文件保存)、 瀏覽、修改、刪除功絶;學(xué)生信息錄入(學(xué)生信息用文件保 存)、瀏覽、刪除功能,學(xué)生選課扶教師或?qū)W分選擇。3、要應(yīng)用一下知識點:文件讀寫、類的定義

3、、簡單的排序算 法、查找算法等設(shè)計 內(nèi)容 與步 驟1、定義選修課類、選修學(xué)生類、迭修課鏈表類、學(xué)生信息鏈 表類2、分析設(shè)計各類的屬性及所有操作3、格式文件的讀寫4、程序設(shè)計、實現(xiàn)、調(diào)試3、c+語言成績管理系統(tǒng)(面向?qū)ο螅?.1系統(tǒng)詳細功能說明學(xué)生成績管理系統(tǒng)主要用來管理學(xué)生的成績,這個面向?qū)ο蟮?程序主要包含5個類,用于實現(xiàn)系統(tǒng)的5個部分,第一個是文件管理 類,主要是用來管理保存學(xué)生成績信息的文件,其中包括判斷文件是 否存在,文件保存路徑的創(chuàng)建等,第二個類是用于保存學(xué)生成績的百 分比類,保存學(xué)生的平時成績,實驗成績,考試成績各占比例,比例 大小可由用戶設(shè)置,但必須要求各部分都大于一,而啟這三部

4、分z和 等于一,否則輸入違法。第三個是用于保存學(xué)生成績的類,主要包括學(xué)生的姓名、學(xué)號及各類成績等。第四個類是用來保存所有學(xué)生信 息,原理是用鏈表實現(xiàn)了一系列的功能,其中包括學(xué)生成績錄入(將 學(xué)生成績插入鏈表尾),學(xué)生成績刪除(將學(xué)生信息從鏈表中刪 除),保存學(xué)生成績到文件(將鏈表上的元素一一存入文件),另外 還利用鏈表實現(xiàn)了查尋(根據(jù)學(xué)號,姓名),瀏覽(各班前十名,后 十名),排序,清空所有學(xué)生信息及不及格人數(shù)、同名人數(shù)、相同學(xué) 號人數(shù)統(tǒng)計等。最后一個類主要是服務(wù)于系統(tǒng)運行的類,包括運行界 面的創(chuàng)建,文件保存路徑的創(chuàng)建等。另外,在主程序之外,還附加了 一些函數(shù),主要是用來進一步封裝前面5個類的

5、功能,從而使整個系 統(tǒng)更為系統(tǒng)化,方便了用戶的使用。3.2概要設(shè)計系統(tǒng)設(shè)計的主耍功能可簡單概括為如下幾部分:h從圖中可以得到系統(tǒng)大體上所實現(xiàn)的功能,包括學(xué)生成績信息的瀏 覽、錄入、統(tǒng)計、查詢、編輯等,具體的功能需在詳細設(shè)計中進一步 設(shè)計。3.3詳細設(shè)計通過對系統(tǒng)功能的仔細分析,進一步進行特定領(lǐng)域類的分析,可得5 個領(lǐng)域類,領(lǐng)域類包括:文件屬性類cfiledir成績百分比類cresult percentage學(xué)生成績類cresult學(xué)生成績鏈表類cresultlist運行 界面類cpprms o將活動模塊“登錄;瀏覽,錄入,統(tǒng)計,查詢,刪 除學(xué)生信息界面的顯示;保存到文件;顯示統(tǒng)計”設(shè)置為:運行

6、界面1類(cresultlist)。將“錄入成績比例;計算平時成績;計算實驗成 績;計算總成績;顯示各成績”設(shè)置為成績百分比類(cresultpercen tage ) o “瀏覽學(xué)生信息”設(shè)置為學(xué)生成績類(cresult) o “排序 ;統(tǒng)計前十名;統(tǒng)計后十名;統(tǒng)計不及格;刪除學(xué)生信息;根據(jù)學(xué)號 查詢;根據(jù)姓名查詢”設(shè)置為成績鏈表類(cresultlist) o 可得如下的體系設(shè)計結(jié)構(gòu):1運行界面類cpprms使用使”3文件屬性類cfiledir成績鏈表類cresultlist包含包含1,2,3成績百分比類cresultpercentage學(xué)生成績類cresult特定領(lǐng)域類關(guān)系圖另外,各類的

7、uml圖如下:cfiledir -m_strpathname: string +cfiledir(strpathname:string&) +cfilediro4-fileexisto: bool4-isdirf): boolksetfiiesizeo: long1-getfiledriveo- char4-getcreattimeo: string +-getmodifiedtime():string變量用于保存文件路徑名構(gòu)造函數(shù),用指定路徑名初始化對象。 析構(gòu)函數(shù)判斷文件是否存在 判斷文件目錄是否存在 返回文件的大小返回文件所在的驅(qū)動盤符 返回文件的創(chuàng)建時間 返回文件的更改時間cf

8、iledir 類圖平時成績 實驗成績 考試成績構(gòu)造函數(shù)顯示各成績所占比例 設(shè)置各成績比例設(shè)置各成績比例cresults+m_no: int +m_chname10: char +m_fusually: float +m_fexperimenc float +m_fexam: float +m_ftotaliry: float +pxexc crseults "學(xué)號 姓名 平時成績 實驗成績 考試成績 總成績 指向下一位學(xué)生的指針+cresultso+display(ndisplayall=o: int): void構(gòu)造函數(shù)依次顯示鏈表上的所有學(xué)生成績cresults 類圖cresul

9、tpercentage -m_fusualh-: float m_fexperiment: float -m_£exam: float+cresultpercentageo+displavo: void.gctperccntagecfusuallyzfloat&fexpenme float&,fexam:float&):void setperccntage(fusually:float,fexpenmcnc float,fexam:float): voidcresultpercentage 類圖cresultlistm_prslisc cresults *m_

10、prw: cresultpercentage * -m_strpathname: string+crcsultlist(strpathname: string) cresultlistftsctpathnamefstrpathname: string): void * rcsultlnputfnenterpcrccntage: int): bool +resultfromfilc(): bool +resulttofile(nsavepercentage: int): bool +displav(nnum: int): void resultcountf): bool +inquinbvno(

11、nno: int): int inquin*byname(chname 10: char): int inqniryfailq: int+inquin headl 00: int inquin taih 00: int用于開辟存放cresuk對象的動態(tài)空間 用于開辟存放cresultpercentage對象的動態(tài) 文件路徑名構(gòu)造函數(shù)默認參數(shù)的構(gòu)造函歎設(shè)文件保序路徑名 錄入各成績比例和各成績 從文件中瀆取學(xué)生信息 將學(xué)生信息保序到文件中去 民示各成綾統(tǒng)計平均成續(xù)和不氏格人歎通過學(xué)號査投學(xué)生成績值息通過性走査找學(xué)生信總査炙不瑋人員査找前十名學(xué)生査找后十名學(xué)生-gettotalo: int-resu

12、ltsort(nascending: int): void-freememo: void返回總學(xué)主人數(shù)按學(xué)生成績高低分別排序&放所育動態(tài)空間cresultlist 類圖cpprmsstrfile: stringm_strclassname: string -m_strpathnamc: string+cpprms(strfilcdir:stnng,strclassn amc:stnng +sctfiledir(strfiledir: stnng): void -*-setclassname(strclassname: string): void +gctpathn amco- stri

13、ng+niainmcnuo: int4-menuinquin-q: int文件名 班級名稱 文件路徑名構(gòu)造函數(shù) 設(shè)置路徑名 設(shè)貿(mào)班級名 返回路徑名 運行主界面 運行査找界面-crcatpathnamco: void系統(tǒng)蝕建文件路徑名cpprnis 類圖4. 學(xué)生選課管理系統(tǒng)4. 1問題描述與功能設(shè)計基本功能:教師開設(shè)選修課程,每門選修課程有課程編號、 課程名稱、總學(xué)時、授課教師信息,學(xué)生信息包括學(xué)號、姓名、專 業(yè)、班級等信息,每位學(xué)生只能選修一門課程,設(shè)計選修課程系統(tǒng), 使之能實現(xiàn)如下功能:(1)課程信息錄入,課程信息要保存到文件屮 去;(2)課程信息瀏覽、刪除功能;(3)學(xué)生選修課程:按教師

14、選 擇或按學(xué)分選擇。另外此程序?qū)崿F(xiàn)的附加屬性有:(1)每門選修課還包含的 屬性有:課程容量(即:每門課最多能有多少人選)、課程選修實際 人數(shù)(即:每門課當前時間有多少人選擇)(2)學(xué)生還包含的屬性 有:學(xué)生是否選修課程的標記及所選修的課程;另外附加功能有:(1)學(xué)生信息瀏覽(包括所有學(xué)生瀏覽、按班級瀏覽、按專業(yè)瀏覽及 未選課學(xué)生瀏覽)(2)學(xué)生選課(按課程編號、名稱直接選擇)(3)學(xué)生信息編輯(包括學(xué)生所有信息的修改,單個學(xué)生刪除及所有 學(xué)生刪除)(4)學(xué)生信息查詢(按學(xué)號、姓名)(5)課程信息的瀏 覽(包括按課程編號升序、課吋升序、學(xué)分升序三種方式,另外包含 瀏覽所有、按教師、學(xué)分、課吋、可

15、選課程瀏覽)(6)課程信息編輯(包含課程所有信息(除已選該課人數(shù)外)的修改、單個課程的刪除 及所有課程的清空)(7)課程信息查詢(按課程編號、名稱)(8) 另外,還實現(xiàn)了學(xué)生信息與課程信息的關(guān)聯(lián),即:當有學(xué)生選擇該課 程時,該課程選修人數(shù)將會加一,當有已經(jīng)選擇該科的學(xué)生放棄選修 該科吋,該科選修人數(shù)將會減一,當選修改課程的學(xué)生信息被刪除 時,同樣,該科選修人數(shù)會做出相應(yīng)的減少。反過來(課程對學(xué)生) 也是一樣。另外,每門課程還有容量限制,即如果該課程選課人數(shù)已 滿,學(xué)生將無法再選擇該課程。(9)更改文件保存路徑42概要設(shè)計總的來說共分為三人塊:學(xué)生信息管理、課程信息管理、文件 地址管理。其中每一

16、大塊又包含很多小模塊,具休可由下圖休現(xiàn)出 來。根據(jù)課程名,編號課程信息管理錄入:課程信息錄入 瀏覽:全瀏覽、按教師、 按課時、按學(xué)分、可選課 程瀏覽編輯:刪除、清空、修改査詢:根據(jù)學(xué)號錄入:學(xué)生信息錄入 瀏覽:全瀏覽、按班級、 專業(yè)、未選課學(xué)生瀏覽 編輯:選課、修改、刪 除、清空課程信息文件:另存為 學(xué)生信息文件:另存為4.3詳細設(shè)計詳細功能設(shè)計是在概要設(shè)計的基礎(chǔ)上進一步設(shè)計系統(tǒng)的功能,并 且詳細表現(xiàn)出了各個系統(tǒng)模塊之間的關(guān)系,具體詳見下面的uml活動 圖,對活動圖仔細分析之后,可以將系統(tǒng)的設(shè)計分成5大塊,即:程 序可以包含5個類,分別為:學(xué)生信息類,課程信息類,學(xué)生信息管 理類,課程信理類,

17、系統(tǒng)運行界面類。何)光文侔i4.4程序源代碼見附件4. 5測試數(shù)據(jù)及測試結(jié)果學(xué)號名字2011111009張煥強2011111030孫嚴強2011111120李明2011111230孫華2011111241宋超測試數(shù)據(jù):業(yè)科科件絡(luò)絡(luò) 專計引軟網(wǎng)網(wǎng)班級是否現(xiàn)在選課111 0111 0112 0112 0111 0課程編號名稱課時授課老師學(xué)分課程容量1高數(shù)60崔強5.51032英語50孫曉輝4.523c+50徐遵義4.51034馬克思44郭占慶2. 53005思修44王利華2.5300測試結(jié)果:(程序運行截圖)主程序運行界面:幘分別輸入與學(xué)生系統(tǒng)和課程系統(tǒng)關(guān)聯(lián)的兩個文件abat已經(jīng)存在,創(chuàng)建時間為:

18、mon jan 07 23:19:46 2013b已經(jīng)存在,創(chuàng)建時間為:mon jan 0? 23:19:47 2013統(tǒng)系m 二型理理理統(tǒng) 主管管f宀nliv 亠音3息址課 迸生薯岀 迎學(xué)課備 歡 12 3 0學(xué)生信息管理:統(tǒng)系m 二管選理理理統(tǒng) 主管菅f宀學(xué)、自3自3址課 進生聾岀 迎學(xué)課養(yǎng) 歡 12 3 0二xxxxxxxx覽入輯詢幕 瀏錄薯一蒙 息息息息主果生生生生回岀12 3 4 5 0否丄是 爭業(yè),鍋級:111 0111 0112 0112 0選 在號2 3 4 5 02is 包自3息主課 一耳弐亠一一計埜z1z1/1回岀 返退選在號號學(xué)入09!否入30!否入20!否入30 輸10

19、暫鎰10暫鎰“暫鎰12 次"感衷"感衷螢衷" 依"入同依"入同依"入同依“ 請20錄該請2020學(xué)生信息錄入專業(yè)黑級 否1曰 專業(yè),計否丄是尋業(yè),無級:軟徃學(xué)生信息瀏覽總界面:生 瀏黑 有王課 所爺課到選 器養(yǎng)回岀 瀏返退12 3 4 5 0瀏覽所有學(xué)生信息界面:蘭口 覽51 <1 有瀏遜千主課 所器課到選 轟盍回岀 瀏返退 12 3 4 5 0n£mrmkmkmkmk mrjr mrjr mrjr mrjr 雷遁遁遁遁 j 選班級111111112112111網(wǎng)網(wǎng)名強強睪超張孫學(xué)號2011111009 2011111

20、030 2011111120 2011111230 2011111241i mr學(xué)&信息編輯界面:覽入輯詢黑 瀏錄薯蒙 一息息息息主課生生生生回岀蓋返退12 3 4 5 0息 亠一一 r 改蚩統(tǒng) 課息息有界課 王逍 生生生除回岀 筈辜製退 12 3 4 5 0學(xué)生信息修改界面:班級選修課程111 耒選課 3專業(yè)4班級青輸入要更改學(xué)生的學(xué)號:011111009畳魏入該學(xué)生的新專業(yè):息 蘭e 改蚩統(tǒng) 修型ma糸 課息息有界課 生生生除回岀 筈辜製退 12 3 4 5 0亥學(xué)生信息為:學(xué)號 姓名 專業(yè) 2011111009張煥輕i一科青選擇更改項:1孝號2旌名學(xué)生信息修改后瀏覽界面:程果果果

21、課課 m 選及 112 2 1 zz 11111 11111名強強睪超自 姓煥嚴李孫宋住 張孫 +學(xué)號2011111009 2011111030 2011111120 20111112302011111241課程信息管理界面:統(tǒng)系m 二管mf課二hnpt rru 一 bt 選-h-h-s. 主 mssnii ¥t3息址課 進生程件岀 迎學(xué)課備x x xx x xx x )八12 3 0覽入輯詢幕 瀏錄薯纂 息息息息主課 亠一一r亠一一r亠一一r亠一一劃邇回吐 課課課課返很 12 3 4 5 0課程信息錄入界面:宓課豐,魁/杲豐'常課豐,學(xué)分,課程容量:103學(xué)分,課程容量:2

22、學(xué)分,課程容量:103學(xué)分,課程容量:300學(xué)分,課程容量:300慶£占 0rp 果吉孑師.5ihj 2岀課課課課返退12 3 4 5 02舟5m3息息息主課名44 轟思¥ 05 務(wù)+ 調(diào)+ iac!a j 輸功輸功輸功輸功輸 依入依入依入依入依 -請1錄請2錄請3錄請4錄請5授課老師,5.5稱名069 號 扁稱名059 號 扁 呈 環(huán)£q 稱 名449 號 扁 呈、課程信息瀏覽界面:1課時升序312342學(xué)分升序否則按編號升序排序程 程統(tǒng) 部選界課 全師時分可主選 翥課畫回出課程信息瀏覽全部課程界面:課程編號1234聾語+思督 名高英c克思匸 程 馬0 mr課程

23、學(xué)時6050504444課程學(xué)分5.54.54.52.52.5課程容量1032103300300已選人數(shù)00000課程信息按學(xué)分瀏覽:請輸人學(xué)分"囁程編號課程直稱課程學(xué)時授w®課程學(xué)分課程容量已選人數(shù)2 央語50孫曉桂4.5203 c+50徐遵義4.51030- 一 -一 - -_ _ _、e yrn 丿r-i 、亠 i h ar學(xué)生選課界面:學(xué)號業(yè) 班級 筑 m選繊學(xué)生信息全瀏覽:(選課成功)學(xué)號2011111009 2011111030 2011111120 2011111230 2011111241名強強睪超亠 姓煥嚴李孫宋亠土窿取網(wǎng)網(wǎng)s 1 1 2 2 1 l

24、9;l 1 11* j± 11111舅課課課課 課亠咼選選選選 修-ewk 選課程信息全瀏覽:(課程已選人數(shù)加1)課程編號1234課程羣您咼紗.央語c+馬克思 思修課程學(xué)時60505044師屠義睪ffi課 irs - 授44課程學(xué)分5.54.54.52.52.5課程容量1032103300300已選人數(shù)10000及 112 2 11111111111羸取網(wǎng)網(wǎng)名強強明華超 姓煥嚴李孫宋 張孫舅語語課課 課高英英選選 修 i 選課程編號12345課程名稱英語c + +馬克禺課程學(xué)時6050504444師曇義愿十 8h 課王 授課程學(xué)分5.54.54.52.52.5課程容量10321033

25、00300已選人數(shù)12000對另外兩名學(xué)生選課(選容量為2的英語)后,界面顯示:學(xué)號2011111009 2011111030 2011111120 2011111230 2011111241當對其中另一位未選課的學(xué)生再次選英語時,捉示:選課失敗,課程 人數(shù)已滿!班級1122選撕按課程名稱選擇牯輸入要選課的學(xué)生的學(xué)號:2011111230要選課的筈舍信息裙2011111230 孫請選擇選課方式:按課程編號選擇 詰輸入要選的科目的編號:陸課失敗,該課程人數(shù)已滿!當變換學(xué)生的選修課時,課程“己選人數(shù)”隨之變化 重選提示:請輸入要選課的學(xué)生的學(xué)號:2011111030該學(xué)生已選擇英語,是否重新選擇?

26、 0否丄是1要選課的裁信息蓊學(xué)號2011111030孫嚴強 計科請選擇選課方式:1按課程編號選擇1請輸入要選的科目的編號:1進課成功!、八,亠-班級 選修迷翟u2按課程舉魅擇學(xué)號2011111009 2011111030 2011111120 2011111230 2011111241名強強明華超 姓煥嚴李孫宋 張孫 及 112 2 111111 ±± 11111為數(shù)語課課 課亠咼亠咼英選選 修 i 選學(xué)生信息瀏覽:(選修課已變更)課程信息瀏覽界面:(課程信息隨之變更)課程學(xué)時60已選人數(shù)21000課程容量1032103300300課程學(xué)分5.54.54.52.5課程編號1

27、234444405師義懐十 課王 授名高英c克田 程 馬mk課文件地址菅理:1學(xué)生信息另存為 2課程信息另存為學(xué)生信息另存為:d:stu. dat1學(xué)生信息另存為2課程信息另存為1請輸入學(xué)生信息保存地址d: wstu.dat學(xué)生信息保毎成攻?昴二 當+二為;田苗h田 玄$吉fl software (d:) r(v)工*cd 群助(h)1a 共享新mx件夾360rec collectedaddressstu.dat清空學(xué)生信息:改課自3自5育 界課 王迸 生生生除回岀 筈盂于製退12 3 4 5 0言息課程信息瀏覽:(課程已選人數(shù)都為:0)華生信息庫為空!課程編號12345課程羣您央語c+馬克思

28、 思修 田h口/士白七hl課程學(xué)時604444師屠義愿十 fin 課王 授課程學(xué)分5.54.54.52.52.5課程容量1032103300300已選人數(shù)000005. 參考文獻:面向?qū)ο蟪绦蛟O(shè)計方法學(xué)c+程序設(shè)計6. 課程設(shè)計總結(jié)c+課程設(shè)計是自學(xué)習(xí)c+程序設(shè)計理論課以來第一次編寫的大 型程序,在編寫代碼過程屮遇到了自己以前所沒有遇到過的困難,不 過都已經(jīng)成功解決;這次課程設(shè)計讓我加深了對理論知識的理解,同 吋讓我意識到了實踐的重要性。這次課程設(shè)計也是我第一次進行完整 的程序設(shè)計,從需求分析到概要設(shè)計、詳細設(shè)計、再到源代碼的實 現(xiàn),每一個環(huán)節(jié)都讓我學(xué)到了很多知識。7. 課程設(shè)計指導(dǎo)教師評語山

29、東建筑大學(xué)計算機科學(xué)與技術(shù)學(xué)院課程設(shè)計指導(dǎo)教師評語班級:計科111學(xué)生姓名:張煥強學(xué)號:2011111009指導(dǎo)教師評語(包扌舌工作態(tài)度,遵守紀律;基本理論、知識、技能;獨立工作能力和分析解決 問題的能力;完成任務(wù)情況及水平):學(xué)生成績(百分制):指導(dǎo)教師簽名:附件8附件(源代碼) /option h ttifndef option ttdefine option #include<string> #include<list> using namespace std;/課程信息類class courseinfopublic:coursclnfo ();courselnf

30、o(long, int, double, int);long getnumofcourse () ;/返回課程編號int gettimeofcourse();double getscoreofcourse();int getamountofstuo ;int getcapofcourseo ;/返11課程容納最大人數(shù)void sctnumofcoursc(int );void sctnamcofcoursc(chart);void settimeofcourse(int);void setteacherofcourse(char);void setscoreofcourse(double);v

31、oid setscoreofcap(int);void setzero () ;/將選課人數(shù)置零fri end ostream& operator*(ostream& stream, coursetnfo& course) ;/運算符重載,便于輸出public:long numofcourse;/課程編號int timeofcourse;/課時 double scoreofcourse:/課程學(xué)分 int capofcourse;/課程容量public:int stunumofcourse: /該課程已選修人數(shù)char name0fcourse50 ;/課程名char

32、tcachcr0fcoursc50;/授課老師;學(xué)生信息類class stulnfopublic:stulnfo ();long gctnumofstu ():coursclnfo& gctoptionofstu ();void setnumofstu(int numofstu);void setnameofstu(char nameofstu);void setprofessionofstu(char professionofstu); void setcla.ssofstu(cha.r classofstu);void setoptionofstu(courseinfo&

33、optionofstu);bool ifchoiceo ;/判斷是否選課void chooseok() ;/成功選課時標記void choosefail () ;/選課失敗時標記 bool operator=(stulnfo& stu);friend ostream& operator<<(ostream& stream, stulnfo& student);public: long numofstu;/學(xué)號char name0fstu50;/姓名char professionofstuo ;/專業(yè)char class0fstu50 ;/班級cour

34、seinfo optionofstu;/選修課程 private:bool signofchoice;/學(xué)生是否選課的標志 ;/cosystemmangc類:用于對課程信息的管理 class cosystcmmangcpublic:cosystemmange();cosystemmange(char strfilepath);void setfilepath(char strfilepath):void timc_browscr(int coursctimc) ;/根據(jù)課時瀏覽void scorc_browscr (double courscscorc) ;/學(xué)分瀏覽void teacher_

35、browser (char courseteacher ) ;/根據(jù)老師瀏 覽void all_course_browser () ;/所有課程瀏覽 void access_to_choice () ;/可選課程的瀏覽void courseinput():courseinfo& inquitebyname (char coursename ) ;/根據(jù)課程 名稱找到該課程,并返回coursetnfo& inquire旳courseno(long courseno) ;/根據(jù)課程 編號找到該課程,并返冋void deletecourse(long courseno);void m

36、odifycourse(long courseno);void savetofileo ;/保存課程信息到文件void readfromf訂e() ;/從文件中讀取課程信息bool courseexist (char coursename ) :/根據(jù)課程名稱判斷該 課程是否存在bool courseexist (long coursenum) ;/根據(jù)課程編號判斷某課 程是否存在void clearall () ;/刪除所有的課程信息void coursesortl () ;/根據(jù)課吋進彳亍排序void coursesort2 () ;/根據(jù)學(xué)分進彳亍排序 void coursesort3(

37、) ;/根據(jù)課程編號進彳亍排序public: list<courseinfo> courselist;/鏈表用于保存一系列的課程 char strfilepath50;/課程信息保存路徑; /學(xué)生信息管理類class stusystemmangepublic:stusystcmmangc ();stusystemmange(char strfilepath); void setfilepath (char strfilepath):void cla.ss_browser (char classname) ;/以班級為單位進行 瀏覽學(xué)生信息void pro_browser (char

38、 profession) ;/以專業(yè)進彳亍瀏覽學(xué)生 信息void al l_stu_browser (); 瀏覽所有學(xué)生信息void nochoice_browser () ;/瀏覽未選課學(xué)生的信息stulnfo& inquirebystuno (long stuno) ;/按學(xué)號查找 void inquirebystuname (char na.me) ;/按名字查找 void stulnput (cosystemmange&courselist) ;/學(xué)生信息錄入 void modifystulnfoo ;/修改學(xué)生信息void deletestuinfo(cosystem

39、mange& courselist) ;/刪除學(xué)生 信息void choosecourse(cosystemmange& courselist) ;/選擇課程 bool stuexist (long stunum) ;/判斷某學(xué)號的學(xué)生是否存在 void savetof訂e() ;/將學(xué)生信息保存至文件 void readfromfileo ;/從文件中讀取學(xué)生信息 void stusort () ;/根據(jù)學(xué)號從小到大進彳亍排序 void clearall () ;/清空所有的學(xué)生信息public:list<stulnfo> stulist;/保存所有學(xué)生信息pub

40、lic:char strf訂ename 50;/學(xué)生信息存放路徑 ;/系統(tǒng)運行類: class cpprms public:void runmain ();void runstumaino ;/運行學(xué)生信息管理界面 void runstubrowsermain() ;/學(xué)生信息瀏覽界面 void runstueditmain () ;/學(xué)生信息編輯界面 void runstuinquiremain() ;/學(xué)生信息查詢界面voi d runcoursemain () ;/運彳亍學(xué)生信息管理界面 void runcoursebrowsermain() ;/課程信息瀏覽界面 void runcou

41、rseeditmain() ;/課程信息編輯界而 void runcourselnquiremain() ;/課程信息查詢界面 void rundatabase () ;/進行與文件關(guān)聯(lián) void runstuclear () ;/刪除所有學(xué)生void runcourscclcar () ;/刪除所有課程信息void changefileo ;/更改文件保存地址public:stusystemmange runstu; /學(xué)生信息系統(tǒng) cosystemmange runcourse;/課程信息系統(tǒng) ;ttendif/run. cpp實現(xiàn)文件#i ncludedostream#include&l

42、t;iomanip>#include<fstream>#include<sysstat h>#include<ctime> using namespace std;#includeoption. h/coursclnfo類的實現(xiàn) coursclnfo:coursclnfo()courseinfo:courseinfo(long numofcourse, int timeofcourse, double scoreofcourse, int capofcourse) this->numofcourse=(num0fcoursc>0)? num

43、ofcoursc:0;this->timcofcourse(timcofcoursc>0)? timcofcoursc:0;this->scoreofcourse=(score0fcourse>0)? scoreofcourse:0; this->capofcourse=(cap0fcourse>0)? capofcourse:0;this-stunumofcourse二0;long courseinfo:getnumofcourse()return numofcourse; int courseinfo:gettimeofcourse() return t

44、imeofcourse;double courseinfo:getscoreofcourse ()return scoreofcourse;int courseinfo:getamountofstu()return stunumofcoursc:int courselnfo:getcapofcourse()return capofcourse;void courseinfo:setnumofcourse(int numofcourse)this->numofcourse=(num0fcoursc>0)? numofcourse:0;void courseinfo:setnameof

45、course(char nameofcourse50)strcpy (this->nameofcourse, nameofcourse);voi d coursetnfo:settimeofcourse (int timeofcourse)this->timeofcourse=(timeofcourse>0)? timeofcourse:0;void courseinfo:setteacherofcourse(char teacherofcourse)strcpy (this->tcachcrofcoursc, tcachcrofcoursc);void coursei

46、nfo:setscoreofcourse(double scoreofcourse)this->score0fcourse=(score0fcourse>0)? scoreofcourse:0; void courseinfo:setscoreofcap(int capofcourse)this->capofcourse=(cap0fcourse>0)? capofcourse:0;void courseinfo:setzero()stunumofcourse二0;/stulnfo類的實現(xiàn)stu info:stulnfo () signofchoice二false;op

47、tionofstu. setnameofcourse ("未選課);long stuinfo:getnumofstu() return numofstu;courseinfo&stulnfo:getoptionofstu()rcturn optionofstu;void stulnfo:setnumofstu(int numofstu) this->numofstu=(num0fstu>0)? numofstu:0;void stulnfo:setnameofstu(char nameofstuj)strcpy (this->namcofstu, namco

48、fstu);void stulnfo:setprofessionofstu(char professionofstu) strcpy (this->professionofstu, professionofstu);void stulnfo: setclassofstu(char cla.ssofstuj)strcpy(this->classofstu, classofstu);void stulnfo:setoptionofstu(courseinfo& optionofstu) this-optionofstu二optionofstu;bool stulnfo:oper

49、ator=(stutnfo& stu)return(this->getnumofstu() =stu. getnumofstuo);bool stulnfo: ifchoiccoreturn signofchoice;void stulnfo:chooseok()this-signofchoice二true;void stulnfo:chooscfail()this->signofchoice二false;/stusystemmange 類的實現(xiàn)stusystemmange:stusystemmange()stusystemmange:stusystemmange(char

50、 strfilepath)strcpy (this->strfilena.me, strfilename);void stusystemmange:setfi1 epath(char strfi1epath) strcpy (strfilename, strfilepath);void stusystemmange:class_browser(char classname)list<stu!nfo>:iterator p;bool sign二false;for(pstulist. begin();p!二stulist end() ;p+)if(!strcmp(*p) clas

51、sofstu, classname)&&!sign) cout<<setw(12)學(xué)號setw(8)姓名 setw(8)專業(yè),z<<setw(8)班級setw(12)選修課程 ,z«endl;cout<*pendl; sign=truc;else if (!strcmp(*p) classofstu, classname)cout<< (*p)<<endl;if(!sign) cout該班級學(xué)生信息不存在! endl;void stusvstemmange:probrowser(char profession) &

52、quot;list<stuinfo>:iterator p;bool sign二false;for (p二stulist. begin() ;p!二stulist end() ;p+)if(!strcmp(*p) professionofstu ,profession)&&!sign) cout<<setw(12)學(xué)號setw(8)姓名 setw(8)"專業(yè)z,<<setw(8)班級setw(12)選修課程 endl;cout<<(*p) <<endl;sign=true;else if (!strcmp(*

53、p)profcssionofstu , profession) cout<<(*p)<<endl;if(!sign) cout該專業(yè)學(xué)生信息不存在! endl;void stusystemmange:all_stu_browser() list<stulnfo>:iterator p;bool sign=false:for (p=stulist begin();p!=stulist end();p+)if(!sign) cout<<setw(12)學(xué)號/z<<setw(8)姓名 setw(8)專業(yè),z<<setw(8)班級setw(12)選修課程 ,/<<cndl;cout<<

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論