版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、河南城建學院C+程序設計課程設計設計題目:學生選修課程系統(tǒng)設計指導教師:郭力爭劉榮輝薛冰專業(yè):數學與應用數學學生班級:1314101學生學號:131410111學生姓名:劉亞欣同組人:李菲馬小川數理學院2013年6月目錄1、課題目標 .11.1設計要求 .1.1.2選題背景 .1.1.3課題意義 .1.1.4功能需求分析 .2.1.5系統(tǒng)功能分析 .2.2、程序具體實現(xiàn)原理 .32.1總體方案 .3.2.1.1開發(fā)平臺 .3.2.1.2基本原理 .4.2.1.3數據結構 .4.2.1.4類的 UML 圖.5.2.1.5模塊說明 .6.2.2程序各個功能說明 .7.2.2.1 程序結構 .7.2
2、.2.2 課程設計要求的實現(xiàn) .9.3、調試報告 .143.1遇到的問題及解決辦法 .1.43.2程序調試及運行結果 .1.5.4、總結 .195、參考文獻 .19附錄 .201、課題目標1.1設計要求假定有 n 門課程,每門課程有課程編號,課程名稱,課程性質,總學時, 授課學時,實驗或上機學時,學分,開課學期等信息,學生可按要求(如總學 分不得少于 10)自由選課。試設計一個選修課程系統(tǒng),使之能提供以下功能:1.系統(tǒng)以菜單方式工作;2.課程信息錄入功能(課程信息用文件保存) ;3.課程信息瀏覽功能;4.查詢功能(至少一種查詢方式:按學分查詢、按課程性質查詢) ;5.學生選修課程。1.2選題背
3、景當今時代是飛速發(fā)展的信息時代。在各行各業(yè)中離不開信息處理,這正是 計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境。計算機的最到好處在于利用它能夠 進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的 提高了其安全性。尤其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行 信息管理與信息管理系統(tǒng)的開發(fā)密切相關,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本 系統(tǒng)就是為了管理好學生選課信息而設計的。隨著高校的多樣全面發(fā)展,學生的人數和課程的種類急速增加,傳統(tǒng)的選 課管理模式已經無法滿足當前的實際需求,學生選課作為一種信息資源的集散 地,包含很多的信息數據的管理。由于數據繁多,容易丟失,且不易查找
4、。并 且數據處理手工操作工作量大,出錯率高,出錯后不易更改,造成各種不便, 總的來說,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的學校有計算機,但是尚 未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是學生選課管 理信息系統(tǒng)的開發(fā)基本環(huán)境背景。1.3課題意義基于以上問題,我們認為有必要建立一個學生選課管理信息系統(tǒng),使學生 選課信息管理工作規(guī)范化、系統(tǒng)化、程序化,以避免學生選課管理的隨意性, 提高信息處理的速度和準確性, 能夠及時、準確、 有效的查詢和修改選課情況系統(tǒng)實現(xiàn)后,極大的方便對學生進行選課和選課后班級的安排管理工作, 學生選課信息的管理。避免在安排課程信息的滯后,減少信息交流的繁瑣過
5、程 及其帶來的額外開銷。促進高校教育的計算機信息化進程,提高高校的工作效 率。并且對于系統(tǒng)本身而言,具有更高的使用性、安全性。能夠滿足學生選課, 以及學生對選課信息的管理。同時,通過該課程設計,我們可以達到把 C+程序設計理論知識更加的鞏固 加深,加強動手操作能力與實踐能力,學以致用,與現(xiàn)實生活中的應用充分的 結合起來,也實現(xiàn)了知識的活學活用。1.4 功能需求分析一個完善的學生選課管理信息系統(tǒng)能夠極大的提高學生選課信息的管理效 率,具有檢索迅速,查找方便,可靠性高,存儲量大,更新快,壽命長,成本 低等優(yōu)點。本系統(tǒng)主要可以實現(xiàn)以下任務目標:1、 系統(tǒng)可以準確的記錄和查詢學生、老師以及所開設的課程
6、的基本信息2、 學生登錄系統(tǒng)后可以根據本專業(yè)制定的教學計劃進行選課操作,可以查 詢個人的基本信息性能需求: 本學生信息管理系統(tǒng)要能夠抵御用戶可能的各種操作,包括修改、更新、 刪除等操作,以保證軟件的可行性、穩(wěn)定性、健壯性,同時要對數據進行檢驗, 保證數據有效性,可操作性,安全性。同時普通用戶登錄只有瀏覽的權限。系 統(tǒng)的非功能性需求:實用性:系統(tǒng)以用戶需求為目標,以方便用戶為原則。根據用戶實際的 需求情況,度身訂造一套先進的局域網數據傳輸,從用戶角度出發(fā)盡可能的方 便用戶使用,滿足基本的用戶需要,成為學校等通用的網絡軟件。高可靠性:一個實用的系統(tǒng)同時必須是可靠的,本設計通過合理而先進的 網絡設計
7、以及軟、硬件的優(yōu)化選型,可保證系統(tǒng)數據傳輸的正確性。高安全性:在設計中,將充分利用網絡軟、硬件提供的各種安全措施,既 可以保證用戶共享資源,同時也可保證關鍵數據的安全性??蓴U展性及靈活性:系統(tǒng)的設計以方便未來業(yè)務的擴展和系統(tǒng)擴充為目標, 系統(tǒng)要求能夠方便的升級,充分保護系統(tǒng)的投資。智能型:系統(tǒng)在設計時,充分考慮系統(tǒng)運行的智能性,在使用系統(tǒng)一段時 間后,系統(tǒng)可以適應于任何局域網。1.5 系統(tǒng)功能分析根據設計要求,我們認為該系統(tǒng)應該包括: ( 1)課程信息輸入功能;(2)課 程信息瀏覽功能;(3)按學分查詢功能;(4)按課程性質查詢功能; (5)數據 保存功能;(6)正確退出系統(tǒng)功能。其中對于課程
8、信息輸入功能可以有兩個實 現(xiàn)途徑:直接在系統(tǒng)中根據提示輸入;根據系統(tǒng)的功能在相應文件下建立 text 文件直接輸入課程信息。對于其余四個功能則主要是供學生選課使用。本 程序將課程性質統(tǒng)一規(guī)定為考試和考查兩種;數據保存功能是為了保證在系統(tǒng) 中直接輸入的課程信息順利保存到 text 文件。2、程序具體實現(xiàn)原理2.1總體方案首先根據設計要求,我們定義了三個類:Class類,Control類,Menu類。Class類用來存放一系列課程的信息,以及一些獲取信息的get函數;Control類是用來定義選課類的操作屬性,從Control類里面來判斷并實現(xiàn)用戶所需要執(zhí) 行的動作;Menu類定義了菜單的操作,其
9、中包括顯示菜單,顯示提示信息,獲 取用戶從鍵盤輸入的信息并執(zhí)行。針對Class類的定義,首先我們定義了一系列的設置相關課程信息的公有函 數,用來將輸入的內容傳給私有函數,其次定義了常函數,目的是為了防止數 據被其它函數調用時發(fā)生改變,同時將學分定義為浮點型,范圍在010之間。針對Menu類的定義,我們先定義了一個獲取鍵盤輸入的函數getlnput(),用于獲取數據,接著定義了界面友好的顯示目錄函數,使得用戶進行操作更加 方便,最后定義了一系列的顯示提示信息函數。為了使得在今后的修改中更加 清楚方便,我們將這些函數獨立分開。針對Control類的定義,因為它的目的是用于判斷并實現(xiàn)用戶所要執(zhí)行的操
10、 作,是學生選課系統(tǒng)的核心。一切從start()函數開始,通過switch語句判斷按下了哪個數字鍵,然后執(zhí)行對應的操作,在文件錄入這一方面,我定義了一個 initlalization()函數,首先建立一個輸入流,打開文件,將用戶錄入的課程信息 放入到變量中,再由變量放入文件中。其中的公有函數即課程設計所要求的功 能部分:添加選課,瀏覽選課,查詢選課,保存文件。私有函數我們用了鏈表, classList,用來一條一條記錄課程信息,方便添加瀏覽以及查詢。兩種查詢方法 都運用了迭代器的功能,迭代器的作用相當于指針,從鏈表的頭部一個個指向 鏈表的末尾,用于瀏覽以及查詢部分。最后把迭代器指向的對象每個字
11、段寫入 文件中,文件名定義為classSave保存到程序的當前目錄下。最后主函數的實現(xiàn),代碼十分簡單,先定義一個Control類的對象,ControlClass,再通過 controlClass.start()啟動整個程序。2.1.1開發(fā)平臺操作系統(tǒng):Win7開發(fā)軟件:Mirosoft Visual C+ 6.02.1.2基本原理2.1.3數據結構表1數據結構表數據名稱數據類型解釋classNumstri ng課程編號classNamestri ng課程名稱classPropertiesstri ng課程性質totalClassNumberInt總課時curre ntClassNumberIn
12、t授課學時expClassNumberInt上級或實驗學時creditDouble學分rightTermstri ng開課學期2.1.4類的UML圖表2 Class類的UML圖Class-ClassNum: stri ng -ClassName: stri ng -ClassProperties: stri ng -TotalClassNumber: int -curre ntClassNumber: int -ExpClassNumber: int -credit: double -rightTerm: stri ng +setClassNum(classNumTemp: stri ng)
13、+setClassName(classNameTemp: stri ng) +setClassProperties(classPropertiesTemp: string) +setTotalClassNumber(totalClassNumberTemp: int) +setCurre ntClassNumber(curre ntClassNumber: int) +setExpClassNumber(expClassNumberTemp: int) +setCredit(credit: double) +setRightTerm(rightTermTemp: stri ng) +getCl
14、assNum():stri ng +getClassName():stri ng +getTotalClassNumber():i nt vvcon st+getCurre ntClassNumber():i nt vvcon st+getExpClassNumber():i nt c on st+getCredit() :double +getRightTerm() :stri ng表3 Menue類的UML圖Menue+getl nput():char +showMe nu(): void +clearScree n(): void +pauseScree n(): void +showA
15、ddClass():void +showBrowseClass():void +showSearchByCredit():void +showSearchByClassProperties():void +showAddClassNum():void vstatic+showAddClassName():void vstatic+showAddClassProperties():void +showAddCurre ntClassNumber():void +showAddExpClassNumber():void static+showLoadi ngSavi ng():void stati
16、c+showSuccessedSav in g():void +showEachClassl nfo(Class classTemp) :void +quit():void表4 Control類的UML圖Con trol-classList: list+Co ntrol()+Start():void+i nitlalizatio n( ):void+addClass():void+quit():void+showAIICIass():void+searchByCredit():void+searchByClassProperties():void+saveClass():bool2.1.5模塊
17、說明(1)課程信息錄入。課程信息錄入應包括:課程編號、課程名稱、課程性 質、總學時、授課學時、實驗學時、學分、開課信息八個成員,為錄入以上信 息, 首 先使用 setClassNum、 setClassName、 setClassProperties、 setTotalClassNumbe、setCurrentClassNumbe、setExpCIassNumbe、setCredit、 setRightTerm輸出提示信息,其次使用addClass函數添加課程信息。(2)課程信息瀏覽。該功能主要是讀取所有的課程信息,在程序中首先通過 getClassNum、getClassName getCl
18、assProperties getTotalClassNumber、 getCurrentClassNumber getExpCIassNumbe、getCredit、getRightTerm 八個函數 讀取課程信息的相關信息,設置為靜態(tài)成員函數,防止已錄入的數據被篡改; 其次使用showclass showeachclassinfo函數顯示全部課程信息。(3)按學分查詢。首先使用 getCredit函數得到課程的學分信息,其次使用searchByCredit函數輸出“按學分查詢”的提示信息;接著使用showAddCredit 函數輸出“請輸入學分”的提示信息;最后使用showSearchBy
19、Credit函數將查詢結果輸出。(4)按課程性質查詢。按照課程性質的查詢實現(xiàn)了根據課程的性質對課程的 查詢,程序主要通過、showAddCIassProperties、setClassProperties、 getClassProperties searchByCIassProperties showSearchByCIassProperties 來 實現(xiàn)對課程的查詢,同樣全部設置為靜態(tài)成員函數,已經錄入的數據部能被篡 改,根據提示輸入就能得到想要查詢的內容。(5) 存儲信息。選擇存儲信息選項之后用 showLoadi ngSav ing函數進行數據 的存儲,顯示正在存儲數據。數據存儲完畢后用
20、showSuccessedSavingS數顯示 輸出數據存儲完畢。(6) 退出系統(tǒng)。一個完整的系統(tǒng)應該包括退出系統(tǒng), 在程序中使用 quit 函數, 在按數字鍵6后給出提示信息“press any key to continue提示使用者按任意鍵 退出系統(tǒng)。2.2程序各個功能說明2.2.1 程序結構將class類的屬性和行為進行圭寸裝:1.Class的圭寸裝class Class定義了課程類的一些屬性public:void setClassNum(string classNumTemp);/ 課程編號void setClassName(string classNameTemp);/ 課程名稱v
21、oid setClassProperties(stri ng classPropertiesTemp);/ 課程性質void setTotalClassNumber(int totalClassNumberTemp);/ 總學時void setCurrentClassNumber(int currentClassNumber);/ 授課學時void setExpClassNumber(int expClassNumberTemp);/ 實驗或上機學時void setCredit(double credit);/ 學分void setRightTerm(string rightTermTemp)
22、;/ 開課信息/ 錄入函數設為常量函數防止信息被篡改string getClassNum() const;/ 課程編號錄入stri ng getClassName() con st;/ 課程名稱錄入stri ng getClassProperties() con st;/ 課程性質錄入int getTotalClassNumber() const;/ 總學時錄入int getCurrentClassNumber() const;/ 授課學時錄入int getExpClassNumber() const;/ 實驗或上機學時錄入double getCredit() const;/ 學分錄入 str
23、ing getRightTerm() const;/ 開課信息錄入/ class 類的私有成員private:stri ng classNum;/ 課程編號stri ng className;/ 課程名稱stri ng classProperties;/ 課程性質int totalClassNumber;/ 總學時int currentClassNumber;/ 授課學時int expCIassNumber;/上級或實驗學時double credit;/ 學分string rightTerm;/ 開課學期;2.Menu 類的封裝/menu 類主要實現(xiàn)系統(tǒng)的主界面class Menupublic
24、:char static getInput();void static showMenu();/ 顯示菜單void static clearScreen();/ 清屏void static pauseScreen();/ 暫停void static showAddClass();/ 顯示添加課程信息的提示語void static showBrowseClass();/void static showSearchByCredit();/ 顯示按學分查詢的提示語void static showSearchByClassProperties(); 顯示按課程性質查詢的提示語void static s
25、howAddClassNum();/ 顯示輸入課程編號的的提示語 void static showAddClassName();/ 顯示增加課程名稱的提示語 void static showAddClassProperties();/ 顯示輸入課程性質的提示語 void static showAddTotalClassNumber();/ 顯示輸入總學時的提示語 void static showAddCurrentClassNumber();/ 顯示授課學時的提示語 void static showAddExpClassNumber();/ 顯示輸入實驗學時的提示語 void static s
26、howAddCredit();/ 顯示輸入學分的提示語 void static showAddRightTerm();/ 顯示開課學期的提示語 void static showLoadingSaving();/ 顯示正在存儲信息的提示語 void static showSuccessedSaving();/ 顯示信息已成功存儲 void static quit();/ 退出系統(tǒng)函數void static showEachClassInfo(Class classTemp);/ 調用 class 類中的對象顯示信息 ;3 .Control 類的封裝class Control/ 定義了選課類的操作
27、屬性public:Control()void start();void initIalization();void addClass();void quit() ;/ 退出函數void showAllClass();void searchByCredit();void searchByClassProperties();bool saveClass();private:list classList;2.2.2課程設計要求的實現(xiàn)/Class 類中各成員函數的實現(xiàn)void Class:setClassNum(string classNumTemp) this-classNum = classNum
28、Temp;/ 設置課程編號的實現(xiàn)void Class:setClassName(string classNameTemp) this-className = classNameTemp;/ 設置課程名稱的實現(xiàn)void Class:setClassProperties(string classPropertiesTemp) this-classProperties = classPropertiesTemp;/ 設置課程性質的實現(xiàn)void Class:setTotalClassNumber(int totalClassNumberTemp) this-totalClassNumber = tot
29、alClassNumberTemp;/ 設置總學時的實現(xiàn)void Class:setCurrentClassNumber(int currentClassNumber) this-currentClassNumber = currentClassNumber;/ 設置授課學時的實現(xiàn)void Class:setExpClassNumber(int expClassNumberTemp) this-expClassNumber = expClassNumberTemp;/ 設置上機或實驗學時的實現(xiàn)void Class:setCredit(double credit)this-credit = cr
30、edit;/ 設置課程學分的實現(xiàn)void Class:setRightTerm(string rightTermTemp) this-rightTerm = rightTermTemp;/ 設置開課學期的實現(xiàn)string Class:getClassNum() const/ 設置為常函數防止數據改變 return this-classNum;string Class:getClassName() constreturn this-className;string Class:getClassProperties() constreturn this-classProperties;int Cl
31、ass:getTotalClassNumber() const return this-totalClassNumber;int Class:getCurrentClassNumber() const return this-currentClassNumber;int Class:getExpClassNumber() const return this-expClassNumber;double Class:getCredit() constreturn this-credit; string Class:getRightTerm() constreturn this-rightTerm;
32、 /Menu 類各成員函數的實現(xiàn) char Menu: getInput() / 獲取輸入函數金融數學考試大三下 char key = cin.get();void Menu: clearScreen() system(cls);void Menu: pauseScreen()/ 暫停system(pause);void Menu: showAddClass() / 顯示增添課程信息 cout 請輸入要添加的課程編號,課程名稱,課程性質,總學 時,授課學時,實驗學時,學分,開課學期等信息 endl;void Menu: showBrowseClass()cout 所有課程的信息為 endl;v
33、oid Menu: showSearchByCredit()cout 按照學分查詢的結果為: endl;void Menu: showSearchByClassProperties()cout 按照課程性質查詢的結果為: endl;void Menu: showAddClassNum()cout n 請輸入課程編號 endl;void Menu: showAddClassName()cout 請輸入課程名稱 endl;void Menu: showAddClassProperties() cout 請輸入課程性質 endl; void Menu: showAddTotalClassNumber
34、() cout 請輸入總學時 endl;void Menu: showAddCurrentClassNumber() cout 請輸入授課學時 endl;void Menu: showAddExpClassNumber()cout 請輸入實驗或上機學時 endl;void Menu: showAddCredit()cout 歡迎您進入學生選課管理系統(tǒng) endl;cout * endl;cout endl;cout 1 課程信息錄入 endl;cout 2 課程信息瀏覽功能 endl;cout 3 根據學分查詢 endl;cout 4 按課程性質查詢 endl;cout 5 存儲信息 endl;
35、cout 6 退出系統(tǒng) endl;cout endl;cout 請輸入操作對應的序號 endl;return key;void Menu: showMenu()cout * endl;,判cout 請輸入學分 endl;void Menu: showAddRightTerm()cout 請輸入開課學期 endl;void Menu: showLoadingSaving()cout 正在存儲數據 endl;void Menu: showSuccessedSaving()cout 數據存儲完畢 endl;void Menu: quit()coutpress any key to continue;
36、void Menu: showEachClassInfo(Class classTemp)cout 課程編號 : classTemp.getClassNum() ;cout 課程名稱 : classTemp.getClassName();cout 課程性質 : classTemp.getClassProperties() ; cout 總學時 : classTemp.getTotalClassNumber();cout 授課學時 : classTemp.getCurrentClassNumber() ; cout 實驗學時 : classTemp.getExpClassNumber();cou
37、t 課程學分 : classTemp.getCredit();cout 開課學期 : classTemp.getRightTerm();cout endl;cout addClass();cin.get();cin.get();break;case 2:Menu:clearScreen();Menu:showBrowseClass();this-showAllClass();Menu:pauseScreen(); break;case 3:Menu:clearScreen(); this-searchByCredit(); Menu:pauseScreen(); break;case 4:Me
38、nu:clearScreen(); this-searchByClassProperties(); Menu:pauseScreen();break;case 6:Menu:clearScreen();this-quit();Menu:pauseScreen(); break;case 5:Menu:showLoadingSaving();if (this-saveClass()Menu:showSuccessedSaving();Menu:pauseScreen();Menu:pauseScreen();default: break;void Control: initIalization(
39、)ifstream ifs;/ 文件輸入流 ifs 相當于建立一個文件 ifs.open(classSave.txt,ios_base:in);if (!ifs)Menu:pauseScreen();return;Class classTemp;/class 類的一個對象 classTemp if (ifs.is_open()/ 系統(tǒng)內置函數 判斷文件是否打開 string classNum( );/ 初始化 string className( );string classProperties( );int totalClassNumber(0);int currentClassNumber(
40、0);int expClassNumber(0);double credit(0.0);string rightTerm( );while(!ifs.eof()ifs classNum className classProperties totalClassNumber currentClassNumber expClassNumber credit rightTerm;/ 從文件讀取的內容放到對應的變量里面 classTemp.setClassNum(classNum); classTemp.setClassName(className); classTemp.setClassPropert
41、ies(classProperties); classTemp.setTotalClassNumber(totalClassNumber); classTemp.setCurrentClassNumber(currentClassNumber); classTemp.setExpClassNumber(expClassNumber); classTemp.setCredit(credit); classTemp.setRightTerm(rightTerm);classList.push_back(classTemp); 在末尾添加一個變量ifs.close();void Control: a
42、ddClass()/添加例如選課等操作Class classTemp;string classNum();string className();string classProperties();int totalClassNumber(0);int currentClassNumber(0);int expClassNumber(0);double credit(0.0);string rightTerm();Menu:showAddClassNum();cin classNum;classTemp.setClassNum(classNum);Menu:showAddClassName();c
43、in className;classTemp.setClassName(className); Menu:showAddClassProperties();cin classProperties; classTemp.setClassProperties(classProperties); Menu:showAddTotalClassNumber();cin totalClassNumber; classTemp.setTotalClassNumber(totalClassNumber); Menu:showAddCurrentClassNumber();cin currentClassNum
44、ber;classTemp.setCurrentClassNumber(currentClassNumber);Menu:showAddExpClassNumber();cin expClassNumber;classTemp.setExpClassNumber(expClassNumber);Menu:showAddCredit();cin credit;classTemp.setCredit(credit);Menu:showAddRightTerm();cin rightTerm;classTemp.setRightTerm(rightTerm); classList.push_back
45、(classTemp);void Control: quit()/退出函數exit(1);void Control: showAllClass()list:iterator iter = classList.begin();int number=classList.size();for(int i=0; i=number-2;i+)Menu:showEachClassInfo(*iter);iter+;3、調試報告3.1 遇到的問題及解決辦法程序最開始運行時, 7 條信息錄入完畢后輸出程序本該結束但并沒有結束, 而是參照第 6 條的數據局部復制了一條數據從而影響了按照學分查詢的結果。 組員之間
46、經過細致的檢查和多次的嘗試均未能改變程序的結果,自主不能解決 時選擇請教老師解答疑難。在郭老師的幫助下,重新編寫程序 B 代替原有的程 序 A 。程序 B:list:iterator iter = classList.begin();int number=classList.size();for(int i=0; i=number-2;i+)Menu:showEachClassInfo(*iter);iter+;程序 A :for (list:iterator iter = classList.begin();iter!= classList.end(); +iter) Menu:showEa
47、chClassInfo(*iter); 功詢 白真柱摹 亠H H互孟:家12 12 3 3 4 4 5 5 6 6在比較這兩段程序后,我們發(fā)現(xiàn)如果將程序B中for(int i=0; i=number-2;i+)中的i的范圍改成i=number-1,那么和程序A的效果是完全 一樣的。但是,從正向思維出發(fā)我們理解為i的上限可以是number-1,為達到系統(tǒng)要求,我們采取符合我們要求的B程序。在這個過程中,我們認為C+的強大功能在于實現(xiàn)市級的操作問題,所編制的程序應該為了解決問題而存在,更 應該和實際相符。解決完上述問題后,程序運行后的結果中,7條信息沒有空隙使結果看起來極為擁擠,讓程序的使用者感到
48、非常不舒服。為解決這一瑕疵,我們在輸出 條信息的完整數據后重復這樣的一句代碼:cout quit();Men u:pauseScree n();break;關于結果文本框的顯示背景顏色,我們想要選擇更符合人們審美和視覺傾向的藍色,為此,在程序的最后添加這樣一句語句:system(color 1A);使得程序運行結果的背景顏色由原本的黑色轉變?yōu)槲覀兿胍乃{色。至此,已基本完 成程序的設計,大致完成我們想要的運行結果。以上四點就是我們小組在學生選課系統(tǒng)中所遇到的問題,以及面對不同的 問題做出的解決方案。3.2程序調試及運行結果CUmin(stratarDe5ktnpCUmin(stratarDe5
49、ktnp莊曲番5&5&盅0?0?分JTJT幄序ynynF FH HI I gCppgCpp .PVP-歡迎腔避八字生選評管理乎統(tǒng)圖1系統(tǒng)界面誕勲 監(jiān)入總學時性質圖2課程信息錄入功能的實現(xiàn)信息錄入完畢后選擇數字5選項進行數據存儲得到圖三5 5 * * CC XDociiaeikl:XDociiaeikl: s s UEHIUEHII I SetSet t t irigirig A AI II IJBXJBXnstnst i i #1#1 DTDT l l臭面 SkSk 姥艾件夫fclufclu e-M-e-M- exeexe- -TT u u rr n_R=n_R= u u u u n_wn_w
50、uuy y T*T* * * * u u * ixix inin irTiirTijojo m m n nm-m-誹功詢 入普直 息貝令性息練 信莓齋摞 毘嚀曙霑亠1 1 2 2 4 4 b b 6 6按數字鍵1后出現(xiàn)課程信息錄入界面,根據提示依次輸入相關數據,得到 下圖二。| |: C:C: DodcuMenlrsDodcuMenlrs andand S SE EHI:XnHI:Xn匡EX.jlLdtokEX.jlLdtok:L:rij.L:rij.:fitfit Xci:LXci:L桌面 IDmbuCppIDmbuCpp l.l. es:ees:e請輸.人揀作對應的序號睛接鉉意挺地鋼.-圖
51、3存儲信息功能的實現(xiàn)輻入實臉武上機學時怦頃課律95信息為實驗學時:加課程騙號:松驗密臉単引鱗嚴計爭橫:數學分析縣翱霽下報瀚型上總學時:e e 課程編號咱畫: : W W課程編號呵 實驗空町油賓叢=公共關系龍彗:潛理論垛程性匝匕考查 開俅學覇:大三下人二下總字時M0M0總學時=b=b投農學比:toto保栓編號油囲 實驗孚屮W W課程編號:力0606去驗壬葉汨粼高竽數學傑程性顧匕若查 開傑孕期二大三下垛程性質二考試 開慄學期:大一上下總學時:3 30 0總學時:辭披俠學肘:2U2U調用text文件按數字鍵2選擇瀏覽所有課程信息輸出所有課程信息,得到 圖四。:人 *Cs*Cs XDocmenlzsX
52、Docmenlzs andand Seli:Seli: ingsj!Ldla3.M3LiB!-tTa.tingsj!Ldla3.M3LiB!-tTa.t orJ&orJ& W W 8f8fVDebngVc-M.VDebngVc-M. eseese情技芒憊鍵繼續(xù)-圖4課程信息瀏覽功能的實現(xiàn)按數字鍵3選擇按學分查詢,輸入學分為4查詢到學分為4的所有課程的 課程信息得到圖五。圖5按學分查詢功能的實現(xiàn)按數字鍵4選擇按課程性質查詢,輸入課程性質為考試查詢到課程性質是 考試的所有課程的課程信息得到圖六。圖6按課程性質查詢功能的實現(xiàn)最后選擇數字鍵5退出學生選課系統(tǒng),得到圖七圖7退出系統(tǒng)功能的實現(xiàn)4、心得體會
53、雖然僅僅是幾天的課堂上機時間,然而我們在課下也為這個課程設計做出 很多的努力,尤其是在緊張的復習周,這足以證明著我們組每一個人對待 C+ 課程設計的態(tài)度端正立場堅定。作為非計算機專業(yè)的學生,我對 C+勺了解僅限于皮毛,如若僅憑個人能 力,這么短的時間內我想無論如何都是做不出這樣一個我自己看來還算是可以 的數據庫設計的。能在規(guī)定的時間內完成各個步驟要感謝組里的每一位組員, 我們分工明確并且認真完成自己的任務才得以實現(xiàn)了高效率。首先,我把自己 的思路告訴我的組員,他們在肯定我的想法的同時為那些不太完美的地方提出 的不一樣的見解,可謂是每一個人的 good 結合在一起就可以形成 perfect 。真
54、 正程序運行的時候出現(xiàn)各種問題,需要反反復復的修改,最后在老師的幫助下 我們基本上得到了想要的結果。在和同學交流的時候我發(fā)現(xiàn)我的專業(yè)知識并不 是那么的牢固,我發(fā)揮自己優(yōu)勢的同時向別人學習以彌補自己的不足,正所謂 三人行必有我?guī)?。一個人不可能十全十美,但我想要接近完美的自己。三個人的合作不可能是完美無缺毫無瑕疵的,我們雖有著相同的目標,但 在其中卻也有過分歧有過爭吵有過埋怨,更多的還是三人同心協(xié)力團結一致把 題目完成。往前翻看到那些親手碼上去的文字和截圖后的圖片還能感受到某一 時刻階段性完工時自信滿滿的心理情緒,某一段因為一個小問題卡住的無奈與 思考,某一部分因為意見不合爭吵的面紅耳赤。所有這些
55、小心情都是我在這次 課程設計途中收獲的小幸福,我們面臨著一年以后的畢業(yè),即使是吵架的時間 也會覺得難能可貴,本科階段也許這樣的合作機會已經不多了,這期間的種種 情感都必然我的心理財富。我可能不會走上C+語言程序設計的專業(yè)道路,可能不會讓其成為我的職 業(yè),但計算機已經成為現(xiàn)代社會職業(yè)人不可或缺的一種工具,這段時間的知識 儲備所具有的能量也許會在未來的某一天顯現(xiàn)出來。我很感謝能有機會學習這 樣一門課程經歷這樣一次課程設計,并且我在用心對待認真去做,把它當成一 件事情去做,這種心理的成就感我覺得很滿足。5、參考文獻1 .鄭莉,董淵,何江舟.C+語言程序設計M.北京:清華大學出版社,2010.2 .譚
56、浩強.C+程序設計M.北京:清華大學出版社,20043 .陳維興.C+面向對象程序設計第三版M.北京:清華大學出版社,20104 .李師賢.C+程序設計實驗程序M.北京:高等教育出版社附錄源程序:#include #include #include #include #include #include using namespace std;/class 類的封裝class Class定義了課程類的一些屬性public:void setClassNum(string classNumTemp);/ 課程編號 void setClassName(string classNameTemp);/ 課
57、程名稱 void setClassProperties(stri ng classPropertiesTemp);/ 課程性質 void setTotalClassNumber(int totalClassNumberTemp);/ 總學時 void setCurrentClassNumber(int currentClassNumber);/ 授課學時 void setExpClassNumber(int expClassNumberTemp);/ 實驗或上機學時 void setCredit(double credit);/ 學分void setRightTerm(string right
58、TermTemp);/ 開課信息/ 錄入函數設為常量函數防止信息被篡改string getClassNum() const;/ 課程編號錄入 stri ng getClassName() con st;/ 課程名稱錄入 stri ng getClassProperties() con st;/ 課程性質錄入 int getTotalClassNumber() const;/ 總學時錄入 int getCurrentClassNumber() const;/ 授課學時錄入 int getExpClassNumber() const;/ 實驗或上機學時錄入 double getCredit() c
59、onst;/ 學分錄入 string getRightTerm() const;/ 開課信息錄入/ class 類的私有成員private:stri ng classNum;/ 課程編號stri ng className;/ 課程名稱stri ng classProperties;/ 課程性質int totalClassNumber;/ 總學時int currentClassNumber;/ 授課學時int expCIassNumber;/上級或實驗學時 double credit;/ 學分 string rightTerm;/ 開課學期;/class類中各成員函數的實現(xiàn)void Class:
60、setClassNum(string classNumTemp)this-classNum = classNumTemp;/ 設置課程編號的實現(xiàn) void Class:setClassName(string classNameTemp) this-className = classNameTemp;/ 設置課程名稱的實現(xiàn) void Class:setClassProperties(string classPropertiesTemp) this-classProperties = classPropertiesTemp;/ 設置課程性質的實現(xiàn)void Class:setTotalClassNu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 濕地修復工程監(jiān)測與數據分析2025版合同2篇
- 二零二五版物流倉儲設施建設與運營合同2篇
- 二零二五年度節(jié)能工廠租賃合同編制要則3篇
- 二零二五版旅游度假區(qū)基礎設施建設項目包工合同范本2篇
- 二零二五年度飛機銷售合同附帶飛行員培訓及考核協(xié)議3篇
- 二零二五年度公寓裝修及設施配套合同3篇
- 二零二五版出口貨物安全檢驗合同規(guī)定與流程3篇
- 二零二五年度汽車租賃合同解除與終止范本匯編3篇
- 二零二五版汽車維修擔保書之擔保函與擔保合同3篇
- 二零二五版別墅窗簾設計、安裝及智能家居集成合同3篇
- 第三十六屆全國電力行業(yè)風力發(fā)電運行檢修職業(yè)技能競賽基礎理論題庫附有答案
- 2024年紀檢監(jiān)察綜合業(yè)務知識題庫含答案(研優(yōu)卷)
- 科室醫(yī)療質量與安全管理小組工作制度
- 中華民族共同體概論課件第五講大一統(tǒng)與中華民族共同體初步形成(秦漢時期)
- 初二生地會考試卷及答案-文檔
- 私營企業(yè)廉潔培訓課件
- 施工單位值班人員安全交底和要求
- 中國保險用戶需求趨勢洞察報告
- 數字化轉型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
評論
0/150
提交評論