第一篇:學(xué)生選課管理系統(tǒng)規(guī)劃報(bào)告
學(xué)生選課管理系統(tǒng)規(guī)劃報(bào)告
1、系統(tǒng)的意義與目標(biāo)
網(wǎng)絡(luò)的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運(yùn)作方式。社會(huì)的方方面面滲透著互連網(wǎng)的應(yīng)用,使得一向煩瑣的手工程序變得方便,快捷,而學(xué)校網(wǎng)上選課系統(tǒng)正是基于這一思想而發(fā)展起來的。傳統(tǒng)的手工選課不僅復(fù)雜,也牽涉了很多的人力,對管理也造成了諸多不變,而借助網(wǎng)上選課系統(tǒng),學(xué)生在規(guī)定選課時(shí)間段內(nèi),可以不受地點(diǎn)和時(shí)間的限制完成系統(tǒng)登錄、選修課的申請和查詢,而學(xué)校也可以方便地對系統(tǒng)進(jìn)行管理和控制,提高工作效率。
2、系統(tǒng)的用戶需求
用戶的需求具體體現(xiàn)在各種學(xué)習(xí)成績的提供、保存、更新和查詢方面,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。學(xué)生選課管理系統(tǒng)的設(shè)計(jì)為選課及成績管理提供了一個(gè)良好的工具,此系統(tǒng)基本實(shí)現(xiàn)的設(shè)計(jì)要求有:
(1)用戶登錄系統(tǒng)
提供良好的用戶登錄界面,輸入用戶名,密碼進(jìn)行登錄。
(2)學(xué)生的需求
網(wǎng)上選課、選課情況查詢、成績查詢。
(3)管理員
(錄入、查詢、修改和刪 除)學(xué)生、課程基本資料。
(4)教師的需求
(錄入、查詢、修改和刪除)學(xué)生所選課程成績,統(tǒng)計(jì)每個(gè)學(xué)生的總分、平均分以及排名等功能。
3、系統(tǒng)經(jīng)費(fèi)概算
初步估算使用經(jīng)費(fèi)15萬元,包括硬件資源、技術(shù)資料、開發(fā)費(fèi)用、培訓(xùn)費(fèi)用等。其中,開發(fā)開發(fā)期間約需9萬員,調(diào)試與運(yùn)行期間約需6萬元。
4、系統(tǒng)開發(fā)計(jì)劃
本系統(tǒng)開發(fā)計(jì)劃由開發(fā)小組用10個(gè)月完成。具體時(shí)間安排計(jì)劃如下:
(1)系統(tǒng)調(diào)研、系統(tǒng)分析:3個(gè)月。
(2)系統(tǒng)設(shè)計(jì):2個(gè)月。
(3)系統(tǒng)程序設(shè)計(jì):3個(gè)月。
(4)系統(tǒng)調(diào)試:1.5個(gè)月。
(5)系統(tǒng)試運(yùn)行:1.5個(gè)月。
第二篇:學(xué)生選課管理信息系統(tǒng)規(guī)劃
學(xué)生選課管理信息系統(tǒng)規(guī)劃
(1)系統(tǒng)的意義與目標(biāo)
隨著學(xué)校的辦學(xué)規(guī)模不斷擴(kuò)大,生源的急劇增加,有關(guān)學(xué)生的各種信息量也成倍增長。面對龐大的信息量,學(xué)校如何做管理才能夠降低成本又能夠提高管理質(zhì)量;老師如何工作才能達(dá)到既能減輕工作量又能提高工作水平成為一直探討和研究的一門學(xué)科。伴隨著計(jì)算機(jī)的盛行,信息技術(shù)在管理上越來越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟,學(xué)校需要與時(shí)俱進(jìn)的發(fā)展,達(dá)到科學(xué)化和高效化的管理,就需要建立一套與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)來滿足學(xué)校學(xué)分制改革的要求,便于操作使用。
通過正確的口令進(jìn)入系統(tǒng),進(jìn)行數(shù)據(jù)庫的維護(hù)操作和運(yùn)用,對數(shù)據(jù)安全性有一定的保障,保密性好;進(jìn)入系統(tǒng)后可對學(xué)籍信息、班級信息進(jìn)行添加、修改、刪除、查詢操作;用來實(shí)現(xiàn)學(xué)生信息管理工作流程的系統(tǒng)化、規(guī)范化和自動(dòng)化。
(2)系統(tǒng)的用戶需求
通過調(diào)查,要求系統(tǒng)需要有以下功能:
⑴ 由于操作人員的計(jì)算機(jī)知識普遍較差,要求有良好的人機(jī)界面;
⑵ 由于該系統(tǒng)的使用對象多,要求有較好的權(quán)限管理;
⑶ 原始數(shù)據(jù)修改簡單方便,支持多條件修改;
⑷ 方便的數(shù)據(jù)查詢,支持多條件查詢;
⑸ 在相應(yīng)的權(quán)限下,刪除數(shù)據(jù)方便簡單,數(shù)據(jù)穩(wěn)定性好;
⑹ 數(shù)據(jù)計(jì)算自動(dòng)完成,盡量減少人工干預(yù);
學(xué)生選課管理系統(tǒng)的性能要求;
⑴軟件的可行
以Windows XP為操作系統(tǒng),運(yùn)用SQL的數(shù)據(jù)庫技術(shù),根據(jù)科學(xué)的管理方法與編程技術(shù)設(shè)計(jì)、開發(fā)學(xué)生信息管理系統(tǒng),能符合各種技術(shù)要求,擁有較高的存儲(chǔ)能力和處理速度。該系統(tǒng)的運(yùn)行硬件環(huán)境PC機(jī),當(dāng)用戶使用系統(tǒng)時(shí),通過正確的口令進(jìn)入系統(tǒng),進(jìn)行數(shù)據(jù)庫的維護(hù)操作和運(yùn)用,對數(shù)據(jù)安全性有一定的保障,用戶放心使用
(2)系統(tǒng)科學(xué)的分析
待開發(fā)模塊的一般描述
本設(shè)計(jì)主要為學(xué)校學(xué)生信息管理提供一個(gè)使用方便、經(jīng)濟(jì)實(shí)用的系統(tǒng)模塊,以替代傳統(tǒng)的手工操作方式。對學(xué)生的基本信息模塊進(jìn)行了設(shè)計(jì),包括添加、刪除、查詢學(xué)生信息等操作。
(3)模塊設(shè)計(jì)
3.1 登錄界面
登錄界面的設(shè)計(jì),主要是本著實(shí)用簡便的原則設(shè)計(jì)制作。
3.2 主界面
當(dāng)操作員的名稱和密碼均正確的時(shí)候,系統(tǒng)便會(huì)進(jìn)入信息管理(主界面)。信息管理包括系統(tǒng)的所有主功能模塊:學(xué)籍管理、班級管理、查詢管理、退出系統(tǒng)。它可以實(shí)現(xiàn)錄入學(xué)籍信息、錄入班級信息、查詢學(xué)籍信息(按學(xué)號、按姓名、按班級查詢)、退出系統(tǒng)等功能。
3.3 信息管理
3.3.1添加學(xué)籍信息
當(dāng)操作員點(diǎn)擊學(xué)籍管理圖片按鈕進(jìn)入子目錄,繼續(xù)點(diǎn)擊添加學(xué)籍信息圖片按鈕,便可進(jìn)入添加學(xué)籍信息界面,對學(xué)籍信息進(jìn)行錄入,添加學(xué)籍信息界面的結(jié)構(gòu)(如圖4):
3.3.2 修改學(xué)籍信息
當(dāng)操作員點(diǎn)擊學(xué)籍管理圖片按鈕進(jìn)入子目錄,繼續(xù)點(diǎn)擊修改學(xué)籍信息圖片按鈕,便可進(jìn)入修改學(xué)籍信息界面,對學(xué)籍信息進(jìn)行更改、刪除,修改學(xué)籍信息界面的結(jié)構(gòu)
3.3.3修改班級信息
當(dāng)操作員點(diǎn)擊班級管理圖片按鈕進(jìn)入子目錄,繼續(xù)點(diǎn)擊修改班級信息圖片按鈕,便可進(jìn)入修改班級信息界面,對班級信息進(jìn)行錄入,修改班級信息界面的結(jié)構(gòu)
3.3.5 數(shù)據(jù)庫表
記錄表信息,添加、修改后的信息保存于學(xué)籍信息表或班級信息表中。表中包含學(xué)號、姓名等字段,使用戶直觀、便捷的了解學(xué)生的基本情況3.3.4查詢學(xué)籍信息
學(xué)籍信息的查詢基于表,其中提供了按學(xué)號,按姓名,按班級三種查詢,在選擇按學(xué)號、按姓名或按班級后,可在文本框中輸入要查詢的姓名、學(xué)號或班級,然后點(diǎn)擊“查詢”可得到滿足條件的查詢結(jié)果。功能是便于操作人員對學(xué)籍信息的檢索查詢。如按班級查詢,輸入要查詢的班級
4.系統(tǒng)調(diào)試
完成對流程的編碼后,最重要的是對系統(tǒng)的測試工作。測試在系統(tǒng)設(shè)計(jì)階段有兩個(gè)時(shí)期,一個(gè)時(shí)期是在編碼寫完每個(gè)模塊后做單元測試,另一個(gè)是對系統(tǒng)做綜合測試。
第一、模塊測試:在模塊測試的時(shí)候,設(shè)計(jì)者從下面幾個(gè)方面考慮:模塊的結(jié)構(gòu);局部數(shù)據(jù)結(jié)構(gòu);重要執(zhí)行通道;出錯(cuò)的處理通道;影響上述方面的邊界條件。
第二、整體測試:總體測試是組裝軟件的系統(tǒng)技術(shù),本系統(tǒng)采用漸增集成測試,即測試單一模塊,再將測試完的模塊加入到系統(tǒng)中,進(jìn)行一次系統(tǒng)測試,以此類推將所以模塊加入系統(tǒng)中,在具體測試時(shí),采用自頂向下的結(jié)合方式,從主控模塊開始,沿各控制層向下移動(dòng),逐漸把所以模塊結(jié)合。
第三、評估運(yùn)行可靠性的問題:結(jié)果正確;運(yùn)行速度;空間利用率;
算法的可靠性
(3)系統(tǒng)經(jīng)費(fèi)概算
初步估算約需要20萬,包括硬件資源,技術(shù)資源,開發(fā)費(fèi)用。培訓(xùn)費(fèi)用等。其中,開發(fā)期間約需8萬。調(diào)試與運(yùn)行約需6萬元。
(4)系統(tǒng)開發(fā)計(jì)劃
本系統(tǒng)計(jì)劃由開發(fā)小組(開發(fā)人員4人)用12個(gè)月完成,具體時(shí)間安排計(jì)劃如下:
系統(tǒng)調(diào)研,系統(tǒng)分析:3個(gè)月
系統(tǒng)設(shè)計(jì):2個(gè)月
系統(tǒng)程序設(shè)計(jì):3個(gè)月
系統(tǒng)調(diào)試:2個(gè)月
系統(tǒng)試運(yùn)行:2個(gè)月
第三篇:學(xué)生選課系統(tǒng)可行性分析報(bào)告
學(xué)生選課系統(tǒng)可行性分析報(bào)告
學(xué)院:數(shù)學(xué)計(jì)算機(jī)學(xué)院組長:馬琴
組員:許慕霄、伏敏潤、王佩軍
1.引言
1.1編寫目的每學(xué)期的課程都是學(xué)校安排的,學(xué)生沒有選擇的自由,而且課程的安排由于各方面諸多的原因經(jīng)常有不適之處,尤其是先行課的問題。另外,每學(xué)期考完試,同學(xué)們都要一次又一次的往系里跑,大家擠在一個(gè)小小的布告欄前面,在幾張A4紙上尋找自己的名字和成績。雖然從去年開始,全學(xué)校也改成了“學(xué)分制”,但整個(gè)選課過程的管理從我們學(xué)生的角度來看,變得更加混亂。同學(xué)們不知道每學(xué)期有什么課可以選,哪些是選修,哪些是必修,哪些是專業(yè)課;也不確定每門課多少學(xué)分,自己已經(jīng)修了多少學(xué)分;更不用說考慮一下哪門課要先學(xué),哪門課要后學(xué),哪些課屬于一系列。所以說,大部分同學(xué)都是為了“選課”而選課,完全沒有實(shí)現(xiàn)鼓勵(lì)同學(xué)發(fā)展個(gè)性,學(xué)各自之所愛的效果。不僅如此,每當(dāng)選課的時(shí)候,同學(xué)們忙,老師更忙,學(xué)校和系里都需要投入大量的人力、物力對整個(gè)選課過程進(jìn)行管理。
隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)已經(jīng)是日常生活中不可或缺的工具,將學(xué)生選課系統(tǒng)從人工管理方式轉(zhuǎn)變成為計(jì)算機(jī)軟件控制。具有檢索迅速、查找方便、可靠性高、存儲(chǔ)量達(dá)、保密性好、壽命長、成本低等巨大優(yōu)點(diǎn)。如今,學(xué)生選課系統(tǒng)已成為日常教學(xué)工作中必不可少的管理軟件,可對學(xué)生信息、選修課程、科目成績進(jìn)行各方面的管理,為用戶提供充足的信息和快捷的查詢、修改手段。選課管理系統(tǒng)。既面向教務(wù)處,又面向教師和學(xué)生。不同的人,不同的身份操作的權(quán)限也不同。作為教師,他可以向教務(wù)處申請?jiān)黾?、刪除、修改課程信息,并隨時(shí)了解選修本課的學(xué)生名單,還可以輸入并分析考試成績。作為教務(wù)處管理員,它的權(quán)限是最寬的。他可以對教師提出的課程設(shè)置申請進(jìn)行審批,同時(shí)對教學(xué)進(jìn)行安排(包括時(shí)間和教室分配、選課結(jié)果管理)。作為學(xué)生,他可以查詢可以選什么課,已有多少學(xué)分,還差多少學(xué)分。最后進(jìn)行選課,在學(xué)期末還可以隨時(shí)進(jìn)行成績查詢?,F(xiàn)籌劃一學(xué)生選課系統(tǒng)管理軟件以代替人工管理方式,最大程度的滿足各方面用戶的需求。
1.2 項(xiàng)目背景
項(xiàng)目名稱:學(xué)生選課系統(tǒng)軟件。
項(xiàng)目提出者:寧夏大學(xué)
項(xiàng)目開發(fā)者:開發(fā)小組
用戶:寧夏大學(xué)
1.3 定義
SQL:結(jié)構(gòu)化查詢語言
Eclipse:開發(fā)源代碼的、基于java的可擴(kuò)展開發(fā)平臺(tái)。
1.4 參考資料
《軟件工程》
2.可行性研究的前提
2.1 要求
主要功能:教師對學(xué)生資料、成績以及所選課程進(jìn)行修改管理;學(xué)生可通過查詢自身成績,自主選擇相關(guān)課程;管理員(教務(wù)處)統(tǒng)管所有學(xué)生、教師的相關(guān)信息。
性能要求:所有數(shù)據(jù)實(shí)時(shí)更新保持同步,且定時(shí)備份。
輸出要求:簡單、快捷、實(shí)時(shí)。
輸入要求:及時(shí)的修改和更新學(xué)生、教師和課程的信息。
安全與保密要求:系統(tǒng)本身配備一定的安全機(jī)制,保證各項(xiàng)數(shù)據(jù)的完整、正確。
每類用戶進(jìn)入系統(tǒng)時(shí),均需輸入唯一的用戶名和密碼;教師有權(quán)對學(xué)生所選課程成績進(jìn)行錄入、查詢和修改;學(xué)生有權(quán)對選修課程進(jìn)行修改;管理員有權(quán)對學(xué)生信息、所選課程、科目成績進(jìn)行管理、修改。
2.2目標(biāo)
近幾年來,我們寧夏大學(xué)一直都在擴(kuò)招學(xué)生,外地生源的比例也比以前大了許多,而且還有日益增多的外國留學(xué)生,在管理上更增加了管理人員的勞動(dòng)量,如此多的檔案資料,以原有的工作人員數(shù)量要管理好實(shí)在不容易,但如果增加工作人員,管理成本必然也會(huì)增加,得不償失,而我們這套系統(tǒng)這時(shí)就會(huì)發(fā)揮出它大大的作用,讓實(shí)用這領(lǐng)會(huì)到它的優(yōu)越之處,幫助老師輕輕松松管理好學(xué)生各方面的資料,無論學(xué)生是多是少,一切都會(huì)被管理得井井有條。節(jié)省更多的人力與設(shè)備,讓學(xué)生選課管理成為一項(xiàng)很直接人性化的管理。
2.3條件、假定何限制
運(yùn)行環(huán)境:Windows98/2000/XP/Vista/7,與Windows office軟件高度兼容。硬件環(huán)境:奔4以上計(jì)算機(jī)。
開發(fā)環(huán)境:SQL Server、eclipse等。
該系統(tǒng)預(yù)期壽命五年。
2.4決定可行性的主要因素
學(xué)生選課系統(tǒng)軟件滿足各方用戶需求。
成本/效益分析結(jié)果:效益>成本。
3.對現(xiàn)有系統(tǒng)的分析
3.1處理流程和數(shù)據(jù)流程
教師登錄:可上傳、修改、管理學(xué)生選課和成績的查詢。
學(xué)生登錄:;學(xué)生可通過查詢自身成績,自主選擇相關(guān)課程,查詢各科成績。學(xué)校登錄:可查詢、管理所有信息。
3.2工作負(fù)荷
當(dāng)前系統(tǒng)負(fù)擔(dān)全校將近20000余名教師、學(xué)生的日常選課管理工作。
3.3人員
當(dāng)前系統(tǒng)需要4位管理員,對其專業(yè)技術(shù)要求不高,熟悉基本的電腦操作即可。
3.4設(shè)備
一臺(tái)服務(wù)器,兩臺(tái)PC機(jī)。
3.5局限性
由于當(dāng)前系統(tǒng)開發(fā)技術(shù)過于老舊,穩(wěn)定性、安全性能尤為不佳,致使系統(tǒng)頻繁遭遇惡意攻擊。系統(tǒng)反應(yīng)過慢,運(yùn)行效率低。由此分析得出,需要開發(fā)新的學(xué)生選課系統(tǒng)軟件。
4.技術(shù)可行性
我們身為首都經(jīng)濟(jì)貿(mào)易大學(xué)信息系的學(xué)生,最驕傲的就是擁有令其他系羨慕、向往的系機(jī)房。因特爾奔騰四的中央處理器,40G大容量的硬盤,加上256M的內(nèi)存,配上經(jīng)久耐用、定位準(zhǔn)確的光電鼠標(biāo),這都為系統(tǒng)的開發(fā)與運(yùn)行提供了良好的硬件環(huán)境,就是這樣一臺(tái)臺(tái)先進(jìn)傲人的電腦躺在機(jī)房里供我們隨時(shí)使用,便利程度真是如此了得??!
身為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)大三的學(xué)生,通曉一些計(jì)算機(jī)軟件知識是肯定的,運(yùn)用軟件編寫程序的能力也是必備的。當(dāng)然,我們畢竟還是學(xué)生,能力還是有限的,但我們計(jì)算機(jī)系最不缺乏的就是計(jì)算機(jī)人才,向知識淵博、誨人不倦的鄭小玲老師必會(huì)給我們以極大的幫助。更何況,俗語說的好:三個(gè)臭皮匠賽過諸葛亮。我們組有4個(gè)人,起碼也頂兩個(gè)諸葛亮呢。相信通過我們大家的集思廣益,相得益彰,我們的系統(tǒng)將會(huì)以最完美的姿態(tài)展現(xiàn)在大家的面前。
我校自建校至今已有幾十年的歷史,各種課程比較齊備,且比較有條理。學(xué)分制度也比較完善。教師整體水平較高。這使我們開發(fā)這一對我們來說比較復(fù)雜的系統(tǒng)成為可能。雖然有如此好的客觀條件,但始終沒有一套完善簡單易用的管理系統(tǒng)?,F(xiàn)行系統(tǒng)雖然擁有了比較規(guī)范、科學(xué)的管理方法,并積累了大量的數(shù)據(jù)信息,具有一定的可行性,但是并不能掩蓋其工作量大,管理不夠系統(tǒng)的缺點(diǎn)。而我們的系統(tǒng)將充分利用學(xué)校為我們提供的寶貴信息,在繼承其優(yōu)點(diǎn)的基礎(chǔ)上,開發(fā)出一套更為可行的學(xué)生管理系統(tǒng)。這套學(xué)生選課管理系統(tǒng)在今后的應(yīng)用中再經(jīng)過不斷的修正與改進(jìn),將會(huì)使我學(xué)生選課更加完善、盡美。
5.經(jīng)濟(jì)可行性
成本方面,關(guān)于各種軟、硬件及輔助設(shè)備的購置、調(diào)試、機(jī)房及輔助設(shè)施(電源等)以及系統(tǒng)維護(hù),內(nèi)務(wù)開銷這些費(fèi)用都可以忽略不計(jì),因?yàn)槲覀冇凶约旱碾娔X。
學(xué)生選課管理系統(tǒng)省去了老師為學(xué)生展示學(xué)校為學(xué)生提供的選修課程,并作介紹,考試后把分?jǐn)?shù)抄錄多次以做備案和公告這些大量繁雜而由單一枯燥的勞動(dòng),可以讓老師把精力放在教學(xué)和組織教學(xué)等更重要更具創(chuàng)造性的事情上,這就顯著的提高了他們的工作效率。
取消了抄錄成績后,學(xué)校里也不會(huì)再出現(xiàn)殘破的成績單一層蓋一層的貼在公告欄或黑板上的情景,校園環(huán)境也會(huì)因此而變得更整潔,而且也為學(xué)校省下了大量的紙張,雖然數(shù)量并不是很多,但將來系統(tǒng)擴(kuò)展到整個(gè)學(xué)校也將是很可觀的。況且,在資源日益缺乏的今天,節(jié)省紙張已不僅僅是為學(xué)校減少辦公費(fèi)用這一單純的意義。
眾所周知,學(xué)校的的學(xué)生多,管理起來非常困難。相應(yīng)的也加大了老師的工作量,又因?yàn)榻虒W(xué)制度的不斷變動(dòng)和改革,因此,總能及時(shí)統(tǒng)計(jì)出一份內(nèi)容清晰,條理性強(qiáng)的學(xué)籍學(xué)分選課分析報(bào)表對老師來說真是難于登天。但如果缺少這份報(bào)表,同學(xué)們就無法清楚了解自己的學(xué)分情況,盲目選課,打亂了學(xué)習(xí)計(jì)劃,加重了課業(yè)負(fù)擔(dān),而那些基本順從課程安排的同學(xué)則浪費(fèi)了許多去學(xué)習(xí)有用知識的時(shí)間,甚至臨畢業(yè)時(shí)卻發(fā)現(xiàn)未修夠?qū)W分而畢不了業(yè)。這個(gè)關(guān)系到每個(gè)人命運(yùn)的問題絕對馬虎不得。不能再坐以待斃了,我們這套學(xué)生選課管理系統(tǒng)將提供一份完整的學(xué)分選課報(bào)表,并會(huì)利用管理系統(tǒng)的易修改性及時(shí)進(jìn)行更新,讓同學(xué)們在選擇課程,計(jì)算學(xué)分中更加游刃有余。
近幾年來,我們寧夏大學(xué)一直都在擴(kuò)招學(xué)生,外地生源的比例也比以前大了許多,而且還有日益增多的外國留學(xué)生,在管理上更增加了管理人員的勞動(dòng)量,如此多的檔案資料,以原有的工作人員數(shù)量要管理好實(shí)在不容易,但如果增加工作人員,管理成本必然也會(huì)增加,得不償失,而我們這套系統(tǒng)這時(shí)就會(huì)發(fā)揮出它大大的作用,讓實(shí)用這領(lǐng)會(huì)到它的優(yōu)越之處,幫助老師輕輕松松管理好學(xué)生各方面的資料,無論學(xué)生是多是少,一切都會(huì)被管理得井井有條。
6.社會(huì)可行性
經(jīng)過我們的調(diào)查,絕大部分的任課老師,行政人員和校領(lǐng)導(dǎo)都為現(xiàn)行系統(tǒng)的繁瑣和冗雜的工作量所深深困擾著。在得知我們開發(fā)這套系統(tǒng)的計(jì)劃后,他們都有一種守得云開見月明的感覺,并表示非常愿意在系統(tǒng)的開發(fā)過程中給予全力支持以及積極的配合。
我們這套學(xué)生選課管理系統(tǒng)不僅能夠讓老師更清晰的掌握自己學(xué)生的信息,同時(shí)也讓學(xué)生自己更容易的知道如何準(zhǔn)確的選課,如何計(jì)算學(xué)分及盡早得知自己的考試成績。這就大大的為老師提供了便利。比如,在每學(xué)期期末考試后,大多數(shù)學(xué)生都已回到家中,如果為了獲取考試成績又不得不再返回學(xué)校的話,既費(fèi)時(shí)
又費(fèi)力,學(xué)生牢騷滿腹,老師也不能提早放假休息。而我們的系統(tǒng)可以提供網(wǎng)上查分,同學(xué)們在家中只需要上網(wǎng)就可以在第一時(shí)間知道自己的成績。還有,學(xué)生們也可通過我們的系統(tǒng)進(jìn)行選課來湊夠?qū)W分完成學(xué)業(yè)。在系統(tǒng)中會(huì)顯示出個(gè)門課程的性質(zhì)(如必修、限選、任選),其所占學(xué)分及任課老師的資料,其應(yīng)用性之強(qiáng)得到充分發(fā)揮。
我們學(xué)校的電腦普及率已達(dá)到了很高的水平,尤其是我們系擁有設(shè)備先進(jìn)管理完善的系機(jī)房,而學(xué)院的老師和學(xué)生們對電腦的操作也是駕輕就熟。因此,只要我們這套學(xué)生選課系統(tǒng)操作簡單,實(shí)用,合理,大家肯定是樂于接受并積極響應(yīng)和支持的。對于這一點(diǎn),我們是很有信心的。隨著信息時(shí)代的來臨,學(xué)籍學(xué)分 選課等信息管理的自動(dòng)化,一體化正是大勢所趨。
7.其他可供選擇的方案
暫無
第四篇:C語言課程設(shè)計(jì)學(xué)生選課系統(tǒng)
題目
一、學(xué)生選課管理系統(tǒng)
第一部分:課程設(shè)計(jì)名稱、目的、要求
第二部分:程序總體設(shè)計(jì)思路
第三部分:程序功能劃分、圖示及流程圖
第四部分:程序設(shè)計(jì)數(shù)據(jù)、運(yùn)行結(jié)果
第五部分:程序的優(yōu)缺點(diǎn)
第六部分:心得體會(huì)
第七部分:附錄(源程序)
第八部分:附錄(參考文獻(xiàn))
目錄
..............................................................................第一部分:課程設(shè)計(jì)名稱、目的、要求
名稱:學(xué)生選修課程系統(tǒng)設(shè)計(jì)
目的:運(yùn)用C語言提高解決實(shí)際問題的能力 實(shí)驗(yàn)環(huán)境:Microsoft Visual C++ 6.0 內(nèi)容:
假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課?!竟δ堋?/p>
系統(tǒng)以菜單方式工作?
課程信息錄入功能(課程信息用文件保存)--輸入? 課程信息瀏覽功能--輸出?
查詢功能:(至少一種查詢方式)--算法? 按學(xué)分查詢? 按課程性質(zhì)查詢? 學(xué)生選修課程(可選項(xiàng))?
第二部分:程序總體設(shè)計(jì)思路
由于C語言是面對過程的語言,故我的設(shè)計(jì)思路是根據(jù)目標(biāo)程序運(yùn)行的過程來編寫的。
具體的設(shè)計(jì)思路如下:
程序的要求是設(shè)計(jì)學(xué)生選修課管理系統(tǒng),對選修課程能夠進(jìn)行錄入和修改操作等,要求有菜單界面和退出功能。首先,考慮到程序的數(shù)據(jù)輸入,可以設(shè)置一個(gè)管理員登陸選項(xiàng),通過該選項(xiàng)進(jìn)入管理員界面,進(jìn)行選修課的錄入和修改操作,最后將錄入的課程保存到相應(yīng)的文件中。然后定義各種函數(shù)的功能包括查看,查詢,刪除等。另一個(gè)為學(xué)生登陸界面,該界面學(xué)生可以進(jìn)行課程選擇和瀏覽查詢等操作。在進(jìn)行該操作之前需要對管理員保存的文件進(jìn)行讀取,然后對其中的內(nèi)容進(jìn)行查詢等,在學(xué)生選好課程以后,可以將其選好的課程保存于相應(yīng)的文件中,以便下次進(jìn)行修改。通過函數(shù)的層層調(diào)用來實(shí)現(xiàn)程序的邏輯結(jié)構(gòu)。中間通過文件的打開和關(guān)閉實(shí)現(xiàn)對文件內(nèi)部所包含的數(shù)據(jù)的操作。
整個(gè)程序的設(shè)計(jì)思路到此結(jié)束。
第三部分:程序功能劃分、圖示及流程圖
【功能模塊劃分及其流程圖】
本程序功能模塊根據(jù)程序設(shè)計(jì)的需求,綜合程序的實(shí)用性、人性化、智能化的考慮,將程序劃分為6個(gè)部分分別編寫,程序主體功能將由這9個(gè)部分來完成。這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.課程刪除函數(shù):void c_delete()10.菜單函數(shù):void index()11.主函數(shù)部分; main()
總體設(shè)計(jì):
學(xué)生選課系統(tǒng)管理員登錄學(xué)生登錄新增課程刪除課程課程瀏覽查詢課程學(xué)生選課課程瀏覽課程查詢c_add函數(shù)c_delete函數(shù)c_view函數(shù)c_search函數(shù)c_select函數(shù)c_view函數(shù)c_search函數(shù)
系統(tǒng)功能模塊圖
部分函數(shù)流程圖:
1、課程選擇函數(shù):
開始輸入要選擇的課程的編號j=0;j
2、課程查詢函數(shù)
開始輸入要查詢的課程的編號j=0;j 3、課程增加函數(shù) 開始輸入要增加的課程的編號j=0;j 4、課程刪除函數(shù) 開始輸入要?jiǎng)h除的課程的編號nj=0;j 本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計(jì)、程序運(yùn)行結(jié)果應(yīng)在程序的 運(yùn)用中得以體現(xiàn),現(xiàn)在通過一個(gè)程序的運(yùn)用事例來對程序運(yùn)行結(jié)果進(jìn)行演示與實(shí)現(xiàn)?!拒浖\(yùn)用舉例】 1、程序開始界面如下: 選擇某個(gè)選項(xiàng),如進(jìn)行管理員登錄,進(jìn)行課程的增加 進(jìn)入管理員界面: 2、再選擇所要進(jìn)行的操作,如進(jìn)行課程增加,結(jié)果如下: 下面可以進(jìn)行繼續(xù)增加課程或者退出: 3、選擇課程瀏覽,可以分頁查看相應(yīng)的課程信息: 第一頁: 第二頁: 4、課程查詢 查找結(jié)果: 4、管理員課程刪除操作: 刪除后可以進(jìn)行瀏覽,觀察刪除后的結(jié)果: 可見刪除后只有一條記錄。刪除操作完成正確。下面進(jìn)行學(xué)生操作的使用方法: 1、學(xué)生登陸界面: 2、選擇學(xué)生選課選項(xiàng): 3、學(xué)生登陸也可進(jìn)行課程瀏覽和查詢函數(shù),其結(jié)果與管理員登陸相同,不再演示。 第五部分:程序的優(yōu)缺點(diǎn) 【程序的優(yōu)點(diǎn)】 算法是程序的靈魂,程序的優(yōu)點(diǎn)首先表現(xiàn)在算法上的優(yōu)點(diǎn),其次才是功能上的。 [算法上的優(yōu)點(diǎn)]主要體現(xiàn)在以下三點(diǎn): 1.程序采用main主函數(shù)方式設(shè)計(jì),程序的主體的功能大都由該功能 完成。程序如此設(shè)計(jì)有利于程序的進(jìn)一步改進(jìn)及有助于程序執(zhí)行效率的提高。 2.程序?qū)ξ募?shù)據(jù)的讀寫采用了fread和fwrite塊讀寫函數(shù),能夠?qū)⑽募械臄?shù)據(jù)完全讀出,然后賦到定義的數(shù)組中,再在相應(yīng)的數(shù)組中進(jìn)行一系列操作,最終再寫入文件。 3.插入操作在本程序中將課程信息直接插入數(shù)組最后一個(gè)節(jié)點(diǎn),從而減少了數(shù)據(jù)的相互移動(dòng),節(jié)省了時(shí)間。 [功能上的優(yōu)點(diǎn)] 主要體現(xiàn)在以下兩點(diǎn): 1. 簡潔明了的程序菜單。程序主要采用了層次不同的菜單,相互獨(dú)立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。2. 人性化的程序提示語言,程序提示語言較人性化,不僅大多為祈使語句、疑問句,而且提示明確,具有較強(qiáng)的明確的指導(dǎo)作用。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地看懂程序并進(jìn)行操作。 【程序的缺點(diǎn)】 主要表現(xiàn)在以下兩點(diǎn): 1、本程序沒有進(jìn)行相應(yīng)的密碼操作,所以對于使用者來說可能存在比較大的不保密性。需要改善。 2、本程序沒有使用文本讀寫函數(shù)fscanf和fprintf,所以的到的課程文件和選課文件都是二進(jìn)制形式。 第六部分:心得體會(huì) 選課系統(tǒng)程序比起通訊錄程序來講好寫一些,由于本程序用到了數(shù)組,對于數(shù)組的操作掌握的比較熟練,所以在編寫程序的時(shí)候困難沒有那么多。 本程序在編寫的過程中用到了許多通訊錄中的模塊化設(shè)計(jì)和函數(shù)互相調(diào)用的思想,使得編寫比較方便和好用。 通過該系統(tǒng)的課程設(shè)計(jì)分析,我掌握了模塊化設(shè)計(jì)的方法,理解和運(yùn)用了結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法,掌握和提高了運(yùn)用C語言進(jìn)行程序設(shè)計(jì)的能力。 程序設(shè)計(jì)的過程,實(shí)際上是確定解決問題的詳細(xì)步驟,而這個(gè)步驟通常叫做流程,在程序設(shè)計(jì)過程中理清楚整個(gè)問題的流程很重要,然后采取逐步細(xì)化的方法實(shí)現(xiàn)整個(gè)程序。 對于一個(gè)較大的應(yīng)用程序,一般不可能一次就設(shè)計(jì)出一個(gè)很完善的系統(tǒng)。通常要先設(shè)計(jì)滿足基本要求的系統(tǒng),然后再測試或者在使用的過程中不斷完善,慢慢地做成一個(gè)功能很完善選修課程管理系統(tǒng)。所以在進(jìn)行調(diào)試的時(shí)候需要對許多變量理解和掌握其變化規(guī)律等,這對于我更好的掌握visual C中調(diào)試的工具有很大的幫助。 總之經(jīng)過這次課程設(shè)計(jì),我對c語言的使用和理解都有了很大的加深,對于編程的思想也有了很多新的理解和感受。 第七部分:附錄 一、參考文獻(xiàn): 1、李麗娟主編,C語言程序設(shè)計(jì)教程(第二版),人民郵電出版社 2、嚴(yán)蔚敏主編,數(shù)據(jù)結(jié)構(gòu)(C語言),清華大學(xué)出版社 3、崔單主編,C語言程序設(shè)計(jì)案例精粹,電子工業(yè)出版社 4、譚浩強(qiáng)主編,程序設(shè)計(jì)(第三版),清華大學(xué)出版社 二、源程序 #include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h” void index();//首頁 void login();void bye_sys();//退出界面 void stu_login();//學(xué)生登錄菜單 void c_select();void c_view();//課程瀏覽 void c_add();//增加課程 void c_delete();void c_searchs();//學(xué)生查詢函數(shù) void c_searchm();//管理員查詢函數(shù) void c_viewm();//管理員瀏覽函數(shù) void c_views();//學(xué)生瀏覽函數(shù) struct course//定義課程結(jié)構(gòu)體 { int c_num; char c_name[20]; int c_score; int c_nelepeo;//課程已選人數(shù) int c_melepeo;//課程人數(shù)上限 };struct student { char s_number[10]; char s_password[10];};struct manager { char m_name[10];char m_password[10];}; void index()//首頁 { char input; printf(“nnttt*****************************n”); printf(“ttt 湖南大學(xué)學(xué)生選課系統(tǒng)n”); printf(“ttt*****************************nnn”); printf(“ttt*****************************nnn”); printf(“ttt*****************************nnn”); printf(“ttt*****************************nnn”); printf(“ttt**********設(shè)計(jì)者:劉曉斌******nnn”); input=getchar(); system(“cls”);} void login()//登陸界面 { void stu_login(); void man_login(); void bye_sys(); int input; do { system(“cls”); printf(“nnnt1.學(xué)生登錄n”); printf(“t2.管理員登陸n”); printf(“t3.退出本系統(tǒng)n”); printf(“t請選擇服務(wù)類別:”); scanf(“%d”,&input); if(input!=1&&input!=2&&input!=3)//輸入數(shù)不等于選項(xiàng)的時(shí)候打印畫面 { printf(“nt輸入出錯(cuò)!請重新選擇~n”); printf(“nt按任意鍵返回選擇頁面~nt”); getchar();getchar(); system(“cls”); } if(input==3)//如果輸入3退出系統(tǒng) { bye_sys(); } }while(input!=1&&input!=2&&input!=3); switch(input) { case 1:stu_login();break; case 2:man_login();break; } } void bye_sys()//退出界面 { exit(0);} void man_login(){ void c_add(); void c_delete(); void c_view(); void c_searchm(); int in; do { system(“cls”); printf(“nnt1.新增課程n”); printf(“t2.刪除課程n”); printf(“t3.課程瀏覽n”); printf(“t4.課程查詢n”); printf(“t5.退出n”); printf(“nnt請選擇服務(wù)種類:”); scanf(“%d”,&in); if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5) { printf(“nt沒有這項(xiàng)服務(wù)t按任意重新選擇”); getchar();getchar(); } }while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5); switch(in) { case 1:c_add();break; case 2:c_delete();break; case 3:c_viewm();break; case 4:c_searchm();break; case 5:login();break; } } void stu_login()//學(xué)生登錄菜單 { void c_select(); void c_view(); void c_searchs(); void login(); int input; do { system(“cls”); printf(“nnnt--學(xué)生登陸--”); printf(“nnt1.學(xué)生選課n”); printf(“t2.課程瀏覽n”); printf(“t3.課程查詢n”); printf(“t4.退出n”); scanf(“%d”,&input); if(input!=1&&input!=2&&input!=3&&input!=4) { printf(“nt沒有這項(xiàng)服務(wù)~n”); printf(“t按任意鍵重新選擇”); getchar(); getchar(); } }while(input!=1&&input!=2&&input!=3&&input!=4); switch(input) { case 1:c_select();break; case 2:c_views();break; case 3:c_searchs();break; case 4:login();break; } } void c_select(){ int n,in,i=0,j;int flag=0; FILE *fp; FILE *fp1; char input; struct course courses[10]; if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程 { printf(“nnnt課程不存在nn”); printf(“t<按任意鍵返回管理菜單>nt”); input=getchar(); input=getchar(); stu_login();//進(jìn)入學(xué)生登陸菜單 } else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部 { do { fread(&courses[i],sizeof(struct course),1,fp); i=i+1; } while(!feof(fp)); fclose(fp);//文件讀完后關(guān)閉 } printf(“nntt請輸入你要選課程的編號:”); scanf(“%d”,&n); if((fp1=fopen(“courseselect.dat”,“rb”))==NULL) { fp1=fopen(“courseselect.dat”,“wb”); } else { fclose(fp1); fp1=fopen(“courseselect.dat”,“ab”); } for(j=0;j if(courses[j].c_num==n) flag++; if(flag==0) { printf(“nntt不存在對應(yīng)課程n”); printf(“nntt繼續(xù)選課請按1,退出請按2:n”); scanf(“%d”,&in); switch(in) { case 1:c_select();break; case 2:stu_login();break; default: printf(“輸入錯(cuò)誤,將返回登錄界面!n”); login();break; } } else { fwrite(&courses[j],sizeof(struct course),1,fp1); fclose(fp1); printf(“nntt選課成功t請選擇:”); printf(“nntt1.繼續(xù)選課”); printf(“nntt2.退出,返回登錄界面!”); scanf(“%d”,&in); switch(in) { case 1:c_select();break; case 2:stu_login();break; default:break; } } } void c_viewm()//課程瀏覽 { void stu_login(); void c_view(); int inp,i=0,n=0; FILE *fp; char input; struct course courseview[10]; if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程 { system(“cls”); printf(“nnnt課程不存在nn”); printf(“t<按任意鍵返回管理菜單>nt”); getchar();getchar(); stu_login();//進(jìn)入學(xué)生登陸菜單 } else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部 { do { fread(&courseview[i],sizeof(struct course),1,fp); i=i+1; } while(!feof(fp)); fclose(fp);//文件讀完后關(guān)閉 do { system(“cls”); if(i==1) { printf(“nnnttt沒有記錄!n”); getchar();getchar(); man_login(); } else { printf(“nt------共有%d條記錄-------”,i-1); printf(“nnt課程編號: %dn”,courseview[n].c_num); printf(“nnt課程名字: %sn”,courseview[n].c_name); printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score); printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo); printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo); printf(“nnt1.上一頁t2.下一頁t3.回目錄”); printf(“n請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1: { if(n==0) { printf(“nt已到達(dá)首頁 t按任意鍵返回”); input=getchar(); input=getchar(); } else { n=n-1; } break; } case 2: { if(n==i-2) { printf(“nt已到達(dá)尾頁t按人意見返回”); input=getchar(); input=getchar(); } else { n=n+1; } break; } case 3:{man_login();break;} default: { printf(“nt操作錯(cuò)誤t按任意鍵返回”); getchar();getchar(); break; } } } }while(inp!=3); } } void c_views()//課程瀏覽 { void stu_login(); void c_view(); int inp,i=0,n=0; FILE *fp; char input; struct course courseview[10]; if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程 { system(“cls”); printf(“nnnt課程不存在nn”); printf(“t<按任意鍵返回管理菜單>nt”); getchar();getchar(); stu_login();//進(jìn)入學(xué)生登陸菜單 } else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部 { do { fread(&courseview[i],sizeof(struct course),1,fp); i=i+1; } while(!feof(fp)); fclose(fp);//文件讀完后關(guān)閉 do { system(“cls”); if(i==1) { printf(“nnnttt沒有記錄!n”); getchar();getchar(); stu_login(); } else { printf(“nt------共有%d條記錄-------”,i-1); printf(“nnt課程編號: %dn”,courseview[n].c_num); printf(“nnt課程名字: %sn”,courseview[n].c_name); printf(“nnt課程學(xué)分: %dn”,courseview[n].c_score); printf(“nnt課程已選人數(shù): %dn”,courseview[n].c_nelepeo); printf(“nnt課程人數(shù)上限: %dn”,courseview[n].c_melepeo); printf(“nnt1.上一頁t2.下一頁t3.回目錄”); printf(“n請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1: { if(n==0) { printf(“nt已到達(dá)首頁 t按任意鍵返回”); input=getchar(); input=getchar(); } else { n=n-1; } break; } case 2: { if(n==i-2) { printf(“nt已到達(dá)尾頁t按人意見返回”); input=getchar(); input=getchar(); } else { n=n+1; } break; } case 3:{stu_login();break;} default: { printf(“nt操作錯(cuò)誤t按任意鍵返回”); getchar();getchar(); break; } } } }while(inp!=3); } } void c_searchs(){ void stu_login(); void c_searchs(); int id,i=0,j,inp,k; int flag=0; FILE *fp; struct course coursesear[10]; if((fp=fopen(“course.dat”,“rb”))==NULL) //判斷課程信息是否存在 { system(“cls”); printf(“nnt課程不存在t按任意鍵返回”); getchar();getchar(); stu_login(); } else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部 { do { fread(&coursesear[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); } system(“cls”); printf(“nnttt請輸入你要查詢的課程編號:”); scanf(“%d”,&id); do//檢查輸入是否符合要求 { for(j=0;j { if(id==coursesear[j].c_num) { flag++; k=j; } } if(flag==1) { system(“cls”); printf(“nnt課程編號:%dn”,coursesear[k].c_num); printf(“nnt課程名字:%sn”,coursesear[k].c_name); printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score); printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo); printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo); getchar();getchar(); printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchs(); case 2:stu_login(); default: { printf(“nt沒有這項(xiàng)服務(wù)t請按任意鍵重新輸入”); getchar();getchar(); } } } else { system(“cls”); printf(“nnt不存在對應(yīng)記錄n”); printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchs(); case 2:stu_login(); default: { printf(“nt沒有這項(xiàng)服務(wù)t請按任意鍵重新輸入”); getchar();getchar(); } } } }while(inp!=1); } void c_searchm(){ void stu_login(); void c_searchm(); int id,i=0,j,inp,k; int flag=0; FILE *fp; struct course coursesear[10]; if((fp=fopen(“course.dat”,“rb”))==NULL) //判斷課程信息是否存在 { system(“cls”); printf(“nnt課程不存在t按任意鍵返回”); getchar();getchar(); stu_login(); } else//存在的話循環(huán)讀取文件中的信息直到文件指針到文件尾部 { do { fread(&coursesear[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); } system(“cls”); printf(“nnttt請輸入你要查詢的課程編號:”); scanf(“%d”,&id); do//檢查輸入是否符合要求 { for(j=0;j { if(id==coursesear[j].c_num) { flag++; k=j; } } if(flag==1) { system(“cls”); printf(“nnt課程編號:%dn”,coursesear[k].c_num); printf(“nnt課程名字:%sn”,coursesear[k].c_name); printf(“nnt課程學(xué)分:%dn”,coursesear[k].c_score); printf(“nnt課程已選人數(shù):%dn”,coursesear[k].c_nelepeo); printf(“nnt課程人數(shù)上限:%dn”,coursesear[k].c_melepeo); getchar();getchar(); printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchm(); case 2:man_login(); default: { printf(“nt沒有這項(xiàng)服務(wù)t請按任意鍵重新輸入”); getchar();getchar(); } } } else { system(“cls”); printf(“nnt不存在對應(yīng)記錄n”); printf(“nnt1.回目錄繼續(xù)查詢t2.退出查詢系統(tǒng)n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchm(); case 2:man_login(); default: { printf(“nt沒有這項(xiàng)服務(wù)t請按任意鍵重新輸入”); getchar();getchar(); } } } }while(inp!=1);} void c_add()//增加課程 { void c_add(); void man_login(); int i=0,j,inp; FILE *fp; struct course course_new; struct course courses[10]; system(“cls”); printf(“nntt請輸入課程信息”); printf(“nntt1.課程編號:”); scanf(“%d”,&course_new.c_num); printf(“nntt2.課程名字:”); scanf(“%s”,course_new.c_name); printf(“nntt3.課程學(xué)分:”); scanf(“%d”,&course_new.c_score); printf(“nntt4.課程已選人數(shù):”); scanf(“%d”,&course_new.c_nelepeo); printf(“nntt5.課程人數(shù)上限:”); scanf(“%d”,&course_new.c_melepeo); if((fp=fopen(“course.dat”,“rb”))!=NULL) { do { fread(&courses[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); for(j=0;j<=i-1;j++) if(course_new.c_num==courses[j].c_num) { system(“cls”); printf(“nnttt對不起,這個(gè)編號已經(jīng)使用過nntt按任意鍵返回管理菜單”); getchar();getchar(); man_login(); break; } } if((fp=fopen(“course.dat”,“rb”))==NULL) { fp=fopen(“course.dat”,“wb”); } else { fclose(fp); fp=fopen(“course.dat”,“ab”); } fwrite(&course_new,sizeof(struct course),1,fp); fclose(fp); printf(“nntt信息輸入完畢t按任意鍵繼續(xù)”); getchar();getchar(); do { system(“cls”); printf(“nntt1.繼續(xù)輸入”); printf(“nntt2.返回管理菜單”); printf(“nntt請選擇”); scanf(“%d”,&inp); if(inp!=1&&inp!=2) { printf(“輸入不符合要求t按任意鍵重新選擇”); getchar();getchar(); } }while(inp!=1&&inp!=2); switch(inp) { case 1:c_add();break; case 2:man_login();break; } } void c_delete()//查詢后刪除 { FILE *fp; int i=0,j,n,k,flag=0; struct course courses[10]; void c_delete(); void man_login(); printf(“nntt請輸入你要?jiǎng)h除的課程編號:”); scanf(“%d”,&n); if((fp=fopen(“course.dat”,“rb”))!=NULL) { do { fread(&courses[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); } else { printf(“nntt不存在任何課程t按任意鍵返回”); getchar();getchar(); man_login(); } for(j=0;j { if(courses[j].c_num==n) { flag=1; fp=fopen(“course.dat”,“wb”); for(k=0;k fwrite(&courses[k],sizeof(struct course),1,fp); fclose(fp); fp=fopen(“course.dat”,“ab”); for(k=j+1;k { fwrite(&courses[k],sizeof(struct course),1,fp); } printf(“nntt記錄已刪除!t按任意鍵返回ntt”); getchar();getchar(); man_login(); fclose(fp); } } if(flag==0) { printf(“nntt不存在對應(yīng)的課程t按任意鍵返回”); getchar();getchar(); man_login(); } // printf(“nntt記錄已刪除!t按任意鍵返回ntt”); } int main(){ index();login();return 0;} 體育選課系統(tǒng)畢業(yè)論文自述報(bào)告 體育公選課管理信息系統(tǒng)對于一個(gè)學(xué)校來說是必不可少的組成部分。目前好多學(xué)校還停留在手工安排課程和人工統(tǒng)計(jì)成績的原始階段,這樣的方式對于規(guī)模小的學(xué)校來說還勉強(qiáng)可以接受,但對于學(xué)生信息量比較龐大,需要記錄存檔和統(tǒng)計(jì)的數(shù)據(jù)比較多的高校來說,人工記錄是相當(dāng)麻煩的。而且當(dāng)在學(xué)期末統(tǒng)計(jì)學(xué)生成績時(shí)時(shí),由于數(shù)據(jù)量龐大,還只能靠人工去一條條的統(tǒng)計(jì),這樣不但麻煩還浪費(fèi)了許多時(shí)間,效率也比較低,而且十分容易出錯(cuò)。針對這種現(xiàn)象,本文在熟悉選課流程后運(yùn)用面向?qū)ο蟮姆椒ㄩ_發(fā)了體育公選課管理信息系統(tǒng)。本系統(tǒng)具有運(yùn)行速度快、安全性高、穩(wěn)定性好的優(yōu)點(diǎn),并且具備完善的成績報(bào)表生成,老師在線評分等功能。 體育公選課管理信息系統(tǒng)的開發(fā)是為了減少大量的、繁瑣的、重復(fù)的操作,提高教學(xué)管理效率,繼續(xù)教學(xué)管理改革,促進(jìn)教學(xué)管理科學(xué)化與信息化,同時(shí)與全面推行學(xué)分制與實(shí)施新教學(xué)計(jì)劃相配套。 本系統(tǒng)主要運(yùn)用面向?qū)ο蟮乃枷?運(yùn)用MS SQL數(shù)據(jù)庫和ASP.NET,開發(fā)基于B/S架構(gòu)下的體育公選課管理信息系統(tǒng)。體育公選課管理信息系統(tǒng)主要包括兩大模塊:選課系統(tǒng)與考試系統(tǒng)。其中選課系統(tǒng)實(shí)現(xiàn)了學(xué)生數(shù)據(jù)管理、教師數(shù)據(jù)管理、學(xué)院數(shù)據(jù)管理、課程數(shù)據(jù)管理、系統(tǒng)管理、學(xué)生在線選課、教師在線評分等功能;考試系統(tǒng)包括了題庫管理、試題管理、隨機(jī)組卷、在線考試、自動(dòng)評分、在線監(jiān)考等功能。 當(dāng)前的體育公選課管理信息系統(tǒng),存在著功能單 一、課程安排缺乏靈活、不能結(jié)合體育理論知識進(jìn)行成績評定、無法實(shí)現(xiàn)管理員對所開課程的人數(shù)進(jìn)行控制,造成熱門課程人數(shù)爆滿、冷門課程無人問津的后果,手工輸入大批量數(shù)據(jù)時(shí)容易出錯(cuò)等缺點(diǎn)。 針對以上問題,本系統(tǒng)設(shè)計(jì)時(shí)主要做了以下創(chuàng)新的改進(jìn): (1)對所開課程進(jìn)行按班別安排指標(biāo),例如:開設(shè)籃球課,給02信息管理與信息系統(tǒng)這個(gè)班別的指標(biāo)是10人,當(dāng)02信息管理與信息系統(tǒng)這個(gè)班別選擇該課程的人數(shù)達(dá)到十人后就會(huì)提示指標(biāo)已達(dá)上限。這樣的設(shè)計(jì)更能體現(xiàn)課程安排的公平性。 (2)學(xué)生總成績評定實(shí)現(xiàn)自動(dòng)化。根據(jù)公式:期末成績=考試成績×70%+理論考試×20%+平時(shí)成績×10%評定學(xué)生的成績,其中公式中的理論考試成績是由本系統(tǒng)的子系統(tǒng)——考試系統(tǒng)提供的,考試子系統(tǒng)組卷的方式是通過隨機(jī)抽題的方式進(jìn)行組卷的,這樣的方式使學(xué)生不單單是體能上的進(jìn)步,更能打好扎實(shí)的理論基礎(chǔ)。 本文所做的主要工作及取得的主要成果如下: 1)研究了管理信息系統(tǒng)的體系結(jié)構(gòu)。 2)通過面向?qū)ο蟮姆治龇椒ó嫵鱿到y(tǒng)用例圖、類圖,完成系統(tǒng)需求分析。 3)通過功能模塊設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、編碼設(shè)計(jì)、安全性設(shè)計(jì),完成了系統(tǒng)的設(shè)計(jì)。 4)編寫相應(yīng)的文檔。 5)開發(fā)了功能強(qiáng)大的體育公選課管理信息系統(tǒng)。 由于時(shí)間的限制以及本能能力所及,體育公選課管理信息系統(tǒng)的各種功能還只是處于初步實(shí)現(xiàn)階段,在接下來的時(shí)間里,如果有機(jī)會(huì)的話,我將進(jìn)一步的深入和拓展體育公選課管理信息系統(tǒng)的功能。第五篇:體育選課系統(tǒng)畢業(yè)論文自述報(bào)告