大學(xué)生軟件工程C課程設(shè)計(jì) 學(xué)生選課系統(tǒng)_第1頁(yè)
大學(xué)生軟件工程C課程設(shè)計(jì) 學(xué)生選課系統(tǒng)_第2頁(yè)
大學(xué)生軟件工程C課程設(shè)計(jì) 學(xué)生選課系統(tǒng)_第3頁(yè)
大學(xué)生軟件工程C課程設(shè)計(jì) 學(xué)生選課系統(tǒng)_第4頁(yè)
大學(xué)生軟件工程C課程設(shè)計(jì) 學(xué)生選課系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、淮海 工學(xué)院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱(chēng):學(xué)生選課系統(tǒng)指導(dǎo)教師評(píng)語(yǔ):成績(jī):簽名:年 月 日C+課程設(shè)計(jì)報(bào)告第 13頁(yè),共 17頁(yè)1 .課程設(shè)計(jì)目的本課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)重要的實(shí)踐性環(huán)節(jié)之一,是在學(xué)生學(xué)習(xí)完C+程序設(shè)計(jì)課程后進(jìn)行的一次全面的綜合練習(xí)。本課程設(shè)計(jì)的目的和任務(wù):(1)鞏固和加深學(xué)生對(duì) C+課程的基本知識(shí)的理解和掌握;(2)掌握C+編程和程序調(diào)試的基本技能;(3)利用C+進(jìn)行簡(jiǎn)單軟件設(shè) 計(jì)的基本思路和方法;(4)提高運(yùn)用C+解決實(shí)際問(wèn)題的能力;(5)掌握書(shū)寫(xiě)程序設(shè)計(jì)說(shuō)明文檔的 能力。本次課程設(shè)計(jì)利用C+程序設(shè)計(jì)課程中所學(xué)到的編程知識(shí)和編程技巧,完成具有一定難度 和工作

2、量的程序設(shè)計(jì)題目,幫助學(xué)生掌握編程、調(diào)試的基本技能,使學(xué)生能夠獨(dú)立完成所布置的任 務(wù)。2. 課程設(shè)計(jì)任務(wù)與要求:要求:1)設(shè)計(jì)題目、設(shè)計(jì)要求以及系統(tǒng)功能需求分析;2)總體設(shè)計(jì):包括模塊說(shuō)明、模塊結(jié)構(gòu)圖和系統(tǒng)流程圖;3)詳細(xì)設(shè)計(jì):包括主要功能模塊的算法設(shè)計(jì)思路以及對(duì)應(yīng)的工作流程圖;4)源程序代碼及設(shè)計(jì)成果:完整源程序清單和設(shè)計(jì)成果;5)總結(jié):調(diào)試分析過(guò)程描述:包括測(cè)試數(shù)據(jù)、測(cè)試輸出結(jié)果以及對(duì)程序調(diào)試過(guò)程中存在問(wèn)題的思考 (列出主要問(wèn)題的出錯(cuò)現(xiàn)象、出錯(cuò)原因、解決方法及效果等)包括課程設(shè)計(jì)過(guò)程中的學(xué)習(xí)體會(huì)與收 獲、對(duì)C+ffi本次課程設(shè)計(jì)的認(rèn)識(shí)等內(nèi)容.; 任務(wù):學(xué)生選課系統(tǒng)假定有n門(mén)課程,每門(mén)課程有

3、課程編號(hào),課程名稱(chēng),課程性質(zhì),學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī) 學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于15)自由選課。試設(shè)計(jì)一個(gè)選修課程系統(tǒng),使之能提供以下功能:(1)系統(tǒng)以菜單方式工作課程信息和學(xué)生選課信息錄入功能(課程信息用文件保存) 課程信息瀏覽功能(4)查詢(xún)功能按學(xué)分查詢(xún)某門(mén)課程學(xué)生選修情況(可選項(xiàng))3. 課程設(shè)計(jì)說(shuō)明書(shū)概要設(shè)計(jì)、模塊說(shuō)明本系統(tǒng)是針對(duì)高校學(xué)生的選修課程而設(shè)計(jì),通過(guò)本系統(tǒng)高校學(xué)生可以很方便地進(jìn)行自由選課。主要的功能要求是:n門(mén)課程,每門(mén)課程有課程編號(hào),課程名稱(chēng),課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí) 驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要求自由選課。主要要求

4、實(shí)現(xiàn)的功能如下: 課程信息錄入功能:能根據(jù)提示將各課程的相關(guān)信息進(jìn)行輸入并保存; 課程信息瀏覽功能:能將已經(jīng)錄入并保存的信息進(jìn)行瀏覽; 查詢(xún)功能:可根據(jù)不同的查詢(xún)方式查詢(xún)相應(yīng)的課程信息。其中查詢(xún)方式有按學(xué)分查詢(xún) 和按課程性質(zhì)查詢(xún)兩種;由此思路,可設(shè)計(jì)出本系統(tǒng)主要由一個(gè)Class類(lèi)及其五個(gè)成員函數(shù)組成。課題所要求的功能由各 個(gè)函數(shù)分別得以實(shí)現(xiàn)。首先,在 Class類(lèi)內(nèi)定義了一些成員變量,用來(lái)保存課程編號(hào),課程名稱(chēng),課 程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,還對(duì)它的成員變量進(jìn)行了 聲明。然后,在類(lèi)外,通過(guò)作用域運(yùn)算符將類(lèi)內(nèi)聲明的成員函數(shù)定義,以及進(jìn)行相應(yīng)的操作,以實(shí)現(xiàn) 相

5、應(yīng)的功能。主要包括功能要求中的五大功能,即信息輸入、信息瀏覽、按學(xué)分查詢(xún)課程、按課程 性質(zhì)查詢(xún)課程等。最后,在主函數(shù)中設(shè)置目錄顯示。用switch瓜分不同的功能選項(xiàng)。系統(tǒng)根據(jù)用戶(hù)輸入的符號(hào),調(diào)用相應(yīng)的成員函數(shù),完成功能的實(shí)現(xiàn)。、模塊結(jié)構(gòu)圖三、系統(tǒng)流程圖詳細(xì)設(shè)計(jì)各功能模塊設(shè)計(jì)思路及流程圖:各個(gè)功能函數(shù)的具體實(shí)現(xiàn)如下:1.錄入函數(shù)模塊:首先,創(chuàng)建一個(gè)文件輸出流對(duì)象 outfile ,打開(kāi)文件,判斷文件是否存在。通過(guò)while設(shè)一個(gè)無(wú)限循環(huán),當(dāng)給出指定條件時(shí)退出。在循環(huán)中,調(diào)用cout函數(shù)來(lái)提示用戶(hù)輸入相應(yīng)的信息,如課程編號(hào)、名稱(chēng)、課程性質(zhì)、總學(xué)時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)或上機(jī)學(xué)時(shí)、學(xué)分、開(kāi)課學(xué)期等等。將需

6、要的課 程輸入完畢之后,可根據(jù)提示再輸入“ t”,即可返回主菜單,重新進(jìn)行功能的選擇。該流程圖如下:2. 瀏覽函數(shù)模塊:該函數(shù)首先創(chuàng)建了輸入流文件對(duì)象in file,使用語(yǔ)句in file. open (file),然后定義一個(gè)string類(lèi)型的二維數(shù)組,用來(lái)保存從文本內(nèi)讀取的信息,用for循環(huán)保證保存不止一門(mén)課程的信息。最后,cout輸出顯示所有保存的信息。流程圖如下:3. 查找功能,即按學(xué)分查找和按課程性質(zhì)查找,具體的實(shí)現(xiàn)如下:i. 按課程性質(zhì)查找:創(chuàng)建輸入流文件對(duì)象in file,然后定義一個(gè)stri ng類(lèi)型的二維數(shù)組,用來(lái)保存 從文本內(nèi)讀取的信息,比較用戶(hù)輸入的字符和保存的信息中那些

7、課程的性質(zhì)相對(duì)應(yīng),將相應(yīng)的課程 信息進(jìn)行輸出顯示,ii. 按課程學(xué)分查找:如果用戶(hù)輸入的學(xué)分與所保存的信息想對(duì)應(yīng),則將對(duì)應(yīng)的課程信息輸出顯 示。輸入“ 0”可返回主菜。流程圖如下:4. 課程設(shè)計(jì)成果各部驟操作界面如下:進(jìn)入主菜單顯示如下:1.豚嗨話(huà) ST alujl 乩乍;課 來(lái)選1AAA錄入課程信息并保存界面如下:2.號(hào)鬣汴器盹期!第屈EW學(xué)開(kāi)養(yǎng)子課機(jī)分課開(kāi)出息鍵課忌乍學(xué)開(kāi)息鍵船蛍豐入入入入入入入入魯d息 信 匕口 女請(qǐng)選擇操作亠匚 S IV錄應(yīng)稈信息 :委2-O 課陰言息 技3-查竊選穆惜息 次0-退S縈繞2編號(hào);名稱(chēng)!性質(zhì):總學(xué)時(shí)!講授課;實(shí)驗(yàn)課!學(xué)分!開(kāi)課學(xué)期1001 math mus

8、t 64604302012-2013歡廳帶課系統(tǒng)8澆鮒息4. 查詢(xún)課程信息界面如下:- 2 3 0慘慘F- -T -Y-充息-.言自鳥(niǎo) 呼_fl 畐俺餐 很P務(wù)不3選擇查詢(xún)方式二J選澤查詢(xún)方式:校詫程糞也査詢(xún)2-購(gòu)學(xué)疔畫(huà)詢(xún)請(qǐng)輻,課程真型:mist編E I名球1性質(zhì)I總學(xué)時(shí)嚐撐課I買(mǎi)墟課!學(xué)分1開(kāi)課學(xué)期irai nth nust 64G04302012-2B13述僅隆鴨方式:校課槨類(lèi)型g詢(xún)A逓學(xué)務(wù)査詢(xún))0-iS65.返回界面如下:C+課程設(shè)計(jì)報(bào)告第14頁(yè),共 17頁(yè)詢(xún)査 葩課學(xué)回 當(dāng)1 - 哂 j 2 5 D誌息息聞出 - 一A A 4源代碼如下:#in clude #in clude #in

9、clude #in clude using n ames pace std;class Course public:void Course Inpu t();void CourseOut pu t();void Fin d();void Fin d_by_Credit(float);void Fin d_by_Ki nd(stn ng);p rivate:int course num;stri ng course name;stri ng coursek ind;int coursehour;int teachhour;int exp erime nthour;float credit;str

10、i ng courseterm;void Course:Course Inpu t()ofstream outfile(D:f1.txt,ios:out);if(!outfile)C+課程設(shè)計(jì)報(bào)告第16頁(yè),共 17頁(yè)cerr open error! en dl;exit(1);while(1)cout 課程信息n;cout 按任意鍵開(kāi)始信息錄入n;cout 輸入t退出n;if(getch()=t)break;cout course num;cout course name;cout coursek ind;cout coursehour;cout teachhour;cout ex perim

11、e nthour;cout credit;cout courseterm;outfilecourse num course name coursek in d coursehourteachhour ex perime nthour credit courseterme ndl;outfile.close();void Course:CourseOut pu t()ifstream in file(D:f1.txt,ios:i n);if(!i nfile)cout open error!;exit(1);cout編號(hào)I名稱(chēng)I 性質(zhì)I總學(xué)時(shí)I講授課I實(shí)驗(yàn)課I學(xué)分I開(kāi)課學(xué)期n;stri ng a

12、rr808;int l=0;while(!i nfile.eof()C+課程設(shè)計(jì)報(bào)告第18頁(yè),共 17頁(yè)for(i nt j=0;jarrlj;l+;for(i nt i=0;il;i+)for(i nt j=0;j8;j+)cout arrij t;cout en dl;in file.close();void Course:F in d_by_Credit(float temp)ifstream in file(D:f1.txt,ios:i n);if(!i nfile)cout arrl0arrl1arrl2arrl3arrl4arrl5arrl6arrl7;l+;cout編號(hào)I名稱(chēng)I

13、性質(zhì)I總學(xué)時(shí)I講授課I實(shí)驗(yàn)課I學(xué)分I開(kāi)課學(xué)期n;for(i nt i=0;il;i+)if(atof(arri6.c_str()=te mp)C+課程設(shè)計(jì)報(bào)告第19頁(yè),共 17頁(yè)cout arri0 t arri1t arri2t arri3t arri4t arri5tarri6 tarri7e ndl;in file.close();void Course:F in d_by_K in d(stri ng temp)ifstream in file(D:f1.txt,ios:i n);if(!i nfile)cout arrl0arrl1arrl2arrl3arrl4arrl5arrl6a

14、rrl7;l+;cout編號(hào)I名稱(chēng)I 性質(zhì)I總學(xué)時(shí)I講授課I實(shí)驗(yàn)課I學(xué)分I開(kāi)課學(xué)期n;for(i nt i=0;il;i+)if(arri2=te mp)cout arri0 t arri1t arri2t arri3t arri4t arri5tarri6tarri7 endl;void Course:F in d()while(1)cout 選擇查詢(xún)方式: endl;C+課程設(shè)計(jì)報(bào)告第 22頁(yè),共 17頁(yè)請(qǐng)輸入課程類(lèi)型:n;cout 按課程類(lèi)型查詢(xún) endl;cout 按學(xué)分查詢(xún) endl;cout 返回i;switch(i)case 1:cout kind;Fin d_by_Ki nd(

15、ki nd);break;case 2:cout c;Fin d_by_Credit(c);break;if(i=0)break;int mai n()Course COURSE;while(1)cout 歡迎來(lái)到學(xué)生選課系統(tǒng)ncout 請(qǐng)選擇操作n;cout 錄入課程信息n;cout 瀏覽課程信息n;cout 查詢(xún)課程信息n;cout 退出系統(tǒng)n;H.cout i;switch(i)case 1:COURSE.Coursel np ut();break;case 2:COURSE.CourseOut put();break;case 3:COURSE.Fi nd();break;case 0

16、:exit(O);return 0;5.課程設(shè)計(jì)心得這次第一次接觸課程設(shè)計(jì),最初看到題目時(shí),感覺(jué)那五道題目都很難很難,比平時(shí)做的題目大 多了,涉及的知識(shí)點(diǎn)一看就很多。選題目時(shí)我選了第五道一一學(xué)生選課系統(tǒng)。讀了好幾遍題目,才 有了一點(diǎn)點(diǎn)輪廓和框架。還有其中的用到文件操作的部分,感到是最難的。剛開(kāi)始時(shí)也在網(wǎng)上搜索 過(guò)相關(guān)題目,但每個(gè)學(xué)校老師布置的課程設(shè)計(jì)題目畢竟有所不同,再者毫無(wú)思考的去照搬照抄別人 的成果也對(duì)自己毫無(wú)益處。最終我決定一定要自己親手完成這次課程設(shè)計(jì)。經(jīng)過(guò)課程設(shè)計(jì)前兩天的上機(jī)實(shí)踐,對(duì)于這個(gè)題目我構(gòu)建出了初步的程序框架。大一后半學(xué)期都 是在學(xué)習(xí)基于對(duì)象的程序設(shè)計(jì)思想,而這就是在培養(yǎng)我們

17、面對(duì)陌生的全新的程序任務(wù)時(shí),不必為它 表面的復(fù)雜煩瑣而膽怯,我們需要冷靜思考出其中每一部分的構(gòu)造組成及功能,然后分成模塊一步 步去細(xì)分,這樣只需分開(kāi)去鉆研每一小部分的程序內(nèi)容。具體的對(duì)于我選的這道“學(xué)生選課系統(tǒng)”題目,我現(xiàn)在本子上列出來(lái)了程序需要完成的功能一 學(xué)生課程信息的錄入、瀏覽、查詢(xún)等功能以及系統(tǒng)界面的設(shè)計(jì),而這決定著程序中共有成員函數(shù) 的設(shè)計(jì)。然后根據(jù)“課程”的特點(diǎn)賦予它編號(hào)、名稱(chēng)、學(xué)分等性質(zhì),這就是需要在程序的類(lèi)中所命 名的私有成員數(shù)據(jù)。類(lèi)設(shè)計(jì)完之后,就等于說(shuō)框架已經(jīng)擺在面前,要對(duì)每一部分進(jìn)行詳細(xì)設(shè)計(jì)。對(duì) 于課程信息的錄入和瀏覽,其實(shí)考察的是對(duì)文件的保存和打開(kāi)的應(yīng)用。錄入模塊先創(chuàng)建一個(gè)文件輸 出流對(duì)象outfile ,打開(kāi)文件,判斷文件是否存在。通過(guò) while設(shè)一個(gè)無(wú)限循環(huán),當(dāng)給出指定條件時(shí) 退出。在循環(huán)中,調(diào)用cout函數(shù)來(lái)提示用戶(hù)輸入相應(yīng)的信息,如課程編號(hào)、名稱(chēng)、課程性質(zhì)、總學(xué) 時(shí)、授課學(xué)時(shí)、實(shí)驗(yàn)或上機(jī)學(xué)時(shí)、學(xué)分、開(kāi)課學(xué)期等等。二瀏覽模塊與之類(lèi)似,是創(chuàng)建的輸入流對(duì)象 infile ;在課程查詢(xún)模塊中,如按課程性質(zhì)查詢(xún),先創(chuàng)建輸入流文件對(duì)象in file,然后定義一個(gè)stri ng類(lèi)型的二維數(shù)組,用來(lái)保存從文本內(nèi)讀取的信息,比 較用戶(hù)輸入的字符和保存的信息中那些課程的性質(zhì)相

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論