版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> C++ 課 程 設(shè) 計(jì) 實(shí) 驗(yàn) 報(bào) 告</p><p><b> 課題名稱</b></p><p> 《教學(xué)事務(wù)管理系統(tǒng)》</p><p><b> 問題陳述</b></p><p> 使用面向?qū)ο笤O(shè)計(jì)的系統(tǒng)分析和設(shè)計(jì),設(shè)計(jì)出適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),編寫一個(gè)信息管理程序,程序的
2、功能是管理學(xué)生基本信息,要求具有添加,刪除,查詢,排序的功能,并具有一定的查詢功能。</p><p><b> 設(shè)計(jì)目標(biāo)和設(shè)計(jì)任務(wù)</b></p><p> 新學(xué)期開學(xué)時(shí)新學(xué)生需要注冊(cè),登記注冊(cè)信息。注冊(cè)信息包括每個(gè)已注冊(cè)學(xué)生的班級(jí)代號(hào)、學(xué)號(hào)、姓名、注冊(cè)的學(xué)期等。</p><p> 每個(gè)學(xué)期開始,學(xué)生可以選課,登記選課信息。選課信息包括已
3、注冊(cè)的每個(gè)學(xué)生所選的課程,選課僅限該生注冊(cè)的學(xué)期。</p><p> 每個(gè)學(xué)期考試完畢,需要成績登記。每個(gè)學(xué)生所選課程的考核成績,以及此成績的類型。</p><p> 所輸入學(xué)生的信息如果有誤,可以修改。對(duì)于退學(xué)、轉(zhuǎn)學(xué)的學(xué)生,刪除有關(guān)資料,對(duì)轉(zhuǎn)入的學(xué)生,可以增加其各項(xiàng)信息。</p><p> 學(xué)生信息包括:學(xué)號(hào)、班級(jí)、院系、姓名、性別、聯(lián)系電話、家庭住址等。&
4、lt;/p><p> 課程信息包括:課程代號(hào)、課程名、開課學(xué)期、學(xué)分、課時(shí)。</p><p> 成績信息包括:姓名、學(xué)號(hào)、班級(jí)、課程代號(hào)、成績、類別(初修、補(bǔ)考、重修)。</p><p><b> 可提供的查詢功能:</b></p><p> 根據(jù)某些信息(班級(jí)、性別、專業(yè))查詢學(xué)生名單;</p>&l
5、t;p> 某門課程的選修者名單(含學(xué)號(hào)、成績、成績類型);</p><p> 某個(gè)學(xué)生某個(gè)課程某學(xué)期的成績單;</p><p> 某個(gè)班級(jí)某個(gè)課程各個(gè)學(xué)生的成績單;</p><p> 某個(gè)課程選修者中不及格學(xué)生的名單;</p><p> 某個(gè)課程的各項(xiàng)信息(課程代號(hào)、學(xué)分、課時(shí)、開課學(xué)期);</p><p&
6、gt;<b> 解題算法思想</b></p><p> 程序包括11個(gè)對(duì)話框,主對(duì)話框上四個(gè)按鈕,分別調(diào)用“注冊(cè)信息”、“選課信息”、“成績錄入”及“信息管理和查詢”四個(gè)子對(duì)話框。</p><p> 其中,在“注冊(cè)信息”對(duì)話框內(nèi)可以選擇學(xué)生的注冊(cè)學(xué)期,點(diǎn)擊“確定”按鈕后,彈出“學(xué)生信息”對(duì)話框,此對(duì)話框與后面將會(huì)提到的“信息管理與查詢”對(duì)話框的子對(duì)話框之一,“學(xué)
7、生信息”相同,二者可相互共享。在該對(duì)話框中點(diǎn)擊“增加”按鈕,將調(diào)用“成員對(duì)話框”,用以實(shí)現(xiàn)學(xué)生的注冊(cè)。信息填寫完整后點(diǎn)擊“確定”,并可依次返回至主對(duì)話框。</p><p> 接著,點(diǎn)擊“選課信息登記”,彈出選課信息對(duì)話框,在相應(yīng)輸入框或下拉菜單中輸入信息后,點(diǎn)擊所要選的課程(可多選),然后點(diǎn)“確定”,程序可以自行判斷信息輸入是否合理(選課學(xué)生是否已經(jīng)注冊(cè)或是否已選擇同樣的課程),如果有誤,則通過消息框提示,并可
8、以再次輸入信息;如果信息合理,則提示選課成功。</p><p> 點(diǎn)擊“返回”回到主對(duì)話框,可通過“學(xué)生成績錄入”按鈕調(diào)用“成績錄入”對(duì)話框,在此對(duì)話框中,可在輸入框或下拉菜單中填寫相關(guān)信息,程序同樣可以自行判斷信息輸入的合理性(輸入的學(xué)生是否已注冊(cè)或是否已選擇相應(yīng)課程),如果輸入有誤,則彈出消息框提示,可以再次輸入信息;如果信息合理,則成績錄入成功,新的成績信息會(huì)在下方的List Control控件中顯示。也
9、可以直接點(diǎn)擊下方List中的原有信息,程序會(huì)自動(dòng)將該信息中的學(xué)生學(xué)號(hào)及相應(yīng)課程代碼填寫入上方控件,方便成績的錄入。所有成績錄入完成后,點(diǎn)擊“完成并保存”按鈕,保存已錄入的信息,同時(shí)自動(dòng)返回至主對(duì)話框。</p><p> 如需要查詢相應(yīng)信息,可點(diǎn)擊“信息管理與查詢?nèi)肟凇?,調(diào)用“信息管理與查詢”對(duì)話框。在這個(gè)對(duì)話框中,包含三個(gè)主要功能按鈕,“學(xué)生信息”,“課程信息”和“成績信息”,分別用以提供相應(yīng)的查詢功能。<
10、;/p><p> 點(diǎn)擊“學(xué)生信息”,進(jìn)入“學(xué)生信息”對(duì)話框。在這里可以實(shí)現(xiàn)學(xué)生信息的查詢及管理功能。在上方控件中填寫或選擇相應(yīng)信息后,便可以在下方的List Control控件中查看到所要的學(xué)生信息,同時(shí)選中相應(yīng)條目后,可以通過右方的“刪除”、“增加”和“修改”按鈕,實(shí)現(xiàn)數(shù)據(jù)的管理。而通過下方“載入”和“保存”按鈕,可以載入及保存現(xiàn)有數(shù)據(jù),當(dāng)然也可以載入進(jìn)之前保存的文件,從而實(shí)現(xiàn)相同學(xué)生,不同學(xué)期的信息查詢。<
11、;/p><p> 返回至“信息管理與查詢”對(duì)話框后,點(diǎn)擊“課程信息”按鈕,在彈出的“課程信息”對(duì)話框中,可以查看所有的課程的基本信息,并可以通過“增加課程”按鈕,調(diào)用“增加課程”對(duì)話框,填寫新課程信息,從而增加新的課程;在“課程信息”中的控件中選擇某門課程后,也可以通過“查看課程”按鈕調(diào)用“查看課程”對(duì)話框,查看到選修該課程的學(xué)生名單,包括學(xué)號(hào),成績等信息,勾選上方控件后可以查看不及格學(xué)生的名單。</p>
12、;<p> 依次返回至“信息管理與查詢對(duì)話框”,點(diǎn)擊“成績信息”后,進(jìn)入“成績信息”對(duì)話框。在這個(gè)對(duì)話框中可以在下方的List Control看到所有學(xué)生的成績單,通過上方的Edit控件輸入各個(gè)相應(yīng)的篩選條件,便可以在下方看到所有符合條件的學(xué)生的成績單。</p><p> 依次返回至主對(duì)話框,點(diǎn)擊“◎”退出程序。</p><p><b> 數(shù)據(jù)結(jié)構(gòu)描述<
13、/b></p><p> 程序數(shù)據(jù)通過兩個(gè)節(jié)點(diǎn)類、兩個(gè)鏈表類來存儲(chǔ)。</p><p><b> 分別如下:</b></p><p> class Course</p><p><b> {</b></p><p><b> public:</b
14、></p><p> CString m_CourseNum;//存儲(chǔ)課程代碼</p><p> CString m_CourseName;//存儲(chǔ)課程名</p><p> CString m_CourseTerm;//存放課程開課學(xué)期</p><p> CString m_CoursePoint;//存放課程學(xué)分</p&
15、gt;<p> CString m_CourseTime;//存放課程課時(shí)數(shù)</p><p> int m_CourseScore;//存放學(xué)生課程成績</p><p> CString m_CourseType;//存放學(xué)生成績類型</p><p> Course *next;</p><p> Course()//
16、默認(rèn)構(gòu)造函數(shù)</p><p><b> {</b></p><p> m_CourseNum="";</p><p> m_CourseName="";</p><p> m_CourseTerm="";</p><p> m_
17、CoursePoint="";</p><p> m_CourseTime="";</p><p> m_CourseScore=0;</p><p> m_CourseType="";</p><p> next=NULL;</p><p><
18、b> }</b></p><p> Course(CString CourseNum,CString CourseName,CString CourseTerm,CString CoursePoint,CString CourseTime);</p><p><b> };</b></p><p> class Cou
19、rseList</p><p><b> {</b></p><p><b> public:</b></p><p> Course * head;</p><p> CourseList();</p><p> void DeleteNode(Course *p
20、);//用來刪除存放指定課程的鏈表</p><p> void SaveToFile(const char *name);//將課程信息保存至文件</p><p> void LoadFromFile(const char *name);//從文件中導(dǎo)入課程信息</p><p> void ReleaseList();//釋放鏈表</p><
21、;p> void AddNode(CString CourseNum,CString CourseName,CString CourseTerm,CString CoursePoint,CString CourseTime);//向鏈表中添加節(jié)點(diǎn)</p><p> Course* FindNode(CString CourseNum);//根據(jù)課程代碼查找節(jié)點(diǎn)</p><p>&
22、lt;b> };</b></p><p> class CStudent</p><p><b> {</b></p><p><b> public:</b></p><p> CString m_StudentNo;//存放學(xué)號(hào)</p><p>
23、; CString m_Class;//存放班級(jí)</p><p> CString m_Name;//存放學(xué)生姓名</p><p> CString m_Sex;//存放學(xué)生性別</p><p> CString m_Dept;//存放專業(yè)</p><p> CString m_PhoneNo;//存放學(xué)生電話號(hào)碼</p>
24、;<p> CString m_Address;//存放學(xué)生家庭住址</p><p> CString m_Term;//存放學(xué)生注冊(cè)學(xué)期</p><p> CStudent *next;</p><p> Course m_Course[20];//用來存放學(xué)生選的各項(xiàng)課程</p><p> int s;//存放學(xué)生
25、所選課程的數(shù)量</p><p> CStudent();</p><p> CStudent(CString CourseNum,CString StudentNum,int Score,CString ScoreType);</p><p> CStudent(CString StudentNo,CString Class,CString Name,CStr
26、ing Sex,CString Dept,CString PhoneNo,CString Address);</p><p><b> };</b></p><p> class CStudentList</p><p><b> {</b></p><p><b> public
27、:</b></p><p> CStudent * head;//頭指針</p><p> int n;//節(jié)點(diǎn)數(shù)量</p><p> CStudentList();</p><p> void DeleteNode(CStudent *p);//從鏈表中刪除指定節(jié)點(diǎn)</p><p> void
28、SaveToFile(const char *name);//將鏈表內(nèi)容存入文件</p><p> void LoadFromFile(const char *name);//從文件載入鏈表內(nèi)容</p><p> void ReleaseList();//釋放鏈表</p><p> void AddNode(CString StudentNo,CString
29、Class,CString Name,CString Sex,CString Dept,CString PhoneNo,CString Address);//向?qū)W生鏈表中添加節(jié)點(diǎn)</p><p> void AddScoreNode(CString CourseNum,CString StudentNum,int Score,CString ScoreType);//向鏈表中加入成績信息</p>
30、<p> void AddCourseNode(CString StudentNo,CString CourseName, CString CourseNum,CString CourseTerm CString CoursePoint, CString CourseTime);//向鏈表中加入對(duì)應(yīng)課程信息</p><p> CStudent* FindNode(CString StuNo);//根
31、據(jù)學(xué)號(hào)查找節(jié)點(diǎn)</p><p><b> };</b></p><p> 另外,定義了全局變量:</p><p> CStudentList m_List;//用來保存學(xué)生的各項(xiàng)數(shù)據(jù)</p><p> CString Term;//用來存放學(xué)生的注冊(cè)學(xué)期,用來將注冊(cè)的學(xué)期信息加入鏈表(開始時(shí),AddNode函數(shù)中
32、忘記加入m_Term變量了)</p><p> CString Num;//為了在查看課程信息時(shí),對(duì)話框里的內(nèi)容能夠方便的傳入子對(duì)話框中</p><p><b> 測(cè)試數(shù)據(jù)</b></p><p> 以下為程序初步運(yùn)行后保存至文件中的內(nèi)容:</p><p> 2009-201003009527030091許亞
33、軍男 能源與環(huán)境學(xué)院15150688378M9 110100首修高等數(shù)學(xué)5.02009-201048課時(shí)111100首修大學(xué)物理3.02009-201048課時(shí)112100首修C++2.02009-201048課時(shí)111100首修大學(xué)物理3.02009-201048課時(shí)2009-201003009533030091周帆男 </p><p> 能源與
34、環(huán)境學(xué)院110M9 111100首修大學(xué)物理3.02009-201048課時(shí)11299首修C++2.02009-201048課時(shí)2009-201003009520030091雒志強(qiáng)男</p><p> 能源與環(huán)境學(xué)院10086M9 112100首修C++2.02009-201048課時(shí)2009-201003009528030091楊宗冰男</p&g
35、t;<p> 能源與環(huán)境學(xué)院119M9 112100首修C++2.02009-201048課時(shí)2009-201003000000010091XX女建筑學(xué)院XXXXXX 11055補(bǔ)考高等數(shù)學(xué)5.02009-201048課時(shí)1110重修大學(xué)物理3.02009-201048課時(shí)112100首修C++2.02009-201048課時(shí)</p><
36、;p><b> 運(yùn)行情況分析</b></p><p> 輸入數(shù)據(jù)測(cè)試后,生成包含以上內(nèi)容的文件。整個(gè)過程順利,程序可以正確運(yùn)行,未出現(xiàn)重大錯(cuò)誤,各項(xiàng)功能也都可以實(shí)現(xiàn)??蓪⑸傻奈募硗獗4?,從而錄入新的數(shù)據(jù)(如其他學(xué)期的學(xué)生信息),而在查詢時(shí),可以根據(jù)需要查詢的不同學(xué)期的信息來載入不同的文件。</p><p><b> 設(shè)計(jì)小結(jié)</b>
37、;</p><p> 在程序設(shè)計(jì)過程中遇到了不少問題,很多都是因?yàn)橹暗南敕]有完全照顧到全局,使得后來要大幅度的修改代碼,或者用較為復(fù)雜的代碼來彌補(bǔ)。所以,較大的程序設(shè)計(jì),最重要的就是一定要有大局觀,在設(shè)計(jì)初期就要將自己的目標(biāo)、思路理清,最好做下記錄,而且做每一步的同時(shí)也必須想到后面的很多步,否則到后來很可能會(huì)因?yàn)橹暗娜毕荻霾幌氯?,或者不得不放棄某些功能。另外,?duì)于程序編寫本身,我發(fā)現(xiàn)需要注意的部分是文件
38、的保存及載入,這部分的每一個(gè)代碼都需要仔細(xì)斟酌,否則很可能出現(xiàn)在編譯時(shí)沒問題,而運(yùn)行時(shí)出錯(cuò)的狀況。而一旦出現(xiàn)這種情況,就必須通過恰當(dāng)?shù)姆椒▽ふ页鰡栴}所在,如注釋某些最近寫的代碼、利用消息框彈出某些變量的值,從而判斷其與設(shè)想是否相符等方法,而不能盲目的查看所有代碼,慢慢找或者索性手足無措了。 </p><p><b> 心得體會(huì)</b></p><p> 這是我第一
39、次嘗試做比較大的程序,所以從中學(xué)到的還是很多的。首先,我發(fā)現(xiàn)我對(duì)程序設(shè)計(jì)還是很感興趣的,很喜歡去鉆研;其次,在設(shè)計(jì)及編程的過程中,通過發(fā)現(xiàn)問題、解決問題,我自己總結(jié)出來了不少方法,也發(fā)現(xiàn)了編寫時(shí)所必須注意和避免的錯(cuò)誤,可以讓以后少走彎路。這些都是對(duì)于程序設(shè)計(jì)本身,此中的心得當(dāng)然有很多,我也無法一一列舉出來,而最重要的是我從其中學(xué)到了一些程序設(shè)計(jì)之外的東西。我深切的體會(huì)到了全局思想的重要性,無論干什么,基本上都得有這種思想,每走一步都必須
40、想到以后的路,必須想到這一步是為什么而走的,為什么目標(biāo)而服務(wù)的。只有這樣,才能慢慢的穩(wěn)健的走向自己的目標(biāo),不會(huì)在某一點(diǎn)上突然發(fā)現(xiàn)自己走不下去了,發(fā)現(xiàn)之前的某一步將自己帶上的崎嶇的路,而不得不往回走去彌補(bǔ)之前的過錯(cuò)或者干脆拐上另一條不明方向的道路。另外,前進(jìn)的過程中,當(dāng)遇到問題時(shí),必須通過恰當(dāng)?shù)姆椒ㄈグl(fā)現(xiàn)起源,然后解決,而不要盲目的去尋找或者毫無對(duì)策了,必要的時(shí)候也得求助他人。而在一步步解決問題的過程中,也必須學(xué)會(huì)自己總結(jié),以避免以后再次
41、遇上相同錯(cuò)誤時(shí)再走彎路。</p><p> 總之,這次的課程設(shè)計(jì)給了我很大幫助,如果有機(jī)會(huì),我便會(huì)選擇向這方面去深入發(fā)展。</p><p><b> 參考資料</b></p><p> 1、《C++課程設(shè)計(jì)》 朱金付 何鐵軍 朱萍 鄭雪清 徐冬梅 編著 </p><p> 2、《C++程序設(shè)計(jì)》 朱金付 主編&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)事務(wù)管理系統(tǒng)vfp課程設(shè)計(jì)
- vc++課程設(shè)計(jì)報(bào)告---球員管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---校園日常事務(wù)管理系統(tǒng)
- vc++課程設(shè)計(jì)報(bào)告--圖書館管理系統(tǒng)
- vc++課程設(shè)計(jì)-- 餐飲管理系統(tǒng)
- vc++課程設(shè)計(jì)報(bào)告
- vc--課程設(shè)計(jì)報(bào)告
- 事務(wù)管理系統(tǒng)
- vc++課程設(shè)計(jì)報(bào)告-小型超市商品管理系統(tǒng)
- vc++課程設(shè)計(jì)報(bào)告-小型超市商品管理系統(tǒng)
- vc++軟件課程設(shè)計(jì)報(bào)告
- vc++火車票信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- vc++課程設(shè)計(jì)報(bào)告--對(duì)抗游戲
- vc++課程設(shè)計(jì)報(bào)告----對(duì)抗游戲
- [vc++畢設(shè)]c++課程設(shè)計(jì)報(bào)告(人事管理系統(tǒng))
- vc++課設(shè)課程設(shè)計(jì)報(bào)告
- 個(gè)人事務(wù)管理信息系統(tǒng)設(shè)計(jì)開題報(bào)告
- vc++課程設(shè)計(jì)--工資管理
- vc++課程設(shè)計(jì)--工資管理
- VC++課程設(shè)計(jì)--工資管理.doc
評(píng)論
0/150
提交評(píng)論