vc課程設(shè)計報告--教學(xué)事務(wù)管理系統(tǒng)_第1頁
已閱讀1頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  C++ 課 程 設(shè) 計 實 驗 報 告</p><p><b>  課題名稱</b></p><p>  《教學(xué)事務(wù)管理系統(tǒng)》</p><p><b>  問題陳述</b></p><p>  使用面向?qū)ο笤O(shè)計的系統(tǒng)分析和設(shè)計,設(shè)計出適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),編寫一個信息管理程序,程序的

2、功能是管理學(xué)生基本信息,要求具有添加,刪除,查詢,排序的功能,并具有一定的查詢功能。</p><p><b>  設(shè)計目標(biāo)和設(shè)計任務(wù)</b></p><p>  新學(xué)期開學(xué)時新學(xué)生需要注冊,登記注冊信息。注冊信息包括每個已注冊學(xué)生的班級代號、學(xué)號、姓名、注冊的學(xué)期等。</p><p>  每個學(xué)期開始,學(xué)生可以選課,登記選課信息。選課信息包括已

3、注冊的每個學(xué)生所選的課程,選課僅限該生注冊的學(xué)期。</p><p>  每個學(xué)期考試完畢,需要成績登記。每個學(xué)生所選課程的考核成績,以及此成績的類型。</p><p>  所輸入學(xué)生的信息如果有誤,可以修改。對于退學(xué)、轉(zhuǎn)學(xué)的學(xué)生,刪除有關(guān)資料,對轉(zhuǎn)入的學(xué)生,可以增加其各項信息。</p><p>  學(xué)生信息包括:學(xué)號、班級、院系、姓名、性別、聯(lián)系電話、家庭住址等。&

4、lt;/p><p>  課程信息包括:課程代號、課程名、開課學(xué)期、學(xué)分、課時。</p><p>  成績信息包括:姓名、學(xué)號、班級、課程代號、成績、類別(初修、補(bǔ)考、重修)。</p><p><b>  可提供的查詢功能:</b></p><p>  根據(jù)某些信息(班級、性別、專業(yè))查詢學(xué)生名單;</p>&l

5、t;p>  某門課程的選修者名單(含學(xué)號、成績、成績類型);</p><p>  某個學(xué)生某個課程某學(xué)期的成績單;</p><p>  某個班級某個課程各個學(xué)生的成績單;</p><p>  某個課程選修者中不及格學(xué)生的名單;</p><p>  某個課程的各項信息(課程代號、學(xué)分、課時、開課學(xué)期);</p><p&

6、gt;<b>  解題算法思想</b></p><p>  程序包括11個對話框,主對話框上四個按鈕,分別調(diào)用“注冊信息”、“選課信息”、“成績錄入”及“信息管理和查詢”四個子對話框。</p><p>  其中,在“注冊信息”對話框內(nèi)可以選擇學(xué)生的注冊學(xué)期,點擊“確定”按鈕后,彈出“學(xué)生信息”對話框,此對話框與后面將會提到的“信息管理與查詢”對話框的子對話框之一,“學(xué)

7、生信息”相同,二者可相互共享。在該對話框中點擊“增加”按鈕,將調(diào)用“成員對話框”,用以實現(xiàn)學(xué)生的注冊。信息填寫完整后點擊“確定”,并可依次返回至主對話框。</p><p>  接著,點擊“選課信息登記”,彈出選課信息對話框,在相應(yīng)輸入框或下拉菜單中輸入信息后,點擊所要選的課程(可多選),然后點“確定”,程序可以自行判斷信息輸入是否合理(選課學(xué)生是否已經(jīng)注冊或是否已選擇同樣的課程),如果有誤,則通過消息框提示,并可

8、以再次輸入信息;如果信息合理,則提示選課成功。</p><p>  點擊“返回”回到主對話框,可通過“學(xué)生成績錄入”按鈕調(diào)用“成績錄入”對話框,在此對話框中,可在輸入框或下拉菜單中填寫相關(guān)信息,程序同樣可以自行判斷信息輸入的合理性(輸入的學(xué)生是否已注冊或是否已選擇相應(yīng)課程),如果輸入有誤,則彈出消息框提示,可以再次輸入信息;如果信息合理,則成績錄入成功,新的成績信息會在下方的List Control控件中顯示。也

9、可以直接點擊下方List中的原有信息,程序會自動將該信息中的學(xué)生學(xué)號及相應(yīng)課程代碼填寫入上方控件,方便成績的錄入。所有成績錄入完成后,點擊“完成并保存”按鈕,保存已錄入的信息,同時自動返回至主對話框。</p><p>  如需要查詢相應(yīng)信息,可點擊“信息管理與查詢?nèi)肟凇保{(diào)用“信息管理與查詢”對話框。在這個對話框中,包含三個主要功能按鈕,“學(xué)生信息”,“課程信息”和“成績信息”,分別用以提供相應(yīng)的查詢功能。<

10、;/p><p>  點擊“學(xué)生信息”,進(jìn)入“學(xué)生信息”對話框。在這里可以實現(xiàn)學(xué)生信息的查詢及管理功能。在上方控件中填寫或選擇相應(yīng)信息后,便可以在下方的List Control控件中查看到所要的學(xué)生信息,同時選中相應(yīng)條目后,可以通過右方的“刪除”、“增加”和“修改”按鈕,實現(xiàn)數(shù)據(jù)的管理。而通過下方“載入”和“保存”按鈕,可以載入及保存現(xiàn)有數(shù)據(jù),當(dāng)然也可以載入進(jìn)之前保存的文件,從而實現(xiàn)相同學(xué)生,不同學(xué)期的信息查詢。<

11、;/p><p>  返回至“信息管理與查詢”對話框后,點擊“課程信息”按鈕,在彈出的“課程信息”對話框中,可以查看所有的課程的基本信息,并可以通過“增加課程”按鈕,調(diào)用“增加課程”對話框,填寫新課程信息,從而增加新的課程;在“課程信息”中的控件中選擇某門課程后,也可以通過“查看課程”按鈕調(diào)用“查看課程”對話框,查看到選修該課程的學(xué)生名單,包括學(xué)號,成績等信息,勾選上方控件后可以查看不及格學(xué)生的名單。</p>

12、;<p>  依次返回至“信息管理與查詢對話框”,點擊“成績信息”后,進(jìn)入“成績信息”對話框。在這個對話框中可以在下方的List Control看到所有學(xué)生的成績單,通過上方的Edit控件輸入各個相應(yīng)的篩選條件,便可以在下方看到所有符合條件的學(xué)生的成績單。</p><p>  依次返回至主對話框,點擊“◎”退出程序。</p><p><b>  數(shù)據(jù)結(jié)構(gòu)描述<

13、/b></p><p>  程序數(shù)據(jù)通過兩個節(jié)點類、兩個鏈表類來存儲。</p><p><b>  分別如下:</b></p><p>  class Course</p><p><b>  {</b></p><p><b>  public:</b

14、></p><p>  CString m_CourseNum;//存儲課程代碼</p><p>  CString m_CourseName;//存儲課程名</p><p>  CString m_CourseTerm;//存放課程開課學(xué)期</p><p>  CString m_CoursePoint;//存放課程學(xué)分</p&

15、gt;<p>  CString m_CourseTime;//存放課程課時數(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é)點</p><p>  Course* FindNode(CString CourseNum);//根據(jù)課程代碼查找節(jié)點</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é)號</p><p>

23、;  CString m_Class;//存放班級</p><p>  CString m_Name;//存放學(xué)生姓名</p><p>  CString m_Sex;//存放學(xué)生性別</p><p>  CString m_Dept;//存放專業(yè)</p><p>  CString m_PhoneNo;//存放學(xué)生電話號碼</p>

24、;<p>  CString m_Address;//存放學(xué)生家庭住址</p><p>  CString m_Term;//存放學(xué)生注冊學(xué)期</p><p>  CStudent *next;</p><p>  Course m_Course[20];//用來存放學(xué)生選的各項課程</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é)點數(shù)量</p><p>  CStudentList();</p><p>  void DeleteNode(CStudent *p);//從鏈表中刪除指定節(jié)點</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é)點</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);//向鏈表中加入對應(yīng)課程信息</p><p>  CStudent* FindNode(CString StuNo);//根

31、據(jù)學(xué)號查找節(jié)點</p><p><b>  };</b></p><p>  另外,定義了全局變量:</p><p>  CStudentList m_List;//用來保存學(xué)生的各項數(shù)據(jù)</p><p>  CString Term;//用來存放學(xué)生的注冊學(xué)期,用來將注冊的學(xué)期信息加入鏈表(開始時,AddNode函數(shù)中

32、忘記加入m_Term變量了)</p><p>  CString Num;//為了在查看課程信息時,對話框里的內(nèi)容能夠方便的傳入子對話框中</p><p><b>  測試數(shù)據(jù)</b></p><p>  以下為程序初步運行后保存至文件中的內(nèi)容:</p><p>  2009-201003009527030091許亞

33、軍男 能源與環(huán)境學(xué)院15150688378M9 110100首修高等數(shù)學(xué)5.02009-201048課時111100首修大學(xué)物理3.02009-201048課時112100首修C++2.02009-201048課時111100首修大學(xué)物理3.02009-201048課時2009-201003009533030091周帆男 </p><p>  能源與

34、環(huán)境學(xué)院110M9 111100首修大學(xué)物理3.02009-201048課時11299首修C++2.02009-201048課時2009-201003009520030091雒志強(qiáng)男</p><p>  能源與環(huán)境學(xué)院10086M9 112100首修C++2.02009-201048課時2009-201003009528030091楊宗冰男</p&g

35、t;<p>  能源與環(huán)境學(xué)院119M9 112100首修C++2.02009-201048課時2009-201003000000010091XX女建筑學(xué)院XXXXXX 11055補(bǔ)考高等數(shù)學(xué)5.02009-201048課時1110重修大學(xué)物理3.02009-201048課時112100首修C++2.02009-201048課時</p><

36、;p><b>  運行情況分析</b></p><p>  輸入數(shù)據(jù)測試后,生成包含以上內(nèi)容的文件。整個過程順利,程序可以正確運行,未出現(xiàn)重大錯誤,各項功能也都可以實現(xiàn)。可將生成的文件另外保存,從而錄入新的數(shù)據(jù)(如其他學(xué)期的學(xué)生信息),而在查詢時,可以根據(jù)需要查詢的不同學(xué)期的信息來載入不同的文件。</p><p><b>  設(shè)計小結(jié)</b>

37、;</p><p>  在程序設(shè)計過程中遇到了不少問題,很多都是因為之前的想法沒有完全照顧到全局,使得后來要大幅度的修改代碼,或者用較為復(fù)雜的代碼來彌補(bǔ)。所以,較大的程序設(shè)計,最重要的就是一定要有大局觀,在設(shè)計初期就要將自己的目標(biāo)、思路理清,最好做下記錄,而且做每一步的同時也必須想到后面的很多步,否則到后來很可能會因為之前的缺陷而做不下去,或者不得不放棄某些功能。另外,對于程序編寫本身,我發(fā)現(xiàn)需要注意的部分是文件

38、的保存及載入,這部分的每一個代碼都需要仔細(xì)斟酌,否則很可能出現(xiàn)在編譯時沒問題,而運行時出錯的狀況。而一旦出現(xiàn)這種情況,就必須通過恰當(dāng)?shù)姆椒▽ふ页鰡栴}所在,如注釋某些最近寫的代碼、利用消息框彈出某些變量的值,從而判斷其與設(shè)想是否相符等方法,而不能盲目的查看所有代碼,慢慢找或者索性手足無措了。 </p><p><b>  心得體會</b></p><p>  這是我第一

39、次嘗試做比較大的程序,所以從中學(xué)到的還是很多的。首先,我發(fā)現(xiàn)我對程序設(shè)計還是很感興趣的,很喜歡去鉆研;其次,在設(shè)計及編程的過程中,通過發(fā)現(xiàn)問題、解決問題,我自己總結(jié)出來了不少方法,也發(fā)現(xiàn)了編寫時所必須注意和避免的錯誤,可以讓以后少走彎路。這些都是對于程序設(shè)計本身,此中的心得當(dāng)然有很多,我也無法一一列舉出來,而最重要的是我從其中學(xué)到了一些程序設(shè)計之外的東西。我深切的體會到了全局思想的重要性,無論干什么,基本上都得有這種思想,每走一步都必須

40、想到以后的路,必須想到這一步是為什么而走的,為什么目標(biāo)而服務(wù)的。只有這樣,才能慢慢的穩(wěn)健的走向自己的目標(biāo),不會在某一點上突然發(fā)現(xiàn)自己走不下去了,發(fā)現(xiàn)之前的某一步將自己帶上的崎嶇的路,而不得不往回走去彌補(bǔ)之前的過錯或者干脆拐上另一條不明方向的道路。另外,前進(jìn)的過程中,當(dāng)遇到問題時,必須通過恰當(dāng)?shù)姆椒ㄈグl(fā)現(xiàn)起源,然后解決,而不要盲目的去尋找或者毫無對策了,必要的時候也得求助他人。而在一步步解決問題的過程中,也必須學(xué)會自己總結(jié),以避免以后再次

41、遇上相同錯誤時再走彎路。</p><p>  總之,這次的課程設(shè)計給了我很大幫助,如果有機(jī)會,我便會選擇向這方面去深入發(fā)展。</p><p><b>  參考資料</b></p><p>  1、《C++課程設(shè)計》 朱金付 何鐵軍 朱萍 鄭雪清 徐冬梅 編著 </p><p>  2、《C++程序設(shè)計》 朱金付 主編&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論