2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論