版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、溫馨提示溫馨提示程序語(yǔ)言:C、C+、C#、Python(紅色字體紅色字體 表示本課設(shè)使用的程序設(shè)程序設(shè)計(jì)語(yǔ)言計(jì)語(yǔ)言)圖形功能選項(xiàng):Win32Win32 控制臺(tái)程序(黑框、文本界面)控制臺(tái)程序(黑框、文本界面)、Win32 程序、MFC、WinForm、DirectX10(黑體標(biāo)明黑體標(biāo)明 表示本課設(shè)的程序圖形類別程序圖形類別,默認(rèn)為非圖形界面非圖形界面 Win32Win32 控制臺(tái)程序控制臺(tái)程序)數(shù)據(jù)結(jié)構(gòu):基礎(chǔ)類型、數(shù)組、鏈表鏈表、雙向鏈表、搜索樹(shù)(非平衡二叉樹(shù))、平衡二叉樹(shù)、鏈表與平衡二叉樹(shù)相結(jié)合、堆棧、隊(duì)列、串、圖(黑體標(biāo)明黑體標(biāo)明 表示本課設(shè)使用的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu))C+語(yǔ)言項(xiàng):STLST
2、L 庫(kù)庫(kù)(黑體標(biāo)明黑體標(biāo)明 表示使用 C+的 STLSTL 庫(kù)庫(kù))編譯環(huán)境:Windows 7 64 位旗艦版(LinuxLinux 及其他環(huán)境及其他環(huán)境請(qǐng)謹(jǐn)慎下載請(qǐng)謹(jǐn)慎下載)集成開(kāi)發(fā)環(huán)境:Visual C+ 6.0、DEVC+、CodeBlocks、Visual Studio 2015 均可通過(guò)編譯。(淺藍(lán)色字體 表示無(wú)法通過(guò)編譯)分多頭文件頭文件編譯:否否(所有代碼基本都包含在一個(gè)文件一個(gè)文件,如需試驗(yàn)頭文件功能,請(qǐng)自行參考相關(guān)文獻(xiàn))容說(shuō)明:1、課設(shè)題目及預(yù)覽容課設(shè)題目及預(yù)覽容 將在第二頁(yè)開(kāi)始展示。2、代碼行數(shù):473473 行3、目錄目錄 所示容,本文基本涵蓋,如無(wú)容,會(huì)在本頁(yè)進(jìn)行說(shuō)明如
3、無(wú)容,會(huì)在本頁(yè)進(jìn)行說(shuō)明。4、附錄附錄 絕對(duì)包含用戶使用手冊(cè)用戶使用手冊(cè)及程序完整源代碼和詳細(xì)注釋程序完整源代碼和詳細(xì)注釋。5、如需下載如需下載 其他 頭文件(例如頭文件(例如 DirectXDirectX 需另行配置)需另行配置),本文會(huì)在此進(jìn)行說(shuō)明。6、本文撰寫(xiě)容僅供學(xué)習(xí)參考本文撰寫(xiě)容僅供學(xué)習(xí)參考,另外,由于本人水平有限,編寫(xiě)之處難免存在錯(cuò)誤和紕漏,懇請(qǐng)各位老師或同學(xué)批評(píng)指正。題目:題目:課程信息管理系統(tǒng)課程信息管理系統(tǒng)詳細(xì)的任務(wù)要求,請(qǐng)下滑查看。以下是程序截圖:軟件學(xué)院大作業(yè)任務(wù)書(shū)軟件學(xué)院大作業(yè)任務(wù)書(shū)題 目: 課程信息管理系統(tǒng) 專 業(yè): 班 級(jí): 姓名: 學(xué) 號(hào): 完成人數(shù): 起訖日期:
4、任課教師: 職稱: 部分管主任: 完成時(shí)間: 說(shuō)說(shuō) 明明1. 本任務(wù)書(shū)由任課教師填寫(xiě)后,下達(dá)到學(xué)生。2. 任務(wù)完成后,任課教師需填寫(xiě)小結(jié)表。3. 任務(wù)書(shū)、學(xué)生成績(jī)與學(xué)生完成后的大作業(yè)(紙質(zhì)和電子兩種)一并報(bào)送各教學(xué)研究部審核后轉(zhuǎn)教務(wù)辦。4. 另附一份全班大作業(yè)總結(jié)大作業(yè)的要求和容:大作業(yè)的要求和容:(包括題目選擇圍、技術(shù)要求、遞交時(shí)間、考核方法等)(包括題目選擇圍、技術(shù)要求、遞交時(shí)間、考核方法等)請(qǐng)根據(jù)本學(xué)期所學(xué)的 C+語(yǔ)言知識(shí)和面向?qū)ο蟮闹R(shí),以 VC6.0 或Visual Studio 2010 為開(kāi)發(fā)環(huán)境,獨(dú)立完成一個(gè) Windows 平臺(tái)下的完整的C+應(yīng)用程序。大作業(yè)的容和功能不做具體
5、限定,每個(gè)小組需要根據(jù)自身的實(shí)際情況,通過(guò)小組討論確定大作業(yè)選題。選題容不能過(guò)于簡(jiǎn)單,且必須滿足如下要求:1.采用面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì),要運(yùn)用類的繼承、多態(tài)等機(jī)制;2.具備文件讀寫(xiě)文件讀寫(xiě)功能,程序中的數(shù)據(jù)要以文件方式保存;3.程序中要具備對(duì) STLSTL 容器容器的運(yùn)用;4.程序中要求具備異常處理異常處理;5.要求具備菜單功能菜單功能,根據(jù)用戶的輸入,執(zhí)行相應(yīng)的操作。在菜單選菜單選項(xiàng)項(xiàng)中,必須包含“關(guān)于”一項(xiàng),該菜單項(xiàng)用來(lái)顯示大作業(yè)的基本信息,包括程序名稱、版本、完成時(shí)間,每位組員名字、班級(jí)、學(xué)號(hào)等信息;6.程序要求做到界面友好,對(duì)于用戶的輸入操作要有明確的提示信息,并對(duì)輸入的數(shù)
6、據(jù)進(jìn)行合法性和正確性的檢查;7.做到工程名、類名、變量名、代碼格式等合乎規(guī),代碼中必須對(duì)所設(shè)計(jì)的類的功能或函數(shù)功能進(jìn)行規(guī)的注解。最終提交的作業(yè),除提交完整的程序工程代碼外,還必須以大作業(yè)報(bào)告的形式闡述整個(gè)程序的實(shí)現(xiàn)過(guò)程,要求報(bào)告容中必須包括:需求分析需求分析(項(xiàng)目介紹、功能需求);系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析與設(shè)計(jì)(闡述項(xiàng)目中需解決的關(guān)鍵技術(shù)問(wèn)題,同時(shí)要以類關(guān)系圖、程序流程圖、功能模塊示意圖等輔助系統(tǒng)設(shè)計(jì)的描述);程序設(shè)計(jì)與實(shí)現(xiàn)程序設(shè)計(jì)與實(shí)現(xiàn)(其中容不能只是粘貼全部代碼不能只是粘貼全部代碼,首先要描述代碼工程的文件組織結(jié)構(gòu),然后以文字的方式闡述代碼中每個(gè)類的設(shè)計(jì)意圖、主要功能、運(yùn)用到的關(guān)鍵知識(shí)點(diǎn),主
7、要成員函數(shù)的設(shè)計(jì)意圖及功能介紹,對(duì)于代碼實(shí)現(xiàn)中有特色的算法或有創(chuàng)新的地方,可以著重描述(這將視為大作業(yè)的加分點(diǎn))。如果必須給出實(shí)現(xiàn)代碼才能更好地說(shuō)明問(wèn)題時(shí),也必須先有相關(guān)的文字?jǐn)⑹?,然后才是代碼,代碼只是作為例證。);系統(tǒng)測(cè)試系統(tǒng)測(cè)試(該部分不能只簡(jiǎn)單展示幾幅程序運(yùn)行時(shí)的截圖就完事!要設(shè)計(jì)幾組有代表性的數(shù)據(jù)來(lái)驗(yàn)證程序的各個(gè)功能是否達(dá)到設(shè)計(jì)需求。也就是測(cè)試是否有不正確或者是遺漏了的功能,在接口上,輸入能否正確的接受,能否輸出正確的結(jié)果;是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或者外部信息訪問(wèn)錯(cuò)誤;性能上是否滿足要求;是否有初始化或終止性錯(cuò)誤等。建議以表格的形式展示,具體請(qǐng)參考大作業(yè)模板的系統(tǒng)測(cè)試部分的描述);個(gè)人小結(jié)
8、個(gè)人小結(jié)(該部分為個(gè)人開(kāi)發(fā)小結(jié),其中必須談到開(kāi)發(fā)過(guò)程中遇到的困難以及如果克服困難、個(gè)人收獲、得到的啟示或教訓(xùn)等等,切忌空洞無(wú)實(shí)際容或前篇一律的敷衍文字。);參考文獻(xiàn)參考文獻(xiàn)(該部分給出整個(gè)程序從選題、需求分析、系統(tǒng)設(shè)計(jì)到代碼實(shí)現(xiàn)過(guò)程中所參考的書(shū)籍、網(wǎng)上資料等。)。大作業(yè)的評(píng)分點(diǎn)涵蓋大作業(yè)從選題、小組分工、小組討論、需求分析、代碼實(shí)現(xiàn)到文檔撰寫(xiě)全過(guò)程。具體評(píng)分點(diǎn)及各評(píng)分點(diǎn)的比重如下: 選題 10% 評(píng)分依據(jù):選題的難度、創(chuàng)新度、工作量等 需求分析 10% 評(píng)分依據(jù):分析是否充分、表述是否明確、功能的實(shí)用價(jià)值等 交流日志 5% 評(píng)分依據(jù):是否有真實(shí)的交流過(guò)程、交流的次數(shù)等 文檔撰寫(xiě)質(zhì)量 35% 評(píng)
9、分依據(jù):結(jié)構(gòu)完整性、容充實(shí)度、格式符合度、圖表規(guī)程度等 代碼質(zhì)量 40% 評(píng)分依據(jù):代碼復(fù)雜度、功能完整性、是否運(yùn)用了要求的知識(shí)點(diǎn)、設(shè)計(jì)或算法是否有創(chuàng)新等教師小結(jié):成績(jī): 教師 簽名: 系部負(fù)責(zé)人: 學(xué)生 簽名: NANCHANGNANCHANG UNIVERSITYUNIVERSITYC+C+程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題題 目目: : 學(xué)學(xué) 院:院: 專專 業(yè):業(yè): 班班 級(jí):級(jí): 完成人數(shù):完成人數(shù): 起訖日期:起訖日期: 任課教師:任課教師: 職稱: 部分管主任:部分管主任: 完成時(shí)間:完成時(shí)間: 目錄目錄一、一、 項(xiàng)目需求分項(xiàng)目需求分析析.1 11.11.1項(xiàng)目介紹項(xiàng)目介
10、紹 .11.21.2功能需求功能需求 .1二、二、 系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析與設(shè)計(jì).1 12.12.1本程序需解決的關(guān)鍵技術(shù)問(wèn)題本程序需解決的關(guān)鍵技術(shù)問(wèn)題.12.22.2程序流程序流程程 .22.32.3功能模塊功能模塊 .22.42.4類的設(shè)計(jì)類的設(shè)計(jì) .3三、三、 程序設(shè)計(jì)與實(shí)現(xiàn)程序設(shè)計(jì)與實(shí)現(xiàn).4 43.13.1工程文件組織結(jié)構(gòu)工程文件組織結(jié)構(gòu).63.23.2程序設(shè)計(jì)程序設(shè)計(jì) .63.33.3程序?qū)崿F(xiàn)程序?qū)崿F(xiàn) .7四、四、 系統(tǒng)測(cè)試系統(tǒng)測(cè)試.19194.14.1測(cè)試概要測(cè)試概要 .194.24.2測(cè)試環(huán)境與配置測(cè)試環(huán)境與配置.194.34.3測(cè)試方法和工具測(cè)試方法和工具.194.44.4系統(tǒng)
11、功能分解系統(tǒng)功能分解.194.54.5測(cè)試容測(cè)試容 .20五、五、 個(gè)人小結(jié)個(gè)人小結(jié).2121六、六、 參考文獻(xiàn)參考文獻(xiàn).2222附錄附錄 .2222一、一、項(xiàng)目需求分析項(xiàng)目需求分析1.11.1項(xiàng)目介紹項(xiàng)目介紹課程信息管理系統(tǒng)是指具有錄入、顯示、保存、刪除、修改和查詢等一系列功能高度集成的信息管理系統(tǒng)。這是為了方便高校管理課程信息而專門開(kāi)發(fā)的,提高管理課程的效率,降低人工管理成本等目的。1.21.2功能需求功能需求隨著高校規(guī)模逐漸擴(kuò)大,學(xué)生數(shù)量增多,人為課程管理任務(wù)繁重,工作繁多。課程管理系統(tǒng)成為學(xué)生以及老師和學(xué)校必備的系統(tǒng),主要實(shí)現(xiàn)以下功能:1.課程基本信息錄入2.課程基本信息顯示3.課程基
12、本信息保存4.課程基本信息刪除5.課程基本信息修改6.課程基本信息查詢(按學(xué)分查詢)7.關(guān)于8.退出系統(tǒng)二、二、系統(tǒng)分析與設(shè)計(jì)系統(tǒng)分析與設(shè)計(jì)2.12.1本程序需解決的關(guān)鍵技術(shù)問(wèn)題本程序需解決的關(guān)鍵技術(shù)問(wèn)題虛基類指針的操作,構(gòu)成一個(gè)鏈表進(jìn)行數(shù)據(jù)的錄入、顯示、保存、刪除、修改、查詢;使用鏈表結(jié)構(gòu)可以克服數(shù)組鏈表需要預(yù)先知道數(shù)據(jù)大小的缺點(diǎn),鏈表結(jié)構(gòu)可以充分利用計(jì)算機(jī)存空間,實(shí)現(xiàn)靈活的存動(dòng)態(tài)管理。但是鏈表失去了數(shù)組隨機(jī)讀取的優(yōu)點(diǎn),同時(shí)鏈表由于增加了結(jié)點(diǎn)的指針域,空間開(kāi)銷比較大。vector 容器操作操作虛基類的指針,作為輔助功能實(shí)現(xiàn);vector 是 C+標(biāo)準(zhǔn)模板庫(kù)中的部分容,中文偶爾譯作“容器”,但
13、并不準(zhǔn)確。它是一個(gè)多功能的,能夠操作多種數(shù)據(jù)結(jié)構(gòu)和算法的模板類和函數(shù)庫(kù)。vector 之所以被認(rèn)為是一個(gè)容器,是因?yàn)樗軌蛳袢萜饕粯哟娣鸥鞣N類型的對(duì)象,簡(jiǎn)單地說(shuō),vector 是一個(gè)能夠存放任意類型的動(dòng)態(tài)數(shù)組,能夠增加和壓縮數(shù)據(jù)。一連貫的文件讀入讀出操作;將所有功能連貫在一起。2.22.2程序流程程序流程程序開(kāi)始主菜單選擇課程基本信息錄入課程基本信息顯示課程基本信息保存課程基本信息刪除課程基本信息修改課程基本信息查詢錄入課程編號(hào)、課程名稱、課程性質(zhì)、學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)學(xué)時(shí)、學(xué)分顯示課程編號(hào)、課程名稱、課程性質(zhì)、學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)學(xué)時(shí)、學(xué)分保存課程編號(hào)、課程名稱、課程性質(zhì)、學(xué)時(shí)、授課學(xué)時(shí)、實(shí)
14、驗(yàn)學(xué)時(shí)、學(xué)分根據(jù)課程編號(hào)、課程名稱刪除課程根據(jù)課程編號(hào)、課程名稱修改課程信息根據(jù)課學(xué)分查詢課程信息2.32.3功能模塊功能模塊2.42.4類的設(shè)計(jì)類的設(shè)計(jì)課程信息管理系統(tǒng)課程基本信息錄入課程基本信息顯示課程基本信息顯示課程基本信息顯示課程基本信息顯示課程基本信息顯示LinkList 虛基類virtual string getNum() = 0;virtual string getName() = 0;virtual string getNature() = 0;virtual int getPeriod() = 0;virtual int getTeachingHours() = 0;virt
15、ual int getExperimentalHours() = 0;virtual int getCredit() = 0;virtual void setNum(const string n) = 0;virtual void setName(const string n) = 0;virtual void setNature(const string n) = 0;virtual void setPeriod(const int p) = 0;virtual void setTeachingHours(const int t) = 0;virtual void setExperiment
16、alHours(const int e) = 0;virtual void setCredit(const int c) = 0;LinkList *P;string courseNum;string courseName;string courseNature; int coursePeriod;int courseTeachingHours;int courseExperimentalHours;int courseCredit;Course 類繼承自 LinkList 類函數(shù)功能幾乎一樣三、三、程序設(shè)計(jì)與實(shí)現(xiàn)程序設(shè)計(jì)與實(shí)現(xiàn)工程的文件:main.cppLinkList 主要用來(lái)實(shí)現(xiàn)鏈表的功
17、能,也就是說(shuō)通過(guò)構(gòu)造一個(gè)結(jié)點(diǎn)類來(lái)實(shí)現(xiàn)CIMS 類CIMS();CIMS();char ShowMenu();void Input();void Print();void Save();void Delete();void Revise();void Find();void Read();LinkList *h;/頭結(jié)點(diǎn)LinkList *node; /中間結(jié)點(diǎn)vector courseVector;鏈表,通過(guò) Course 繼承虛基類來(lái)實(shí)現(xiàn) Course 的功能。class LinkListpublic:virtual string getNum() = 0;virtual string ge
18、tName() = 0;virtual string getNature() = 0;virtual int getPeriod() = 0;virtual int getTeachingHours() = 0;virtual int getExperimentalHours() = 0;virtual int getCredit() = 0;virtual void setNum(const string n) = 0;virtual void setName(const string n) = 0;virtual void setNature(const string n) = 0;vir
19、tual void setPeriod(const int p) = 0;virtual void setTeachingHours(const int t) = 0;virtual void setExperimentalHours(const int e) = 0;virtual void setCredit(const int c) = 0;LinkList *P;/指針private:string courseNum;/課程編號(hào)string courseName;/課程名稱string courseNature; /課程性質(zhì)int coursePeriod; /學(xué)時(shí)int course
20、TeachingHours; /授課學(xué)時(shí)int courseExperimentalHours; /實(shí)驗(yàn)學(xué)時(shí)int courseCredit; /學(xué)分;Course 類繼承自 LinkList,主要完成課程信息的記錄,為課程類設(shè)計(jì)的藍(lán)圖,貫穿整個(gè)程序,為整個(gè)程序的主要數(shù)據(jù)結(jié)構(gòu),起到了核心作用。class Course:public LinkListpublic:Course():courseNum(),courseName(),courseNature(),coursePeriod(0),courseTeachingHours(0),courseExperimentalHours(0),cou
21、rseCredit(0)Course(string n,string na,string nat,int p=0,int t=0,int e=0,int c=0) :courseNum(n), courseName(na), courseNature(nat), coursePeriod(p), courseTeachingHours(t), courseExperimentalHours(e), courseCredit(c) string getNum() return courseNum; string getName() return courseName;string getNatu
22、re() return courseNature; int getPeriod() return coursePeriod; int getTeachingHours() return courseTeachingHours; int getExperimentalHours() return courseExperimentalHours; int getCredit() return courseCredit; void setNum(const string n) courseNum = n; void setName(const string n) courseName = n; vo
23、id setNature(const string n) courseNature=n; void setPeriod(const int p) coursePeriod=p; void setTeachingHours(const int t) courseTeachingHours=t; void setExperimentalHours(const int e) courseExperimentalHours=e; void setCredit(const int c) courseCredit=c; protected:string courseNum;/課程編號(hào)string cour
24、seName;/課程名稱string courseNature; /課程性質(zhì)int coursePeriod; /學(xué)時(shí)int courseTeachingHours; /授課學(xué)時(shí)int courseExperimentalHours; /實(shí)驗(yàn)學(xué)時(shí)int courseCredit; /學(xué)分;課程信息系統(tǒng)類,主要實(shí)現(xiàn)功能為管理信息的各大功能,方便日后維護(hù)代碼。class CIMSpublic:CIMS():h(NULL),node(NULL)CIMS();char ShowMenu();void Input();void Print();void Save();void Delete();void
25、 Revise();void Find();void Read();private:LinkList *h;/頭結(jié)點(diǎn)LinkList *node;/中間結(jié)點(diǎn)vector courseVector;3.13.1工程文件組織結(jié)構(gòu)工程文件組織結(jié)構(gòu)只有一個(gè)主文件:main.cpp。3.23.2程序設(shè)計(jì)程序設(shè)計(jì)運(yùn)用到的關(guān)鍵知識(shí):vector STL 容器,虛基類,繼承,文件操作,指針鏈表,異常處理,多態(tài)。每個(gè)環(huán)節(jié)環(huán)環(huán)相扣,一個(gè)類接著一個(gè)類,指針鏈表操作不得出錯(cuò),容器STL 銜接使用,雙重?cái)?shù)據(jù)操作完美結(jié)合。3.33.3程序?qū)崿F(xiàn)程序?qū)崿F(xiàn)“由上往下”設(shè)計(jì)思路:這是一種自然直觀的設(shè)計(jì)方法。首先確定用戶級(jí)虛擬機(jī)器
26、的基本特征、數(shù)據(jù)類型和基本命令等,而后再逐級(jí)向下設(shè)計(jì),直到硬件執(zhí)行或解釋那級(jí)為止。當(dāng)然每級(jí)設(shè)計(jì)過(guò)程中,既要考慮實(shí)現(xiàn)方法,也要考慮如何使上一級(jí)能優(yōu)化實(shí)現(xiàn)。從考慮如何滿足應(yīng)用要求開(kāi)始設(shè)計(jì)。缺點(diǎn)是應(yīng)用的改變會(huì)帶來(lái)系統(tǒng)效率的急劇下降。首先,考慮了用戶需要儲(chǔ)存的數(shù)據(jù)類型。其次,考慮了用戶使用的需求功能,比如:錄入、顯示、刪除等等功能。最后,逐步實(shí)現(xiàn)了這一一細(xì)分的功能模塊。程序源碼:#include#include#include#include#include#includeusing namespace std;/-/- 虛基類 -/-class LinkListpublic:virtual stri
27、ng getNum() = 0;virtual string getName() = 0;virtual string getNature() = 0;virtual int getPeriod() = 0;virtual int getTeachingHours() = 0;virtual int getExperimentalHours() = 0;virtual int getCredit() = 0;virtual void setNum(const string n) = 0;virtual void setName(const string n) = 0;virtual void
28、setNature(const string n) = 0;virtual void setPeriod(const int p) = 0;virtual void setTeachingHours(const int t) = 0;virtual void setExperimentalHours(const int e) = 0;virtual void setCredit(const int c) = 0;LinkList *P;/指針private:string courseNum;/課程編號(hào)string courseName;/課程名稱string courseNature; /課程
29、性質(zhì)int coursePeriod; /學(xué)時(shí)int courseTeachingHours; /授課學(xué)時(shí)int courseExperimentalHours; /實(shí)驗(yàn)學(xué)時(shí)int courseCredit; /學(xué)分;/-/- Course 類 -/-class Course :public LinkListpublic:Course() :courseNum(), courseName(), courseNature(), coursePeriod(0), courseTeachingHours(0), courseExperimentalHours(0), courseCredit(0)
30、Course(string n, string na, string nat, int p = 0, int t = 0, int e = 0, int c = 0) :courseNum(n), courseName(na), courseNature(nat), coursePeriod(p), courseTeachingHours(t), courseExperimentalHours(e), courseCredit(c) string getNum() return courseNum; string getName() return courseName; string getN
31、ature() return courseNature; int getPeriod() return coursePeriod; int getTeachingHours() return courseTeachingHours; int getExperimentalHours() return courseExperimentalHours; int getCredit() return courseCredit; void setNum(const string n) courseNum = n; void setName(const string n) courseName = n;
32、 void setNature(const string n) courseNature = n; void setPeriod(const int p) coursePeriod = p; void setTeachingHours(const int t) courseTeachingHours = t; void setExperimentalHours(const int e) courseExperimentalHours = e; void setCredit(const int c) courseCredit = c; protected:string courseNum;/課程
33、編號(hào)string courseName;/課程名稱string courseNature; /課程性質(zhì)int coursePeriod; /學(xué)時(shí)int courseTeachingHours; /授課學(xué)時(shí)int courseExperimentalHours; /實(shí)驗(yàn)學(xué)時(shí)int courseCredit; /學(xué)分;/-/-Course information management system-/-class CIMSpublic:CIMS() :h(NULL), node(NULL) CIMS();char ShowMenu();void Input();void Print();void
34、Save();void Delete();void Revise();void Find();void Read();void About();private:LinkList *h;/頭結(jié)點(diǎn)LinkList *node;/中間結(jié)點(diǎn)vector courseVector;CIMS:CIMS()for (; NULL != h; ) node = h;h = h-P;delete node;/ 顯示菜單char CIMS:ShowMenu()system(cls);cout endl endl;cout ttt endl;cout ttt 1 課程基本信息錄入 endl;cout ttt end
35、l;cout ttt 2 課程基本信息顯示 endl;cout ttt endl;cout ttt 3 課程基本信息保存 endl;cout ttt endl;cout ttt 4 課程基本信息刪除 endl;cout ttt endl;cout ttt 5 課程基本信息修改 endl;cout ttt endl;cout ttt 6 課程基本信息查詢 endl;cout ttt endl;cout ttt 7 關(guān)于 endl;cout ttt endl;cout ttt 8 退出系統(tǒng) endl;cout ttt endl;return _getch();/輸入功能void CIMS:Inpu
36、t()string str3;int ii4;char ch100;system(cls);cout 請(qǐng)輸入課程編號(hào):;cin.getline(ch, 100);str0 = ch;cout 請(qǐng)輸入課程名稱:;cin.getline(ch, 100);str1 = ch;cout 請(qǐng)輸入課程性質(zhì):;cin.getline(ch, 100);str2 = ch;cout 請(qǐng)輸入學(xué)時(shí):;cin.getline(ch, 100);ii0 = atoi(ch);cout 請(qǐng)輸入授課學(xué)時(shí):;cin.getline(ch, 100);ii1 = atoi(ch);ii2 = ii0 - ii1;cout
37、P = NULL;node = h;courseVector.push_back(h);else node-P = new Course(str0, str1, str2, ii0, ii1, ii2, ii3);node = node-P;node-P = NULL;courseVector.push_back(node);_getch();/顯示功能void CIMS:Print()node = h;system(cls);for (; NULL != node; node = node-P) cout 課程編號(hào): getNum() endl;cout 課程名稱: getName() en
38、dl;cout 課程性質(zhì): getNature() endl;cout 學(xué)時(shí): getPeriod() endl;cout 授課學(xué)時(shí): getTeachingHours() endl;cout 實(shí)驗(yàn)學(xué)時(shí): getExperimentalHours() endl;cout 學(xué)分: getCredit() endl endl;if (!h)cout 暫無(wú)數(shù)據(jù)。;_getch();/保存功能void CIMS:Save()ofstream out;vector:iterator It = courseVector.begin();int sign = 0;system(cls);try out.op
39、en(course.txt, ios:out | ios:trunc);if (!out)throw 1;for (; It courseVector.end(); It+) out (*It).getNum() endl;out (*It).getName() endl;out (*It).getNature() endl;out (*It).getPeriod() endl;out (*It).getTeachingHours() endl;out (*It).getExperimentalHours() endl;out (*It).getCredit() endl;sign+;catc
40、h (.) cout 數(shù)據(jù)保存失敗。;if (sign)cout 數(shù)據(jù)保存成功。 endl;out.close();_getch();/刪除功能void CIMS:Delete()string str;char ch100;int sign = 0;LinkList *t = NULL;vector:iterator It = courseVector.begin();node = h;system(cls);cout 請(qǐng)輸入要?jiǎng)h除的課程編號(hào)或者課程名稱:;cin.getline(ch, 100);str = ch;for (; It courseVector.end(); It+) if (
41、str = (*It).getNum() | str = (*It).getName() courseVector.erase(It);sign+;cout P; node = node-P) if (node = h&str = node-getNum() | str = node-getName() h = node-P; /改變頭指針delete node;break;else if (NULL = (node-P-P) & str = (node-P-getNum() | str = (node-P-getName() t = node-P;node-P = NULL;
42、delete t;break;else if (str = (node-P)-getNum() | str = (node-P)-getName() t = node-P;node-P = node-P-P;delete t;break;if (!sign)cout 刪除失敗,該數(shù)據(jù)不存在。;_getch();/修改功能void CIMS:Revise()vector:iterator It = courseVector.begin();string str3;string str1;int ii4;char ch100;int sign = 0;node = h;system(cls);co
43、ut 請(qǐng)輸入需要修改的課程編號(hào)或課程名稱:;cin.getline(ch, 100);str1 = ch;for (; It courseVector.end(); It+) if (str1 = (*It).getNum() | str1 = (*It).getName() system(cls);cout 請(qǐng)輸入課程編號(hào):;cin.getline(ch, 100);str0 = ch;cout 請(qǐng)輸入課程名稱:;cin.getline(ch, 100);str1 = ch;cout 請(qǐng)輸入課程性質(zhì):;cin.getline(ch, 100);str2 = ch;cout 請(qǐng)輸入學(xué)時(shí):;ci
44、n.getline(ch, 100);ii0 = atoi(ch);cout 請(qǐng)輸入授課學(xué)時(shí):;cin.getline(ch, 100);ii1 = atoi(ch);ii2 = ii0 - ii1;cout setNum(str0);(*It)-setName(str1);(*It)-setNature(str2);(*It)-setPeriod(ii0);(*It)-setTeachingHours(ii1);(*It)-setExperimentalHours(ii2);(*It)-setCredit(ii3);sign+;for (; NULL != node; node = node
45、-P) if (!sign)break;if (str1 = node-getNum() | str1 = node-getName() node-setNum(str0);node-setName(str1);node-setNature(str2);node-setPeriod(ii0);node-setTeachingHours(ii1);node-setExperimentalHours(ii2);node-setCredit(ii3);if (sign)cout 修改成功。;elsecout 該數(shù)據(jù)不存在。;_getch();/按學(xué)分查詢功能void CIMS:Find()vector:iterator It = courseVector.begin();int credit = 0;char ch100;int sign = 0;system(cls);cout 請(qǐng)輸入要查詢的學(xué)分課程:;cin.getline(ch, 100);credit = atoi(ch);for (; It courseVector.end(); It+) if (credit = (*It).getCredit() cout 課程編號(hào): getNum() endl;cout 課程名稱: g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年產(chǎn)品科學(xué)定價(jià)策略制定課程
- 2026年客戶價(jià)值精細(xì)化分層管理課
- 2026陜西西安美術(shù)學(xué)院博士教師崗位招聘28人備考題庫(kù)帶答案詳解
- 2026甘肅定西市臨洮縣消防救援大隊(duì)補(bǔ)錄政府專職消防員4人備考題庫(kù)及完整答案詳解
- 2026浙江錢江實(shí)驗(yàn)室有限公司招聘3人備考題庫(kù)及一套參考答案詳解
- 2026青海黃南州同仁市公益性崗位招聘21人備考題庫(kù)完整答案詳解
- 機(jī)械行業(yè)中東天然氣設(shè)備:內(nèi)需出口雙驅(qū)擴(kuò)產(chǎn)“開(kāi)采-處理-儲(chǔ)運(yùn)-應(yīng)用”共赴出海
- 提升護(hù)理同質(zhì)化與個(gè)體化
- 籃球館老板年終總結(jié)(3篇)
- 2022~2023二級(jí)建造師考試題庫(kù)及答案第330期
- 對(duì)外話語(yǔ)體系構(gòu)建的敘事話語(yǔ)建構(gòu)課題申報(bào)書(shū)
- 馬年猜猜樂(lè)(馬的成語(yǔ))打印版
- 精神障礙防治責(zé)任承諾書(shū)(3篇)
- 2025年擔(dān)保公司考試題庫(kù)(含答案)
- 實(shí)施指南(2025)《HG-T3187-2012矩形塊孔式石墨換熱器》
- 2025年江西省高考物理試卷真題(含答案及解析)
- TCOSOCC016-2024信息技術(shù)應(yīng)用創(chuàng)新軟件測(cè)試要求
- 介入病人安全管理
- 人教版PEP五年級(jí)英語(yǔ)下冊(cè)單詞表與單詞字帖 手寫(xiě)體可打印
- 戶口未婚改已婚委托書(shū)
- 家具制造廠家授權(quán)委托書(shū)
評(píng)論
0/150
提交評(píng)論