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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、均地分配。關(guān)鍵詞:學(xué)生選課;C語言;文件存儲(chǔ)目錄1 緒 論 11.1 基本內(nèi)容 11.2 發(fā)展趨勢(shì) 11.3 用途及特點(diǎn) 12 問題需求分析 . 32.1 問題的提出 32.2 問題的分析 33 總體設(shè)計(jì) 53.1 總體設(shè)計(jì)思路 53.2 總體設(shè)計(jì)模塊介紹及框圖 64 詳細(xì)設(shè)計(jì) 74.1 各模塊流程圖 74.1.1 主函數(shù)模塊 74.1.2 管理員模塊 74.1.3 學(xué)生模塊 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ù)功能具體實(shí)現(xiàn)及算法 195. 調(diào)試及分析過程 215.1 各模塊運(yùn)行結(jié)果 215.1.1 開始運(yùn)行 215.1.2 管理員菜單 215.1.3 按 1 進(jìn)入錄入課程模塊 225.1.4 輸完課程信息后進(jìn)入管理員瀏覽模塊 225.1.5 按課程性質(zhì)查詢 235.1.6 按課程學(xué)分查詢 235.1.7 按 4 進(jìn)行管理員刪除模塊 245.1.8 學(xué)生菜單 245.1.9 按 1 學(xué)生瀏覽所有課程 255.1.10 按學(xué)分查詢課程 265.1.11 按 3 進(jìn)入選修課程模塊 265.1.12 按 4 進(jìn)入瀏覽已選修的課程 275.1.13 按 5

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

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

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

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

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

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

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

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

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

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

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

19、模塊。密碼次數(shù)用了一個(gè)int型的變量來計(jì)數(shù)。用一個(gè)switch語句實(shí)現(xiàn)函數(shù)的調(diào)用:開始學(xué)生模塊學(xué)生的功能一共有四個(gè)功能:瀏覽所有課程信息、查詢課程信息、選擇選修課程、瀏覽所選課程、刪除錯(cuò)選課程等。用一個(gè)switch語句實(shí)現(xiàn)函數(shù)的調(diào)用:圖4-3 學(xué)生模塊流程圖創(chuàng)建鏈表模塊利用鏈表的創(chuàng)建、插入、刪除和查詢等功能。以菜單選項(xiàng)形式體現(xiàn)出來,實(shí)現(xiàn)課 程信息的增加、學(xué)生信息的增加、課程信息的刪除以及學(xué)生信息的修改等等。運(yùn)用鏈表 實(shí)現(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)建流程圖瀏覽模塊瀏覽模塊主要用管理員中的“瀏覽課程”和學(xué)生功能中的“瀏覽所有所有課程”, 將所有的課程信息輸出,即將2.txt文件里面的內(nèi)容全部輸出:圖4-5 瀏覽模塊流程圖查詢模塊查詢模塊主要用于管理員功能中的“查詢課程”和學(xué)生功能模塊中的“查詢所有課 程”,查詢模塊共分為三個(gè)查詢方法:按課程名稱查找,按課程性質(zhì)查找和按學(xué)分查找 switch語句中,每一個(gè)case語句就是一中查詢方法:圖 4-6 查詢模塊流程圖4.1.7 插入鏈表模塊插入鏈表操作主要用于添加課程,在整個(gè)課程信息中加入一些新課程,它在

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

22、件,當(dāng)輸入my_sub.txt時(shí),就是瀏覽學(xué)生選修的課程信息。是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讀取文件模塊流程圖保存文件模塊保存文件模塊共分為兩個(gè)子程序,將修改的信息保存到2.t

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

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

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

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

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

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

30、錯(cuò)的課程,選擇6返回主菜單。工-一瀏覽所有課程2 杳詢課稈彳g鳥3- 一選擇選修課程轉(zhuǎn)一-瀏覽我選修的課程石 刪除錯(cuò)選課程M-NMJiose youi* nunber(l-fc> : L J圖5-8學(xué)生菜單運(yùn)行結(jié)果圖按1學(xué)生瀏覽所有課程進(jìn)入學(xué)生菜單,選擇1進(jìn)入瀏覽所有課程界面,可以查看所選擇的課程信息1測(cè)覽所有課程2杳詢課稈信息A"選擇選修課程4-一瀏覽我選修的課程 卜一刪除錯(cuò)選課程£一_返回主菜單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授課學(xué)時(shí)20202015學(xué)分開課學(xué)期11111實(shí)踐或上機(jī)學(xué)時(shí)051Q1Q15按學(xué)分查詢課程進(jìn)入學(xué)生查詢界面選擇2按學(xué)分查找,開始查找需要修習(xí)的課程。幵課學(xué)期111實(shí)3密或上機(jī)學(xué)時(shí)0101U揺課學(xué)時(shí)2020lb總學(xué)時(shí)20302bCh lose 如 tn* nmnbei*<l-3> : LZ1 愉入?yún)⒉檎业恼n程的學(xué)分® 課程窮號(hào)課程名翹-13請(qǐng)按任意1®課権質(zhì)査找2按學(xué)分查找3-退出查找青 1 先 $ 羊旬 廳工><1<耳 HUM; KiMIC >EX:K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

46、們實(shí)踐操作和動(dòng)手應(yīng)用能力,提高了獨(dú)立思考的能 力。感謝所有任課老師和所有同學(xué)在這兩年來給自己的指導(dǎo)和幫助,是他們教會(huì)了我 專業(yè)知識(shí),教會(huì)了我如何學(xué)習(xí)。正是由于他們,我才能在各方面取得顯著的進(jìn)步,在此 向他們表示我由衷的謝意。附錄: 源程序代碼#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; / 課程編號(hào) / 課程名稱 / 課程性質(zhì)int stime;/ 總學(xué)時(shí)int ttime;/ 授課學(xué)時(shí)int etime;/ 實(shí)驗(yàn)或上機(jī)學(xué)時(shí)int score;/ 學(xué)分int term;/ 開課學(xué)期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 ("課程編號(hào) 課程名稱 課程性質(zhì) 總學(xué)時(shí) 授課學(xué)時(shí) 實(shí)驗(yàn)或上機(jī)學(xué)時(shí) 學(xué)分 開課學(xué)期 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 ("課程編號(hào) 課程名稱 課程性質(zhì) 總學(xué)時(shí) 授課學(xué)時(shí) 實(shí)踐或上機(jī)學(xué)時(shí) 學(xué)分 開課學(xué)期 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 ("課程編號(hào) 課程名稱 課程性質(zhì) 總學(xué)時(shí) 授課學(xué)時(shí) 實(shí)踐或上機(jī)學(xué)時(shí) 學(xué)分 開

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論