版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《管理信息系統(tǒng)》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 選 題:學(xué)生成績(jī)管理系統(tǒng)</p><p><b> 班 級(jí):</b></p><p><b> 姓名學(xué)號(hào):</b>
2、</p><p><b> 目錄</b></p><p> 前言……………………………………………………………………………2</p><p> 系統(tǒng)分析………………………………………………………………………3</p><p> 可行性分析…………………………………………………………………3</p>
3、<p> 1.管理上的可行性………………………………………………………………3</p><p> 2.技術(shù)上的可行性………………………………………………………………3</p><p> 3.經(jīng)濟(jì)上的可行性………………………………………………………………3</p><p> 組織結(jié)構(gòu)圖…………………………………………………………………4</p&
4、gt;<p> 1.組織結(jié)構(gòu)圖分析………………………………………………………………4</p><p> 2.具體組織結(jié)構(gòu)圖………………………………………………………………4</p><p> 業(yè)務(wù)流程圖…………………………………………………………………5</p><p> 數(shù)據(jù)流程圖和數(shù)據(jù)字典……………………………………………………6</
5、p><p> 1.數(shù)據(jù)流程圖……………………………………………………………………6</p><p> 2.數(shù)據(jù)字典………………………………………………………………………8</p><p> 系統(tǒng)設(shè)計(jì)………………………………………………………………………10</p><p> 模塊結(jié)構(gòu)體系………………………………………………………………10
6、</p><p> 1.功能模塊………………………………………………………………………10</p><p> 2.功能模塊說(shuō)明…………………………………………………………………11</p><p> 3.系統(tǒng)維護(hù)模塊…………………………………………………………………11</p><p> 4.系統(tǒng)流程圖…………………………………………
7、…………………………12</p><p> 5.數(shù)據(jù)庫(kù)設(shè)計(jì)……………………………………………………………………12</p><p> ?。?)數(shù)據(jù)庫(kù)概要設(shè)計(jì)……………………………………………………………12</p><p> (2)數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)……………………………………………………………13</p><p> ?。ǘ┐a設(shè)計(jì)…………
8、…………………………………………………………13</p><p> ?。ㄈ┹斎?輸出設(shè)計(jì)…………………………………………………………… 20</p><p> 四、體會(huì)和收獲……………………………………………………………………20</p><p> 五、課程設(shè)計(jì)小組分工……………………………………………………………21</p><p>
9、 學(xué)生成績(jī)管理信息系統(tǒng)</p><p><b> 前言</b></p><p> 學(xué)生成績(jī)管理系統(tǒng)是為了更好的管理學(xué)生考試成績(jī)而開(kāi)發(fā)的數(shù)據(jù)管理軟件。它對(duì)于一個(gè)學(xué)校是不可缺少的重要部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要。目前各個(gè)高校的基本情況是:每次考試結(jié)束,老師們都要統(tǒng)計(jì)大量的學(xué)生成績(jī),這些數(shù)據(jù)的歸檔、統(tǒng)計(jì)工作任務(wù)重,統(tǒng)計(jì)結(jié)束后往往錯(cuò)誤百出。工作量
10、之大,查閱,維護(hù)都有不同程度的問(wèn)題存在。所以,學(xué)生成績(jī)管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢(xún)手段,實(shí)現(xiàn)學(xué)生基本信息、成績(jī)的錄入,刪除,查詢(xún),維護(hù)以及成績(jī)的統(tǒng)計(jì)分析等幾方面的功能,是現(xiàn)實(shí)問(wèn)題的迫切要求。</p><p> 如果一個(gè)學(xué)校沒(méi)有一個(gè)完善的成績(jī)管理平臺(tái),計(jì)算機(jī)的使用就沒(méi)有真正發(fā)揮有效的作用。隨著計(jì)算機(jī)應(yīng)用的普及與深入,利用計(jì)算機(jī)能夠?qū)λ锌荚嚦煽?jī)進(jìn)行統(tǒng)一管理,進(jìn)行分析,大大減少了工作量,提高了工作效
11、率,為教學(xué)辦公帶來(lái)了極大的方便。本系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生成績(jī)管理的系統(tǒng)化、規(guī)范化、自動(dòng)化。達(dá)到提高學(xué)生成績(jī)管理效率的目的。與傳統(tǒng)管理方法相比有明顯的優(yōu)點(diǎn):查找方便,可靠性高,保密性好,成本低。徹底改變了以前繁雜的管理模式,實(shí)現(xiàn)全面的、相對(duì)集中的、職能化的信息綜合管理。</p><p> 計(jì)算機(jī)被用到信息管理系統(tǒng)的環(huán)境正是適應(yīng)了當(dāng)今時(shí)代飛速發(fā)展的信息時(shí)代。人們深刻的認(rèn)識(shí)到了計(jì)算機(jī)功能的強(qiáng)大,對(duì)于復(fù)雜的信息管
12、理,計(jì)算機(jī)充分發(fā)揮著它的優(yōu)越性。檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低,這些優(yōu)點(diǎn)極大地減輕了學(xué)院教學(xué)人員的工作量,縮小開(kāi)支,提高了學(xué)生檔案管理的效率和準(zhǔn)確性,能夠合理的安排時(shí)間,學(xué)生能夠盡快的知道自己的考試成績(jī)。同時(shí),學(xué)生管理系統(tǒng)的應(yīng)用也為今天的教育在未來(lái)市場(chǎng)的競(jìng)爭(zhēng)力有所提高。</p><p> 對(duì)于一個(gè)學(xué)校而言,學(xué)生成績(jī)管理是一項(xiàng)非常繁瑣和復(fù)雜的工作,工作量大,不好管理。為了適應(yīng)時(shí)代
13、的發(fā)展,提高工作效率尤為重要。學(xué)生成績(jī)管理系統(tǒng)的改進(jìn)更好的利用了現(xiàn)代高科技,對(duì)學(xué)生負(fù)責(zé),對(duì)本校未來(lái)的發(fā)展負(fù)責(zé),對(duì)整個(gè)中國(guó)教育的負(fù)責(zé),是真正朝向未來(lái)教育發(fā)展的順應(yīng)潮流的進(jìn)步。</p><p><b> 系統(tǒng)分析</b></p><p><b> 可行性性分析</b></p><p> 1.管理上的可行性:</p&
14、gt;<p> 主要是教務(wù)處管理人員的大力支持,系領(lǐng)導(dǎo)認(rèn)同,現(xiàn)有的管理制度和方法科學(xué),規(guī)章制度齊全,原始數(shù)據(jù)正確等。規(guī)章制度和管理方法系統(tǒng)的建設(shè)提供了制度保障。</p><p> 2.技術(shù)上的可行性:</p><p> 技術(shù)的可行性分析要考慮將來(lái)要采用的硬件和軟件技術(shù)能否滿足用戶提出的要求。此外還要考慮開(kāi)發(fā)人員的水平,在數(shù)據(jù)庫(kù)方面要對(duì)管理模式比較熟悉。我們學(xué)習(xí)過(guò)數(shù)據(jù)庫(kù)和
15、管理信息系統(tǒng)課程設(shè)計(jì)的相關(guān)課程,有能力編寫(xiě)學(xué)生成績(jī)管理系統(tǒng)這種不算太難的程序。</p><p> 使用VB作為系統(tǒng)開(kāi)發(fā)環(huán)境,它提供完善的指令控制語(yǔ)句、類(lèi)與對(duì)象的支持及豐富的數(shù)據(jù)類(lèi)型,給開(kāi)發(fā)高性能系統(tǒng)提供的保障為開(kāi)發(fā)滿足客戶要求的系統(tǒng),保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對(duì)新系統(tǒng)的擴(kuò)展與修改。</p><p> 而且由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料
16、,特別是參考其它程序的功能,因此幾乎可以實(shí)現(xiàn)。</p><p> 綜上所述,本系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它在技術(shù)上是可行的。</p><p> 3.經(jīng)濟(jì)上的可行性:</p><p> 現(xiàn)在,計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長(zhǎng)足的進(jìn)步。而本系統(tǒng)的開(kāi)發(fā),也在一定程度上為學(xué)校的工作效率帶來(lái)了一個(gè)質(zhì)的飛躍,為此主要表現(xiàn)有以下幾個(gè)方
17、面:一方面是支出的費(fèi)用,包括設(shè)備購(gòu)置費(fèi)、管理和維護(hù)費(fèi)用、人員工資和培訓(xùn)費(fèi)等,另一個(gè)是取得的收益。這是個(gè)超小的管理系統(tǒng),從投入的人力,財(cái)力與物力來(lái)講是非常之小的,只要一臺(tái)電腦,一臺(tái)打印機(jī),這個(gè)系統(tǒng)就可以搞起來(lái),考慮到學(xué)校里有電腦,現(xiàn)只要購(gòu)置一臺(tái)打印機(jī)就可以了。從節(jié)省人力方面,可以讓管理人員從繁冗復(fù)雜的工作中解脫出來(lái),做更多的工作,可以給教學(xué)管理提高一個(gè)層次。具體有以下幾個(gè)方面:</p><p> (1)本系統(tǒng)只需
18、要一臺(tái)計(jì)算機(jī);</p><p> ?。?)本系統(tǒng)的運(yùn)行可以節(jié)省許多資源;</p><p> ?。?)本系統(tǒng)的運(yùn)行可以大大的提高學(xué)校的工作效率;</p><p> ?。?)本系統(tǒng)可以敏感文檔更加安全,等等。</p><p><b> 組織結(jié)構(gòu)圖</b></p><p><b> 1.組
19、織結(jié)構(gòu)圖分析</b></p><p> 總控模塊管理有三種不同的信息的處理模塊,即管理員模塊、教師模塊、學(xué)生模塊,各模塊的主要功能有:</p><p> ?。?)系統(tǒng)管理員進(jìn)入學(xué)生成績(jī)管理的主要功能:實(shí)現(xiàn)管理員用戶的添加、修改和刪除,以及對(duì)教師添加、教師修改、教師刪除、教師查詢(xún)、學(xué)生添加、學(xué)生修改、學(xué)生刪除、學(xué)生查詢(xún)等基本功能,并且參與開(kāi)設(shè)課程、選擇課程的管理,安排教師的任課
20、和學(xué)生的選課工作。</p><p> ?。?)教師進(jìn)入學(xué)生成績(jī)管理系統(tǒng)的主要功能:各科教師登錄系統(tǒng)后查詢(xún)和修改個(gè)人信息,修改自己的賬號(hào)密碼,查詢(xún)自己的授課課程,實(shí)現(xiàn)對(duì)選修了自己課程的學(xué)生的成績(jī)進(jìn)行查詢(xún)、錄入和修改,各科老師可以對(duì)自己學(xué)生選修課程結(jié)束后給予分?jǐn)?shù),同時(shí)可以對(duì)自己所帶課程的成績(jī)優(yōu)秀人數(shù)、及格人數(shù)、不及格人數(shù)的分布信息進(jìn)行查詢(xún)。</p><p> (3)學(xué)生進(jìn)入學(xué)生成績(jī)管理系統(tǒng)的
21、主要功能:每個(gè)學(xué)生登錄后可以查詢(xún)和修改個(gè)人信息、修改自己的賬號(hào)密碼,以及自己所選任課老師的個(gè)人信息,同時(shí)在課程結(jié)束后可以查詢(xún)?cè)谛F陂g各個(gè)時(shí)間段選修課程的成績(jī)與學(xué)分,以及對(duì)單科成績(jī)和總分的排名查詢(xún)。</p><p> 2.具體的組織機(jī)構(gòu)圖如圖1所示:</p><p><b> 圖1 組織結(jié)構(gòu)圖</b></p><p><b> 業(yè)
22、務(wù)流程圖</b></p><p> 經(jīng)調(diào)查之后,結(jié)合現(xiàn)行管理模式,為開(kāi)發(fā)本系統(tǒng)而繪制出的學(xué)生成績(jī)管理業(yè)務(wù)流程圖。如圖2所示:</p><p><b> 圖2 業(yè)務(wù)流程圖</b></p><p> 數(shù)據(jù)流程圖和數(shù)據(jù)字典</p><p><b> 1.數(shù)據(jù)流程圖</b></p&
23、gt;<p> 系統(tǒng)的數(shù)據(jù)流程圖如圖3、圖4所示:</p><p> 圖3 學(xué)生成績(jī)管理數(shù)據(jù)流程圖(頂層圖)</p><p> 圖4 學(xué)生成績(jī)管理數(shù)據(jù)流程圖(展開(kāi)圖)</p><p><b> 2.數(shù)據(jù)字典</b></p><p><b> ?。?)數(shù)據(jù)流的描述</b><
24、/p><p> 數(shù)據(jù)流 表1 數(shù)據(jù)字典(一) No:__________</p><p> 填表人_____________ 年 月 日 </p><p> (2)處理邏輯的描述</p><p> 處 理 表
25、2 數(shù)據(jù)字典(二) No:__________</p><p> 填表人_____________ 年 月 日 </p><p><b> (3)數(shù)據(jù)存儲(chǔ)</b></p><p> 數(shù)據(jù)存儲(chǔ) 表3 數(shù)據(jù)字典(三) No:______
26、____</p><p> 填表人_____________ 年 月 日</p><p><b> ?。?)外部實(shí)體</b></p><p> 外部實(shí)體 表4 數(shù)據(jù)字典(四) No:__________</p><p> 填表
27、人_____________ 年 月 日</p><p><b> ?。?)數(shù)據(jù)項(xiàng)</b></p><p> 數(shù)據(jù)項(xiàng) 表5 數(shù)據(jù)字典(五) No:__________</p><p> 填表人_____________ 年 月
28、 日</p><p><b> (6)數(shù)據(jù)結(jié)構(gòu)</b></p><p> 數(shù)據(jù)結(jié)構(gòu) 表6 數(shù)據(jù)字典(六) No:__________</p><p> 填表人_____________ 年 月 日</p><p>&
29、lt;b> 系統(tǒng)設(shè)計(jì)</b></p><p><b> 模塊結(jié)構(gòu)體系</b></p><p><b> 功能模塊</b></p><p><b> 圖5 功能模塊圖</b></p><p><b> 2.功能模塊說(shuō)明</b>&
30、lt;/p><p> ?。?)用戶管理和班級(jí)管理:</p><p> 通過(guò)驗(yàn)證用戶的使用權(quán)限及進(jìn)行數(shù)據(jù)的導(dǎo)入、導(dǎo)出工作。</p><p><b> 對(duì)班級(jí)的管理。</b></p><p><b> ?。?)學(xué)生信息設(shè)置</b></p><p> 對(duì)與學(xué)生相關(guān)信息的錄入。&l
31、t;/p><p> ?。?)課程與成績(jī)?cè)O(shè)置:</p><p> 各門(mén)課程所屬學(xué)院及相關(guān)學(xué)分設(shè)置。</p><p><b> 學(xué)生成績(jī)的錄入。</b></p><p> ?。?)成績(jī)查詢(xún)與統(tǒng)計(jì):</p><p><b> 按要求查詢(xún)成績(jī)。</b></p><
32、;p><b> 進(jìn)行圖表的統(tǒng)計(jì)。</b></p><p> 成績(jī)審核業(yè)務(wù),就單據(jù)格式是否規(guī)范和填寫(xiě)數(shù)據(jù)是否與實(shí)務(wù)數(shù)量相符的審核在系統(tǒng)中仍由人工完成,對(duì)成績(jī)單上填寫(xiě)的學(xué)生人數(shù)量大于實(shí)際學(xué)生成績(jī)數(shù)量的情況可在成績(jī)錄入過(guò)程中自動(dòng)審核,并拒絕該成績(jī)單。</p><p> 數(shù)據(jù)錄入模塊用于錄入學(xué)生名單和成績(jī)單,它是高校學(xué)生成績(jī)管理系統(tǒng)的基本數(shù)據(jù)輸入的模塊,他根據(jù)各科
33、教師送來(lái)的成績(jī)單,記錄各學(xué)生的每人成績(jī)數(shù)據(jù)。</p><p> 為方便學(xué)校各級(jí)管理人員及時(shí)了解、掌握各學(xué)院的學(xué)生成績(jī),新系統(tǒng)特別設(shè)計(jì)了數(shù)據(jù)查詢(xún)模塊,并提供多種查詢(xún)功能,每學(xué)期、各學(xué)院的查詢(xún)等。</p><p> 報(bào)表輸出模塊可以完成系統(tǒng)所需的各種報(bào)表的計(jì)算和打印輸出功能,可輸出“學(xué)生成績(jī)表”等。</p><p> 為了統(tǒng)一產(chǎn)品的品種及其特性,方便數(shù)據(jù)輸入。特設(shè)
34、計(jì)了產(chǎn)品代碼、產(chǎn)品名稱(chēng)及其特性對(duì)照表。系統(tǒng)中設(shè)計(jì)代碼維護(hù)模塊的目的是當(dāng)產(chǎn)品代碼或特性變動(dòng)時(shí)及時(shí)修改代碼表,可對(duì)代碼表進(jìn)行增加、刪除和修改等處理。</p><p><b> 3.系統(tǒng)維護(hù)模塊</b></p><p> 圖6 系統(tǒng)維護(hù)內(nèi)部模塊圖</p><p><b> 4.系統(tǒng)流程圖</b></p>&l
35、t;p><b> 圖7 系統(tǒng)流程圖</b></p><p><b> 5.數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> ?。?)數(shù)據(jù)庫(kù)概要設(shè)計(jì)</p><p> 本系統(tǒng)的數(shù)據(jù)庫(kù)主要有“學(xué)生”、“班級(jí)”、“課程”、“教師”等。其中教師與課程系統(tǒng)存在授課聯(lián)系,并且一個(gè)教師可以授N門(mén)課程,即教師與課程是一對(duì)多的關(guān)系。一個(gè)學(xué)生
36、可以學(xué)習(xí)N們課程,一門(mén)課程可以有M個(gè)學(xué)生學(xué)習(xí),即學(xué)生與課程是多對(duì)多的關(guān)系。整個(gè)數(shù)據(jù)庫(kù)可以用一個(gè)E-R圖表示。如圖8所示:</p><p><b> 圖8 系統(tǒng)E-R圖</b></p><p> ?。?)數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)</p><p> 該系統(tǒng)子系統(tǒng)分為學(xué)生系統(tǒng)、班級(jí)系統(tǒng)、課程系統(tǒng)、學(xué)生-課程系統(tǒng)、用戶信息系統(tǒng)。</p><
37、;p><b> ?。ǘ┐a設(shè)計(jì)</b></p><p> 新系統(tǒng)為每個(gè)學(xué)生設(shè)計(jì)了代碼,一方面可統(tǒng)一學(xué)生的成績(jī)管理,另一方面是為了方便數(shù)據(jù)輸入。產(chǎn)品代碼為兩位數(shù)字字符,采用的是順序碼結(jié)構(gòu)。</p><p> 在系統(tǒng)運(yùn)行過(guò)程中,凡是需要輸入某種產(chǎn)品時(shí),只需輸入產(chǎn)品代碼即可,系統(tǒng)可根據(jù)學(xué)生代碼、成績(jī)表單、自動(dòng)將相應(yīng)的學(xué)生姓名和成績(jī)等信息調(diào)出來(lái),而且代碼表顯示在輸
38、入/輸出窗口中,用戶不一定要記住學(xué)生的代碼,可隨時(shí)通過(guò)系統(tǒng)聯(lián)機(jī)查詢(xún)。</p><p> #include<stdio.h> /*引用庫(kù)函數(shù)*/ </p><p> #include<stdlib.h> </p><p> #include<ctype.h> </p><p> #include<
39、;string.h> </p><p> typedef struct /*定義結(jié)構(gòu)體數(shù)組*/ </p><p><b> { </b></p><p> char num[10]; /*學(xué)號(hào)*/ </p><p> char name[20]; /*姓名*/ </p><p>
40、int score; /*成績(jī)*/ </p><p><b> }</b></p><p><b> Student; </b></p><p> Student stu[80]; /*結(jié)構(gòu)體數(shù)組變量*/ </p><p> int menu_select() /*菜單函數(shù)*/ </p
41、><p><b> { </b></p><p><b> char c; </b></p><p><b> do</b></p><p><b> { </b></p><p> system("cls"
42、;); /*運(yùn)行前清屏*/ </p><p> printf("\t\t****Students' Grade Management System****\n"); /*菜單選擇*/ </p><p> printf("\t\t | 1. Input Records |\n"); </p><p> printf
43、("\t\t | 2. Display All Records |\n"); </p><p> printf("\t\t | 3. Sort |\n"); </p><p> printf("\t\t | 4. Insert a Record |\n"); </p><p> printf(&quo
44、t;\t\t | 5. Delete a Record |\n"); </p><p> printf("\t\t | 6. Query |\n"); </p><p> printf("\t\t | 7. Statistic |\n"); </p><p> printf("\t\t | 8. Ad
45、d Records from a Text File|\n"); </p><p> printf("\t\t | 9. Write to a Text file |\n"); </p><p> printf("\t\t | 0. Quit |\n"); </p><p> printf("\t\t
46、*****************************************\n"); </p><p> printf("\t\t\tGive your Choice(0-9):"); </p><p> c=getchar();/*讀入選擇*/ </p><p><b> }</b></p&g
47、t;<p> while(c<'0'||c>'9'); </p><p> return(c-'0'); /*返回選擇*/ </p><p><b> } </b></p><p> int Input(Student stud[],int n) /*輸入若干條
48、記錄*/ </p><p> { int i=0; </p><p> char sign,x[10]; /*x[10]為清除多余的數(shù)據(jù)所用*/ </p><p> while(sign!='n'&&sign!='N') /*判斷*/ </p><p><b> { <
49、;/b></p><p> printf("\t\t\tstudent's num:"); /*交互輸入*/ </p><p> scanf("\t\t\t%s",stud[n+i].num); </p><p> printf("\t\t\tstudent's name:");
50、 </p><p> scanf("\t\t\t%s",stud[n+i].name); </p><p> printf("\t\t\tstudent's score:"); </p><p> scanf("\t\t\t%d",&stud[n+i].score); </p&g
51、t;<p> gets(x); /*清除多余的輸入*/ </p><p> printf("\t\t\tany more records?(Y/N)"); </p><p> scanf("\t\t\t%c",&sign); /*輸入判斷*/ </p><p><b> i++; &l
52、t;/b></p><p><b> } </b></p><p> return(n+i); </p><p><b> } </b></p><p> void Display(Student stud[],int n) /*顯示所有記錄*/ </p><p&g
53、t;<b> { </b></p><p><b> int i; </b></p><p> printf("\t\t\t-----------------------------------\n"); /*格式頭*/ </p><p> printf("\t\t\tnumber n
54、ame score\n"); </p><p> printf("\t\t\t-----------------------------------\n"); </p><p> for(i=1;i<n+1;i++) /*循環(huán)輸入*/ </p><p><b> { </b></p>&l
55、t;p> printf("\t\t\t%-16s%-15s%d\n",stud[i-1].num,stud[i-1].name,stud[i-1].score); </p><p> if(i>1&&i%10==0) /*每十個(gè)暫停*/ </p><p><b> {</b></p><p>
56、; printf("\t\t\t-----------------------------------\n"); /*格式*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p> printf("\t\t\t--
57、---------------------------------\n"); </p><p><b> } </b></p><p><b> } </b></p><p> printf("\t\t\t"); </p><p> system("p
58、ause"); </p><p><b> } </b></p><p> void Sort_by_num(Student stud[],int n) /*按學(xué)號(hào)排序*/ </p><p><b> { </b></p><p> int i,j,*p,*q,s; </p&
59、gt;<p> char t[10]; </p><p> for(i=0;i<n-1;i++) /*冒泡法排序*/ </p><p> for(j=0;j<n-1-i;j++) </p><p> if(strcmp(stud[j].num,stud[j+1].num)>0) </p><p><
60、;b> {</b></p><p> strcpy(t,stud[j+1].num); </p><p> strcpy(stud[j+1].num,stud[j].num); </p><p> strcpy(stud[j].num,t); </p><p> strcpy(t,stud[j+1].name);
61、</p><p> strcpy(stud[j+1].name,stud[j].name); </p><p> strcpy(stud[j].name,t); </p><p> p=&stud[j+1].score; </p><p> q=&stud[j].score; </p><p>
62、<b> s=*p; </b></p><p><b> *p=*q; </b></p><p><b> *q=s; </b></p><p><b> } </b></p><p><b> } </b></p&g
63、t;<p> int Insert_a_record(Student stud[],int n) /*插入一條記錄*/ </p><p><b> {</b></p><p> char x[10]; /*清除多余輸入所用*/ </p><p> printf("\t\t\tstudent's num:&
64、quot;); /*交互式輸入*/ </p><p> scanf("\t\t\t%s",stud[n].num); </p><p> printf("\t\t\tstudent's name:"); </p><p> scanf("\t\t\t%s",stud[n].name); <
65、;/p><p> printf("\t\t\tstudent's score:"); </p><p> scanf("\t\t\t%d",&stud[n].score); </p><p><b> gets(x); </b></p><p><b>
66、 n++; </b></p><p> Sort_by_num(stud,n); /*調(diào)用排序函數(shù)*/ </p><p> printf("\t\t\tInsert Successed!\n"); /*返回成功信息*/ </p><p> return(n); </p><p><b> }
67、 </b></p><p> int Delete_a_record(Student stud[],int n) /*按姓名查找,刪除一條記錄*/ </p><p><b> { </b></p><p> char s[20]; </p><p> int i=0,j; </p>&l
68、t;p> printf("\t\t\ttell me his(her) name:"); /*交互式問(wèn)尋*/ </p><p> scanf("%s",s); </p><p> while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判斷*/ </p><p
69、><b> if(i==n) </b></p><p><b> { </b></p><p> printf("\t\t\tnot find!\n"); /*返回失敗信息*/ </p><p> return(n); </p><p><b> } &
70、lt;/b></p><p> for(j=i;j<n-1;j++) /*刪除操作*/ </p><p><b> { </b></p><p> strcpy(stud[j].num,stud[j+1].num); </p><p> strcpy(stud[j].name,stud[j+1].na
71、me); </p><p> stud[j].score=stud[j+1].score; </p><p><b> } </b></p><p> printf("\t\t\tDelete Successed!\n"); /*返回成功信息*/ </p><p> return(n-1);
72、</p><p><b> } </b></p><p> void Query_a_record(Student stud[],int n) /*查找并顯示一個(gè)記錄*/ </p><p><b> {</b></p><p> char s[20]; </p><p&g
73、t;<b> int i=0; </b></p><p> printf("\t\t\tinput his(her) name:"); /*交互式輸入*/ </p><p> scanf("\t\t\t%s",s); </p><p> while(strcmp(stud[i].name,s)!=
74、0&&i<n) i++; /*查找判斷*/ </p><p><b> if(i==n) </b></p><p><b> { </b></p><p> printf("\t\t\tnot find!\n"); /*輸入失敗信息*/ </p><p&g
75、t;<b> return; </b></p><p><b> } </b></p><p> printf("\t\t\this(her) number:%s\n",stud[i].num); /*輸出該學(xué)生信息*/ </p><p> printf("\t\t\this(her)
76、 score:%d\n",stud[i].score); </p><p><b> } </b></p><p> void Statistic(Student stud[],int n) /*新增功能,輸出統(tǒng)計(jì)信息*/ </p><p><b> { </b></p><p>
77、 int i,j=0,k=0,sum=0; </p><p> float aver; /*成績(jī)平均值*/ </p><p> for(i=0;i<n;i++) /*循環(huán)輸入判斷*/ </p><p><b> { </b></p><p> sum+=stud[i].score; </p>
78、<p> if(stud[j].score>stud[i].score) j=i; </p><p> if(stud[k].score<stud[i].score) k=i; </p><p><b> } </b></p><p> aver=1.0*sum/n; </p><p>
79、printf("\t\t\tthere are %d records.\n",n); /*總共記錄數(shù)*/ </p><p> printf("\t\t\tthe hignest score:\n"); /*最高分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",s
80、tud[j].num,stud[j].name,stud[j].score); </p><p> printf("\t\t\tthe lowest score:\n"); /*最低分*/ </p><p> printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k].num,stud[k].name,
81、stud[k].score); </p><p> printf("\t\t\tthe average score is %5.2f\n",aver); /*平均分*/ </p><p><b> } </b></p><p> int AddfromText(Student stud[],int n) /*從文件中讀
82、入數(shù)據(jù)*/ </p><p><b> { </b></p><p> int i=0,num; </p><p> FILE *fp; /*定義文件指針*/ </p><p> char filename[20]; /*定義文件名*/ </p><p> printf("\t
83、\t\tInput the filename:"); </p><p> scanf("\t\t\t%s",filename); /*輸入文件名*/ </p><p> if((fp=fopen(filename,"rb"))==NULL) /*打開(kāi)文件*/ </p><p><b> { </
84、b></p><p> printf("\t\t\tcann't open the file\n"); /*打開(kāi)失敗信息*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p> ret
85、urn(n); </p><p><b> } </b></p><p> fscanf(fp,"%d",&num); /*讀入總記錄量*/ </p><p> while(i<num) /*循環(huán)讀入數(shù)據(jù)*/ </p><p><b> { </b><
86、/p><p> fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score); </p><p><b> i++; </b></p><p><b> } </b></p><p><b>
87、; n+=num; </b></p><p> fclose(fp); /*關(guān)閉文件*/ </p><p> printf("\t\t\tSuccessed!\n"); </p><p> printf("\t\t\t"); </p><p> system("pause
88、"); </p><p> return(n); </p><p><b> } </b></p><p> void WritetoText(Student stud[],int n) /*將所有記錄寫(xiě)入文件*/ </p><p><b> { </b></p>&
89、lt;p><b> int i=0; </b></p><p> FILE *fp; /*定義文件指針*/ </p><p> char filename[20]; /*定義文件名*/ </p><p> printf("\t\t\tWrite Records to a Text File\n"); /*輸入文
90、件名*/ </p><p> printf("\t\t\tInput the filename:"); </p><p> scanf("\t\t\t%s",filename); </p><p> if((fp=fopen(filename,"w"))==NULL) /*打開(kāi)文件*/ </p&
91、gt;<p><b> { </b></p><p> printf("\t\t\tcann't open the file\n"); </p><p> system("pause"); </p><p><b> return; </b></p
92、><p><b> } </b></p><p> fprintf(fp,"%d\n",n); /*循環(huán)寫(xiě)入數(shù)據(jù)*/ </p><p> while(i<n) </p><p><b> { </b></p><p> fprintf(fp,&
93、quot;%-16s%-15s%d\n",stud[i].num,stud[i].name,stud[i].score); </p><p><b> i++; </b></p><p><b> } </b></p><p> fclose(fp); /*關(guān)閉文件*/ </p><p&
94、gt; printf("Successed!\n"); /*返回成功信息*/ </p><p><b> } </b></p><p> void main() /*主函數(shù)*/ </p><p><b> { </b></p><p><b> int n=0
95、; </b></p><p><b> for(;;) </b></p><p><b> { </b></p><p> switch(menu_select()) /*選擇判斷*/ </p><p><b> { </b></p><
96、p><b> case 1: </b></p><p> printf("\t\t\tInput Records\n"); /*輸入若干條記錄*/ </p><p> n=Input(stu,n); </p><p><b> break; </b></p><p>
97、;<b> case 2: </b></p><p> printf("\t\t\tDisplay All Records\n"); /*顯示所有記錄*/ </p><p> Display(stu,n); </p><p><b> break; </b></p><p&g
98、t;<b> case 3: </b></p><p> printf("\t\t\tSort\n"); </p><p> Sort_by_num(stu,n); /*按學(xué)號(hào)排序*/ </p><p> printf("\t\t\tSort Suceessed!\n"); </p>
99、<p> printf("\t\t\t"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 4: </b></p><p> printf(&
100、quot;\t\t\tInsert a Record\n"); </p><p> n=Insert_a_record(stu,n); /*插入一條記錄*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p>&
101、lt;b> break; </b></p><p><b> case 5: </b></p><p> printf("\t\t\tDelete a Record\n"); </p><p> n=Delete_a_record(stu,n); /*按姓名查找,刪除一條記錄*/ </p>
102、;<p> printf("\t\t\t"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 6: </b></p><p> printf
103、("\t\t\tQuery\n"); </p><p> Query_a_record(stu,n); /*查找并顯示一個(gè)記錄*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p><b>
104、 break; </b></p><p><b> case 7: </b></p><p> printf("\t\t\tStatistic\n"); </p><p> Statistic(stu,n); /*新增功能,輸出統(tǒng)計(jì)信息*/ </p><p> printf(&q
105、uot;\t\t\t"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 8: </b></p><p> printf("\t\t\tAdd Record
106、s from a Text File\n"); </p><p> n=AddfromText(stu,n); /*新增功能,輸出統(tǒng)計(jì)信息*/ </p><p><b> break; </b></p><p><b> case 9: </b></p><p> printf(&
107、quot;\t\t\tWrite to a Text file\n"); </p><p> WritetoText(stu,n); /*循環(huán)寫(xiě)入數(shù)據(jù)*/ </p><p> printf("\t\t\t"); </p><p> system("pause"); </p><p>&l
108、t;b> break; </b></p><p><b> case 0: </b></p><p> printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /*結(jié)束程序*/ </p><p> printf("\t\t\t"); </p
109、><p> system("pause"); </p><p><b> exit(0); </b></p><p><b> } </b></p><p><b> } </b></p><p><b> }<
110、/b></p><p> ?。ㄈ┹斎?輸出設(shè)計(jì)</p><p> 在系統(tǒng)的輸入/輸出設(shè)計(jì)上遵循的是既滿足用戶需求又方便用戶使用的原則。輸入/輸出界面的確定都與用戶反復(fù)溝通,直到用戶滿意為止。 </p><p> 輸入界面的設(shè)計(jì)不僅考慮數(shù)據(jù)輸入窗口的屏幕格式,而且考慮如何使輸入數(shù)據(jù)的錯(cuò)誤率可能的小,為此在程序中加入了對(duì)輸入數(shù)據(jù)的校驗(yàn)和判斷等功能,如輸入數(shù)據(jù)
111、上下限的設(shè)置、與相關(guān)數(shù)據(jù)關(guān)系的判斷、參考對(duì)照表等。例如,在輸入和選擇學(xué)生時(shí),只輸入學(xué)生代碼即可,系統(tǒng)可根據(jù)成績(jī)代碼、科目及其學(xué)生姓名對(duì)照表,自動(dòng)將相應(yīng)的學(xué)生姓名和成績(jī)等信息調(diào)出來(lái)。當(dāng)用戶輸入的學(xué)生代碼不對(duì)時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)入代碼表查詢(xún)窗口,讓用戶在窗口中瀏覽查詢(xún)選擇學(xué)生代碼,因此用戶可不必一定記住每個(gè)產(chǎn)品的代碼,系統(tǒng)將代碼表顯示在輸入輸出窗口旁,用戶可隨時(shí)通過(guò)系統(tǒng)聯(lián)機(jī)查詢(xún)。</p><p><b> 收獲
112、和體會(huì)</b></p><p> 通過(guò)這次的課程設(shè)計(jì),我們對(duì)管理信息系統(tǒng)這門(mén)課有了更深入的認(rèn)識(shí),同時(shí)體會(huì)最深的是,軟件的編寫(xiě)需要一絲不茍的精神和足夠的耐心。軟件編程工作是辛苦的,每一個(gè)細(xì)小的環(huán)節(jié)都是注意的重點(diǎn),因?yàn)樯杂胁簧?,所有的努力就?huì)白費(fèi),就會(huì)前功盡棄。出現(xiàn)的錯(cuò)誤每次都是細(xì)微的,因?yàn)樾⌒〉氖韬觯鸵ㄙM(fèi)很長(zhǎng)時(shí)間去查找,這個(gè)過(guò)程是痛苦的。由于我們的經(jīng)驗(yàn)不足,只有理論知識(shí)而缺乏實(shí)踐經(jīng)驗(yàn),在做的過(guò)程中
113、總是反反復(fù)復(fù)。雖然我們做的速度不快,但是我們的體會(huì)逐漸深入,每一次嘗試的小小成功都讓我們興奮不已。</p><p> 編寫(xiě)報(bào)告的過(guò)程,我們各展所長(zhǎng),積極討論,分工合作,查閱資料,之后又一起畫(huà)圖,一起總結(jié)。這次課程設(shè)計(jì)首先要感謝老師的幫助,我們的成果也許不是最矚目的,也許還會(huì)有缺陷,但每一個(gè)過(guò)程我們都是經(jīng)過(guò)細(xì)心的研討后不斷的嘗試。這只是一個(gè)簡(jiǎn)單的軟件,只是對(duì)管理信息系統(tǒng)最簡(jiǎn)單的認(rèn)識(shí),但是應(yīng)用的過(guò)程我們學(xué)到的是實(shí)際
114、的東西。</p><p> 這是一個(gè)學(xué)習(xí)的過(guò)程,是一個(gè)總結(jié)與沉淀的過(guò)程,更是一個(gè)團(tuán)隊(duì)合作磨練的過(guò)程。我們共同討論,共同嘗試。通過(guò)這次課程設(shè)計(jì)使我們深刻了解到管理信息系統(tǒng)的應(yīng)用以及開(kāi)發(fā),同時(shí)也讓我們熟練了各種小軟件的應(yīng)用,更擴(kuò)展了我們的視野。</p><p> 五、課程設(shè)計(jì)小組分工:</p><p> 周秋:模塊結(jié)構(gòu)體系,其中包括:功能模塊圖、功能模塊說(shuō)明、系統(tǒng)
115、維護(hù)模塊圖、系統(tǒng)流程圖。</p><p> 吳楚、舒暢:前言、系統(tǒng)分析,其中包括:可行性分析、組織結(jié)構(gòu)圖、數(shù)據(jù)字典(數(shù)據(jù)流的描述、處理邏輯的描述、數(shù)據(jù)存儲(chǔ)、外部實(shí)體、數(shù)據(jù)項(xiàng)、數(shù)數(shù)據(jù)結(jié)構(gòu))、體會(huì)和收獲。</p><p> 羅星、王廷勇:業(yè)務(wù)流程圖、數(shù)據(jù)流程圖(頂層圖、展開(kāi)圖)、數(shù)據(jù)庫(kù)概要設(shè)計(jì)(系統(tǒng)E-R圖)、數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)(學(xué)生信息表、班級(jí)信息表、課程信息表、學(xué)生-課程表、用戶信息表)、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理信息系統(tǒng)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理信息系統(tǒng)課程設(shè)計(jì)
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)--學(xué)生成績(jī)管理信息系統(tǒng)
- mis課程設(shè)計(jì)---學(xué)生成績(jī)管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)
- 管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告---班級(jí)學(xué)生成績(jī)查詢(xún)系統(tǒng)
- erp課程設(shè)計(jì)--高校學(xué)生成績(jī)管理信息系統(tǒng)
- 企業(yè)資源計(jì)劃課程設(shè)計(jì)--高校學(xué)生成績(jī)管理信息系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生綜合成績(jī)?cè)u(píng)定管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計(jì)---醫(yī)藥管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計(jì)--超市管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計(jì)--教務(wù)管理信息系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計(jì)_學(xué)生選課管理信息系統(tǒng)課程設(shè)計(jì)
- 管理信息系統(tǒng)課程設(shè)計(jì)酒店管理信息系統(tǒng)
- 學(xué)生學(xué)籍管理信息系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì) 學(xué)生選課管理信息系統(tǒng)
- 課程設(shè)計(jì)-- 學(xué)生成績(jī)信息管理系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計(jì)------學(xué)生教材管理信息系統(tǒng)
評(píng)論
0/150
提交評(píng)論