【正文】
char s_password[10]。//課程人數(shù)上限 }。 int c_nelepeo。 char c_name[20]。//管理員瀏覽函數(shù) void c_views()。//學(xué)生查詢函數(shù) void c_searchm()。//增加課程 void c_delete()。 void c_view()。//退出界面 void stu_login()。//首頁 void login()。 總之經(jīng)過這次課程設(shè)計,我對 c 語言的使用和理解都有了很大的加深,對于編程的思想也有了很多新的理解和感受。通常要先設(shè)計滿足基本要求的系統(tǒng),然后再測試或者在使用的過程中不斷完善,慢慢地做成一個功能很完善選修課程管理系統(tǒng)。 程序設(shè)計的過程,實際上是確定解決問題的詳細(xì)步驟,而這個步驟通常叫做流程,在程序設(shè)計過程中理清楚整個問題的流程很重要,然后采取逐步細(xì)化的方法實現(xiàn)整個程序。 本程序在編寫的過程中用到了許多通訊錄中的模塊化設(shè)計和函數(shù)互相調(diào)用的思想,使得編寫比較方便和好用。 本程序沒有使用文本讀寫函數(shù) fscanf 和 fprintf,所以的到的課程文件和選課文件都是二進(jìn)制形式。 【程序的缺點】 主要表現(xiàn)在以下兩點: 本程序沒有進(jìn)行相應(yīng)的密碼操作,所以對于使用者來說可能存在比較大的不保密性。 2. 人性化的程序提示語言,程序提示語言較人性化,不僅大多為祈使語句、疑問句,而且 提示明確,具有較強(qiáng)的明確的指導(dǎo)作用。 [功能上的優(yōu)點] 主要體現(xiàn)在以下兩點: 1. 簡潔明了的程序菜單。 2. 程序?qū)ξ募?shù)據(jù)的讀寫采用了 fread 和 fwrite 塊讀寫函數(shù),能夠?qū)⑽募械臄?shù)據(jù)完全讀出,然后賦到 定義的數(shù)組 中, 再在相應(yīng)的數(shù)組中進(jìn)行一系列操作,最終再寫入文件。 [算法上的優(yōu)點] 主要體現(xiàn)在以下三點: 1. 程序采用 main 主函數(shù)方式設(shè)計,程序的主體的功能大都由該功能 完成。 下面進(jìn)行學(xué)生操作的使用方法: 學(xué)生登陸界面: 選擇學(xué)生選課選項: 學(xué)生登陸也可進(jìn)行課程瀏覽和查詢函數(shù),其結(jié)果與管理員登陸相同,不再演示。 【軟件運用舉例】 程序開始界面如下: 選擇某個選項,如進(jìn)行管理員登錄,進(jìn)行課程的增加 進(jìn)入 管理員 界面 : 再選擇所要進(jìn)行的操作, 如進(jìn)行課程增加, 結(jié)果如下: 下面 可以進(jìn)行繼續(xù)增加課程或者退出: 選擇課程瀏覽,可以分頁查看相應(yīng)的課程信息: 第一頁: 第二頁: 課程查詢 查找結(jié)果: 管理員課程刪 除操作: 刪除后可以進(jìn)行瀏覽,觀察刪除后的結(jié)果: 可見刪除后只有一條記錄。 k i1 。 k j。 j i1 。 j i 1 。 j i1 。 j i。 第三部分:程序功能劃分、圖示及流程圖 【功能模塊劃分及其流程圖】 本程序功能模塊根據(jù)程序設(shè)計的需求,綜合程序的實用性、人性化、智能化的考慮,將程序劃分為 6個部分分別編寫,程序主體功能將由這 9個部分來完成。中間通過文件的打開和關(guān)閉實現(xiàn)對文件內(nèi)部所包含的數(shù)據(jù)的操作。在進(jìn)行該操作之前需要對管理員保存的文件進(jìn)行讀取,然后對其中的內(nèi)容進(jìn)行查詢等,在學(xué)生選好課程以后,可以將其選好的課程保存于相應(yīng)的文件中,以 便下次進(jìn)行修改。 然后定義各種函數(shù)的功能包括查看,查詢, 刪除等 。 具 體的設(shè)計思路如下: 程序的要求是設(shè)計 學(xué)生選修課 管理系統(tǒng), 對選修課程能夠進(jìn)行錄入和修改操作等,要求有菜單界面和退出功能。 題目一、學(xué)生選課管理系統(tǒng) 目錄 第一部分:課程設(shè)計名稱、 目的、要求 ... 第二部分:程序總體設(shè)計思路 .......... 第三部分:程序功能劃分、圖示及流程圖 . 第四部分:程序設(shè)計數(shù)據(jù)、運行結(jié)果 ..... 第五部分:程序的優(yōu)缺點 .............. 第 六 部分:心得體會 ................. 第七部分:附錄(源程序) ............ 第八部分:附錄( 參考文獻(xiàn) ) .......... 第一部分:課程設(shè)計名稱、目的、要求 名稱: 學(xué)生選修課程系統(tǒng)設(shè)計 目的:運用 C 語言提高解決實際問題的能力 實驗環(huán)境: Microsoft Visual C++ 內(nèi)容: 假定有 n 門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機(jī)學(xué)時,學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于 60)自由選課。 【功能】 系統(tǒng)以菜單方式工作 課程信息錄入功能 (課程信息用文件保存 )--輸入 課程信息瀏覽功能--輸出 查詢功能: (至少一種查詢方式 )--算法 按學(xué)分查詢 按課程性質(zhì)查詢 學(xué)生選修課程 (可選項 ) 第二部分:程序總體設(shè)計思路 由于 C 語言是面對過程的語言,故我的設(shè)計思路是根據(jù)目標(biāo)程序運行的過程來編寫的。首先, 考慮到程序的數(shù)據(jù)輸入, 可以設(shè)置一個管理員登陸選項,通過該選項進(jìn)入管理員界面,進(jìn)行選修課的錄入和修改操作,最后將錄入的課程保存到相應(yīng)的文件中。 另一個為學(xué)生登陸界面,該界面學(xué)生可以進(jìn)行課程選擇和瀏覽查詢等操作。 通過函數(shù)的層層調(diào)用來實現(xiàn)程序的邏輯結(jié)構(gòu)。 整個程序的設(shè)計思路到此結(jié)束。這 9 個部分依次是: 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. 課程刪除函數(shù): void c_delete() 10. 菜單函數(shù): void index() 11. 主函數(shù)部分; main() 總體設(shè)計 : 學(xué)生選課系統(tǒng)學(xué)生登錄管理員登錄新增課程 刪除課程 課程瀏覽 查詢課程c _ v ie w 函數(shù) c _ s e a r c h 函數(shù)c _ a d d 函數(shù) c _ d e le t e 函數(shù)學(xué)生選課 課程查詢課程瀏覽c _ s e le c t 函數(shù) c _ v ie w 函數(shù)c _ s e a r c h 函數(shù) 系統(tǒng)功能模塊圖 部分 函數(shù) 流程圖: 課程選擇函數(shù): 開始輸入要選擇的課程的編號fla g + +YN結(jié)束c o u r s e s [ j] . c _ n u m = = nj= 0 。( i初始化為 0 )fla g = = 0沒有找到對應(yīng)課程YN選課成功j+ + 課程查詢函數(shù) 開始輸入要查詢的課程的編號fla g + +YN結(jié)束c o u rs e s [ j] . c _ n u m = = nj= 0 。( i初始化為 0 )fla g = = 0沒有找到對應(yīng)課程YN打印相應(yīng)的課程j+ + 課程增加函數(shù) 開始輸入要增加的課程的編號p r in t f( “編號已使用過 ”)YN結(jié)束c o u r s e s [ j] . c _ n u m = = nj= 0 。( i初始化為 0 )j+ +fr w r it e 寫入課程信息到文件 課程刪除函 數(shù) 開始輸入要刪除的課程的編號 nYN結(jié)束c o u rs e s [ j] . c _ n u m = = nj= 0 。( i初始化為 0 )j+ +不存在相應(yīng)課程k = 0 。frw rit e 寫入課程信息到文件k + +k = j+ 1 。k + + 第四部分:程序設(shè)計數(shù)據(jù)、運行結(jié)果 本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計、程序運行結(jié)果應(yīng)在程序的 運用中得以體現(xiàn),現(xiàn)在通過一個程序的運用事例來對程序運行結(jié)果進(jìn)行演示與實現(xiàn)。刪除操作完成正確。 第五部分:程序的優(yōu)缺點 【程序的優(yōu)點】 算法是程序的靈魂,程序的優(yōu)點首先表現(xiàn)在算法上的優(yōu)點,其次才是功能上的。程序如此設(shè)計有利于程序的進(jìn)一步改進(jìn) 及有助于程序執(zhí)行效率的提高。 3. 插入操作 在本程序中將課程信息直接插入數(shù)組最后一個節(jié)點,從而減少了數(shù)據(jù)的相互移動, 節(jié)省了時間。程序主要采用了層次不同的菜單,相互獨立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地看懂程序并進(jìn)行操作。需要改善。 第六部分:心得體會 選課系統(tǒng)程序比起通訊錄程序來講好寫一些,由于本程序用到了數(shù)組,對于數(shù)組的操作掌握的比較熟練,所以在編寫程序的時候困難沒有 那么多。 通過該系統(tǒng)的課程設(shè)計分析,我掌握了模塊化設(shè)計的方法,理解和運用了結(jié)構(gòu)化程序設(shè)計的思想和方法,掌握和提高了運用 C 語言進(jìn)行程序設(shè)計的能力。 對于一個較大的應(yīng)用程序,一般不可能一次就設(shè)計出一個很完善的系統(tǒng)。所以在進(jìn)行調(diào)試的時候需要對許多變量理解和掌握其變化規(guī)律等,這對于我更好的掌握 visual C 中調(diào)試的工具有很大的幫助。 第七部分:附錄 一、參考文獻(xiàn): 李麗娟主編 , C 語言程序設(shè)計教程(第二版),人民郵電出版社 嚴(yán)蔚敏主編,數(shù)據(jù)結(jié)構(gòu)( C 語言),清華大學(xué)出版社 崔單主編, C 語言程序設(shè)計案例精粹 ,電子工業(yè)出版社 譚浩強(qiáng) 主編,程序設(shè) 計 (第 三 版) ,清華大學(xué)出版社 二、源程序 include include include include void index()。 void bye_sys()。//學(xué)生登錄菜單 void c_select()。//課程瀏覽 void c_add()。 void c_searchs()。//管理員查詢函數(shù) void c_viewm()。//學(xué)生瀏覽函數(shù) struct course//定義課程結(jié)構(gòu)體