版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 《管理信息系統(tǒng)》</b></p><p><b> 課程設(shè)計報告</b></p><p> 選 題:學(xué)生成績管理系統(tǒng)</p><p><b> 班 級:</b></p><p><b> 姓名學(xué)號:</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è)計………………………………………………………………………10</p><p> 模塊結(jié)構(gòu)體系………………………………………………………………10
6、</p><p> 1.功能模塊………………………………………………………………………10</p><p> 2.功能模塊說明…………………………………………………………………11</p><p> 3.系統(tǒng)維護(hù)模塊…………………………………………………………………11</p><p> 4.系統(tǒng)流程圖…………………………………………
7、…………………………12</p><p> 5.數(shù)據(jù)庫設(shè)計……………………………………………………………………12</p><p> ?。?)數(shù)據(jù)庫概要設(shè)計……………………………………………………………12</p><p> ?。?)數(shù)據(jù)庫詳細(xì)設(shè)計……………………………………………………………13</p><p> (二)代碼設(shè)計…………
8、…………………………………………………………13</p><p> ?。ㄈ┹斎?輸出設(shè)計…………………………………………………………… 20</p><p> 四、體會和收獲……………………………………………………………………20</p><p> 五、課程設(shè)計小組分工……………………………………………………………21</p><p>
9、 學(xué)生成績管理信息系統(tǒng)</p><p><b> 前言</b></p><p> 學(xué)生成績管理系統(tǒng)是為了更好的管理學(xué)生考試成績而開發(fā)的數(shù)據(jù)管理軟件。它對于一個學(xué)校是不可缺少的重要部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。目前各個高校的基本情況是:每次考試結(jié)束,老師們都要統(tǒng)計大量的學(xué)生成績,這些數(shù)據(jù)的歸檔、統(tǒng)計工作任務(wù)重,統(tǒng)計結(jié)束后往往錯誤百出。工作量
10、之大,查閱,維護(hù)都有不同程度的問題存在。所以,學(xué)生成績管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢手段,實(shí)現(xiàn)學(xué)生基本信息、成績的錄入,刪除,查詢,維護(hù)以及成績的統(tǒng)計分析等幾方面的功能,是現(xiàn)實(shí)問題的迫切要求。</p><p> 如果一個學(xué)校沒有一個完善的成績管理平臺,計算機(jī)的使用就沒有真正發(fā)揮有效的作用。隨著計算機(jī)應(yīng)用的普及與深入,利用計算機(jī)能夠?qū)λ锌荚嚦煽冞M(jìn)行統(tǒng)一管理,進(jìn)行分析,大大減少了工作量,提高了工作效
11、率,為教學(xué)辦公帶來了極大的方便。本系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生成績管理的系統(tǒng)化、規(guī)范化、自動化。達(dá)到提高學(xué)生成績管理效率的目的。與傳統(tǒng)管理方法相比有明顯的優(yōu)點(diǎn):查找方便,可靠性高,保密性好,成本低。徹底改變了以前繁雜的管理模式,實(shí)現(xiàn)全面的、相對集中的、職能化的信息綜合管理。</p><p> 計算機(jī)被用到信息管理系統(tǒng)的環(huán)境正是適應(yīng)了當(dāng)今時代飛速發(fā)展的信息時代。人們深刻的認(rèn)識到了計算機(jī)功能的強(qiáng)大,對于復(fù)雜的信息管
12、理,計算機(jī)充分發(fā)揮著它的優(yōu)越性。檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低,這些優(yōu)點(diǎn)極大地減輕了學(xué)院教學(xué)人員的工作量,縮小開支,提高了學(xué)生檔案管理的效率和準(zhǔn)確性,能夠合理的安排時間,學(xué)生能夠盡快的知道自己的考試成績。同時,學(xué)生管理系統(tǒng)的應(yīng)用也為今天的教育在未來市場的競爭力有所提高。</p><p> 對于一個學(xué)校而言,學(xué)生成績管理是一項非常繁瑣和復(fù)雜的工作,工作量大,不好管理。為了適應(yīng)時代
13、的發(fā)展,提高工作效率尤為重要。學(xué)生成績管理系統(tǒng)的改進(jìn)更好的利用了現(xiàn)代高科技,對學(xué)生負(fù)責(zé),對本校未來的發(fā)展負(fù)責(zé),對整個中國教育的負(fù)責(zé),是真正朝向未來教育發(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ù)的可行性分析要考慮將來要采用的硬件和軟件技術(shù)能否滿足用戶提出的要求。此外還要考慮開發(fā)人員的水平,在數(shù)據(jù)庫方面要對管理模式比較熟悉。我們學(xué)習(xí)過數(shù)據(jù)庫和
15、管理信息系統(tǒng)課程設(shè)計的相關(guān)課程,有能力編寫學(xué)生成績管理系統(tǒng)這種不算太難的程序。</p><p> 使用VB作為系統(tǒng)開發(fā)環(huán)境,它提供完善的指令控制語句、類與對象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能系統(tǒng)提供的保障為開發(fā)滿足客戶要求的系統(tǒng),保證了代碼的模塊化要求,而代碼模塊化的提高,非常有利于以后對新系統(tǒng)的擴(kuò)展與修改。</p><p> 而且由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料
16、,特別是參考其它程序的功能,因此幾乎可以實(shí)現(xiàn)。</p><p> 綜上所述,本系統(tǒng)的設(shè)計與開發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它在技術(shù)上是可行的。</p><p> 3.經(jīng)濟(jì)上的可行性:</p><p> 現(xiàn)在,計算機(jī)的價格已經(jīng)十分低廉,性能卻有了長足的進(jìn)步。而本系統(tǒng)的開發(fā),也在一定程度上為學(xué)校的工作效率帶來了一個質(zhì)的飛躍,為此主要表現(xiàn)有以下幾個方
17、面:一方面是支出的費(fèi)用,包括設(shè)備購置費(fèi)、管理和維護(hù)費(fèi)用、人員工資和培訓(xùn)費(fèi)等,另一個是取得的收益。這是個超小的管理系統(tǒng),從投入的人力,財力與物力來講是非常之小的,只要一臺電腦,一臺打印機(jī),這個系統(tǒng)就可以搞起來,考慮到學(xué)校里有電腦,現(xiàn)只要購置一臺打印機(jī)就可以了。從節(jié)省人力方面,可以讓管理人員從繁冗復(fù)雜的工作中解脫出來,做更多的工作,可以給教學(xué)管理提高一個層次。具體有以下幾個方面:</p><p> ?。?)本系統(tǒng)只需
18、要一臺計算機(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> (1)系統(tǒng)管理員進(jìn)入學(xué)生成績管理的主要功能:實(shí)現(xiàn)管理員用戶的添加、修改和刪除,以及對教師添加、教師修改、教師刪除、教師查詢、學(xué)生添加、學(xué)生修改、學(xué)生刪除、學(xué)生查詢等基本功能,并且參與開設(shè)課程、選擇課程的管理,安排教師的任課
20、和學(xué)生的選課工作。</p><p> ?。?)教師進(jìn)入學(xué)生成績管理系統(tǒng)的主要功能:各科教師登錄系統(tǒng)后查詢和修改個人信息,修改自己的賬號密碼,查詢自己的授課課程,實(shí)現(xiàn)對選修了自己課程的學(xué)生的成績進(jìn)行查詢、錄入和修改,各科老師可以對自己學(xué)生選修課程結(jié)束后給予分?jǐn)?shù),同時可以對自己所帶課程的成績優(yōu)秀人數(shù)、及格人數(shù)、不及格人數(shù)的分布信息進(jìn)行查詢。</p><p> ?。?)學(xué)生進(jìn)入學(xué)生成績管理系統(tǒng)的
21、主要功能:每個學(xué)生登錄后可以查詢和修改個人信息、修改自己的賬號密碼,以及自己所選任課老師的個人信息,同時在課程結(jié)束后可以查詢在校期間各個時間段選修課程的成績與學(xué)分,以及對單科成績和總分的排名查詢。</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)行管理模式,為開發(fā)本系統(tǒng)而繪制出的學(xué)生成績管理業(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é)生成績管理數(shù)據(jù)流程圖(頂層圖)</p><p> 圖4 學(xué)生成績管理數(shù)據(jù)流程圖(展開圖)</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> ?。?)數(shù)據(jù)存儲</b></p><p> 數(shù)據(jù)存儲 表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ù)項</b></p><p> 數(shù)據(jù)項 表5 數(shù)據(jù)字典(五) No:__________</p><p> 填表人_____________ 年 月
28、 日</p><p><b> ?。?)數(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è)計</b></p><p><b> 模塊結(jié)構(gòu)體系</b></p><p><b> 功能模塊</b></p><p><b> 圖5 功能模塊圖</b></p><p><b> 2.功能模塊說明</b>&
30、lt;/p><p> ?。?)用戶管理和班級管理:</p><p> 通過驗證用戶的使用權(quán)限及進(jìn)行數(shù)據(jù)的導(dǎo)入、導(dǎo)出工作。</p><p><b> 對班級的管理。</b></p><p><b> ?。?)學(xué)生信息設(shè)置</b></p><p> 對與學(xué)生相關(guān)信息的錄入。&l
31、t;/p><p> ?。?)課程與成績設(shè)置:</p><p> 各門課程所屬學(xué)院及相關(guān)學(xué)分設(shè)置。</p><p><b> 學(xué)生成績的錄入。</b></p><p> ?。?)成績查詢與統(tǒng)計:</p><p><b> 按要求查詢成績。</b></p><
32、;p><b> 進(jìn)行圖表的統(tǒng)計。</b></p><p> 成績審核業(yè)務(wù),就單據(jù)格式是否規(guī)范和填寫數(shù)據(jù)是否與實(shí)務(wù)數(shù)量相符的審核在系統(tǒng)中仍由人工完成,對成績單上填寫的學(xué)生人數(shù)量大于實(shí)際學(xué)生成績數(shù)量的情況可在成績錄入過程中自動審核,并拒絕該成績單。</p><p> 數(shù)據(jù)錄入模塊用于錄入學(xué)生名單和成績單,它是高校學(xué)生成績管理系統(tǒng)的基本數(shù)據(jù)輸入的模塊,他根據(jù)各科
33、教師送來的成績單,記錄各學(xué)生的每人成績數(shù)據(jù)。</p><p> 為方便學(xué)校各級管理人員及時了解、掌握各學(xué)院的學(xué)生成績,新系統(tǒng)特別設(shè)計了數(shù)據(jù)查詢模塊,并提供多種查詢功能,每學(xué)期、各學(xué)院的查詢等。</p><p> 報表輸出模塊可以完成系統(tǒng)所需的各種報表的計算和打印輸出功能,可輸出“學(xué)生成績表”等。</p><p> 為了統(tǒng)一產(chǎn)品的品種及其特性,方便數(shù)據(jù)輸入。特設(shè)
34、計了產(chǎn)品代碼、產(chǎn)品名稱及其特性對照表。系統(tǒng)中設(shè)計代碼維護(hù)模塊的目的是當(dāng)產(chǎn)品代碼或特性變動時及時修改代碼表,可對代碼表進(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ù)庫設(shè)計</b></p><p> ?。?)數(shù)據(jù)庫概要設(shè)計</p><p> 本系統(tǒng)的數(shù)據(jù)庫主要有“學(xué)生”、“班級”、“課程”、“教師”等。其中教師與課程系統(tǒng)存在授課聯(lián)系,并且一個教師可以授N門課程,即教師與課程是一對多的關(guān)系。一個學(xué)生
36、可以學(xué)習(xí)N們課程,一門課程可以有M個學(xué)生學(xué)習(xí),即學(xué)生與課程是多對多的關(guān)系。整個數(shù)據(jù)庫可以用一個E-R圖表示。如圖8所示:</p><p><b> 圖8 系統(tǒng)E-R圖</b></p><p> (2)數(shù)據(jù)庫詳細(xì)設(shè)計</p><p> 該系統(tǒng)子系統(tǒng)分為學(xué)生系統(tǒng)、班級系統(tǒng)、課程系統(tǒng)、學(xué)生-課程系統(tǒng)、用戶信息系統(tǒng)。</p><
37、;p><b> ?。ǘ┐a設(shè)計</b></p><p> 新系統(tǒng)為每個學(xué)生設(shè)計了代碼,一方面可統(tǒng)一學(xué)生的成績管理,另一方面是為了方便數(shù)據(jù)輸入。產(chǎn)品代碼為兩位數(shù)字字符,采用的是順序碼結(jié)構(gòu)。</p><p> 在系統(tǒng)運(yùn)行過程中,凡是需要輸入某種產(chǎn)品時,只需輸入產(chǎn)品代碼即可,系統(tǒng)可根據(jù)學(xué)生代碼、成績表單、自動將相應(yīng)的學(xué)生姓名和成績等信息調(diào)出來,而且代碼表顯示在輸
38、入/輸出窗口中,用戶不一定要記住學(xué)生的代碼,可隨時通過系統(tǒng)聯(lián)機(jī)查詢。</p><p> #include<stdio.h> /*引用庫函數(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é)號*/ </p><p> char name[20]; /*姓名*/ </p><p>
40、int score; /*成績*/ </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) /*每十個暫停*/ </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é)號排序*/ </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:"); /*交互式問尋*/ </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) /*查找并顯示一個記錄*/ </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)計信息*/ </p><p><b> { </b></p><p>
77、 int i,j=0,k=0,sum=0; </p><p> float aver; /*成績平均值*/ </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) /*打開文件*/ </p><p><b> { </
84、b></p><p> printf("\t\t\tcann't open the file\n"); /*打開失敗信息*/ </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) /*將所有記錄寫入文件*/ </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) /*打開文件*/ </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)寫入數(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é)號排序*/ </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); /*查找并顯示一個記錄*/ </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)計信息*/ </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)計信息*/ </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)寫入數(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è)計</p><p> 在系統(tǒng)的輸入/輸出設(shè)計上遵循的是既滿足用戶需求又方便用戶使用的原則。輸入/輸出界面的確定都與用戶反復(fù)溝通,直到用戶滿意為止。 </p><p> 輸入界面的設(shè)計不僅考慮數(shù)據(jù)輸入窗口的屏幕格式,而且考慮如何使輸入數(shù)據(jù)的錯誤率可能的小,為此在程序中加入了對輸入數(shù)據(jù)的校驗和判斷等功能,如輸入數(shù)據(jù)
111、上下限的設(shè)置、與相關(guān)數(shù)據(jù)關(guān)系的判斷、參考對照表等。例如,在輸入和選擇學(xué)生時,只輸入學(xué)生代碼即可,系統(tǒng)可根據(jù)成績代碼、科目及其學(xué)生姓名對照表,自動將相應(yīng)的學(xué)生姓名和成績等信息調(diào)出來。當(dāng)用戶輸入的學(xué)生代碼不對時,系統(tǒng)自動轉(zhuǎn)入代碼表查詢窗口,讓用戶在窗口中瀏覽查詢選擇學(xué)生代碼,因此用戶可不必一定記住每個產(chǎn)品的代碼,系統(tǒng)將代碼表顯示在輸入輸出窗口旁,用戶可隨時通過系統(tǒng)聯(lián)機(jī)查詢。</p><p><b> 收獲
112、和體會</b></p><p> 通過這次的課程設(shè)計,我們對管理信息系統(tǒng)這門課有了更深入的認(rèn)識,同時體會最深的是,軟件的編寫需要一絲不茍的精神和足夠的耐心。軟件編程工作是辛苦的,每一個細(xì)小的環(huán)節(jié)都是注意的重點(diǎn),因為稍有不慎,所有的努力就會白費(fèi),就會前功盡棄。出現(xiàn)的錯誤每次都是細(xì)微的,因為小小的疏忽,就要花費(fèi)很長時間去查找,這個過程是痛苦的。由于我們的經(jīng)驗不足,只有理論知識而缺乏實(shí)踐經(jīng)驗,在做的過程中
113、總是反反復(fù)復(fù)。雖然我們做的速度不快,但是我們的體會逐漸深入,每一次嘗試的小小成功都讓我們興奮不已。</p><p> 編寫報告的過程,我們各展所長,積極討論,分工合作,查閱資料,之后又一起畫圖,一起總結(jié)。這次課程設(shè)計首先要感謝老師的幫助,我們的成果也許不是最矚目的,也許還會有缺陷,但每一個過程我們都是經(jīng)過細(xì)心的研討后不斷的嘗試。這只是一個簡單的軟件,只是對管理信息系統(tǒng)最簡單的認(rèn)識,但是應(yīng)用的過程我們學(xué)到的是實(shí)際
114、的東西。</p><p> 這是一個學(xué)習(xí)的過程,是一個總結(jié)與沉淀的過程,更是一個團(tuán)隊合作磨練的過程。我們共同討論,共同嘗試。通過這次課程設(shè)計使我們深刻了解到管理信息系統(tǒng)的應(yīng)用以及開發(fā),同時也讓我們熟練了各種小軟件的應(yīng)用,更擴(kuò)展了我們的視野。</p><p> 五、課程設(shè)計小組分工:</p><p> 周秋:模塊結(jié)構(gòu)體系,其中包括:功能模塊圖、功能模塊說明、系統(tǒng)
115、維護(hù)模塊圖、系統(tǒng)流程圖。</p><p> 吳楚、舒暢:前言、系統(tǒng)分析,其中包括:可行性分析、組織結(jié)構(gòu)圖、數(shù)據(jù)字典(數(shù)據(jù)流的描述、處理邏輯的描述、數(shù)據(jù)存儲、外部實(shí)體、數(shù)據(jù)項、數(shù)數(shù)據(jù)結(jié)構(gòu))、體會和收獲。</p><p> 羅星、王廷勇:業(yè)務(wù)流程圖、數(shù)據(jù)流程圖(頂層圖、展開圖)、數(shù)據(jù)庫概要設(shè)計(系統(tǒng)E-R圖)、數(shù)據(jù)庫詳細(xì)設(shè)計(學(xué)生信息表、班級信息表、課程信息表、學(xué)生-課程表、用戶信息表)、
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管理信息系統(tǒng)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理信息系統(tǒng)課程設(shè)計
- java學(xué)生管理系統(tǒng)課程設(shè)計--學(xué)生成績管理信息系統(tǒng)
- mis課程設(shè)計---學(xué)生成績管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計--學(xué)生成績管理系統(tǒng)設(shè)計與開發(fā)
- 管理信息系統(tǒng)課程設(shè)計報告---班級學(xué)生成績查詢系統(tǒng)
- erp課程設(shè)計--高校學(xué)生成績管理信息系統(tǒng)
- 企業(yè)資源計劃課程設(shè)計--高校學(xué)生成績管理信息系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計——學(xué)生成績管理系統(tǒng)
- 課程設(shè)計---學(xué)生綜合成績評定管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---醫(yī)藥管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計--超市管理信息系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計--教務(wù)管理信息系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計_學(xué)生選課管理信息系統(tǒng)課程設(shè)計
- 管理信息系統(tǒng)課程設(shè)計酒店管理信息系統(tǒng)
- 學(xué)生學(xué)籍管理信息系統(tǒng)課程設(shè)計
- 課程設(shè)計 學(xué)生選課管理信息系統(tǒng)
- 課程設(shè)計-- 學(xué)生成績信息管理系統(tǒng)
- 信息管理系統(tǒng)課程設(shè)計------學(xué)生教材管理信息系統(tǒng)
評論
0/150
提交評論