面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)生選課系統(tǒng)課程設(shè)計(jì)報(bào)告.doc
《面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)生選課系統(tǒng)課程設(shè)計(jì)報(bào)告.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)生選課系統(tǒng)課程設(shè)計(jì)報(bào)告.doc(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、課程設(shè)計(jì)(論文)編 號(hào): B04931053學(xué) 號(hào): 201240450110 課 程 設(shè) 計(jì)教 學(xué) 院計(jì)算機(jī)學(xué)院課程名稱高級(jí)語(yǔ)言程序設(shè)計(jì)題 目學(xué)生選課系統(tǒng)專 業(yè)軟件工程班 級(jí)12級(jí)軟件工程(1)班姓 名明平耀同組人員王天灝、徐威鵬、張澤坤、黃文瑞指導(dǎo)教師謝晉2013年12月15日 目 錄一概述2二總體方案設(shè)計(jì)3三詳細(xì)設(shè)計(jì)4四程序的調(diào)試與運(yùn)行結(jié)果說(shuō)明5五課程設(shè)計(jì)總結(jié)6參考文獻(xiàn)7一 概述1. 課程設(shè)計(jì)的目的1理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方法。2培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題的能力。3培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題等科學(xué)技術(shù)人員應(yīng)
2、具有的素質(zhì)。4掌握從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問(wèn)題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。2. 課程設(shè)計(jì)的要求需要的基本知識(shí)與技能,尚未掌握的知識(shí)點(diǎn),需要查閱相關(guān)資料。教師對(duì)本題目所提出的要求等。(1) 需求分析1.1任務(wù)要求 制做學(xué)生選課系統(tǒng),共包括課程信息和學(xué)生信息兩部分。課程信息包括:課程編碼、課程名稱、適用專業(yè)、課程類型(必修、限選、必選、實(shí)踐、學(xué)習(xí))、學(xué)分、學(xué)時(shí)、主講教師等。學(xué)生信息管理,學(xué)生選課管理(學(xué)生選課學(xué)分總數(shù)有一定范圍),學(xué)生可以對(duì)課程進(jìn)行查詢、瀏覽,選完課后可以退選、重選,并可以按學(xué)號(hào)、姓名進(jìn)行查詢和統(tǒng)計(jì)。要求:1.源文件采用多文
3、件的工程結(jié)構(gòu)。 2.數(shù)據(jù)儲(chǔ)存采用文件形式。 3.標(biāo)準(zhǔn)的C輸入輸出。 4.功能完善,適當(dāng)?shù)淖⑨尅?5.關(guān)于文件的內(nèi)容要自學(xué)。1.2系統(tǒng)功能需求分析1.為存儲(chǔ)課程信息,需要定義一個(gè)結(jié)構(gòu)體類型,成員包括課程編碼、課程名稱、適用專業(yè)、課程類型、學(xué)分、學(xué)時(shí)、主講教師,所選人數(shù)等等,并建立鏈表,定義該結(jié)構(gòu)體類型的指針,用于指向各節(jié)點(diǎn);2.為存儲(chǔ)學(xué)生信息,需要定義一個(gè)結(jié)構(gòu)體類型,成員包括學(xué)生編碼、學(xué)生姓名、所選課程編碼、所選課程學(xué)分和等等,并建立鏈表,定義該結(jié)構(gòu)體類型的指針,用于指向各節(jié)點(diǎn);3.對(duì)于課程信息和學(xué)生信息,可以選擇從鍵盤輸入也可選擇從文件中打開(kāi)原來(lái)存盤的信息,并對(duì)他們分別建立添加、刪除、瀏覽、查
4、詢等功能的子函數(shù),完成相應(yīng)的功能,對(duì)程序?qū)崿F(xiàn)模塊化。這其中要用到對(duì)鏈表的刪除、插入、增加等知識(shí)。刪除包括課程刪除和學(xué)生信息刪除,刪除時(shí)用一結(jié)構(gòu)體指針指向鏈表的第一個(gè)結(jié)點(diǎn),檢查該節(jié)點(diǎn)的值是否等于輸入的要?jiǎng)h除的課程編號(hào)或?qū)W生學(xué)號(hào),若相等就刪除,不相等則后移指針,直至表尾。插入時(shí)也要先找到相應(yīng)結(jié)點(diǎn),再添加。查詢功能要設(shè)置按照學(xué)生姓名、學(xué)生編號(hào)等多種方式。4.學(xué)生選課是要先輸入自己的學(xué)號(hào),如果在已經(jīng)輸入的學(xué)生信息中找不到此學(xué)號(hào),則提示需要先輸入自己的信息。如找到了自己的學(xué)號(hào),則可以進(jìn)行選課。在選課之前要先對(duì)所有的課程信息進(jìn)行瀏覽。選課有一定的學(xué)分限制,超過(guò)相應(yīng)的學(xué)分(這里設(shè)置的是10個(gè)學(xué)分),系統(tǒng)就會(huì)
5、顯示可以選滿的信息。此系統(tǒng)還可以實(shí)現(xiàn)刪除所選課程的功能,設(shè)計(jì)思路與選課功能相似。5為實(shí)現(xiàn)存儲(chǔ)功能,需用到文件的相關(guān)函數(shù),打開(kāi)文件,將添加、修改或刪除的信息存入磁盤中。6.實(shí)現(xiàn)易于使用者理解和使用的友好界面。 二 總體方案設(shè)計(jì)1.具體的設(shè)計(jì)思路:程序的要求是設(shè)計(jì)學(xué)生選修課管理系統(tǒng),對(duì)選修課程能夠進(jìn)行錄入和修改操作等,要求有菜單界面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設(shè)置一個(gè)管理員登陸選項(xiàng),通過(guò)該選項(xiàng)進(jìn)入管理員界面,進(jìn)行選修課的錄入和修改操作,最后將錄入的課程保存到相應(yīng)的文件中。然后定義各種函數(shù)的功能包括查看,查詢,刪除等。另一個(gè)為學(xué)生登陸界面,該界面學(xué)生可以進(jìn)行課程選擇和瀏覽查詢等操作。
6、在進(jìn)行該操作之前需要對(duì)管理員保存的文件進(jìn)行讀取,然后對(duì)其中的內(nèi)容進(jìn)行查詢等,在學(xué)生選好課程以后,可以將其選好的課程保存于相應(yīng)的文件中,以便下次進(jìn)行修改。通過(guò)函數(shù)的層層調(diào)用來(lái)實(shí)現(xiàn)程序的邏輯結(jié)構(gòu)。中間通過(guò)文件的打開(kāi)和關(guān)閉實(shí)現(xiàn)對(duì)文件內(nèi)部所包含的數(shù)據(jù)的操作。2 概要設(shè)計(jì)2.1系統(tǒng)總體設(shè)計(jì)框架 對(duì)程序進(jìn)行模塊化可以使整個(gè)程序清晰明了。對(duì)課程信息和學(xué)生信息建立從文件中輸入、從鍵盤中輸入、添加、刪除、查詢和瀏覽的功能,其各個(gè)子函數(shù)中運(yùn)用鏈表儲(chǔ)存數(shù)據(jù)。選課管理建立學(xué)生選課、推選、查詢、瀏覽的功能,其各個(gè)子函數(shù)中運(yùn)用鏈表儲(chǔ)存數(shù)據(jù)。從主函數(shù)開(kāi)始執(zhí)行,依次調(diào)用各個(gè)子函數(shù),并運(yùn)用文件的相關(guān)知識(shí)將信息進(jìn)行存盤。2.2系
7、統(tǒng)功能模塊圖學(xué)生選課系統(tǒng)課程信息從文件錄入從鍵盤錄入增加刪除學(xué)生信息從文件錄入從鍵盤錄入增加刪除選 課退 課信息存儲(chǔ)3 詳細(xì)設(shè)計(jì)3.1功能模塊設(shè)計(jì)思路主要功能模塊的算法設(shè)計(jì)思路如下:1、 課程信息錄入函數(shù)(void load()從鍵盤錄入(void zhang( ))I 定義指向結(jié)構(gòu)體變量的指針;II 從頭指針指向的結(jié)構(gòu)體開(kāi)始依次錄入結(jié)構(gòu)體中所包含的各個(gè)成員;III直到輸入的結(jié)構(gòu)體成員的編號(hào)為0,錄入結(jié)束從文件錄入(void zhang1( ))I 分別定義指向結(jié)構(gòu)體變量的指針和指向文件的指針;II 輸入文件的路徑,打開(kāi)文件,若沒(méi)有找到則有提示;III 將文件中的信息依次讀出,最后結(jié)構(gòu)體的指針
8、為2、 課程信息管理(void managementc())增加課程信息(void insert(struct course *incourse))I 定義指向結(jié)構(gòu)體變量的指針;II 輸入要增加的課程編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到鏈表的最后;III 輸入課程結(jié)構(gòu)體各個(gè)成員的信息,使最后一個(gè)結(jié)構(gòu)體指針值為刪除課程信息(void delc(int num1))I 定義指向結(jié)構(gòu)體變量的指針;II 輸入要增加的課程編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到課程編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體;III 將其刪除,其前一個(gè)的結(jié)構(gòu)體指針指向其后一個(gè)結(jié)構(gòu)體3、 學(xué)生信息錄入函數(shù)(void input()從
9、鍵盤錄入(void putin( ))I 定義指向結(jié)構(gòu)體變量的指針;II 從頭指針指向的結(jié)構(gòu)體開(kāi)始依次錄入結(jié)構(gòu)體中所包含的各個(gè)成員;III 直到輸入的結(jié)構(gòu)體成員的編號(hào)為0,錄入結(jié)束從文件錄入(void putin2( ))I 分別定義指向結(jié)構(gòu)體變量的指針和指向文件的指針;II 輸入文件的路徑,打開(kāi)文件,若沒(méi)有找到則有提示;III 將文件中的信息依次讀出,最后結(jié)構(gòu)體的指針為4、 學(xué)生信息管理(void managements())增加學(xué)生信息(void inserts(struct student * incouse))I 定義指向結(jié)構(gòu)體變量的指針;II 輸入要增加的學(xué)生編號(hào),從頭指針指向的結(jié)構(gòu)
10、體依次向后,直到鏈表的最后;III 輸入學(xué)生結(jié)構(gòu)體各個(gè)成員的信息,使最后一個(gè)結(jié)構(gòu)體指針值為刪除學(xué)生信息(void dels(int num2))I 定義指向結(jié)構(gòu)體變量的指針;II 輸入要增加的學(xué)生編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到學(xué)生編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體;III 將其刪除,其前一個(gè)的結(jié)構(gòu)體指針指向其后一個(gè)結(jié)構(gòu)體5、 學(xué)生選課管理(void elective())學(xué)生選課(void elect())I 分別定義指向課程和學(xué)生結(jié)構(gòu)體變量的指針;II 輸入要選課的學(xué)生的編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到學(xué)生編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體,如不存在則顯示要錄入學(xué)生信息;III 輸入要
11、選課程的編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到課程編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體;IV 在學(xué)生結(jié)構(gòu)體對(duì)應(yīng)的所選課程編號(hào)中更改信息,所選學(xué)分中加上相應(yīng)分值,課程結(jié)構(gòu)體所選人數(shù)中相應(yīng)加一學(xué)生退課(void back())I 分別定義指向課程和學(xué)生結(jié)構(gòu)體變量的指針;II 輸入要退課的學(xué)生的編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到學(xué)生編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體,如不存在則顯示要錄入學(xué)生信息;III 輸入要退課程的編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到課程編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體;IV 在學(xué)生結(jié)構(gòu)體對(duì)應(yīng)的所選課程編號(hào)中更改信息,所選學(xué)分中減去相應(yīng)分值,課程結(jié)構(gòu)體所選人數(shù)中相應(yīng)減一6、 信息瀏覽和
12、保存(void into())課程信息瀏覽(void listc())I 定義指向結(jié)構(gòu)體變量的指針;II從頭指針指向的結(jié)構(gòu)體依次向后,將課程結(jié)構(gòu)體各成員的信息一次輸出,直到最后一個(gè)結(jié)構(gòu)體指針的值為NULL學(xué)生信息瀏覽(void lists())I 定義指向結(jié)構(gòu)體變量的指針;II從頭指針指向的結(jié)構(gòu)體依次向后,將學(xué)生結(jié)構(gòu)體各成員的信息一次輸出,直到最后一個(gè)結(jié)構(gòu)體指針的值為NULL課程信息保存(void intoc())I 定義指向課程結(jié)構(gòu)體變量的指針和指向文件的指針;II 輸入保存路徑,如果沒(méi)有保存則有顯示;III 將課程信息寫入文件中;IV 將課程信息進(jìn)行保存,關(guān)閉文件學(xué)生信息保存(void i
13、ntos())I 定義指向?qū)W生結(jié)構(gòu)體變量的指針和指向文件的指針;II 輸入保存路徑,如果沒(méi)有保存則有顯示;III 將學(xué)生信息寫入文件中;IV 將學(xué)生信息進(jìn)行保存,關(guān)閉文件7、 學(xué)生信息查詢(void store())按學(xué)生姓名查詢(void search2())I定義指向結(jié)構(gòu)體變量的指針;II 輸入要查詢的學(xué)生的姓名,從頭指針指向的結(jié)構(gòu)體依次向后,直到找到學(xué)生姓名為輸入值的那個(gè)結(jié)構(gòu)體;III 將該學(xué)生結(jié)構(gòu)體成員的各信息依次輸出按學(xué)生編號(hào)查詢(void search1())I定義指向結(jié)構(gòu)體變量的指針;II 輸入要查詢的學(xué)生的編號(hào),從頭指針指向的結(jié)構(gòu)體依次向后,直到找到學(xué)生編號(hào)為輸入值的那個(gè)結(jié)構(gòu)體
14、; 三 詳細(xì)設(shè)計(jì)【功能模塊劃分及其流程圖】本程序功能模塊根據(jù)程序設(shè)計(jì)的需求,綜合程序的實(shí)用性、人性化、智能化的考慮,將程序劃分為6個(gè)部分分別編寫,程序主體功能將由這9個(gè)部分來(lái)完成。這9個(gè)部分依次是:1. 登錄界面函數(shù);void login()2. 學(xué)生登錄界面據(jù)函數(shù):void stu_login()3. 管理員登錄界面函數(shù):void man_login()4. 退出界面函數(shù):void bye_sys()5. 課程選擇函數(shù):void c_select()6. 課程瀏覽函數(shù):void c_view()7. 課程查詢函數(shù):void c_search()8. 課程增加函數(shù):void c_add()9.
15、 課程刪除函數(shù):void c_delete()10. 菜單函數(shù):void index()11. 主函數(shù)部分; main()總體設(shè)計(jì):系統(tǒng)功能模塊圖部分函數(shù)流程圖:1、 課程選擇函數(shù):2、 課程查詢函數(shù)3、 課程增加函數(shù)4、課程刪除函數(shù) 四 程序的調(diào)試與運(yùn)行結(jié)果說(shuō)明1、程序開(kāi)始界面如下:選擇某個(gè)選項(xiàng),如進(jìn)行管理員登錄,進(jìn)行課程的增加進(jìn)入管理員界面:2、再選擇所要進(jìn)行的操作,如進(jìn)行課程增加,結(jié)果如下:下面可以進(jìn)行繼續(xù)增加課程或者退出:3、選擇課程瀏覽,可以分頁(yè)查看相應(yīng)的課程信息:第一頁(yè):第二頁(yè):4、課程查詢查找結(jié)果:4、 管理員課程刪除操作:刪除后可以進(jìn)行瀏覽,觀察刪除后的結(jié)果:可見(jiàn)刪除后只有一條
16、記錄。刪除操作完成正確。下面進(jìn)行學(xué)生操作的使用方法:1、學(xué)生登陸界面:2、選擇學(xué)生選課選項(xiàng):3、學(xué)生登陸也可進(jìn)行課程瀏覽和查詢函數(shù),其結(jié)果與管理員登陸相同,不再演示。五 課程設(shè)計(jì)總結(jié)選課系統(tǒng)程序比起通訊錄程序來(lái)講好寫一些,由于本程序用到了數(shù)組,對(duì)于數(shù)組的操作掌握的比較熟練,所以在編寫程序的時(shí)候困難沒(méi)有那么多。本程序在編寫的過(guò)程中用到了許多通訊錄中的模塊化設(shè)計(jì)和函數(shù)互相調(diào)用的思想,使得編寫比較方便和好用。通過(guò)該系統(tǒng)的課程設(shè)計(jì)分析,我掌握了模塊化設(shè)計(jì)的方法,理解和運(yùn)用了結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法,掌握和提高了運(yùn)用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力。程序設(shè)計(jì)的過(guò)程,實(shí)際上是確定解決問(wèn)題的詳細(xì)步驟,而這個(gè)步驟通
17、常叫做流程,在程序設(shè)計(jì)過(guò)程中理清楚整個(gè)問(wèn)題的流程很重要,然后采取逐步細(xì)化的方法實(shí)現(xiàn)整個(gè)程序。對(duì)于一個(gè)較大的應(yīng)用程序,一般不可能一次就設(shè)計(jì)出一個(gè)很完善的系統(tǒng)。通常要先設(shè)計(jì)滿足基本要求的系統(tǒng),然后再測(cè)試或者在使用的過(guò)程中不斷完善,慢慢地做成一個(gè)功能很完善選修課程管理系統(tǒng)。所以在進(jìn)行調(diào)試的時(shí)候需要對(duì)許多變量理解和掌握其變化規(guī)律等,這對(duì)于我更好的掌握visual C中調(diào)試的工具有很大的幫助??傊?jīng)過(guò)這次課程設(shè)計(jì),我對(duì)c語(yǔ)言的使用和理解都有了很大的加深,對(duì)于編程的思想也有了很多新的理解和感受。 參考文獻(xiàn)1、李麗娟主編 ,C語(yǔ)言程序設(shè)計(jì)教程(第二版),人民郵電出版社2、嚴(yán)蔚敏主編,數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言),清華大學(xué)出版社3、崔單主編,C語(yǔ)言程序設(shè)計(jì)案例精粹,電子工業(yè)出版社4、譚浩強(qiáng)主編,程序設(shè)計(jì)(第三版),清華大學(xué)出版社19
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生物--人體的呼吸1-人教版課件
- 社會(huì)研究方法mpa論文寫作PPT培訓(xùn)課件
- 2020高考語(yǔ)文專題-圖文轉(zhuǎn)換漫畫答題技巧ppt課件
- 《語(yǔ)言表達(dá)之補(bǔ)寫語(yǔ)句》ppt課件
- 肺心病診斷及治療(與“肺動(dòng)脈”有關(guān)的文檔共46張)
- 中考?xì)v史一輪專題復(fù)習(xí)壟斷資本主義時(shí)代的世界課件
- 重慶市結(jié)核病防治基本DOTS細(xì)則介紹
- 鋁的化合物(教育精品)
- 軸對(duì)稱(例1)(教育精品)
- 愛(ài)之鏈chuan(教育精品)
- bs71p44(教育精品)
- bh(教育精品)
- 北師大版小學(xué)五年級(jí)語(yǔ)文上冊(cè)《生命與水》課件
- 13白鵝ppt(教育精品)
- 荷葉圓圓 (5)課件