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

下載本文檔

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

文檔簡介

編程基礎(chǔ)

名稱:電子詞庫軟件

C語言編程培訓(xùn)任務(wù)書

題目:學(xué)生選修課系統(tǒng)

一、設(shè)計目的

I.進(jìn)一步掌握和使用c語言進(jìn)行編程的能力;

2.進(jìn)一步理解和應(yīng)用結(jié)構(gòu)化編程的思想和方法;

3、掌握開發(fā)小型實用系統(tǒng)的基本方法;

4、學(xué)習(xí)調(diào)試較長程序的基本方法;

5、學(xué)會用流程圖或NS圖來表示算法;

6.掌握編寫培訓(xùn)開發(fā)文檔的能力(編寫培訓(xùn)報告)

二、設(shè)計任務(wù)及能力

假設(shè)有n門課程,每門課程都有課程編號、課程名稱、課程性質(zhì)、總學(xué)時、教學(xué)時

數(shù)、實驗或計算機學(xué)時、學(xué)分、課程學(xué)期等信息、,學(xué)生可以自由選擇課程:必填(例如

總學(xué)分不少于60)。嘗試設(shè)計一個選修課系統(tǒng),提供以下功能:

1、系統(tǒng)工作在菜單模式。

2.課程信息輸入功能一一輸入

3.課程信息瀏覽功能-輸出

4.查詢功能:-算法(二選一)

1)根據(jù)學(xué)分查詢課程信息。

2)根據(jù)課程性質(zhì)查詢課程信息。

5.學(xué)生選修課

6.按課程編號順序插入課程信息。

7.按課程名稱刪除課程信息。

8.以課程名稱的字典順序輸出所有課程信息。

三、設(shè)計要求

1、用C語言實現(xiàn)系統(tǒng);

2、使用結(jié)構(gòu)和數(shù)組設(shè)計數(shù)據(jù)結(jié)構(gòu);

3、系統(tǒng)具有添加、查詢、插入、排序等基本功能;

4、要求系統(tǒng)各功能模塊以函數(shù)的形式實現(xiàn);

5.資料:每名學(xué)員一份培訓(xùn)指導(dǎo)書,并放入統(tǒng)一資料箱;

6.CD-ROM:每個學(xué)生的文件和程序資料都建在一個以他/她的學(xué)號命名的文件夾中,

每個班級的負(fù)責(zé)人需要收集每個學(xué)生的文件,將它們放在班級命名的文件夾中,刻錄成

光盤,放入專用資料袋中。

四。提交結(jié)果

1.設(shè)計任務(wù)書一本(學(xué)校統(tǒng)一格式)

2.設(shè)計規(guī)范,包括:

1)中文摘要為100字,3-5個關(guān)鍵詞。

2)培訓(xùn)主題、內(nèi)容和要求。

3)整體設(shè)計(包括幾個功能模塊)。

4)詳細(xì)設(shè)計(各功能模塊的具體實現(xiàn)算法-流程圖)

5)數(shù)據(jù)結(jié)構(gòu)設(shè)計說明、各模塊(功能)功能介紹、參數(shù)說明等。

6)調(diào)試分析(包括每個模塊的測試用例和測試結(jié)果。)

7)總結(jié)(培訓(xùn)完成了哪些功能,有哪些需要改進(jìn)的地方,培訓(xùn)有哪些收獲,調(diào)試

程序的經(jīng)驗等)

8)參考文獻(xiàn)、信件等。

五、主要參考資料

1.王連祥?!禖/C++編程》大學(xué).2013.7

2.譚浩強C語言程序設(shè)計學(xué)習(xí)指南(第2版)清華大學(xué)。2012年12月

3.李、龔以健《C語言編程實踐指導(dǎo)教程》華中科技大學(xué)2009年6月出版

4.曉東、洪振,《C語言編程與應(yīng)用》,人民郵電.2009.4

5.郭翠英《C語言課程設(shè)計案例匯編》中國水利水電2004.03.01

6.郭友強,C語言程序設(shè)計,清華大學(xué),2009年2月1日

7.程丹,穎,那軍,C語言程序設(shè)計案例實踐,清華大學(xué),2009年2月1日

8.《C語言程序設(shè)計教程》,麗娟,人民郵電,2013年1月1日

9.吳亞莉、王永玲、杰亞莉的C語言程序設(shè)計,清華大學(xué),2009年2月1日

六、每個階段的時間表(共1周)

日期允許地點表現(xiàn)老師簽名

教師解釋設(shè)計要求并準(zhǔn)備參考資

周一課堂

料。

周二系統(tǒng)分析與方案設(shè)計課堂

周三方案設(shè)計與編程課堂

周四調(diào)試程序并編寫訓(xùn)練指令。課堂

星期五完成培訓(xùn)指導(dǎo)并回復(fù)。課堂

摘要

20世紀(jì)末,隨著計算機科學(xué)的發(fā)展,網(wǎng)絡(luò)的應(yīng)用越來越廣泛,為用戶提供了更加周

到、人性化的服務(wù)。本文研究了一種基于文件存儲的學(xué)生選修課系統(tǒng)。本系統(tǒng)是根據(jù)現(xiàn)

代校園發(fā)展為學(xué)生設(shè)計的課程系統(tǒng)。方便老師和家長來校了解學(xué)生成績、近期獎懲情況

等。隨著教育改革的深化和素質(zhì)教育的加強以及完整學(xué)分制的實施,選修課發(fā)揮在學(xué)生

的培訓(xùn)計劃中扮演著越來越重要的角色!使用在線選課系統(tǒng)后,您可以在開課前在線選

課。每個學(xué)生的課程在開課前就已經(jīng)確定了,不用浪費體力去選課,還可以合理、均勻

地分配教學(xué)資源。

關(guān)鍵詞:學(xué)生選課;C)語言;文件內(nèi)存

目錄

1mio理論1

1.1基本容量1

1.2發(fā)展趨勢1

1.3用途和特點1

2問題需求分析3

2.1提出的問題3

2.2問題3

3整體設(shè)計4

3.1整體設(shè)計思路4

五介紹及框圖4

1米奧理論

1.1基本容量

隨著教育改革的深入和素質(zhì)教育的加強以及完整學(xué)分制的實施,選修課在學(xué)生的培

養(yǎng)計劃中發(fā)揮著越來越重要的作用!學(xué)生在選擇課程時,應(yīng)查看每門課程的詳細(xì)信息,

并選擇一些感興趣的課程。他們需要生成課程表,發(fā)現(xiàn)課程沖突后可以修改之前選擇的

信息、。隨著高校課程改革的不斷深入,學(xué)校規(guī)模不斷擴大,課程項目數(shù)量不斷增加。為

解決學(xué)生選修課管理中繁雜的人工操作,制定選修課系統(tǒng)迫在眉睫。全校選修課的目的

是拓寬學(xué)生的知識面,加強學(xué)生的素質(zhì)教育,培養(yǎng)復(fù)合型高級人才,具有不可替代的重

要性!

1.2發(fā)展趨勢

對于復(fù)雜的信息管理,計算機可以充分發(fā)揮其優(yōu)勢。計算機信息管理與信息管理系

統(tǒng)的發(fā)展密切相關(guān),信息管理系統(tǒng)是系統(tǒng)管理的前提。該系統(tǒng)旨在管理學(xué)生的選課信息。

當(dāng)今是一個飛速發(fā)展的信息時代,各行各業(yè)都離不開信息處理,這是計算機在信息

系統(tǒng)中得到廣泛應(yīng)用的環(huán)境。計算機最大的優(yōu)點是可以管理信息和控制信息,不僅提高

了工作效率,而且大大提高了它的安全性。

基于這個問題,我認(rèn)為有必要建立一個學(xué)生選課系統(tǒng),使學(xué)生選課的信息管理有規(guī)

律、系統(tǒng)化、程序化,避免學(xué)生選課管理的隨意性,提高信息的速度和準(zhǔn)確性。處理,

并能夠及時、準(zhǔn)確、有效地查詢和修改選課情況。

1.3用途和特點

現(xiàn)代社會是信息社會,信息無處不在。在生產(chǎn)、流通領(lǐng)域和各個部門,每天都在處

理信息。如何處理如此多的信息已成為一個重要的問題。學(xué)生在學(xué)期開始選課是教學(xué)活

動中的一個重要環(huán)節(jié)。如果這個環(huán)節(jié)管理得好,不僅可以加快學(xué)生的選課,還可以提高

整個活動的效率。

一般來說,大學(xué)有數(shù)以萬計的學(xué)生。每個學(xué)期開始時,學(xué)生都要選擇課程,從而產(chǎn)

生大量的課程信息??紤]到用戶的方便和處理的信息量,系統(tǒng)需要完成課程信息的輸入、

保存、查詢、修改、刪除等各個過程,并可以打印出課程信息表。

系統(tǒng)的主要對象是需要選課的學(xué)生。根據(jù)學(xué)生選修課的變化,計算相應(yīng)的總學(xué)分。

全部選中后打印報告。系統(tǒng)還需要管理員查看和修改學(xué)生的整體課程選擇、課程信息和

學(xué)生信息。本系統(tǒng)選課方便快捷。它使用簡單的界面來顯示學(xué)生的選課信息。具有應(yīng)用

簡單明了、存儲容量大、可靠性高、性能好、使用壽命長、成本低等優(yōu)點,可以大大提

高學(xué)生信息管理的效率。隨著c語言的發(fā)展,實現(xiàn)了對學(xué)生課程信息的輸入、修改、查

詢、刪除等簡單操作,原始數(shù)據(jù)可以通過文件系統(tǒng)長期保存。

2問題需求分析

2.1提出的問題

隨著教育改革、高校規(guī)模擴大、專業(yè)急劇增加,以教師講課為主的傳統(tǒng)教育模式已不再

適合我國高校的現(xiàn)狀。而且,安排上市時間表是一項非常復(fù)雜和艱巨的任務(wù)。在帕克的

過程中,除了要滿足大量的約束之外,還要解決很多的沖突。因此,利用網(wǎng)絡(luò)選課、教

學(xué)生應(yīng)該是有道理和必要的。那么如何打造在線選修課系統(tǒng)呢?如何實現(xiàn)學(xué)生隨時隨地

按照自己的日程安排在線學(xué)習(xí)?這已經(jīng)成為網(wǎng)絡(luò)選修課研究者的一大難題。

2.2問題分析

大學(xué)里總是有很多公共選修課。過去,選修課的方式是在課堂上注冊。這種方法雖

然直接,但在選課時會造成盲目性。有些班級人滿為患,而另一些則無人看管。原因是

傳統(tǒng)的選課方式是不可預(yù)測的,大家也沒有提前協(xié)調(diào)好。這種情況在高校中已經(jīng)產(chǎn)生了

很長時間,短時間內(nèi)不可能改變。使用在線選課系統(tǒng)后,您可以在開課前在線選課。每

個學(xué)生的課程在開課前就己經(jīng)確定了,不用浪費體力去選課,還可以合理、均勻地分配

教學(xué)資源。

本系統(tǒng)開發(fā)的目的是利用信息技術(shù)和網(wǎng)絡(luò)技術(shù)幫助學(xué)生和學(xué)校管理選課的教學(xué)任務(wù)。教

育體制的改革和學(xué)生人數(shù)的急劇增加,無疑為在線選修課提供了前所未有的機遇。本系

統(tǒng)是專門為方便用戶根據(jù)自己的時間隨時隨地學(xué)習(xí)而開發(fā)的。學(xué)校將老師講課視頻直接

放到學(xué)校官網(wǎng),學(xué)生可以通過官網(wǎng)在學(xué)生選課系統(tǒng)中隨意學(xué)習(xí)。這不僅節(jié)省了學(xué)生的時

間,也為學(xué)校節(jié)省了大量的教師資源。學(xué)??梢詫⑦@部分節(jié)省下來的教師資源用于學(xué)術(shù)

研究、教育方法研究等。

目前,大部分學(xué)校都沒有完善的學(xué)生選修課體系,電腦的使用以微軟。ffice為主,無法

發(fā)揮有效作用。而且,隨著中國教育改革,學(xué)生可以選擇多種科目,這使得學(xué)校對學(xué)生

選修課的管理變得繁瑣、復(fù)雜和繁重。這種傳統(tǒng)的學(xué)校選修課模式已經(jīng)不能適應(yīng)當(dāng)前的

發(fā)展。實現(xiàn)學(xué)生選課的系統(tǒng)化、標(biāo)準(zhǔn)化、自動化,做到全面、相對集中,為學(xué)生提供全

面的選課信息,為選課的有效管控提供有力幫助;為了及時了解選修課的情況,做好選

修課的安排。該系統(tǒng)是高校個人選課和管理的現(xiàn)代化信息平臺。學(xué)生可以通過瀏覽器在

線選課,可以查看自己的選課計劃和選課進(jìn)度。同時,管理員可以通過瀏覽器添加、刪

除和修改課程。這為學(xué)生和老師節(jié)省了大量的工作。充分利用網(wǎng)上選課系統(tǒng),提高教學(xué)

選課管理效率,實現(xiàn)全面聯(lián)網(wǎng)、規(guī)范化、一體化。

3整體設(shè)計

3.1整體設(shè)計思路

通過課題分析,程序需要設(shè)計選修課管理系統(tǒng),可以輸入和修改選修課,需要主界

面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設(shè)置一個管理員登錄選項。通過該

界面可以輸入和修改選修課。最后,您可以將輸入的課程保存到相應(yīng)的文件中。然后定

義各種功能的功能包括:查看、查詢、刪除等。另一個是學(xué)生登錄界面,可以讓學(xué)生選

擇課程、瀏覽和查詢。在此操作之前,您需要先閱讀管理員保存的文件,然后查詢其中

的內(nèi)容。學(xué)生選課后,可以將選課保存在相應(yīng)的文件中,以便下次修改。程序的邏輯結(jié)

構(gòu)是通過函數(shù)的逐層調(diào)用來實現(xiàn)的。通過中間文件的打開和關(guān)閉,可以對文件段中包含

的數(shù)據(jù)進(jìn)行操作。然后通過對課題的分析,必須實現(xiàn)的功能包括主線程對四大線程的隨

機調(diào)度和輸出結(jié)果的顯示。為了方便用戶控制和管理,我們增加了一些更人性化的功能,

如手動調(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)的功能,如添加課程信息、修改課程信息、刪除課程信息、添加學(xué)

生信息和修改學(xué)生信息,由不同的子程序完成,不僅方便我們程序調(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)的功

能,如添加課程信息、修改課程信息、刪除課程信息、添加學(xué)生信息和修改學(xué)生信息,

由不同的子程序完成,不僅方便我們程序調(diào)試,也提高了程序的可移植性。

3.2整體設(shè)計模塊介紹及框圖

該系統(tǒng)由一個主模塊和幾個子模塊組成。主模塊有兩個模塊:管理員和學(xué)生。管理

員模塊的主要功能是添加和刪除課程信息,而學(xué)生模塊主要管理學(xué)生信息和課程選擇。

Mainmodule

AdministratorStudentmodu

圖3-1整體模塊框圖

4詳細(xì)設(shè)計

4.1各模塊流程圖

4.L1主要功能模塊

主功能設(shè)計簡單,只提供一個主菜單和幾個函數(shù)調(diào)用來顯示功能。Switch語句將

整個程序分為三個功能模塊。具體流程圖如下:

圖4-1主要功能模塊圖

4.1.2管理員模塊

管理員具有瀏覽、查詢、增刪課程、使用字符串處理功能處理密碼問題四大功能。

如果密碼正確,則可以進(jìn)入管理員模塊。否則,請重新輸入名稱。如果密碼輸入錯誤3

次,則無法進(jìn)入管理員模塊。密碼時間由int變量計算。使用switch語句調(diào)用函數(shù):

end

圖4-2管理員模塊流程圖

4.1.3學(xué)生模塊

學(xué)生有四個功能:瀏覽所有課程信息、查詢課程信息、選擇選修課、瀏覽選擇的課程、

刪除錯誤的課程等。使用switch語句調(diào)用該功能:

be

no

be

no

be

no

be

no

be

no

be

no

圖4-3學(xué)生模塊流程圖

4.1.4創(chuàng)建鏈表模塊

利用鏈表的創(chuàng)建、插入、刪除和查詢功能。體現(xiàn)為菜單選項的形式,可以增加課程信息、

增加學(xué)生信息、刪除課程信息、修改學(xué)生信息等。使用鏈表實現(xiàn)這些功能可以很好的與

用戶交互。

istforeachelem

entofthestruct

*

CreationfSuccessful

Vy

圖4-4鏈表創(chuàng)建流程圖

4.1.5瀏覽模塊

瀏覽模塊主要使用管理員中的“瀏覽課程”和學(xué)生功能中的“瀏覽所有課程”輸出

所有課程信息,即輸出2.txt文件中的所有內(nèi)容:

圖4-5瀏覽模塊流程圖

4.1.6查詢模塊

查詢模塊主要用于管理員功能中的“查詢課程”和學(xué)生功能模塊中的“查詢所有課

程”。查詢模塊分為三種查詢方式:按課程名稱查詢、按課程性質(zhì)查詢和按學(xué)分查詢。

每個case語句都是查詢方法之一:

hrpak

圖4-6查詢模塊流程圖

4.1.7插入鏈表模塊

插入鏈表的操作主要用于添加課程,在整個課程信息中添加一些新課程。它在添

加模塊中調(diào)用:

圖4-7插入模塊流程圖

4.1.8添加模塊

添加模塊主要用于增加課程信息,使用鏈表操作:

圖4-8添加模塊流程圖

4.1.9刪除模塊

刪除模塊主要用于管理員刪除課程信息和學(xué)生刪除自己的課程,均采用刪除鏈表

節(jié)點的操作:

Enddeletion

圖4-9刪除模塊流程圖

4.1.10選修課模塊

選修課模塊采用插入鏈表的操作:

begin

Enterthenumbero

圖470選修課模塊流程圖

4.1.11讀取文件模塊

文件讀取模塊用于讀取文件內(nèi)容并輸出到內(nèi)存中。輸入文件名后,即可打開指定

的文件。輸入all_sub.txt后,即可打開所有課程信息的文件。輸入my_sub.txt,即

可瀏覽學(xué)生選修課信息。

!feof(fp)

no

be

11

newSub=(SUB*)malloc(sizeof(SUB));

fscanf(fp,&newSub->num,newSub->name,newSub

->kind,&newSub->stime,&newSub->ttime,&newSu

closeadocument

Failedtoopen

圖4-11讀取文件模塊流程圖

4.1.12保存文件模塊

文件保存模塊分為兩個子程序,將修改后的信息保存到2.txt文件中。

V)

Thesystemdetectsthefi1

圖4-12文件保存模塊流程圖

4.2功能的具體實現(xiàn)和算法

4.2.1每個功能的具體功能

int()程序主函數(shù),程序入口

voidmanagers()管理員主菜單,管理員入口

voidSUB*create_form()創(chuàng)建鏈表結(jié)構(gòu)

voidsavefile()將新添加的課程信息保存到文件中。

voidsavefilelO將修改后的課程信息文件保存到文件中。

voidreadfile()讀取文件

voidprin()瀏覽所有課程

voidprint()瀏覽所有選修課

void*myInsert(SUB*subj)鏈表插入操作

void*insert()插入課程信息

void*del()刪除課程

voidchoose()選修新課---學(xué)生選課功能

voidsearch。課程信息查詢

無效學(xué)生()學(xué)生登錄門戶

4.2.1實現(xiàn)各個功能的具體算法。

本系統(tǒng)程序使用的主要算法有:二分法、冒泡排序等算法。其中,二分法用于管理員錄

入的多種課程信息操作,如添加課程信息、查找課程信息、修改課程信息、瀏覽選修課

等。以學(xué)生身份登錄輸入的課程信息的操作主要采用冒泡排序的方式。冒泡排序和二分

法是c語言中最基本的算法,但應(yīng)用非常廣泛。本系統(tǒng)主要使用二分法和冒泡排序的

搜索功能。

5.調(diào)試分析過程

5.1各模塊運行結(jié)果

5.1.1開始跑步。

啟動程序進(jìn)入登錄界面,輸入1:以管理員身份登錄,輸入1密碼,輸入2:以學(xué)生身份

登錄,輸入3:退出登錄界面。

"XX-X歡迎進(jìn)入學(xué)生選修課程系統(tǒng)—"XXXX

1.以管理員身份'登錄<pass”o?d1>

2.以學(xué)生身份登錄

3.退出

Chioseyournunber<l-3>:[J

圖5-1運行結(jié)果

5.1.2管理員菜單

進(jìn)入管理員菜單。1:輸入所有要選擇的課程,2:瀏覽所有輸入的課程,3:查詢輸

入的課程,4:刪除輸入的課程,5:返回主菜單。

圖5-2管理員菜單圖

5.1.31按進(jìn)入課程模塊。

進(jìn)入課程界面,輸入課程編號、課程名稱、課程性質(zhì)、總學(xué)時、教學(xué)時數(shù)、實踐或計算

機學(xué)時、學(xué)分、開學(xué)學(xué)期。添加完成后點擊回車?yán)^續(xù)添加,輸入o完成添加。

tJUIUII?I

Chioseyournunber<l—5>:[10

輸入要插入的課程信息:

請輸入課程編號:6

請輸入課程名稱:現(xiàn)代醫(yī)學(xué)

請輸入課程性質(zhì):人文

請輸入總學(xué)時:3。

請輸入授課學(xué)時:15

請輸入實踐或上機學(xué)時:15

請輸入學(xué)分:25

請輸入開課學(xué)期:[

添加完畢,新信息存入文件中

繼續(xù)插入請按回車

結(jié)束

3。:0

課程

0稱

蓄課程性鼠國學(xué)時授課學(xué)時實驗或上機學(xué)時學(xué)分開課學(xué)期

創(chuàng)

建2

意.txt,文件中

續(xù)

按^

--

圖5-3輸入課程模塊運行結(jié)果圖

5.1.4輸入課程信息后進(jìn)入管理員瀏覽模塊。

進(jìn)入課程信息程序后,課程編號會自動排序,并顯示輸入的課程信息結(jié)果。按任意鍵退

出該界面。

"^<1TJ

”n

學(xué)

質(zhì)

ch課[2

seourUn):程

i踣

^授課學(xué)時實踐或上機學(xué)時學(xué)分開課學(xué)期

德20

,200301

理825

220251

:30

352010301

自30

4節(jié)2010351

^人25

S糙1510301

6人30

是15251

請15

任-■

半-.

圖5-4課程信息輸入運行結(jié)果

5.1.5按課程性質(zhì)查詢

進(jìn)入課程查詢界面,選擇查詢方式,選擇1按課程性質(zhì)搜索,找出所有課程性質(zhì)相同的

課程,選擇3退出搜索界面。

圖5-5:管理員瀏覽模塊運行結(jié)果圖。

5.1.6按課程學(xué)分查詢

進(jìn)入課程查詢界面,選擇查詢方式,選擇2按課程學(xué)分搜索,找出所有課程學(xué)分相同的

課程,選擇3退出搜索界面。

請選擇查詢方式…

一一按課程性質(zhì)查找

2-—按學(xué)分查找

3--退出查找

Chioseyournunber<l—3>"121

輸入聚查找的課程的學(xué)分

課程褊號課程名稱課程性質(zhì)總學(xué)時授課學(xué)時實踐或上機學(xué)時學(xué)分開課學(xué)期

20200301

3生物卷鼎自矮

一健康教育人文302010301

請按%意讖覆251510301

圖5-6按課程性質(zhì)查詢運行結(jié)果。

5.1.7管理員按4刪除模塊。

在管理員菜單欄中輸入4刪除課程,輸入要刪除的課程編號完成刪除課程,回車?yán)^續(xù)刪

除課程,按0完成刪除課程。

理員菜單

一-錄入課程

2-—瀏覽課程

3--查詢課程

4--刪除課程

5---返回主菜單

IChioseyournunber<l-5>:[4]

輸入想要刪除的課程編號:15]

繼續(xù)刪除請按回車

結(jié)束刪除課程按0:[0]

圖5-7管理員刪除模塊運行結(jié)果圖

5.1.8學(xué)生菜單

進(jìn)入學(xué)生菜單欄,選擇1瀏覽所有選修課,2查詢所有課程信息,3選擇你需要選修的課

程,4瀏覽你選修的課程,5刪除你選錯的課程課程選擇,以及6返回主菜單。

一―瀏覽所有課程

2-—查詢課程信息

3—選擇選修課程

4--瀏覽我選修的課程

5--刪除錯選課程

6--返回主菜單

Chioseyournumbei*<l-6>:C]

圖5-8學(xué)生菜單操作結(jié)果

5.1.91按學(xué)生瀏覽所有課程。

進(jìn)入學(xué)生菜單,選擇1進(jìn)入BrowseAllCourses界面,可以查看選中的課程信息。

1--瀏覽所有課程

2--查詢課程信息

3-—選擇選修課程

4--瀏覽我選修的課程

5-—刪除錯選課程

6-—返回主菜單

11

be[1質(zhì)

和-6

):程

^總學(xué)時授課學(xué)時實踐或上機學(xué)時學(xué)分開課學(xué)期

1人

2罩20200301

人^25205251

3自

缺302010301

4昔

文302010351

6人

患-30151525

圖5-9學(xué)生瀏覽所有課程的運行結(jié)果。

5.1.10按學(xué)分查詢課程

進(jìn)入學(xué)生查詢界面,選擇2SearchbyCredit,開始搜索要學(xué)習(xí)的課程。

W請選擇查詢方式**

■一按課程性質(zhì)查找

2-—按學(xué)分查找

3--退出查找

Chioseyournunber<l—3>:[23

輸入要查找的課程的學(xué)分

課程編號課程芻稱課程性質(zhì)總學(xué)時授課學(xué)時實踐或上機學(xué)時學(xué)分開課學(xué)期

20200301

3生物郛"自然302010301

一3一一健康鬟育人文

251510301

.買

圖5T0按積分查詢運行結(jié)果

5.1.11按3進(jìn)入選修課程模塊。

在學(xué)生菜單中選擇3進(jìn)入選修課界面,輸入要選修的課程數(shù)量,按0確認(rèn)選修課,選課成

功。將所選課程的信息保存在3.txt文檔中。按任意鍵繼續(xù)。

學(xué)生菜單?

i--瀏覽所有課程

2—-查詢課程信息

3--選擇選修課程

4--瀏覽我選修的課程

5-—刪除錯選課程

6-----返回主菜單

Chioseyournunbei*<l-6>:[3]

輸入要選修的課程的編號.編號之間以空格分開

1346

如果確認(rèn)輸入完要選修的課程的編號.請輸入。:「。]

MMMMM選修成功??

您選修的課程總學(xué)分為12。,課程分別為:

質(zhì)

程性

牌程編號課程名稱課忌學(xué)時授課學(xué)時實踐或上機學(xué)時學(xué)分開課學(xué)期

人文

1德語20200301

自然

3生物材料302010301

自鐵

4302010351

人爻

6301515251

以上信息全都隹存在D.txt,中

卜青按屆意鍵昆弟?.■

圖5T1進(jìn)入選修課模塊操作結(jié)果圖

5.1.124按Enter瀏覽選修課程。

在學(xué)生菜單中選擇4,進(jìn)入瀏覽我的選修課界面,將顯示所有選修課信息。按任意鍵繼

續(xù)。

?―瀏覽所有課程

2—-查詢課程信息

3--選擇選修課程

4--瀏覽我選修的課程

5--刪除錯選課程

6--返回主菜單

<f1

,m

質(zhì)

課[4

>:程

nu程l

總學(xué)時授課學(xué)時實踐或上機學(xué)時學(xué)分開課學(xué)期

1%人

然20200301

3一

■302010301

4昔

筆302010351

醫(yī)

6人

翟J301515251

:r

圖5-12;瀏覽選修課的運行結(jié)果。

5.1.13按5進(jìn)入刪除錯誤課程模塊。

在學(xué)生菜單中選擇5,進(jìn)入刪除錯課界面,成功刪除錯課號。如果繼續(xù)刪除錯課,請回

車,按0結(jié)束刪除錯課菜單,將刪除錯課信息保存在3.txt文檔中。按任意鍵繼續(xù)。

一―瀏覽所有課程

2--查詢課程信息

3--選擇選修課程

4--瀏覽我選修的課程

5--刪除錯選課程

6---返回主菜單

Chloseyournunber<l-6>:LbJ

輸入想要刪除的課程編號:16]

繼續(xù)刪除請按回車

結(jié)束刪除課程按0:E0J

d般

>,續(xù)?

創(chuàng)a

續(xù)文件巾

圖5T2刪除錯誤課程模塊運行結(jié)果圖

5.2調(diào)試過程中的問題

5.2.1提出問題

程序?qū)懞煤?,需要進(jìn)行調(diào)試,看是否達(dá)到了規(guī)定的功能。但主要是糾正大大小小的問題。

這種設(shè)計存在的問題是:

1.調(diào)試時無法讀取txt文件。

2、密碼不能由用戶自定義。

3.這個變異環(huán)境一旦關(guān)閉,添加的課程信息和學(xué)生信息就無法長期保存。

5.2.2問題分析

l.txt無法讀取,輸入路徑后不顯示文件。解決辦法是請老師幫忙。最后,在老師的細(xì)

心指導(dǎo)下,我意識到這是我自己的電腦操作水平,對電腦路徑結(jié)構(gòu)沒有很好的理解。最

后,我做了一些修改來實現(xiàn)它。

2.

問題是在編寫程序時密碼是固定的。用戶無法通過系統(tǒng)平臺修改密碼值。因此,這樣的

密碼名存實亡,毫無用處。3.這個問題的原因是信息存儲設(shè)置不是很好。通過文件存

儲方便存儲信息,但調(diào)用信息不方便。

5.2.3問題解決建議

數(shù)據(jù)庫用來存儲密碼信息,然后用switch語句控制密碼輸入錯誤的次數(shù)。當(dāng)密碼輸入錯

誤次數(shù)達(dá)到3次時,使用密碼重置應(yīng)用功能。然后將新密碼存入數(shù)據(jù)庫,并覆蓋之前

設(shè)置的密碼。建議使用數(shù)據(jù)庫存儲信息,比文件存儲更穩(wěn)定。

6總結(jié)

通過本課程的設(shè)計,我們回顧了幾乎被遺忘的c語言知識,也讓我們意識到總結(jié)之前所

學(xué)知識的重要性。這個看似簡單的課程設(shè)計,卻暴露了我們的諸多不足,也讓我們意識

到自己在哪些方面需要努力提高。

這個課程是我們團隊開設(shè)的,每個人都有明確的分工。當(dāng)然,在這個過程中,我們遇到

了很多問題。我們沒有自己努力,而是請大家?guī)椭覀冋业浇鉀Q問題的方法。當(dāng)編程結(jié)

構(gòu)中有浮點數(shù)據(jù)時,系統(tǒng)提示有錯誤??梢酝ㄟ^將其替換為int或char然后定義它

來解決。調(diào)試未完成后自動跳出主界面:可能會遇到系統(tǒng)錯誤,主要是遇到浮動數(shù)據(jù)時。

插入鏈表讀取和輸出文件不熟悉;我不熟悉如何使表單參與與論點的一一對應(yīng)。經(jīng)過查

詢資料和老師同學(xué)的幫助,基本解決了。通過這樣不斷的發(fā)現(xiàn)、修正、理解和習(xí)得,課

程設(shè)計最終圓滿完成。

通過本周的C語言編程實踐,我不僅鞏固了之前掌握的C程序設(shè)計基礎(chǔ),也彌補了課堂上

沒有學(xué)到的知識;它也讓我們對抽象理論有了具體的理解。我意識到C語言應(yīng)用廣泛,

功能強大,是學(xué)習(xí)計算機不可缺少的語言。更重要的是,我學(xué)到了很多知識,增強了動

手能力,積累了經(jīng)驗。同時我也發(fā)現(xiàn)了自己的很多不足,需要在以后的學(xué)習(xí)中進(jìn)一步完

善,以便掌握和應(yīng)用更多的知識。最重要的是,這次實戰(zhàn)訓(xùn)練讓我認(rèn)識到了團隊合作的

強大力量和自己的嚴(yán)重不足,甚至激發(fā)了我對C語言編程的興趣。C語言蘊含著強大的

秘密,等待我們?nèi)ヌ剿鳌?/p>

課程設(shè)計是在老師的指導(dǎo)下完成的,讓我對學(xué)生的選課體系有了更深入的了解和一些實

踐經(jīng)驗。這門課程讓我意識到團隊是不可替代的,知識很重要,讓我在遇到問題時能主

動動動腦筋,對于自己不懂的問題愿意向別人請教。

7設(shè)計的優(yōu)缺點

7.1不足與改進(jìn)

經(jīng)測試,本系統(tǒng)已滿足本課題的所有要求。這個程序有很多優(yōu)點。一是界面簡潔的

程序菜單。一是智能模塊設(shè)計,減少了大量的人工操作。例如,操作一個功能模塊后,

會返回主菜單運行下一個模板,并提示是否再次進(jìn)行類似操作,為用戶帶來方便,大大

提高了學(xué)生選課的效率。還有就是提示語言簡潔、清晰、層次分明等。當(dāng)然也有不足之

處,比如程序中還有不合理的地方,比如程序某些部分的一些輸入錯誤不能立即處理退

回更正;信息表達(dá)方式并不豐富,而是簡單,缺乏圖片、音樂等元表達(dá)。

當(dāng)編程結(jié)構(gòu)中有浮點數(shù)據(jù)時,系統(tǒng)提示有錯誤??梢酝ㄟ^將其替換為int或char

然后定義它來解決。調(diào)試未完成后自動跳出主界面:可能會遇到系統(tǒng)錯誤,主要是遇到

浮動數(shù)據(jù)時。有些字母輸入錯誤可以通過仔細(xì)搜索來解決;插入鏈表讀取和輸出文件不

熟悉;我不熟悉如何使表單參與與論點的一一對應(yīng)。經(jīng)過查詢資料和老師同學(xué)的幫助,

基本解決了。

通過本周的C語言課程實踐,我不僅鞏固了之前掌握的C程序的設(shè)計基礎(chǔ),還學(xué)會了彌補

課堂上沒有學(xué)到的知識。通過這門課,我充分認(rèn)識到C語言用途廣泛,功能強大,是學(xué)

習(xí)計算機不可缺少的語言。更重要的是,在這次編程中,我熟悉了編寫復(fù)雜程序的過程,

具備了發(fā)現(xiàn)問題和解決問題的能力,為下一步的計算機語言學(xué)習(xí)做好了準(zhǔn)備。以前覺得

遙不可及的功能現(xiàn)在可以實現(xiàn)了,非常感謝老師和同學(xué)們的熱心幫助,是我及時完成這

個程序的重要因素。

7.2收獲與總結(jié)

總之,這個設(shè)計方案讓我受益匪淺,我會珍惜這樣難得的機會。這些天我感受到了老師

對我的教導(dǎo)。雖然在這次試訓(xùn)中遇到了很多困難,但在老師的幫助下,我克服了過去。

也讓我真正學(xué)到了一些平時在理論課上學(xué)不到的實用的東西。我會珍惜這次經(jīng)歷。

再一次,我感受到了你對我的教導(dǎo)!

7.3方案的優(yōu)缺點

功能優(yōu)勢:

1.簡潔明了的節(jié)目菜單。程序主要采用六組不同層次的菜單,相互獨立,巧妙地相互連

接,符合用戶的使用習(xí)慣和思維。

2.人性化的程序提示語言。程序提示語言更加人性化,不僅以祈使句和疑問句居多,而

且提示清晰,具有很強的明確引導(dǎo)功能。程序的提示不僅層次分明,提示方式多樣,而

且提示信息有序,更有利于用戶對程序的流暢、準(zhǔn)確操作。

3.智能模塊設(shè)計。程序的智能化主要體現(xiàn)在減少很多人工操作。功能模塊完成后

會返回主菜單運行下一個模板,并提示是否再次進(jìn)行類似操作,給用戶帶來方便,大大

提高學(xué)生選課的效率。

該方案的缺點:

1.流程雖然經(jīng)過多次精簡,但只是形式和范圍上的精簡,仍然

本質(zhì)上并沒有精簡,也就是沒有找到更簡單、更高效、更合理、占用資源更少的

算法。

2、程序中還有一些不合理的地方。例如,程序的某些部分輸入錯誤可能會導(dǎo)致程

序停止或轉(zhuǎn)向其他功能模塊,即程序建議用戶注意提示,進(jìn)行合理準(zhǔn)確的輸入,這樣更

有利于管理。

3.程序的功能還不完善。比如信息表達(dá)不豐富,比較單一,缺乏圖片、音樂等元

表達(dá)。

參考

1.王連祥。《C/C++編程》大學(xué).2013.7

2.譚浩強C語言程序設(shè)計學(xué)習(xí)指南(第2版)清華大學(xué)。2012年12月

3.李、龔以健《C語言編程實踐指導(dǎo)教程》華中科技大學(xué)2009年6月出版

4.曉東、洪振,《C語言編程與應(yīng)用》,人民郵電.2009.4

5.郭翠英《C語言課程設(shè)計案例匯編》中國水利水電2004.03.01

6.郭友強,C語言程序設(shè)計,清華大學(xué),2009年2月1日

7.程丹,穎,那軍,C語言程序設(shè)計案例實踐,清華大學(xué),2009年2月1日

8.《C語言程序設(shè)計教程》,麗娟,人民郵電,2013年1月1日

9.吳亞莉、王永玲、杰亞莉的C語言程序設(shè)計,清華大學(xué),2009年2月1日

在課程實踐中,我得到了導(dǎo)師的指導(dǎo)和支持。特別感謝老師的大力幫助。導(dǎo)師在對

整體結(jié)構(gòu)和功能的把握上給了我們很大的幫助,同時也為我們提供了非常優(yōu)越的設(shè)計環(huán)

境,在編程和算法設(shè)計的細(xì)節(jié)上給了我耐心的指導(dǎo),這對我的成功起到了關(guān)鍵的作用。

完成本課程設(shè)計。

轉(zhuǎn)眼,一周的課程培訓(xùn)結(jié)束了,感覺老師給我們提供了每周幾次在教室里調(diào)試電腦

的機會,老師為我們解決了各種問題,同學(xué)們可以也互相討論。這使今天的成就成為可

能,尤其是老師的寶貴意見,給了我很大的啟發(fā)。同時,我也覺得那些給我?guī)椭耐瑢W(xué)。

同時,我覺得學(xué)校給了我這樣一個獨立完成一門課程設(shè)計的機會,并且在這個過程中,

也給了我們各種便利,所以在這個學(xué)期結(jié)束的時候,我們可以申請將所學(xué)知識付諸實踐,

增強了我們的實際操作和實際應(yīng)用能力,提高了我們的獨立思考能力。我覺得這兩年所

有的老師和同學(xué)都給了我指導(dǎo)和幫助。他們教會了我專業(yè)知識和學(xué)習(xí)方法。多虧了他們,

我才能在各方面都取得了長足的進(jìn)步,在此向他們表示衷心的祝愿。

附錄:

源代碼

ttinclude"stdio.h"

#include“字符串.h”

^include"stdlib.h"

^include"malloc.h"

無效prinl();

無效選擇();

typedef結(jié)構(gòu)主題

(

整數(shù);

字符名稱[20];

字符種類[10];〃課程編號〃課程名稱//課程性質(zhì)

時間;〃總課時

時間;〃教學(xué)時間

國際時間;〃在實驗或電腦操作期間

積分;〃學(xué)分

國際術(shù)語;〃課程的期限。

結(jié)構(gòu)主題*下一個;

}子;

SUB*頭=辿1±;

SUB*create_form()//創(chuàng)建一個鏈表

(

SUB*頭,*尾,*p;

整數(shù),時間,時間;

intetime,score,term;

字符名稱[20],種類[10];

intsize=sizeof(SUB);

頭=尾=刖1±;

printf(〃輸入選修課信息:\n〃);

scanf(,,%d%s%s%d%d%d%d%dz,,&num,name,kind,

&stime,&ttime,feetime,&score,&term);

而(數(shù)!=0)

(

p=(SUB*)malloc(大小);

p->數(shù)字=數(shù)字;

strcpy(p->名稱,名稱);

strcpy(p->種類,種類);

p->時間=時間;

p->ttime=ttime;

p->etime=etime;

p->分?jǐn)?shù)=分?jǐn)?shù);

P-〉術(shù)語=術(shù)語;

如果(頭==NULL)

頭=P;

別的

尾->下一個二p;

尾=P;

scanf(/z%d%s%s%d%d%d%d%d",&num,name,

種類,&stime,fettime,&etime,&score,&term);

)

尾->下一個=NULL;

返回頭;

)

voidsavefile()//保存文件

(

子*P;

文件*fp;

fp=fopen("2.txt","w");

如果(fp==NULL)退出(0);

printf("課程編號、課程名稱、課程性質(zhì)、總學(xué)時

教學(xué)小時實驗或計算機小時學(xué)分開始學(xué)期\n");

for(p=head;p;p=p->next)

,,,,

fprintf(fp,%5d%12s%9s%9d%9d%lld%lld%7d\n,

p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);

fclose(fp);

printf("創(chuàng)建的信息已經(jīng)放入'2.txt)文件\n");

系統(tǒng)(“暫?!?;

)

voidsavefilel()//保存文件

(

子*P;

文件*fp;

fp=fopen("3.txt","w");

如果(fp==NULL)退出(0);

for(p=head;p;p=p->next)

//,,

fprintf(fp,%5d%12s%9s%9d%9d%lld%lld%7d\n1

p->num,p->name,p->kind,p->stime,p->ttime,p->etime,p->score,p->term);

fclose(fp);

printf("創(chuàng)建的信息已經(jīng)放入'3.txt'文件\n");

系統(tǒng)(“暫停”);

)

voidreadfile()//讀取文件

(

無效*myInsert(SUB*);

子*newSub;〃新課程

整數(shù),時間,時間,時間;

積分,期限;

字符[20],種類[10],fname[20];

文件*fp;

fp=fopen("2.txt","r");

而(!feof(fp))

(

newSub=(SUB*)malloc(sizeof(SUB));

fscanf(fp,,,%d%s%s%d%d%d%d%d\nz/,&newSub->num,newSub->name,newSub->kind,

&newSub->stime,&newSub->ttime,&newSub->etime,&newSub->score,&newSub->term);我的

插入(新子);

)

fclose(fp);

)

voidprinO//瀏覽所有課程

(

子*ptr;

頭=空;

讀取文件();

如果(頭==NULL)

(

printf("\n\n\t*********沒有記錄!************\n");

返回;

)

printf(〃課程號、課程名稱、課程性質(zhì)、總課時

或練習(xí)計算機時間和學(xué)分\n");

for(ptr=head;ptr;ptr=ptr->next)

(

printf("%5d%12s%9s%9d%9d%lld%lld%7d\n”,ptr->num,ptr->name,

ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);}

系統(tǒng)("暫?!?;

voidprinl()//瀏覽所有選修課

子*ptr;

文件*fp;

if((fp=fopen("3.txt","r"))==NULL)

{

printf("無法打開文件。\n");

選擇();

)

printf(〃課程號、課程名稱、課程性質(zhì)、總課時

或練習(xí)計算機時間和學(xué)分\n");

而(!feof(fp))

(

ptr=(SUB*)malloc(sizeof(SUB));

fscanf(fp,//%d%s%s%d%d%d%d%d\n//,&ptr->num,ptr->name,ptr->種類,&ptr->stime,&ptr

&ptr->etime,&ptr->score,&ptr->term);printf(/,%5d%12s%9s%9d%9d%lld%lld%7d\

rT,ptr->num,ptr->name,

ptr->kind,ptr->stime,ptr->ttime,ptr->etime,ptr->score,ptr->term);}

fclose(fp);

系統(tǒng)(“暫?!?;

)

void*mylnsert(SUB*subj)//鏈表插入操作

(

SUB*ptr,*ptr2;

點=主題;

如果(頭==NULL)

(

頭=ptr;

頭->下一個=NULL;

別的

for(ptr2=head;ptr2;ptr2=ptr2->next)

如果(ptr2->下一個==NULL)

(

ptr2->下一個=主題;

主題->下一個=NULL;

休息;

返回頭;

}

void"insert()〃插入課程信息

子*ptr,*subj;

intsize=sizeof(SUB);

字符ch,chi;

而(ch!='O')

subj=(SUB*)malloc(大小);

點=主題;

printf(〃輸入要插入的課程信息:\n");

printf("\n\t\t請輸入課程號:");scanf&subj->num);

printf("\n\t\t請輸入課程名稱:”)

溫馨提示

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

評論

0/150

提交評論