電子生詞庫軟件學生選修課程系統(tǒng)設計C語言版_第1頁
電子生詞庫軟件學生選修課程系統(tǒng)設計C語言版_第2頁
電子生詞庫軟件學生選修課程系統(tǒng)設計C語言版_第3頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、程序設計基礎題目:電子生詞庫軟件C語言程序設計實訓任務書題目:學生選修課程系統(tǒng)一、設計目的1. 進一步掌握和利用C語言進行程序設計的能力;2. 進一步理解和運用結(jié)構(gòu)化程序設計的思想和方法;3. 初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;4. 學會調(diào)試一個較長程序的基本方法;5. 學會利用流程圖或N-S圖表示算法;6. 掌握書寫實訓開發(fā)文檔的能力(書寫實訓報告)二、設計任務及內(nèi)容假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學時,授課學時, 實驗或上機學時,學分,開課學期等信息,學生可按要求(如總學分不得少于60 )自由選課。試設計一選修課程系統(tǒng),使之能提供以下功能:1. 系統(tǒng)以菜單方

2、式工作2. 課程信息錄入功能輸入3. 課程信息瀏覽功能輸出4. 查詢功能:算法(選一)1)按學分查詢課程信息2)按課程性質(zhì)查詢課程信息5. 學生選修課程6. 按課程編號順序插入一門課程信息7. 按課程名稱刪除一門課程信息8. 按課程名稱的字典順序輸出所有課程信息。三、設計要求1. 用 C 語言實現(xiàn)系統(tǒng);2. 利用結(jié)構(gòu)體、數(shù)組等實現(xiàn)數(shù)據(jù)結(jié)構(gòu)設計;3. 系統(tǒng)具有增加、查詢、插入、排序等基本功能;4. 系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);5. 文檔:實訓說明書每個學生一份,并裝在統(tǒng)一的資料盒中;6. 光盤:每個學生文檔和程序資料分別建在一個以自己學號和姓名命名的文件夾下, 并要求每班負責人匯總每

3、個學生的文件放在以班級姓名命名的文件夾下, 刻錄成一張光 盤,放在一個專門的資料袋中。四、提交的成果1. 設計任務書一份(學校統(tǒng)一格式)2. 設計說明書一份,內(nèi)容包括:1) 中文摘要 100 字 ,關(guān)鍵詞 3-5 個。2) 實訓題目、內(nèi)容、要求。3 )總體設計(包含幾大功能模塊)。4)詳細設計(各功能模塊的具體實現(xiàn)算法流程圖)5)數(shù)據(jù)結(jié)構(gòu)設計描述,各模塊(函數(shù))的功能介紹,參數(shù)說明等。6)調(diào)試分析(包含各模塊的測試用例,及測試結(jié)果。)7)總結(jié)(實訓完成了哪些功能,還有哪些地方需要改進,及通過實訓有何收獲, 調(diào)試程序的體會等)8)參考文獻、致謝等。五、主要參考資料1. 王連相C/C+程序設計 武

4、漢大學出版社.2013.72譚浩強C語言程序設計(第2版)學習指導清華大學出版社.2012.123. 楊莉,龔義建C語言程序設計實訓指導教程華中科技大學出版.2009.64. 張小東,鄭宏珍C語言程序設計與應用人民郵電出版社.2009.45. 郭翠英C語言課程設計案例精編中國水利水電出版社6 郭有強C語言程序設計清華大學出版社7 李丹程,劉瑩,那俊C語言程序設計案例實踐清華大學出版社8 李麗娟C語言程序設計教程人民郵電出版社 9 武雅麗,王永玲,解亞利C語言程序設計清華大學出版社 六、各階段時間安排(共1周)日期內(nèi)容地點完成情況教師簽字星期一教師講解設計要求,準備參考資料教室星期二分析系統(tǒng),方

5、案設計教室星期三方案設計,編程教室星期四調(diào)試程序,書寫實訓說明書教室星期五完成實訓說明書,答辯教室摘要20 世紀末,隨著計算機科學的發(fā)展,網(wǎng)絡的應用越來越廣泛,為廣大用戶提供了 更加周到和人性化的服務。本文研究了以一種基于文件存儲的學生選修課程系統(tǒng)。本系 統(tǒng)是根據(jù)現(xiàn)代化校園的發(fā)展而設計的學生學修課程系統(tǒng),本系統(tǒng)方便老師、家長來學校 查找學生成績、最近獎罰等多種情況。隨著教育改革的不斷深入和素質(zhì)教育的加強完全 學分制的實施,選修課在一個學生的培養(yǎng)計劃中站的比重越來越大!使用了網(wǎng)上選課系 統(tǒng)以后,可以在開課前就在網(wǎng)上選課,每個學生的課程在開課前就確定好,不用浪費體 力去選課,還可以使教學資源合理平

6、均地分配。關(guān)鍵詞:學生選課;C語言;文件存儲目錄1 緒 論 11.1 基本內(nèi)容 11.2 發(fā)展趨勢 11.3 用途及特點 12 問題需求分析 . 32.1 問題的提出 32.2 問題的分析 33 總體設計 53.1 總體設計思路 53.2 總體設計模塊介紹及框圖 64 詳細設計 74.1 各模塊流程圖 74.1.1 主函數(shù)模塊 74.1.2 管理員模塊 74.1.3 學生模塊 94.1.4 創(chuàng)建鏈表模塊 104.1.5 瀏覽模塊 114.1.6 查詢模塊 124.1.7 插入鏈表模塊 134.1.8 添加模塊 154.1.9 刪除模塊 164.1.10 選修課程模塊 164.1.11 讀取文件

7、模塊 184.1.12 保存文件模塊 194.2 函數(shù)功能具體實現(xiàn)及算法 195. 調(diào)試及分析過程 215.1 各模塊運行結(jié)果 215.1.1 開始運行 215.1.2 管理員菜單 215.1.3 按 1 進入錄入課程模塊 225.1.4 輸完課程信息后進入管理員瀏覽模塊 225.1.5 按課程性質(zhì)查詢 235.1.6 按課程學分查詢 235.1.7 按 4 進行管理員刪除模塊 245.1.8 學生菜單 245.1.9 按 1 學生瀏覽所有課程 255.1.10 按學分查詢課程 265.1.11 按 3 進入選修課程模塊 265.1.12 按 4 進入瀏覽已選修的課程 275.1.13 按 5

8、 進入刪除錯選課程模塊 285.2 調(diào)試過程中出現(xiàn)的問題 295.2.1 問題的提出 295.2.2 問題分析 295.2.3 問題解決建議 306 總結(jié) 317 設計優(yōu)缺點 337.1 不足之處與改進之處 337.2 收獲與總結(jié) 337.3 程序的優(yōu)缺點 34參考文獻 35致 謝 36附錄: 37源程序代碼 371緒論1.1基本內(nèi)容隨著教育改革的不斷深入和素質(zhì)教育的加強完全學分制的實施,選修課在一個學生的培養(yǎng)計劃中站的比重越來越大!學生在選課時要查看各個課程的詳細信息,還有選擇 一些感興趣的課程,需要生成課表,在發(fā)現(xiàn)課程有沖突后能夠修改先前選擇的信息。各 高校課程改革的不斷深入,學校規(guī)模不斷

9、擴大、課程項目不斷增多,為了解決學生選課 管理上的復雜繁瑣的人工操作,制作一個選修課程系統(tǒng)已經(jīng)迫在眉睫了。全校性選修課 的目的在于擴大學生的知識面,加強學生素質(zhì)教育,培養(yǎng)復合型高級人才,具有不可替 代的重要性!1.2發(fā)展趨勢對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好學生選課信息而設計的。當今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機被 廣泛應用于信息系統(tǒng)的環(huán)境。計算機的最到好處的于利用它能夠進行信息管理,使用計 算機進行信息控制,不僅提高了工作效率,而且大大的提高了其

10、安全性?;谶@個問題,我認為有必要建立一個學生選課系統(tǒng),使學生選課信息管理工作規(guī)范化、系統(tǒng)化、程序化,避免學生選課管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改選課情況。1.3用途及特點現(xiàn)代的社會是信息化的社會,信息無所不在。在生產(chǎn)領(lǐng)域、流通領(lǐng)域、各個部門每 天都和信息打交道,如何處理如此多的信息成為了一個重要的課題。學生在學期開始選 課是教學活動中的一個重要環(huán)節(jié),該環(huán)節(jié)如果能管理好,它不僅能加快學生的選課速度, 也提高了整個活動工作的效率大學一般都有上萬名學生, 每學期開始學生都要選課, 因而產(chǎn)生了大量的課程信息 考慮到用戶使用的方便和處理的信息量系統(tǒng)要完成錄入,

11、保存,查詢,修改和刪除課程 信息的各種過程,能打印出課程信息表。系統(tǒng)的主要使用對象是需要選課的學生。需要隨學生選課選課的變化,計算相應的 總學分。在全部選定后打印報表。系統(tǒng)還需要管理員來查看和修改學生的總體選課情況 課程信息和學生信息。此系統(tǒng)系統(tǒng)選課方便、快捷,用簡單的界面來展示學生的選課信 息,應用簡單明了、存儲量大、可靠性高、保密性好、壽命長、成本低等優(yōu)點,可以極 大的提高對學生信息管理的效率。 利用 C 語言開發(fā),實現(xiàn)了簡單的學生課程信息的錄入、 修改、查詢、刪除等操作,并且能夠利用文件系統(tǒng)長久的保留原始數(shù)據(jù)。2 問題需求分析2.1 問題的提出隨著教育的改革,各高校的大規(guī)模擴展,專業(yè)的劇

12、增,以老師授課為主的傳統(tǒng)的教育模式已不再適應當今中國的各高校的現(xiàn)狀。并且,在課表的編排上市意向十分復雜、 棘手的工作。 在派克過程中,除了滿足大量的制約條件外, 還必須解決許多沖突域矛盾。因此,利用網(wǎng)絡進行選課和對學生的授課,應經(jīng)成為名正言順的事,并且必不可少了。 那么如何創(chuàng)建一個網(wǎng)絡選修課程系統(tǒng)呢?如何實現(xiàn)學生網(wǎng)上根據(jù)自己的時間安排, 隨時 隨地的學習呢?這成了研究網(wǎng)絡選修課程人員的一大問題了。2.2 問題的分析大學期間總會有很多公共選修課, 以往的選課方法是隨堂報名。 這種方法雖然直接, 但是造成選課的盲目性,有些課堂選課時人滿為患,有些課堂無人選課。原因是傳統(tǒng)的 選課方法沒有預見性,大家

13、沒有事先協(xié)調(diào)好。這種局面是長期以來在高校中產(chǎn)生的,短 時間內(nèi)根本無法改變這個現(xiàn)狀。 使用了網(wǎng)上選課系統(tǒng)以后, 可以在開課前就在網(wǎng)上選課, 每個學生的課程在開課前就確定好,不用浪費體力去選課,還可以使教學資源合理平均 地分配。本系統(tǒng)開發(fā)的目的是采用信息化和網(wǎng)絡化的手段, 幫助學生和學校信息化的管理選 課教學任務。教育制度的改革,學生數(shù)量的劇增,無疑給網(wǎng)絡選修課程提供了一個前所 未有的機會。為方便用戶根據(jù)自己時間隨時隨地的學習,特開發(fā)此系統(tǒng)。為學校將老師 的授課視頻直接放在學校官網(wǎng)上, 學生通過官網(wǎng),隨心所欲地在學生選課系統(tǒng)進行學習。 這樣不僅節(jié)省了學生們的時間,更為學校省下了許多師資資源。學???/p>

14、以將這部分省下 來的師資資源用在學術(shù)研究方面、教育方式研究等方面。當前大部分學 校 沒有一個完善 的學生 選修課程系統(tǒng) ,計算 機使用主要基于 microsoft office ,不能發(fā)揮有效的作用,而且隨著我國教育的改革,學生可以選擇科 目多樣化,使得學校對學生選修課程管理趨于繁瑣、復雜,工作量大,這種傳統(tǒng)的學校 選修課程模式已不能滿足當前的發(fā)展。實現(xiàn)學生選修課程的系統(tǒng)化、規(guī)范化、自動化以 及全面的、相對集中化,為學生提供全面的選課數(shù)據(jù)信息,為有效的控制選課提供有力 的幫助;為學校做到及時、準確地掌握選課情況,為選修課程做好部署工作。本系統(tǒng)是 為高校學院制定的個人選課及管理的現(xiàn)代化信息平臺,

15、學生能過瀏覽器進行網(wǎng)上選課和 并且可以查詢自己的選課計劃及所選課程進度。同時,管理員可以通過游覽器進行課程 添加、刪除和修改。這無論對于學生和教師管理員來說都節(jié)省了大量的工作量。充分利 用網(wǎng)上選課系統(tǒng)來提高教學選課管理的效率,實現(xiàn)全面網(wǎng)絡化、規(guī)范化和集成化。3 總體設計3.1 總體設計思路通過對課題的分析,程序的要求是設計選修課管理系統(tǒng),對選修課程能夠進行錄入 和修改操作等,要求有主界面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設置一 個管理員登陸選項,通過該界面,進行選修課的錄入和修改操作,最后將錄入的課程存 到相應的文件中。然后定義各種函數(shù)的功能包括:查看、查詢、刪除等。另一個為學生 登

16、陸界面,該界面學生可以進行課程選擇和瀏覽查詢等操作。在進行該操作之前需要對 管理員保存的文件進行讀取,然后對其中的東西進行查詢等。在學生選好課程以后,可 以將選好的課程保存于相應的文件中,以便下次進行修改。通過函數(shù)的層層調(diào)用來實現(xiàn) 程序的邏輯結(jié)構(gòu)。中間通過文件的打開和關(guān)閉實現(xiàn)對文件內(nèi)部所包含的數(shù)據(jù)操作。然后 通過對課題的分析, 必須實現(xiàn)的功能有主線程對四大線程的隨機調(diào)度以及輸出結(jié)果顯示 等。我們?yōu)榱朔奖阌脩艨刂乒芾?,又添加了一些更人性化的功能如人工調(diào)試,運行配置 等功能。主要運用了順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等多種基本結(jié)構(gòu),同時文件存儲信 息的方式更是簡化了程序結(jié)構(gòu),使程序讀起來更容易懂。除此

17、之外,本系統(tǒng)采用分塊實 現(xiàn)功能,將要實現(xiàn)的增加課程信息、修改課程信息、刪除課程信息、增加學生信息和修 改學生信息等功能分別用不同的子程序來完成,這樣不僅方便了我們程序調(diào)試,更提高 了程序的移植性。為了方便用戶控制管理,本系統(tǒng)添加了一些更人性化的功能如人工調(diào)試,運行配置 等功能。主要運用了順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等多種基本結(jié)構(gòu),同時文件存儲信 息的方式更是簡化了程序結(jié)構(gòu),使程序讀起來更容易懂。除此之外,本系統(tǒng)采用分塊實 現(xiàn)功能,將要實現(xiàn)的增加課程信息、修改課程信息、刪除課程信息、增加學生信息和修 改學生信息等功能分別用不同的子程序來完成,這樣不僅方便了我們程序調(diào)試,更提高 了程序的移植性。3

18、.2總體設計模塊介紹及框圖本系統(tǒng)由一個主模塊和多個子模塊組成,主模塊有管理員和學生兩個模塊。管理員 模塊主要功能是添加課程信息、刪除課程信息等,而學生模塊則主要管理學生信息及選 課問題等。圖3-1總體模塊框圖4詳細設計4.1各模塊流程圖主函數(shù)模塊主函數(shù)設計地比較簡潔,只是提供一個主菜單和幾個函數(shù)的調(diào)用以及顯示函數(shù)。 switch語句將整個程序分為三個大的功能模塊。其具體流程圖如下:圖4-1主函數(shù)模塊圖管理員模塊管理員的功能一共有四個功能:瀏覽,查詢,添加,刪除課程,運用字符串處理函 數(shù)處理密碼的問題,若密碼正確,貝U可以進入管理員模塊。否則重新輸入名,當密碼輸 入錯誤達到3次,則不能進入管理員

19、模塊。密碼次數(shù)用了一個int型的變量來計數(shù)。用一個switch語句實現(xiàn)函數(shù)的調(diào)用:開始學生模塊學生的功能一共有四個功能:瀏覽所有課程信息、查詢課程信息、選擇選修課程、瀏覽所選課程、刪除錯選課程等。用一個switch語句實現(xiàn)函數(shù)的調(diào)用:圖4-3 學生模塊流程圖創(chuàng)建鏈表模塊利用鏈表的創(chuàng)建、插入、刪除和查詢等功能。以菜單選項形式體現(xiàn)出來,實現(xiàn)課 程信息的增加、學生信息的增加、課程信息的刪除以及學生信息的修改等等。運用鏈表 實現(xiàn)這些功能可以與用戶良好的交互。Tail-next=NULL;Retur n head;Sea nf(num,n ame,kin d,& stime,& ttim

20、e, &e time,& score, &term);圖4-4 鏈表創(chuàng)建流程圖瀏覽模塊瀏覽模塊主要用管理員中的“瀏覽課程”和學生功能中的“瀏覽所有所有課程”, 將所有的課程信息輸出,即將2.txt文件里面的內(nèi)容全部輸出:圖4-5 瀏覽模塊流程圖查詢模塊查詢模塊主要用于管理員功能中的“查詢課程”和學生功能模塊中的“查詢所有課 程”,查詢模塊共分為三個查詢方法:按課程名稱查找,按課程性質(zhì)查找和按學分查找 switch語句中,每一個case語句就是一中查詢方法:圖 4-6 查詢模塊流程圖4.1.7 插入鏈表模塊插入鏈表操作主要用于添加課程,在整個課程信息中加入一些新課程,它在

21、添加模塊中被調(diào)用:圖4-7插入鏈接模塊流程圖添加模塊添加模塊主要用于增加課程信息,采用鏈表的操作:插入課程信息)+J丿(結(jié)束 /圖4-8添加模塊流程圖*SUB *ptr,*subj;int size=sizeof(SUB);char ch,ch1;刪除模塊,全部采用刪除鏈表刪除模塊主要用于管理員刪除課程信息學生刪除自己的選課 中的某一個節(jié)點的操作:否結(jié)束刪除圖4-9刪除模塊流程圖4.1.10 選修課程模塊選修課程模塊采用插入鏈表的操作:開始讀取文件模塊讀取文件模塊是用來讀出文件內(nèi)容,并將內(nèi)容輸出到內(nèi)存中,當輸入文件名時, 就能打開指定的文件,當輸入all_sub.txt時,打開所有課程信息的文

22、件,當輸入my_sub.txt時,就是瀏覽學生選修的課程信息。是newSub=(SUB*)malloc(sizeof(SUB);fsca nf(fp,&n ewSub-> nu m, newSub-> name, newSub->ki nd,&n ewSub->stime,&n ewSub->ttime,&n ewSub->etime,&n ewSub->scpre,&n ewSub->term);關(guān)閉文件圖4-11讀取文件模塊流程圖保存文件模塊保存文件模塊共分為兩個子程序,將修改的信息保存到2.t

23、xt文件中,系統(tǒng)檢測要保存的文件4.2函數(shù)功能具體實現(xiàn)及算法各函數(shù)的具體功能int main() 程序主函數(shù),程序入口void Mangers()管理員主菜單,管理員入口Void SUB *create_form() 創(chuàng)建鏈表結(jié)構(gòu)void savefile()將新增加的課程信息保存到文件中void savefile1()將修改后的課程信息文件保存到文件中void readfile() 閱讀文件void prin() 瀏覽所有課程void prin1()瀏覽所有選修課程void *myInsert( SUB *subj)鏈表插入操作void *insert()插入課程信息void *del()刪

24、除課程void choose() 選新課程 - 學生選課函數(shù)void search() 課程信息查詢void Students()學生登錄入口4.2.1 各函數(shù)的實現(xiàn)的具體算法本系統(tǒng)程序中主要用到的算法有:二分法、冒泡排序法等算法。其中,在新增課程信息,查找課程信息,修改課程信息,瀏覽可選課程等多種以管理員方式進入的課程 信息操作都運用了二分法。 以學生身份登錄的進入的課程信息操作則主要運用了冒泡排序法。冒泡排序法和二分法作為 C 語言中最為基礎的算法, 運用卻相當?shù)膹V泛, 本系統(tǒng)主要運用了分法和冒泡排序法的查找功能5.調(diào)試及分析過程5.1各模塊運行結(jié)果開始運行程序開始運行進入登錄界面,輸入1

25、:以管理員身份登錄輸入密碼1,輸入2:以 學生身份登錄,輸入3 :退出登錄界面。menZ 犬迎進凡學生選搟課程系1 一茂管+里茂身倘豊錄5"空如訛旅退出版杈所有t臧暉年 鏘文濤 朱逼IChicise yniiF nnmihFCl-3>:1圖5-1運行結(jié)果圖管理員菜單進入管理員菜單。輸入1 :錄入所有要選擇的課程,輸入2 :瀏覽所有錄入的課程,輸入3 :查詢錄入的課程,輸入4 :刪除錄入的課程,輸入5 :返回主菜單。按1進入錄入課程模塊進入錄入課程界面,輸入課程編號、課程名稱、課程性質(zhì)、總學時、授課學時、實踐或上機學時、學分、開課學期,添加完畢后點擊回車繼續(xù)添加,輸入0結(jié)束添加C

26、hiose yolil* nUmbei'Cl5> 2(1輸入要插入的課程信息:請輸入課程編號油諳輸入課程名稱嘅代醫(yī)學請輸入課稈件質(zhì):人文請輸入總學時:30請輸入授課學時:鮎請輸入實踐或上機學時;丄5請輸入學分呼£請輸入開課學期;1打加完畢新信息存入文件中繼續(xù)描入請按回車結(jié)束殛加課程按0: C0課ng# 課程名稱 課程性質(zhì) 池學時 接課學時 實驗或上機學時 學分 開課學期 請按住意縄継結(jié)-_圖5-3錄入課程模塊運行結(jié)果圖輸完課程信息后進入管理員瀏覽模塊開課學期111111輸入完課程信息程序?qū)⒆詣訉φn程編號進行排序,將錄入的課程信息結(jié)果表示出 來,按任意鍵退出此界面。1質(zhì)1

27、 2 3 4 fi 任陵請2性文文>=程人人自自人人-S課1be齧HHlfW - 屛 sifi: 蔦 ??駥肑?半 4°意圖5-4輸完課程信息運行結(jié)果圖學分302530353025實踐或上機學時0510101015授課學時202020201515總學時202530302530按課程性質(zhì)查詢進入課程查詢界面,選擇查詢方式選擇1按課程性質(zhì)查找,將所有課程性質(zhì)相同的 課程查找出來,選擇3退出查找界面。:請選擇查詢方式*1按課程性質(zhì)倉找A按學分查找-退出查找UJiiose yaur numJtiei'<l -3 > : LI J ifAf' 課桓編號i蠅蓊青

28、 人文 請按任意施,人文R 忌學時20252530授課學時202H1515實踐或上機學時051015學嚀3025302:5開譯學期1111圖5-5進入管理員瀏覽模塊運行結(jié)果圖按課程學分查詢進入課程查詢界面,選擇查詢方式選擇2按課程學分查找,將所有課程學分相同的 課程查找出來,選擇3退出查找界面。ICMNlig 梵 K梵:M>E xj 青十先豐辛吉旬 /"工 I * MJtMiXNimJfiMXJtM;1 -技課程性質(zhì)查找2 學分查找退出直找Chiose j/our nunheF<l-3> : 2 Jl 輸人燙查找的課程的學分課程窮號課程名稱課程性質(zhì)- 工 入文詁按任

29、意i五M育總學時2林302S授課學時2315實£戈或丄機學時1010開課學期11按4進行管理員刪除模塊在管理員菜單欄中輸入4進行課程刪除,將要刪除的課程編號輸入完成刪除課程, 按回車繼續(xù)刪除,按0結(jié)束刪除課程。久一淙入課程 靈瀏覽課程3 -查詢課程4 -刪徐課程5 -返回主革單Chiose your nunberd-S) : 41輸入想要刪除的課程編號】繼續(xù)刪除請按回車結(jié)束刪除課程披0= 03圖5-7管理員刪除模塊運行結(jié)果圖學生菜單進入學生菜單欄,選擇1瀏覽可選的所有課程,選擇2查詢所有課程的信息,選擇 3選擇自己需要選修的課程,選擇4瀏覽自己所選修的課程,選擇5刪除自己在選課時 選

30、錯的課程,選擇6返回主菜單。工-一瀏覽所有課程2 杳詢課稈彳g鳥3- 一選擇選修課程轉(zhuǎn)一-瀏覽我選修的課程石 刪除錯選課程M-NMJiose youi* nunber(l-fc> : L J圖5-8學生菜單運行結(jié)果圖按1學生瀏覽所有課程進入學生菜單,選擇1進入瀏覽所有課程界面,可以查看所選擇的課程信息1測覽所有課程2杳詢課稈信息A"選擇選修課程4-一瀏覽我選修的課程 卜一刪除錯選課程£一_返回主菜單KMM M MX M MM M MX M M M MM M « M M >MK MM « M M >MK MK MMM編 12 3 4- G

31、tf 程 按 果 主目8?1性文文x:>=程人人自自人-G課1-質(zhì)25303Q3Q授課學時20202015學分開課學期11111實踐或上機學時051Q1Q15按學分查詢課程進入學生查詢界面選擇2按學分查找,開始查找需要修習的課程。幵課學期111實3密或上機學時0101U揺課學時2020lb總學時20302bCh lose 如 tn* nmnbei*<l-3> : LZ1 愉入?yún)⒉檎业恼n程的學分® 課程窮號課程名翹-13請按任意1®課権質(zhì)査找2按學分查找3-退出查找青 1 先 $ 羊旬 廳工><1<耳 HUM; KiMIC >EX:K

32、 M:03育圖5-10按學分查詢運行結(jié)果圖按3進入選修課程模塊在學生菜單中選擇3進入選擇選修課程界面,將需要選修的課程的編號輸入按 0 確認所選修的課程,成功選擇課程。將選擇的課程的信息保存到3.txt文檔中。按任意鍵繼續(xù)。開課學期1111學分實踐或上機學時1Q1S授課學時302Q21315.總學時阿303U30您詵修的課稈穩(wěn)學分為臨叫課稈分別為=*選修成功 ? *梵耳梵HL梵 ><耳梵耳XML梵:MSKJKF梵耳 HJ*弭耳Z 半甲 弭耿耳梵耳梵漣梵冀梵箕耳梵料且光耳梵耳梵恥.質(zhì)程人自自人課-瀏覽所有課程2査詢課程信息3-一選擇選修課程4一-瀏覽我選修的課程5刪除錯選課禾呈-一返

33、回主菜單Chioao jyo'ui* nuiniljDi*(lL6 z : L3 J輸入要選修的課程的編號,編號之間以空格分開13 4 6如果確認輸入完要選修的課程的編號"請輸人氐 ®課程編號i果程名稱圖5-11進入選修課程模塊運行結(jié)果圖按4進入瀏覽已選修的課程在學生菜單中選擇4進入瀏覽我選修的課程界面,將會將所有已選修的課程信息展示出來,按任意鍵繼續(xù)Hmxm x學 生菜單 mcmmphlose youi* numbeT*<JL-6> - E41課程編號 課程名翹 課程性扃13 就諳按紜篇屈總學時20303030援課學時2B202015實踐或上機學時IS

34、IS5111孝分303W3525開課學期11111-瀏覽所有課程曠一査詢課程信息3選擇選修課程4一瀏覽我選修的課程一冊!除錯選課程6-返回王菜單圖5-12進入瀏覽已選修的課程運行結(jié)果圖按5進入刪除錯選課程模塊在學生菜單中選擇5進入刪除錯選課程界面,將錯選的課程的編號成功刪除錯選課 程,如果繼續(xù)刪除錯選課程請按enter,按0結(jié)束刪除錯選課程菜單,刪除錯選的課程的 信息保存到3.txt文檔中。按任意鍵繼續(xù)。丄一瀏覽所有課程2查詢課程信息3-一選擇選醪課*呈4 一-測覽我選修的課程5 刪除惜選課程6-返回午業(yè)單MKMKMMMMMMKMKMMMMMMMMKMMMMMKMMKMMMKMKMMKMMMK

35、MKMMMMMMChiose your nunbeil-6>:151輸入想要刪除的課程編號;玨3紳績刪除請按回車結(jié)束刪除課程按0= 01A -V 存Q - 瓢息繼 里稱意創(chuàng)請文件中圖 5-12刪除錯選課程模塊運行結(jié)果圖5.2調(diào)試過程中出現(xiàn)的問題問題的提出程序編寫完成后,都需要經(jīng)過調(diào)試,看其是否達到了指定的功能。但主要還是修改 其中出現(xiàn)的大大小小的問題。本次設計中出現(xiàn)的問題有:1. 調(diào)試過程中無法讀取文txt文件。2. 密碼不能用戶自定義。3. 旦關(guān)閉這個變異環(huán)境后,所增加的課程信息,學生信息不能長久保存。問題分析1. txt無法讀取,輸入路徑后沒有文件顯示。解決辦法是,向老師求助。最后,

36、在老師細心的指導下,才知道是自己的計算機操作水平緣故,沒有很好的了解計算機路徑 結(jié)構(gòu),最后做出了一定的修改,才得以實現(xiàn)2. 密碼問題,是由于編寫程序的時候就已經(jīng)將密碼定死了。用戶無法通過系統(tǒng)平臺 改變密碼值。因此,這樣的密碼形同虛設,簡直就沒有什么用。3. 出現(xiàn)這個問題的原因,是因為信息量的存儲設置不太好,運用文件存儲的方式存 儲信息方便,但是要調(diào)用信息就不太方便 。5.2.3 問題解決建議運用數(shù)據(jù)庫將密碼信息存儲起來,然后用 switch 語句控制密碼輸入錯誤次數(shù),當 輸入密碼錯誤達到 3 次,就使用一個密碼重置申請函數(shù)。再將新密碼存入數(shù)據(jù)庫,并將 以前設置的密碼覆蓋掉。建議運用數(shù)據(jù)庫來存儲

37、信息,用數(shù)據(jù)庫存儲信息比文件存儲更 加穩(wěn)定。6 總結(jié)通過本次課程設計, 我們把已經(jīng)快遺忘的 C 語言知識重新復習了一遍, 這也讓我們 認識到了經(jīng)常總結(jié)之前學到知識的重要性。這次看似簡單的課程設計,將我們身上的很 多不足之處都暴露了出來,也讓我們認識到了自己想要提高自己需要往哪方面繼續(xù)努 力。本次課設是我們團隊一起完成的,大家都有明確的分工,當然在這個過程中我們遇 到了很多問題,并不是一個人去埋頭苦干,而是提出來大家一起幫忙想辦法去解決的。 編程過程結(jié)構(gòu)體有 float 型數(shù)據(jù)時系統(tǒng)提示有錯誤, 用 int 或 char 型代替然后定義可解 決。在調(diào)試沒運行完自動跳出主界面:主要可能遇到 flo

38、at 型數(shù)據(jù)時系統(tǒng)錯誤。插入鏈 表閱讀和輸出文件不熟悉;不熟悉如何使形參與實參一一對應。經(jīng)過查詢資料和老師同 學們的幫忙基本解決。經(jīng)過這樣不斷的發(fā)現(xiàn)錯誤,改正錯誤,不斷領(lǐng)悟,不斷獲取終于 順利完成課程設計。通過這一周的的 C 語言程序設計實訓, 不僅鞏固了自己之前掌握的 C 程序的設計 基礎,而且彌補了在上課期間沒有學會的知識; 也讓我們的對抽象理論有了具體的認知。 認識到了 C 語言的用途是非常廣的,功能也非常強大,是學計算機不可缺少的語言。 更重要的是,讓我學到了很多知識,增強了動手能力,積累了經(jīng)驗。同時也我發(fā)現(xiàn)了自 己的許多不足之處,有待在以后的學習中進一步完善,掌握和運用更多的知識。最

39、重要 的是此次實訓, 讓我認識到團隊合作的強大力量, 自身的嚴重不足, 更激發(fā)了我對 C 語 言程序設計的興趣。 C 語言中蘊含著強大的奧妙,等著我們?nèi)ヌ剿?。課程設計是在老師指導下完成的,讓我對學生選課系統(tǒng)有了較深的認識,也具備了 一定的實踐經(jīng)驗。此次課設讓我認識到:團隊的不可替代性,知識的重要性,以及遇到 問題積極的動腦、動手,樂于向他人討教不懂的問題。7 設計優(yōu)缺點7.1 不足之處與改進之處經(jīng)過測試,這個系統(tǒng)已經(jīng)達到了題目中的全部要求。這個程序有很多優(yōu)點有一個是 界面簡明,簡潔明了的程序菜單;一個是智能化的模塊設計,減少了許多人工操作,如 功能模塊操作結(jié)束后,均會返回主菜單進行下一模板的運

40、行,并提示是否再進行類似的 操作,這樣給用戶帶來了操作的方便,大大提高了學生選課的效率還有就是提示語言既 簡潔又明確,層次分明等等;當然也有缺點如程序仍然存在不合理的地方,例如程序某 些部分輸入錯誤不能立刻返回改正;信息表達方式不豐富,比較單一,缺少圖片、音樂 等元化表達方式。編程過程結(jié)構(gòu)體有 float 型數(shù)據(jù)時系統(tǒng)提示有錯誤,用 int 或 char 型代替然后定義 可解決。在調(diào)試沒運行完自動跳出主界面:主要可能遇到 float 型數(shù)據(jù)時系統(tǒng)錯誤。有 些字母輸入錯誤,仔細查找就可解決;插入鏈表閱讀和輸出文件不熟悉;不熟悉如何使 形參與實參一一對應。經(jīng)過查詢資料和老師同學們的幫忙基本解決了。

41、通過這一周的的 C 語言課程實訓,不僅鞏固了自己之前掌握的 C 程序的設計基礎, 還學彌補了在上課期間沒有學會的知識。經(jīng)過這次課設,我充分認識到了 C 語言的用 途是非常廣的,功能也非常強大,是學計算機不可缺少的語言。更重要的是,在這次編 程中熟悉了編寫一個比較復雜程序的流程,以及發(fā)現(xiàn)問題、解決問題的能力,為下一步 計算機語言的學習做了準備。之前感覺遙不可及的功能,現(xiàn)在可以實現(xiàn)了,非常感謝老 師和同學的熱心幫助,這是我得以及時完成這個程序的重要因素。7.2 收獲與總結(jié)總之,這次設計程序讓我受益良多,我會好好珍惜像這種難得的機會。感謝老師這段時間來對我的教導。雖然在這次試訓中我遇到了很多困難,但

42、在老師的幫助下都克服了過去。也讓我真正學到了平時上理論課時學不到的一些實踐性的東西。我會珍惜這次的經(jīng)歷的。再次感謝您對我的教導!7.3 程序的優(yōu)缺點功能上的優(yōu)點:1. 簡潔明了的程序菜單。程序主要采用了六組層次不同的菜單,相互獨立又相互聯(lián) 系,巧妙相接,符合用戶的使用習慣與思維。2. 人性化的程序提示語言, 程序提示語言較人性化, 不僅大多為祈使語句、 疑問句, 而且提示明確,具有較強的明確的指導作用。程序提示不僅層次分明,提示方式多樣, 而且提示信息井然有序,更加有利于用戶順利、準確地進行程序的操作。3. 智能化的模塊設計。程序的智能化主要體現(xiàn)在減少了許多人工操作。如功能模 塊操作結(jié)束后,均

43、會返回主菜單進行下一模板的運行,并提示是否再進行類似的操作, 這樣給用戶帶來了操作的方便,大大提高了學生選課的效率。程序的缺點:1. 程序雖然經(jīng)過多次精簡,但僅僅是形式上、小范圍的精簡,仍 未得到本質(zhì)上的精簡,即未找到更加簡單、更加高效、更加合理、更小占用的資 源的算法。2. 程序仍然存在不合理的地方,例如程序某些部分輸入錯誤會導致程序中止或轉(zhuǎn) 向其他功能模塊,即程序建議用戶注意提示,進行合理的準確的輸入,這樣更有利于管 理工作。3. 程序功能仍然不夠完善。例如信息表達方式不豐富,比較單一,缺少圖片、音樂等元化表達方式參考文獻1. 王連相 .C/C+ 程序設計 武漢大學出版社 .2013.72

44、. 譚浩強 C 語言程序設計 (第 2 版)學習指導清華大學出版社 .2012.123. 楊莉,龔義建 C 語言程序設計實訓指導教程華中科技大學出版 .2009.64. 張小東,鄭宏珍 C 語言程序設計與應用人民郵電出版社 .2009.45. 郭翠英 C 語言課程設計案例精編中國水利水電出版社 6 郭有強 C 語言程序設計清華大學出版社 7李丹程 ,劉瑩,那俊 C 語言程序設計案例實踐清華大學出版社 8 李麗娟 C 語言程序設計教程人民郵電出版社 9武雅麗 ,王永玲,解亞利 C 語言程序設計清華大學出版社 本次課程實訓過程中,得到了指導老師的指導與支持。在此特別感謝謝老師的大力 幫助。指導老師

45、在總體結(jié)構(gòu)、功能的把握上給予了非常大的幫助,同時為我們提供了非 常優(yōu)越的設計環(huán)境,并對我在編程、算法設計等細節(jié)工作上給予了耐心的指導,對于我 順利完成這次課程設計起到了關(guān)鍵性的作用。轉(zhuǎn)眼間,一周的課程實訓結(jié)束了,感謝老師為我們提供的每周數(shù)次的到教室上機調(diào) 試的機會,在那里,老師為我們解決各種難題,同學之間也可以相互討論,這才有了今 天的成果,特別是老師的寶貴的意見,給了我很大的啟示,同時也要感謝那些給予過我 幫助過我的同學們。同時,感謝校方給予我這樣一次機會,能夠獨立地完成一次課程設 計,并在這個過程當中,給予我們各種方便,使我們在這學期快要結(jié)束的時候,能夠?qū)?學到的知識應用到實踐中,增強了我

46、們實踐操作和動手應用能力,提高了獨立思考的能 力。感謝所有任課老師和所有同學在這兩年來給自己的指導和幫助,是他們教會了我 專業(yè)知識,教會了我如何學習。正是由于他們,我才能在各方面取得顯著的進步,在此 向他們表示我由衷的謝意。附錄: 源程序代碼#include "stdio.h"#include "string.h"#include "stdlib.h"#include "malloc.h"void prin1();void choose();typedef struct subjectsint num;char n

47、ame20;char kind10; / 課程編號 / 課程名稱 / 課程性質(zhì)int stime;/ 總學時int ttime;/ 授課學時int etime;/ 實驗或上機學時int score;/ 學分int term;/ 開課學期struct subjects *next;SUB;SUB *head=NULL;SUB *create_form() / 創(chuàng)建鏈表SUB *head,*tail,*p;int num,stime,ttime;int etime,score,term;char name20,kind10;int size=sizeof(SUB);head=tail=NULL;p

48、rintf ("輸入選修課程信息 :n"); scanf("%d%s%s%d%d%d%d%d",&num,name,kind, &stime,&ttime,&etime,&score,&term);while(num!=0)p=(SUB *)malloc(size);p->num=num;strcpy(p->name,name);strcpy(p->kind,kind);p->stime=stime;p->ttime=ttime;p->etime=etime;p->

49、score=score;p->term=term;if(head=NULL)head=p;elsetail->next=p;tail=p;scanf("%d%s%s%d%d%d%d%d",&num,name, kind,&stime,&ttime,&etime,&score,&term);tail->next=NULL;return head;void savefile() / 保存文件SUB *p;FILE *fp;fp=fopen("2.txt","w"); if(

50、fp=NULL)exit(0);printf ("課程編號 課程名稱 課程性質(zhì) 總學時 授課學時 實驗或上機學時 學分 開課學期 n"); for(p=head;p;p=p->next) fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7dn", p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term); fclose(fp);printf ("創(chuàng)建后的信息已放入 '2.txt&#

51、39; 文件中 n"); system("pause");void savefile1() / 保存文件SUB *p;FILE *fp; fp=fopen("3.txt","w");if(fp=NULL)exit(0); for(p=head;p;p=p->next) fprintf(fp,"%5d%12s%9s%9d%9d%11d%11d%7dn", p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->

52、score,p->term); fclose(fp);printf ("創(chuàng)建后的信息已放入 '3.txt' 文件中 n"); system("pause");void readfile() / 閱讀文件void *myInsert(SUB*);SUB *newSub; / 新課程int num,stime,ttime,etime;int score,term;char cname20,kind10,fname20;FILE *fp;fp=fopen("2.txt","r");while(!fe

53、of(fp)newSub=(SUB*)malloc(sizeof(SUB); fscanf(fp,"%d%s%s%d%d%d%d%dn",&newSub->num,newSub->name,newSub->kind, &newSub->stime,&newSub->ttime,&newSub->etime,&newSub->score,&newSub->term); myInsert(newSub);fclose(fp);void prin() / 瀏覽所有課程SUB *ptr;

54、head=NULL;readfile();if(head=NULL)printf("nnt*NO RECORDS!*n");return;printf ("課程編號 課程名稱 課程性質(zhì) 總學時 授課學時 實踐或上機學時 學分 開課學期 n"); for(ptr=head;ptr;ptr=ptr->next) printf("%5d%12s%9s%9d%9d%11d%11d%7dn",ptr->num,ptr->name, ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term); system("pause");void prin1() / 瀏覽所有選修課程SUB *ptr;FILE *fp;if(fp=fopen("3.txt","r")=NULL)printf("Cannot open file.n");choose();printf ("課程編號 課程名稱 課程性質(zhì) 總學時 授課學時 實踐或上機學時 學分 開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論