




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程課程設(shè)計(jì)匯報(bào)系統(tǒng)名稱___學(xué)生學(xué)籍管理系統(tǒng)___學(xué)號(hào)___XXX___姓名___XXX__批次___XXX_摘要當(dāng)今社會(huì)中,計(jì)算機(jī)使用已經(jīng)深入到日常工作和生活方方面面。Windows系統(tǒng)推出使電腦從高雅學(xué)術(shù)殿堂走入了平常百姓家,各行各業(yè)大家無(wú)須經(jīng)過(guò)尤其訓(xùn)練就能夠使用電腦完成許很多多復(fù)雜工作。然而,即使現(xiàn)在世界上已經(jīng)充滿了多如牛毛多種軟件,但它們?nèi)匀徊荒軡M足用戶多種特殊需要,大家還不得不開發(fā)適合自己特殊需求軟件。我們?nèi)恐?,?duì)于學(xué)生學(xué)籍管理是一個(gè)教育單位不可缺乏部分,它內(nèi)容對(duì)學(xué)校管理者來(lái)說(shuō)至關(guān)關(guān)鍵,所以學(xué)生學(xué)籍管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥阈畔⒑涂旖莶樵兪侄?。但一直以?lái)大家使用傳統(tǒng)人工方法管理文件檔案,這種管理方法存在著很多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)全部帶來(lái)了不少困難。而使用計(jì)算機(jī)對(duì)學(xué)生學(xué)籍信息進(jìn)行管理,含有手工管理所無(wú)法比擬優(yōu)點(diǎn).比如:檢索快速、查找方便、存放量大、保密性好等。這些優(yōu)點(diǎn)能夠極大地提升學(xué)生管理效率,也是學(xué)校科學(xué)化、正規(guī)化管理關(guān)鍵路徑。關(guān)鍵詞:學(xué)生學(xué)籍管理系統(tǒng);SQLSERVER;數(shù)據(jù)庫(kù);軟件工程
序言學(xué)生學(xué)籍管理系統(tǒng)是常見一個(gè)管理系統(tǒng),包含學(xué)生信息、家庭信息、獎(jiǎng)懲信息、畢業(yè)信息,學(xué)生社會(huì)關(guān)系,學(xué)生成績(jī)管理和學(xué)生課程信息管理等內(nèi)容設(shè)計(jì)。因?yàn)楝F(xiàn)在學(xué)生學(xué)籍管理系統(tǒng)并不十分完善,在高等學(xué)校教務(wù)管理工作中,學(xué)生信息網(wǎng)上查詢?nèi)渴鞘謴?fù)雜、棘手工作。遵從以往工作方法,該工作工作量大,管理繁瑣,既耗人力,又耗物力;現(xiàn)在面對(duì)大量學(xué)生數(shù)據(jù)、報(bào)表,手工處理方法已經(jīng)極難跟上現(xiàn)代化步伐。伴隨計(jì)算機(jī)技術(shù)及網(wǎng)絡(luò)通訊技術(shù)飛速發(fā)展,很多學(xué)校已經(jīng)有了很好計(jì)算機(jī)應(yīng)用甚至網(wǎng)絡(luò)硬件建設(shè)基礎(chǔ)。所以為提升學(xué)校管理工作現(xiàn)代化、科學(xué)化水平,確保信息處理即時(shí)化、正確化,開發(fā)一套對(duì)學(xué)生學(xué)籍進(jìn)行管理軟件是極其關(guān)鍵,而且是必需。
本系統(tǒng)正是為處理這一問(wèn)題而設(shè)計(jì),大大降低了以往學(xué)生管理工作工作量,提升了工作效率,適應(yīng)時(shí)代步伐。。1、可行性分析1.1問(wèn)題描述伴隨高校規(guī)模不停增加,學(xué)生人數(shù)增加,學(xué)校對(duì)學(xué)生管理難度也越來(lái)越大,而學(xué)校對(duì)學(xué)生管理,其實(shí)關(guān)鍵是對(duì)學(xué)生信息管理,所以,學(xué)生信息管理是高校管理中很關(guān)鍵一部分,它關(guān)系到整個(gè)高?,F(xiàn)代化程度。現(xiàn)代科技發(fā)展,尤其是軟件行業(yè)發(fā)展使得很多管理工作全部由計(jì)算機(jī)來(lái)完成,這么不僅能節(jié)省人力和物力,而且能夠得到部分對(duì)決議起關(guān)鍵作用信息。而高校作為一個(gè)人數(shù)比較多單位,也需要開發(fā)出對(duì)應(yīng)軟件對(duì)學(xué)生學(xué)籍進(jìn)行合適管理。只有管好學(xué)生才能更深入做強(qiáng)教育?,F(xiàn)在很多高校全部在使用計(jì)算機(jī)對(duì)學(xué)生學(xué)籍進(jìn)行管理,利用計(jì)算機(jī)來(lái)管理學(xué)生學(xué)籍,從而替換了人工管理模式下因?yàn)槎喾N原因出現(xiàn)管理漏洞可能性,所以降低了工作人員難度性,提升了工作效率。我們?cè)诂F(xiàn)行系統(tǒng)初步調(diào)查基礎(chǔ)上提出了新系統(tǒng)目標(biāo),即新系統(tǒng)建立后所要求達(dá)成運(yùn)行指標(biāo),這是系統(tǒng)開發(fā)和評(píng)價(jià)依據(jù)。1.2可行性分析研究1.2.1技術(shù)可行性技術(shù)上可行性分析關(guān)鍵分析現(xiàn)有技術(shù)條件能否順利完成開發(fā)工作,硬、軟件配置能否滿足開發(fā)者需要等。依據(jù)用戶提出系統(tǒng)功效、性能及實(shí)現(xiàn)系統(tǒng)各項(xiàng)約束條件,依據(jù)新系統(tǒng)目標(biāo)來(lái)衡量所需技術(shù)是否含有,本系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)管理和查詢系統(tǒng),現(xiàn)有技術(shù)以較為成熟,硬件、軟件性能要求、環(huán)境條件等各項(xiàng)條件良好,估量利用現(xiàn)有技術(shù)條件應(yīng)完全能夠達(dá)成該系統(tǒng)功效目標(biāo)。同時(shí),考慮給開發(fā)期限也較為充裕,估計(jì)系統(tǒng)是能夠在要求期限內(nèi)完成開發(fā)。1.2.2經(jīng)濟(jì)可行性關(guān)鍵是對(duì)開發(fā)學(xué)籍管理系統(tǒng)高校資金進(jìn)行評(píng)價(jià),首先是估算開發(fā)它支出費(fèi)用,其中包含設(shè)備購(gòu)置費(fèi)、軟件開發(fā)費(fèi)、管理和維護(hù)費(fèi)、人職員資和培訓(xùn)費(fèi)等。其次是估算學(xué)籍管理系統(tǒng)這個(gè)軟件可能取得收益中能夠用錢來(lái)衡量那部分。并對(duì)現(xiàn)在軟件市場(chǎng)進(jìn)行調(diào)查,所做軟件是否有很大銷售市場(chǎng)和相當(dāng)規(guī)模用戶群。所做軟件開發(fā)成本和用戶提出要求是否可達(dá)成雙方全部滿意。而且,分析系統(tǒng)開發(fā)是否會(huì)對(duì)其它產(chǎn)品或利潤(rùn)帶來(lái)一定影響。經(jīng)過(guò)調(diào)查我們了解到,現(xiàn)在很多高校全部在尋求功效愈加齊全管理系統(tǒng)來(lái)替換舊系統(tǒng),而且這個(gè)軟件帶來(lái)收益遠(yuǎn)遠(yuǎn)超出它開發(fā)所花費(fèi)代價(jià)。經(jīng)過(guò)對(duì)上述多個(gè)方面調(diào)查研究和分析,我們得出高校這個(gè)軟件市場(chǎng)前景是相當(dāng)客觀,在經(jīng)濟(jì)角度來(lái)說(shuō),開發(fā)學(xué)生學(xué)籍管理是可行。1.2.3操作可行性關(guān)鍵是了解高校學(xué)籍管理相關(guān)人員對(duì)開發(fā)信息系統(tǒng)是否支持,現(xiàn)有高校學(xué)籍管理制度和方法是否科學(xué),規(guī)章制度是否齊全,原始數(shù)據(jù)是否正確等。高校學(xué)籍管理人員主動(dòng)支持該系統(tǒng)開發(fā),使新系統(tǒng)能夠充足發(fā)揮作用;系統(tǒng)界面友好美觀,操作簡(jiǎn)單易行,易于了解,功效愈加齊全。因?yàn)楣芾砣藛T已經(jīng)在使用舊系統(tǒng),對(duì)計(jì)算機(jī)簡(jiǎn)單操作已經(jīng)很熟悉,所以操作者經(jīng)過(guò)短時(shí)間培訓(xùn)就能夠使用高校學(xué)籍管理系統(tǒng)。1.3結(jié)論意見經(jīng)過(guò)認(rèn)真地全方面地可行性研究,系統(tǒng)基礎(chǔ)上做到了在技術(shù)、經(jīng)濟(jì)、運(yùn)行、法律上可行。所以,相信在根據(jù)計(jì)劃上實(shí)施前提下,全系統(tǒng)設(shè)計(jì)將會(huì)按時(shí)、高質(zhì)量完成。所以,系統(tǒng)研制和開發(fā)是能夠立即進(jìn)行。2、項(xiàng)目開發(fā)計(jì)劃2.1編寫目標(biāo)經(jīng)過(guò)項(xiàng)目標(biāo)可行性分析,得出項(xiàng)目可深入進(jìn)行下去結(jié)論,結(jié)合現(xiàn)有軟件開發(fā)技術(shù),在軟件繼續(xù)深入開發(fā)之前首先給出此軟件項(xiàng)目計(jì)劃。2.2項(xiàng)目背景項(xiàng)目分析單位在接到項(xiàng)目分析員給出項(xiàng)目可行性分析匯報(bào)后,在本系統(tǒng),即倉(cāng)庫(kù)管理系統(tǒng)開發(fā)主管部門統(tǒng)一下制訂用于軟件實(shí)質(zhì)開發(fā)軟件項(xiàng)目計(jì)劃,以使軟件開發(fā)單位了解軟件開發(fā)要求,進(jìn)行開發(fā)。2.3項(xiàng)目概述1、工作內(nèi)容讓計(jì)算機(jī)對(duì)學(xué)生信息進(jìn)行自動(dòng)管理,管理員能夠直接在計(jì)算機(jī)上實(shí)現(xiàn)學(xué)生信息管理,并能在一定程度上實(shí)現(xiàn)自動(dòng)化。2、條件和限制開發(fā)該軟件條件比較簡(jiǎn)單,以開發(fā)單位現(xiàn)在經(jīng)濟(jì)和技術(shù)條件已完全含有開發(fā)條件。該系統(tǒng)可在用戶要求期限內(nèi)完成。3、產(chǎn)品1)程序具體程序和源代碼在文件夾源代碼中。2)文檔文檔內(nèi)容包含:(1)封面
(2)目錄
(3)漢字摘要100字左右;關(guān)鍵詞3-5個(gè)
(4)序言
(5)可行性分析
(6)項(xiàng)目開發(fā)計(jì)劃
(7)需求規(guī)格說(shuō)明(包含需要系統(tǒng)步驟圖、數(shù)據(jù)步驟圖、數(shù)據(jù)字典、E-R圖)
(8)概要設(shè)計(jì)(包含總體軟件結(jié)構(gòu)圖、總體數(shù)據(jù)結(jié)構(gòu))
(9)具體設(shè)計(jì)(對(duì)概要設(shè)計(jì)內(nèi)容進(jìn)行具體設(shè)計(jì))
(10)設(shè)計(jì)總結(jié)、參考文件、致謝等4、驗(yàn)收標(biāo)準(zhǔn)軟件驗(yàn)收標(biāo)準(zhǔn)完全由用戶提出軟件需求制訂,能確保軟件基礎(chǔ)符適用戶要求。2.4項(xiàng)目開發(fā)計(jì)劃1、任務(wù)分解分三個(gè)大階段進(jìn)行開發(fā)第一階段完成本系統(tǒng)數(shù)據(jù)流圖跟E-R圖。第二階段完成概要設(shè)計(jì)跟具體設(shè)計(jì)。第三階段書寫文檔。
2、預(yù)算軟件資金投入較少,具體預(yù)算分配簡(jiǎn)略。3、關(guān)鍵問(wèn)題各模塊之間聯(lián)絡(luò)和后臺(tái)數(shù)據(jù)庫(kù)完成。使用現(xiàn)在設(shè)備和現(xiàn)有開發(fā)技術(shù)完全能夠開發(fā)出該系統(tǒng),總來(lái)說(shuō)該項(xiàng)目沒有較大技術(shù)難點(diǎn)和其它部分風(fēng)險(xiǎn)原因。對(duì)于出現(xiàn)部分小難點(diǎn)總?cè)磕艿盟奶幚怼?、需求分析3.1任務(wù)需求分析經(jīng)需求分析,所得本系統(tǒng)所實(shí)現(xiàn)基礎(chǔ)功效,圖3.1思維圖所表示:圖3.1學(xué)生學(xué)籍管理系統(tǒng)上圖為本系統(tǒng)所完成功效一個(gè)基礎(chǔ)信息圖。用戶可經(jīng)過(guò)本軟件,對(duì)學(xué)生在校情況信息有一個(gè)清楚了解,幫助用戶查詢和修改學(xué)生相關(guān)信息,從而對(duì)學(xué)生實(shí)現(xiàn)信息化管理。經(jīng)分析先給出該系統(tǒng)系統(tǒng)步驟圖,圖3.2所表示:學(xué)生課程信息學(xué)生課程信息學(xué)生成績(jī)管理學(xué)生成績(jī)管理用戶用戶登錄讀取用戶類型管理自己信息管理一般用戶信息學(xué)生基礎(chǔ)信息學(xué)生社會(huì)關(guān)系學(xué)生獎(jiǎng)懲信息學(xué)生畢業(yè)信息幫助用戶管理模塊開始圖3.2系統(tǒng)步驟圖重新輸入失敗成功一般用戶管理員該系統(tǒng)關(guān)鍵包含學(xué)生基礎(chǔ)信息模塊,家長(zhǎng)信息模塊,獎(jiǎng)懲信息模塊和畢業(yè)信息模塊,系統(tǒng)要實(shí)現(xiàn)基礎(chǔ)信息錄入、修改、刪除、保留和查詢等功效:信息輸入,包含學(xué)生基礎(chǔ)信息、家長(zhǎng)信息、獎(jiǎng)懲信息、畢業(yè)信息等。信息修改、刪除。依據(jù)要求,查詢符合條件各類信息。依據(jù)實(shí)際需要,對(duì)關(guān)鍵新信息進(jìn)行統(tǒng)計(jì)。3.2數(shù)據(jù)流圖、數(shù)據(jù)字典及實(shí)體聯(lián)絡(luò)圖3.2.1數(shù)據(jù)流圖數(shù)據(jù)流圖由四種基礎(chǔ)元素組成:數(shù)據(jù)流(DataFlow),處理(Process),數(shù)據(jù)存放和數(shù)據(jù)源(數(shù)據(jù)終點(diǎn))。數(shù)據(jù)流(DataFlow):為含有名稱且有流向數(shù)據(jù),用標(biāo)有名稱箭頭表示,一個(gè)數(shù)據(jù)能夠是統(tǒng)計(jì)、組合項(xiàng)或基礎(chǔ)項(xiàng)。處理(Process):表示對(duì)數(shù)據(jù)所進(jìn)行加工和變換,在圖中用矩形框表示。指向處理數(shù)據(jù)流為該處理輸入數(shù)據(jù),離開處理數(shù)據(jù)為處理輸出數(shù)據(jù)。數(shù)據(jù)存放:表示用文件方法或數(shù)據(jù)庫(kù)形式所存放數(shù)據(jù),堆砌進(jìn)行存取分別以指向或離開數(shù)據(jù)存放箭頭表示。數(shù)據(jù)源及數(shù)據(jù)終點(diǎn):表示數(shù)據(jù)起源或數(shù)據(jù)去向,能夠是一個(gè)組織或人員,它處于系統(tǒng)范圍之外,所以又稱它為外部實(shí)體,它是為了幫助了解系統(tǒng)界面而引入,通常只出現(xiàn)在數(shù)據(jù)流圖起點(diǎn)和終點(diǎn)。該系統(tǒng)數(shù)據(jù)流圖圖3.3所表示:管理員接收信息更新系統(tǒng)信息1學(xué)生信息處理事務(wù)用戶管理員接收信息更新系統(tǒng)信息1學(xué)生信息處理事務(wù)用戶信息信息信息查詢圖3.3系統(tǒng)數(shù)據(jù)步驟圖數(shù)據(jù)字典是相關(guān)數(shù)據(jù)信息集合,也就是對(duì)數(shù)據(jù)流圖中包含全部元素定義集合。因?yàn)榇舜卧O(shè)計(jì)是小型軟件系統(tǒng)開發(fā),所以采取卡片形式書寫數(shù)據(jù)字典。每張卡片上保留描述一個(gè)數(shù)據(jù)信息這么做更新和修改起來(lái)比較方便,而且能單獨(dú)處理描述每個(gè)數(shù)據(jù)信息。下面將列出若干數(shù)據(jù)元素?cái)?shù)據(jù)卡片信息。數(shù)據(jù)字典卡片:名稱:學(xué)生家長(zhǎng)信息別名:名稱:學(xué)生家長(zhǎng)信息別名:描述:對(duì)學(xué)生家長(zhǎng)信息描述定義:學(xué)號(hào)+姓名+家長(zhǎng)姓名+工作單位+職務(wù)+電話+年紀(jì)+文化程度位置:輸出到打印機(jī)保留到磁盤名字:學(xué)號(hào)別名:Sno.描述:惟一地標(biāo)識(shí)一個(gè)特定學(xué)生關(guān)鍵域定義:學(xué)號(hào)=10{字符}位置:學(xué)生基礎(chǔ)信息表家長(zhǎng)信息表學(xué)生畢業(yè)信息表名字:一般用戶別名:學(xué)生用戶名字:一般用戶別名:學(xué)生用戶描述學(xué)生自己信息,查看自己獎(jiǎng)懲信息名稱:學(xué)生獎(jiǎng)懲信息別名:描述:學(xué)生獎(jiǎng)懲信息描述定義:學(xué)號(hào)+姓名+獎(jiǎng)懲名稱+獎(jiǎng)懲日期+獎(jiǎng)懲原因+評(píng)價(jià)位置:輸出到打印機(jī)保留到磁盤名字:一般用戶別名:一般用戶名字:一般用戶別名:一般用戶描述:輸入學(xué)生自己信息,查看其它信息定義:用戶名+密碼位置:一般用戶表名字:學(xué)生畢業(yè)信息別名:描述:學(xué)生畢業(yè)后信息描述定義:學(xué)號(hào)+姓名+學(xué)歷+學(xué)位+工作單位+職務(wù)+單位+政治面貌+電話位置:輸出到打印機(jī)保留到磁盤名字:一般用戶別名:學(xué)生信息名字:一般用戶別名:學(xué)生信息描述:學(xué)生在校期間所修課程信息名字:學(xué)生課程信息別名:描述:學(xué)生在校期間所修課程信息定義:學(xué)號(hào)+姓名+課程名稱+代課老師+所修時(shí)間+備注位置:一般用戶表名稱:系統(tǒng)幫助信息描述:為用戶提供系統(tǒng)幫助名稱:系統(tǒng)幫助信息描述:為用戶提供系統(tǒng)幫助定義:版本信息+使用說(shuō)明+幫助信息+其它信息位置:一般用戶表名稱:學(xué)生基礎(chǔ)信息別名:Sinfom描述:對(duì)學(xué)生基礎(chǔ)情況描述定義:學(xué)號(hào)+姓名+性別+民族+出生日期+家庭住址+通信地址+考生起源+家庭背景+入學(xué)分?jǐn)?shù)+入學(xué)政治面貌+所在院系+專業(yè)+郵政編碼位置:輸出到打印機(jī)保留到磁盤3.2.3實(shí)體聯(lián)絡(luò)E-R圖依據(jù)對(duì)數(shù)據(jù)流圖和數(shù)據(jù)字典分析,我們能夠確定該應(yīng)用中實(shí)體,屬性和實(shí)體之間關(guān)系,并畫出以下所表示E-R圖。學(xué)生學(xué)生所在院系家庭住址學(xué)號(hào)姓名是否為系統(tǒng)原有信息是否提醒:需要在保留后退出是否保留?否是保留成功否是RollbackCommit關(guān)閉窗體性別年齡出生日期郵政編碼圖3.4學(xué)生實(shí)體圖圖3.4學(xué)生實(shí)體圖家長(zhǎng)家長(zhǎng)姓名工作單位職稱電話號(hào)碼文化程度年紀(jì)圖3.5家長(zhǎng)實(shí)體圖畢業(yè)去向信息畢業(yè)去向信息考研就業(yè)出國(guó)其她圖3.6畢業(yè)去向信息表畢業(yè)信息畢業(yè)信息學(xué)歷學(xué)位工作單位職稱工作經(jīng)歷政治面貌電話圖3.7畢業(yè)工作信息圖所選課程所選課程課程名稱學(xué)號(hào)課程名稱學(xué)號(hào)講課老師備注所修時(shí)間姓名講課老師備注所修時(shí)間姓名圖3.8所選課程信息圖系統(tǒng)實(shí)體聯(lián)絡(luò)圖,圖3.8所表示:學(xué)生成績(jī)信息家長(zhǎng)信息學(xué)生成績(jī)信息家長(zhǎng)信息學(xué)生查看獎(jiǎng)懲信息查看畢業(yè)信息查看學(xué)生信息查看維護(hù)維護(hù)管理員11111111MMM11M圖3.9實(shí)體聯(lián)絡(luò)圖學(xué)生課程信息學(xué)生課程信息查看查看4、系統(tǒng)概要設(shè)計(jì)4.1總體設(shè)計(jì)經(jīng)過(guò)這個(gè)階段工作將劃分出組成系統(tǒng)物理元素。系統(tǒng)概要設(shè)計(jì)基礎(chǔ)目標(biāo)是用比較抽象概括方法確定系統(tǒng)怎樣完成預(yù)定任務(wù),也就是要確定系統(tǒng)配置物理方案。軟件結(jié)構(gòu)設(shè)計(jì)時(shí)應(yīng)該遵照最關(guān)鍵原理是模塊獨(dú)立,讓模塊相互間接口關(guān)系應(yīng)該盡可能簡(jiǎn)單。4.2系統(tǒng)功效模塊圖能夠依據(jù)模塊獨(dú)立原理對(duì)軟件結(jié)構(gòu)進(jìn)行精化。為了合理分解,得到盡可能高內(nèi)聚、盡可能松散耦合,最終要是,為了得到一個(gè)易于實(shí)現(xiàn)、易于測(cè)試和易于維護(hù)軟件結(jié)構(gòu),應(yīng)該對(duì)模塊進(jìn)行再分解或合并。系統(tǒng)功效模塊圖圖4-1所表示:圖4-1系統(tǒng)功效模塊圖圖4-1系統(tǒng)功效模塊圖學(xué)生學(xué)籍管理系統(tǒng)學(xué)生信息模塊錄入刪除功效修改保留功效查詢維護(hù)功效錄入刪除功效社會(huì)關(guān)系模塊修改保留功效查詢維護(hù)功效獎(jiǎng)懲信息模塊查詢維護(hù)功效修改保留功效錄入刪除功效錄入刪除功效畢業(yè)信息模塊查詢維護(hù)功效修改保留功效4.3數(shù)據(jù)庫(kù)概念設(shè)計(jì)數(shù)據(jù)庫(kù)通常分為三級(jí)模式:外模式、概念模式和內(nèi)模式。外模式也就是不一樣用戶所正確數(shù)據(jù)視圖,它將數(shù)據(jù)庫(kù)內(nèi)部抽象數(shù)據(jù)及其相互之間關(guān)系表示為簡(jiǎn)單、直觀應(yīng)用界面。概念模式是數(shù)據(jù)庫(kù)中全部數(shù)據(jù)邏輯結(jié)構(gòu)和特征描述,通常以某種數(shù)據(jù)模型為基礎(chǔ)。內(nèi)模式是對(duì)數(shù)據(jù)物理結(jié)構(gòu)和存放方法描述。在這里我們將要設(shè)計(jì)是數(shù)據(jù)庫(kù)概念模式,數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì),是在需求分析基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求多種實(shí)體,和她們之間關(guān)系,為后面邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。4.4數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)在數(shù)據(jù)庫(kù)設(shè)計(jì)中相當(dāng)關(guān)鍵一步就是將概念模型轉(zhuǎn)化為計(jì)算機(jī)上DBMS所支持?jǐn)?shù)據(jù)模型,比如,將E-R圖模型轉(zhuǎn)化為關(guān)系模型,道理很簡(jiǎn)單,我們?cè)O(shè)計(jì)概念模型基礎(chǔ)上全部是部分抽象關(guān)系,在數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)現(xiàn)過(guò)程中,能在計(jì)算機(jī)上有效地表示出這些關(guān)系就成了數(shù)據(jù)庫(kù)設(shè)計(jì)關(guān)鍵。依據(jù)學(xué)生檔案管理系統(tǒng)功效要求,選擇ODBODBC作為后臺(tái)數(shù)據(jù)庫(kù)。在上面實(shí)體和實(shí)體之間E-R圖設(shè)計(jì)基礎(chǔ)上,形成數(shù)據(jù)庫(kù)中表格及表格之間關(guān)系。該數(shù)據(jù)庫(kù)由5個(gè)表組成,學(xué)生基礎(chǔ)信息表,學(xué)生家長(zhǎng)信息表,學(xué)生獎(jiǎng)懲信息表,學(xué)生畢業(yè)信息表,用戶信息表。主表結(jié)構(gòu)設(shè)計(jì):1.學(xué)生基礎(chǔ)信息表學(xué)生基礎(chǔ)信息表是對(duì)學(xué)生基礎(chǔ)信息進(jìn)行統(tǒng)計(jì),學(xué)號(hào)、姓名、性別、民族出生年月、家庭背景、考生起源、入學(xué)分?jǐn)?shù)、入學(xué)政治面貌、家庭住址、通訊地址、郵政編碼、所在院系、專業(yè)等信息。學(xué)生基礎(chǔ)信息表結(jié)構(gòu)表如表4.1。表4.1學(xué)生基礎(chǔ)信息結(jié)構(gòu)表字段名稱數(shù)據(jù)類型主鍵非空學(xué)號(hào)charYesYes姓名charNoNo性別charNoNo民族charNoNo出生年月dateNoNo家庭背景charNoNo考生起源charNONO入學(xué)分?jǐn)?shù)smallintNONO入學(xué)政治面貌charNONO家庭住址charNoNo通訊地址charNoNo郵政編碼charNoNo院系charNoNo專業(yè)charNoNo2.學(xué)生家長(zhǎng)信息表學(xué)生家長(zhǎng)信息表是對(duì)學(xué)生家長(zhǎng)信息統(tǒng)計(jì),包含父親姓名、父親工作單位、父親電話、父親職務(wù)、父親年紀(jì)、父親文化程度、母親姓名、母親工作單位、母親電話、母親職務(wù)、母親年紀(jì)、母親文化程度等。學(xué)生家長(zhǎng)信息表結(jié)構(gòu)如表4.2所表示。表4.2學(xué)生家長(zhǎng)信息字段名稱數(shù)據(jù)類型主鍵非空學(xué)號(hào)charyesYes姓名charNoNo父親姓名charNoNo父親工作單位charNoNo父親電話號(hào)碼charNoNo父親職位charNoNo父親年紀(jì)smallintNoNo母親姓名charNoNo母親工作單位charNoNo母親電話號(hào)碼charNoNo母親職位charNoNo母親年紀(jì)smallintNoNo3.學(xué)生獎(jiǎng)懲信息學(xué)生獎(jiǎng)懲信息是對(duì)學(xué)生在校期間獎(jiǎng)懲信息統(tǒng)計(jì),包含學(xué)號(hào)、姓名、獎(jiǎng)懲名稱、獎(jiǎng)懲日期、獎(jiǎng)懲原因、多種評(píng)價(jià)等。學(xué)生獎(jiǎng)懲信息表結(jié)構(gòu)如表4.3。表4.3學(xué)生獎(jiǎng)懲信息表字段名稱數(shù)據(jù)類型主鍵非空編號(hào)charNoYes學(xué)號(hào)charYesYes姓名charNoYes獎(jiǎng)懲名稱charYesYes獎(jiǎng)懲日期dateYesYes獎(jiǎng)懲原因charNoNo評(píng)價(jià)charNoNo4.學(xué)生畢業(yè)信息學(xué)生畢業(yè)信息有兩部分組成學(xué)生畢業(yè)去向信息和學(xué)生畢業(yè)信息。學(xué)生畢業(yè)去向信息是對(duì)學(xué)生畢業(yè)以后去向進(jìn)行統(tǒng)計(jì),包含學(xué)生畢業(yè)后一些學(xué)生選擇考研,一些選擇就業(yè),還有部分選擇培訓(xùn)等。學(xué)生畢業(yè)去向信息結(jié)構(gòu)表如表4.4所表示:表4.4學(xué)生畢業(yè)去向信息表張虎考研所考學(xué)校(蘭州大學(xué))李??佳兴紝W(xué)校(蘭州大學(xué))張偉就業(yè)就業(yè)單位(蘭州石化)趙剛就業(yè)就業(yè)單位(蘭州石化)張玉就業(yè)公務(wù)員學(xué)生畢業(yè)信息是對(duì)學(xué)生畢業(yè)是信息進(jìn)行統(tǒng)計(jì),比如,某個(gè)學(xué)生學(xué)歷,所修學(xué)位,工作單位,職稱,工作經(jīng)歷,政治面貌,電話等信息。學(xué)生畢業(yè)信息表以下所表示:表4.5學(xué)生畢業(yè)信息表姓名學(xué)歷工作單位職稱工作經(jīng)歷政治面貌電話張三本科蘭州石化質(zhì)檢員無(wú)黨員223344李四??铺m州石化質(zhì)檢員無(wú)黨員545556張俐本科蘭大老師無(wú)黨員68767楊虎本科白銀廠工程師無(wú)群眾43654姓名學(xué)歷工作單位職稱工作經(jīng)歷政治面貌電話張三本科蘭州石化質(zhì)檢員無(wú)黨員223344李四專科蘭州石化質(zhì)檢員無(wú)黨員545556張俐本科蘭大老師無(wú)黨員68767楊虎本科白銀廠工程師無(wú)群眾436545.學(xué)生成績(jī)管理信息學(xué)生成績(jī)信息管理是對(duì)學(xué)生在校期間所修課程成績(jī)統(tǒng)計(jì)。包含學(xué)生姓名、學(xué)號(hào)、院系、專業(yè)、所修課程各科成績(jī)、是否經(jīng)過(guò)(包含補(bǔ)考和重修)、總學(xué)分績(jī)。學(xué)生成績(jī)管理信息表結(jié)構(gòu)如表4.4。、表4.4學(xué)生成績(jī)管理信息表字段名稱數(shù)據(jù)類型主鍵非空學(xué)號(hào)charyesYes姓名charNoNo院系charNoNo專業(yè)charNoNo課程charNoNo成績(jī)charNoNo是否經(jīng)過(guò)boolenNoNo學(xué)分績(jī)charNoNo6.學(xué)生課程管理信息學(xué)生課程信息管理模塊能夠幫助學(xué)生在使用本系統(tǒng)同時(shí),方便查詢自己曾學(xué)習(xí)課程科目信息,從而立即給用戶反饋信息,讓用戶立即調(diào)整自己學(xué)習(xí)計(jì)劃。表4.6學(xué)生課程信息表字段名稱數(shù)據(jù)類型主鍵非空編號(hào)charNoYes學(xué)號(hào)intYesNo姓名charNoYes課程名稱charNoYes代課老師charNoYes所修時(shí)間timeNoYes備注charNoYes4.5連接數(shù)據(jù)庫(kù)特點(diǎn)當(dāng)開發(fā)環(huán)境經(jīng)過(guò)連接到數(shù)據(jù)庫(kù)上以后,在設(shè)計(jì)中使用數(shù)據(jù)庫(kù)畫筆可實(shí)現(xiàn)對(duì)該數(shù)據(jù)庫(kù)中表格,視圖等操作,如創(chuàng)建表、修改表、刪除表、增加/刪除統(tǒng)計(jì)。設(shè)計(jì)中設(shè)計(jì)數(shù)據(jù)窗口時(shí)候,經(jīng)過(guò)對(duì)話框?qū)崿F(xiàn)和數(shù)據(jù)連接。在應(yīng)用程序中則通常是在應(yīng)用程序?qū)ο笾袝鴮戇B接數(shù)據(jù)庫(kù)程序代碼,使得應(yīng)用程序開始運(yùn)行并實(shí)現(xiàn)和數(shù)據(jù)庫(kù)連接。5、具體設(shè)計(jì)5.1系統(tǒng)關(guān)鍵功效及實(shí)現(xiàn)依據(jù)上面需求分析,設(shè)計(jì)好數(shù)據(jù)庫(kù)系統(tǒng),然后開發(fā)前臺(tái)應(yīng)用程序。所開發(fā)前臺(tái)界面要求用戶可方便操作,同時(shí)很好完成每一個(gè)窗口所實(shí)現(xiàn)功效。學(xué)生畢業(yè)信息模塊設(shè)計(jì)應(yīng)包含以下幾點(diǎn)功效:首先學(xué)生畢業(yè)信息模塊由兩部分組成:學(xué)生畢業(yè)去向信息和學(xué)生畢業(yè)信息。學(xué)生畢業(yè)去向信息模塊關(guān)鍵是統(tǒng)計(jì)了學(xué)生畢業(yè)后去向信息,在這個(gè)模塊中包含了:比如,某個(gè)學(xué)生畢業(yè)后選擇考研,在該模塊中就能夠查詢到該學(xué)生全部考研信息,所考學(xué)校,所修專業(yè)等信息;某個(gè)學(xué)生畢業(yè)后選擇就業(yè),在該模塊中就能夠查詢到該學(xué)生就業(yè)單位信息,工作單位名稱,工作時(shí)間等信息;某個(gè)學(xué)生選擇出國(guó)留學(xué),在該模塊中就能夠查詢到該學(xué)生留學(xué)信息,留學(xué)國(guó)家,所學(xué)專業(yè)等。學(xué)生畢業(yè)信息模塊關(guān)鍵是統(tǒng)計(jì)了學(xué)生畢業(yè)是自己畢業(yè)信息。在這個(gè)模塊中包含了學(xué)生全部畢業(yè)信息,比如,某個(gè)學(xué)生學(xué)歷,所修學(xué)位,工作單位,職稱,工作經(jīng)歷,政治面貌,電話等信息。5.2程序步驟圖程序步驟圖優(yōu)點(diǎn)是對(duì)控制步驟描繪很直觀,易于掌握。1、學(xué)生多種信息查詢功效步驟圖用戶用戶輸入查詢信息否是是否存在該信息數(shù)據(jù)否是提醒沒有輸出該信息所要查詢信息確定信息關(guān)閉窗體查詢對(duì)應(yīng)信息是否存在確定信息結(jié)束否圖5.4登錄界面圖圖5.1查詢功效步驟圖否是否輸入查詢條件是2、錄入功效程序步驟圖管理員管理員輸入信息保存保留是否成功結(jié)束是否圖5.2錄入功效程序步驟圖3、修改功效步驟圖用戶用戶修改保留保留是否成功結(jié)束圖5.3修改步驟圖是否5.3用戶界面設(shè)計(jì)5.3.1通常交互設(shè)計(jì)通常交互包含信息顯示、數(shù)據(jù)輸入和系統(tǒng)整體控制等方面。1)、一致性為用戶交互界面中菜單選擇、命令輸入、數(shù)據(jù)顯示和眾多其它功效,使用一致格式。在設(shè)計(jì)過(guò)程中,基礎(chǔ)上保持了系統(tǒng)格式一致。2)、信息反饋向用戶立即提供視覺和聽覺信息反饋,以確保在用戶和系統(tǒng)之間立即地建立雙向通信。在本系統(tǒng)設(shè)計(jì)過(guò)程中,基礎(chǔ)做到了信息立即反饋,在信息顯示大部分窗體中包含了保留按鈕,會(huì)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行立即地刷新顯示。3)、實(shí)施有較大影響操作前提醒用戶確定在設(shè)計(jì)過(guò)程中,假如用戶要實(shí)施刪除操作,和對(duì)數(shù)據(jù)庫(kù)讀寫操作時(shí),全部會(huì)有窗體彈出問(wèn)詢繼續(xù)操作或給予提醒。4)、降低兩次操作間需要記憶內(nèi)容為了避免用戶為下一步操作而記憶大量數(shù)據(jù),所以在設(shè)計(jì)過(guò)程中在需要數(shù)據(jù)傳輸窗體中設(shè)置全局變量,來(lái)傳輸數(shù)據(jù)。比如在入賬和入庫(kù)模塊操作中全部用到了這么方法。5)、對(duì)話、移動(dòng)和思索效率盡可能降低用戶擊鍵次數(shù),在設(shè)計(jì)時(shí)考慮到了用戶屏幕布局以降低用戶鼠標(biāo)移動(dòng)距離,盡可能避免用戶在操作中發(fā)生疑問(wèn)情況。6)、許可錯(cuò)誤許可用戶誤操作盡可能不對(duì)系統(tǒng)造成傷害。7)、按功效對(duì)動(dòng)作分類,并據(jù)此設(shè)計(jì)屏幕布局屏幕布局盡可能將軟件所含有全部功效在主頁(yè)面展示,界面一目了然。5.3.2信息顯示設(shè)計(jì)應(yīng)該盡可能為用戶提供界面顯示時(shí)完整、明確和輕易了解,這么才能滿足用戶需求。1)、只顯示和目前工作相關(guān)信息在用戶操作相關(guān)系統(tǒng)特定功效信息時(shí),無(wú)須看到和之無(wú)關(guān)數(shù)據(jù)、菜單和圖形。2)、使用便于用戶快速吸收數(shù)據(jù)方法來(lái)表示數(shù)據(jù)在系統(tǒng)設(shè)計(jì)過(guò)程中,較多地使用了表結(jié)構(gòu)形式表示數(shù)據(jù)。這么,用戶能夠直觀體會(huì)到圖表所表示含義。3)、使用一致標(biāo)識(shí)、標(biāo)準(zhǔn)縮寫和可預(yù)知顏色為了使系統(tǒng)所表示含義正確、無(wú)誤,就必需適用一致標(biāo)識(shí)、標(biāo)準(zhǔn)縮寫和能夠預(yù)知縮寫,這么用戶就無(wú)需參考其它信息源就能了解,而正確地適用軟件。4)、產(chǎn)生有意義錯(cuò)誤信息對(duì)于系統(tǒng)在運(yùn)行過(guò)程中產(chǎn)生錯(cuò)誤盡可能給用戶返回一個(gè)輕易了解錯(cuò)誤信息,以使用戶保持對(duì)系統(tǒng)信任,和系統(tǒng)可用性。5)、使用窗口分隔不一樣類型信息使用不一樣窗口顯示、保留不一樣類型信息。6)、高效率使用顯示器當(dāng)使用多窗口時(shí),應(yīng)該有足夠空間使得每個(gè)窗口最少全部能顯示出一部分。另外,屏幕大小應(yīng)該選得和應(yīng)用系統(tǒng)類型相配套。在各個(gè)顯示數(shù)據(jù)窗口中,因?yàn)閿?shù)據(jù)窗體項(xiàng)目較多,所以在數(shù)據(jù)窗體空間中較多是用了垂直和水平滾動(dòng)條,以確保信息全方面正確顯示。5.3.3輸入界面設(shè)計(jì)用戶大部分時(shí)間用在選擇菜單命令、鍵入數(shù)據(jù)和向系統(tǒng)提供輸入。在系統(tǒng)中,鍵盤是關(guān)鍵輸入介質(zhì),不過(guò)鼠標(biāo)等設(shè)備也是關(guān)鍵輸入手段,所以,對(duì)于她們數(shù)據(jù)輸入操作有以下約定:1、保持信息顯示和數(shù)據(jù)輸入間一致性為了方便用戶使用,鼠標(biāo)應(yīng)該盡可能降低操作幅度。2、保持顯示信息和輸入信息之間一致性對(duì)于用戶來(lái)說(shuō),要確保其輸入數(shù)據(jù)在顯示上和其它顯示視覺特征(比如:文字大小、顏色、位置等)要一致。對(duì)于不一樣類型用戶在登錄到系統(tǒng)后,因?yàn)橛胁灰粯訖?quán)限,所以在主界面中會(huì)有部分項(xiàng)目受到限制而無(wú)法使用,所以要使這些項(xiàng)目不發(fā)生作用,以確保系統(tǒng)安全。5.4軟件測(cè)試5.4.1測(cè)試方法和步驟軟件測(cè)試方法有兩種,一個(gè)是黑盒測(cè)試(功效測(cè)試),另外一個(gè)是白盒測(cè)試(結(jié)構(gòu)測(cè)試)。黑盒測(cè)試把程序看作一個(gè)黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過(guò)程。也就是說(shuō),黑盒測(cè)試是在程序接口進(jìn)行測(cè)試,它只檢驗(yàn)程序功效是否能根據(jù)規(guī)格說(shuō)明書要求正常使用,程序是否能合適接收輸入數(shù)據(jù)并產(chǎn)生正確輸出信息,程序運(yùn)行過(guò)程中能否保持外部信息完整性。白盒測(cè)試前提是能夠把程序看成裝在一個(gè)透明白盒子里,測(cè)試者完全知道程序結(jié)構(gòu)和處理算法。這種方法根據(jù)程序內(nèi)部邏輯測(cè)試程序,檢測(cè)程序中關(guān)鍵實(shí)施通路是否能按預(yù)定要求正確工作。在此次軟件測(cè)試工作中,因?yàn)樗较拗?,僅僅對(duì)軟件各個(gè)功效模塊進(jìn)行了測(cè)試,并對(duì)各個(gè)模塊之間接口進(jìn)行了具體測(cè)試(用黑盒測(cè)試法)。測(cè)試步驟因?yàn)樵撓到y(tǒng)是一個(gè)小系統(tǒng),能夠把整個(gè)系統(tǒng)作為一個(gè)單獨(dú)實(shí)體來(lái)測(cè)試。當(dāng)然,在測(cè)試過(guò)程中能夠分模塊、分階段來(lái)進(jìn)行。5.4.2測(cè)試用例1、登錄測(cè)試當(dāng)用戶文本框中不輸入信息時(shí)候,提醒“用戶名不能為空”。當(dāng)用戶文本框中輸入信息不存在時(shí),提醒“輸入有誤”。2、學(xué)生信息查詢模塊窗體應(yīng)顯示某貨物全部信息,學(xué)號(hào)、姓名、性別、民族、出生年月、戶口類別、家庭住址、通訊地址、郵政編碼、所在院系、專業(yè)等。測(cè)試以下圖:當(dāng)在學(xué)號(hào)中輸入"07240521"按查詢按鈕,將顯示出查詢結(jié)果以下表5.1:表5.1查詢信息結(jié)果學(xué)號(hào)姓名性別民族出生日期家庭背景戶口類型所在院系專業(yè)00240521李偉男漢1987-11-20農(nóng)民農(nóng)村計(jì)通學(xué)院計(jì)算機(jī)籍貫身份證號(hào)碼入課時(shí)間擔(dān)任職務(wù)備注甘肅01學(xué)習(xí)委員\當(dāng)查詢文本框中輸入信息不存在時(shí),提醒“沒有找到”。當(dāng)查詢文本框中不輸入信息時(shí),提醒“輸入完整信息”。3、保留功效測(cè)試將信息輸入完整后,按保留按鈕,提醒“保留成功”。4、刪除功效測(cè)試選所要?jiǎng)h除行,按刪除按鈕提醒是否確定要?jiǎng)h除。選擇是后,將所要?jiǎng)h除行刪除。按保留按鈕,保留此次操作。5、學(xué)生信息排序功效測(cè)試當(dāng)點(diǎn)擊排序(默認(rèn)升序)按鈕時(shí)顯示信息以下表5.2:表5.2排序信息結(jié)果學(xué)號(hào)姓名性別民族出生日期家庭背景戶口類型所在院系專業(yè)07240508蘭瑞男漢1985-6-7工人城市計(jì)通學(xué)院計(jì)算機(jī)07240521李偉男漢1984-3-5農(nóng)民農(nóng)村計(jì)通學(xué)院通信07140121王麗女漢1986-7-3老師城市材料學(xué)院材料07240522楊勉男漢1987-3-3農(nóng)民農(nóng)村計(jì)通學(xué)院計(jì)算機(jī)07240524艾可昕女漢1988-10-15醫(yī)生城市計(jì)通學(xué)院計(jì)算機(jī)08240227鄭睿男漢1987-1-12工人城市計(jì)通學(xué)院通信08190130李琰男漢1987-7-21農(nóng)民農(nóng)村生命學(xué)院制藥08110533歐曉倩女漢1989-9-6老師城市經(jīng)管學(xué)院工管6、軟件使用說(shuō)明書1、用戶登錄
用戶使用本系統(tǒng)時(shí),首先要經(jīng)過(guò)本系統(tǒng)身份認(rèn)證,此過(guò)程叫做登錄。登錄過(guò)程需要完成以下步驟:依據(jù)用戶名和密碼判定是否為正當(dāng)用戶;依據(jù)用戶類型判定進(jìn)入哪一個(gè)界面。登錄窗體界面以下:圖6.1登錄界面管理員登陸界面以下圖所表示:圖6.2管理員登陸界面系統(tǒng)主界面以下圖所表示:圖6.3系統(tǒng)主界面2、為方便起見,此系統(tǒng)中管理員系統(tǒng)主界面下拉菜單和學(xué)生管理主界面下拉菜單一樣,包含:學(xué)生基礎(chǔ)信息學(xué)生基礎(chǔ)信息查看學(xué)生家庭信息查看學(xué)生獎(jiǎng)懲信息查看學(xué)生畢業(yè)信息查詢退出系統(tǒng)退出4、信息錄入方法錄入界面圖6.3示單擊錄入按鈕,在光標(biāo)處添寫所要添入信息。圖6.3信息錄入界面5、查詢功效實(shí)現(xiàn)方法在使用“學(xué)生社會(huì)關(guān)系”功效模塊時(shí),在輸入對(duì)應(yīng)查詢條件時(shí)便可進(jìn)行查詢,同時(shí)顯示查詢結(jié)果。圖6.4所表示。圖6.4學(xué)生社會(huì)關(guān)系查詢結(jié)果6.學(xué)生成績(jī)查詢本系統(tǒng)所實(shí)現(xiàn)學(xué)生成績(jī)查詢,運(yùn)行圖6.5,圖6.6所表示:圖6.5學(xué)生成績(jī)查詢模塊圖6.6學(xué)生成績(jī)信息7.學(xué)生課程信息查詢學(xué)生課程信息查詢,圖6.7所表示:圖6.7學(xué)生課程信息7、源程序#include<stdio.h>#include<stdlib.h>#include"string.h"#include"conio.h"#defineHEADER1"----------------------------STUDENT----------------------------------\n"#defineHEADER2"|number|name|Comp|Math|Eng|sum|ave|mici|\n"#defineHEADER3"|---------------|---------------|----|----|----|--------|-------|-----|"#defineFORMAT"|%-10s|%-15s|%4d|%4d|%4d|%4d|%.2f|%4d|\n"#defineDATAp->data.num,p->,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.ave,p->data.mingci#defineEND"---------------------------------------------------------------------\n"intsaveflag=0;/*是否需要存盤標(biāo)志變量*/typedefstructstudent/*標(biāo)識(shí)為student*/{charnum[10];/*學(xué)號(hào)*/charname[15];/*姓名*/intcgrade;/*C語(yǔ)言成績(jī)*/intmgrade;/*數(shù)學(xué)成績(jī)*/integrade;/*英語(yǔ)成績(jī)*/inttotal;/*總分*/floatave;/*平均分*/intmingci;/*名次*/};typedefstructnode/*定義每條統(tǒng)計(jì)或結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu),標(biāo)識(shí)為node*/{structstudentdata;structnode*next;}Node,*Link;voidmenuchoice(){system("cls");/*清屏.和clrscr()功效相同*/textcolor(10);/*在文本模式中選擇新字符顏色*/gotoxy(7,5);cprintf("TheStudents'GradeManagementSystem\n");gotoxy(7,8);printf("\nPleaseEnteryourchoice;0enterstudents'system\n\t\t\t");printf("");printf("1enterteachers'system\n");}voidmenu()/*菜單函數(shù)*/{system("cls");/*清屏.和clrscr()功效相同*/textcolor(10);/*在文本模式中選擇新字符顏色*/gotoxy(7,5);/*在文本窗口中設(shè)置光標(biāo),下同*/cprintf("TheStudents'GradeManagementSystem\n");gotoxy(7,8);cprintf("*************************Menu********************************\n");gotoxy(7,9);cprintf("*1inputrecord2deleterecord*\n");gotoxy(7,10);cprintf("*3searchrecord4modifyrecord*\n");gotoxy(7,11);cprintf("*5insertrecord6countrecord*\n");gotoxy(7,12);cprintf("*7sortreord8saverecord*\n");gotoxy(7,13);cprintf("*9displayrecord0quitsystem*\n");gotoxy(7,14);cprintf("*************************************************************\n");/*cprintf()送格式化輸出至文本窗口屏幕中*/}voidmenustudent(){system("cls");/*清屏.和clrscr()功效相同*/textcolor(10);/*在文本模式中選擇新字符顏色*/gotoxy(7,5);/*在文本窗口中設(shè)置光標(biāo),下同*/cprintf("TheStudents'GradeManagementSystem\n");gotoxy(7,8);cprintf("*************************Menu********************************\n");gotoxy(7,9);cprintf("*3searchrecord0quitsystem*\n");gotoxy(7,10);cprintf("*************************************************************\n");/*cprintf()送格式化輸出至文本窗口屏幕中*/}voidprintheader()/*格式化輸出表頭*/{printf(HEADER1);printf(HEADER2);printf(HEADER3);}voidprintdata(Node*pp)/*格式化輸出表中數(shù)據(jù)*/{Node*p;p=pp;printf(FORMAT,DATA);}voidWrong()/*輸出按鍵錯(cuò)誤信息*/{printf("\n\n\n\n\n***********Error:inputhaswrong!pressanykeytocontinue**********\n");getchar();}voidNofind()/*輸出未查找此學(xué)生信息*/{printf("\n=====>Notfindthisstudent!\n");}voidDisp(Linkl)/*顯示單鏈表l中存放學(xué)生統(tǒng)計(jì),內(nèi)容為student結(jié)構(gòu)中定義數(shù)據(jù)項(xiàng)*/{Node*p;p=l->next;/*l存放是單鏈表中頭結(jié)點(diǎn)指針,該頭結(jié)點(diǎn)沒有存放學(xué)生信息,指針域指向后繼結(jié)點(diǎn)才有學(xué)生信息*/if(!p){printf("\n=====>Notstudentrecord!\n");getchar();return;}printf("\n\n");printheader();/*輸出表格頭部*/while(p)/*逐條輸出鏈表中存放學(xué)生信息*/{printdata(p);p=p->next;/*移動(dòng)至下一個(gè)結(jié)點(diǎn)*/printf(HEADER3);}getchar();}Node*Locate(Linkl,charfindmess[],charnameornum[])/*用于定位鏈表中符合要求節(jié)點(diǎn),并返回指向該節(jié)點(diǎn)指針,findmess[]保留要查找具體內(nèi)容;nameornum[]保留按什么查找;在單鏈表l中查找;*/{Node*r;if(strcmp(nameornum,"num")==0)/*按學(xué)號(hào)查詢*/{r=l->next;while(r){if(strcmp(r->data.num,findmess)==0)/*若找到findmess值學(xué)號(hào)*/returnr;r=r->next;}}elseif(strcmp(nameornum,"name")==0)/*按姓名查詢*/{r=l->next;while(r){if(strcmp(r->,findmess)==0)/*若找到findmess值學(xué)生姓名*/returnr;r=r->next;}}return0;}voidstringinput(char*t,intlens,char*notice)/*輸入字符串,并進(jìn)行長(zhǎng)度驗(yàn)證(長(zhǎng)度<lens)*/{charn[255];do{printf(notice);/*顯示提醒信息*/scanf("%s",n);/*輸入字符串*/if(strlen(n)>lens)printf("\nExceedtherequiredlength!\n");/*進(jìn)行長(zhǎng)度校驗(yàn),超出lens值重新輸入*/}while(strlen(n)>lens);strcpy(t,n);/*將輸入字符串拷貝到字符串t中*/}intnumberinput(char*notice)/*輸入分?jǐn)?shù),0<=分?jǐn)?shù)<=100)*/{intt=0;do{printf(notice);/*顯示提醒信息*/scanf("%d",&t);/*輸入分?jǐn)?shù)*/if(t>100||t<0)printf("\nScoremustin[0,100]!\n");/*進(jìn)行分?jǐn)?shù)校驗(yàn)*/}while(t>100||t<0);returnt;}voidAdd(Linkl)/*增加學(xué)生統(tǒng)計(jì)*/{Node*p,*r,*s;/*實(shí)現(xiàn)添加操作臨時(shí)結(jié)構(gòu)體指針變量*/charch,flag=0,num[10];r=l;s=l->next;system("cls");Disp(l);/*先打印出已經(jīng)有學(xué)生信息*/while(r->next!=NULL)r=r->next;/*將指針移至于鏈表最末尾,準(zhǔn)備添加統(tǒng)計(jì)*/while(1)/*一次可輸入多條統(tǒng)計(jì),直至輸入學(xué)號(hào)為0統(tǒng)計(jì)結(jié)點(diǎn)添加操作*/{while(1)/*輸入學(xué)號(hào),確保該學(xué)號(hào)沒有被使用,若輸入學(xué)號(hào)為0,則退出添加統(tǒng)計(jì)操作*/{stringinput(num,10,"Inputnumber(press'0'returnmenu):");/*格式化輸入學(xué)號(hào)并檢驗(yàn)*/flag=0;if(strcmp(num,"0")==0)/*輸入為0,則退出添加操作,返回主界面*/{return;}s=l->next;while(s)/*查詢?cè)搶W(xué)號(hào)是否已經(jīng)存在,若存在則要求重新輸入一個(gè)未被占用學(xué)號(hào)*/{if(strcmp(s->data.num,num)==0){flag=1;break;}s=s->next;}if(flag==1)/*提醒用戶是否重新輸入*/{getchar();printf("=====>Thenumber%sisnotexisting,tryagain?(y/n):",num);scanf("%c",&ch);if(ch=='y'||ch=='Y')continue;elsereturn;}else{break;}}p=(Node*)malloc(sizeof(Node));if(!p){printf("\nAllocatememoryfailure");/*如沒有申請(qǐng)到,打印提醒信息*/return;}strcpy(p->data.num,num);/*將字符串num拷貝到p->data.num中*/stringinput(p->,15,"Name:");p->data.cgrade=numberinput("ClanguageScore[0-100]:");/*輸入并檢驗(yàn)分?jǐn)?shù),分?jǐn)?shù)必需在0-100之間*/p->data.mgrade=numberinput("MathScore[0-100]:");p->data.egrade=numberinput("EnglishScore[0-100]:");p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade;/*計(jì)算總分*/p->data.ave=(float)(p->data.total/3);/*計(jì)算平均分*/p->data.mingci=0;p->next=NULL;/*表明這是鏈表尾部結(jié)點(diǎn)*/r->next=p;/*將新建結(jié)點(diǎn)加入鏈表尾部中*/r=p;saveflag=1;/*在main()有對(duì)該全局變量判定,若為1,則進(jìn)行存盤操作*/}return;}voidQur(Linkl)/*按學(xué)號(hào)或姓名,查詢學(xué)生統(tǒng)計(jì)*/{intselect;/*1:按學(xué)號(hào)查,2:按姓名查,其它:返回主界面(菜單)*/charsearchinput[20];/*保留用戶輸入查詢內(nèi)容*/Node*p;if(!l->next)/*若鏈表為空*/{system("cls");printf("\n=====>Nostudentrecord!\n");getchar();return;}system("cls");printf("\n=====>1Searchbynumber=====>2Searchbyname\n");printf("pleasechoice[1,2]:");scanf("%d",&select);if(select==1)/*按學(xué)號(hào)查詢*/{stringinput(searchinput,10,"Inputtheexistingstudentnumber:");p=Locate(l,searchinput,"num");/*在l中查找學(xué)號(hào)為searchinput值節(jié)點(diǎn),并返回節(jié)點(diǎn)指針*/if(p)/*若p!=NULL*/{printheader();printdata(p);printf(END);printf("pressanykeytoreturn");getchar();}elseNofind();getchar();}elseif(select==2)/*按姓名查詢*/{stringinput(searchinput,15,"inputtheexistingstudentname:");p=Locate(l,searchinput,"name");if(p){printheader();printdata(p);printf(END);printf("pressanykeytoreturn");getchar();}elseNofind();getchar();}elseWrong();getchar();}voidDel(Linkl)/*刪除學(xué)生統(tǒng)計(jì):先找到保留該學(xué)生統(tǒng)計(jì)節(jié)點(diǎn),然后刪除該節(jié)點(diǎn)*/{intsel;Node*p,*r;charfindmess[20];if(!l->next){system("cls");printf("\n=====>Nostudentrecord!\n");getchar();return;}system("cls");Disp(l);printf("\n=====>1Deletebynumber=====>2Deletebyname\n");printf("pleasechoice[1,2]:");scanf("%d",&sel);if(sel==1){stringinput(findmess,10,"inputtheexistingstudentnumber:");p=Locate(l,findmess,"num");if(p)/*p!=NULL*/{r=l;while(r->next!=p)r=r->next;r->next=p->next;/*將p所指節(jié)點(diǎn)從鏈表中去除*/free(p);/*釋放內(nèi)存空間*/printf("\n=====>Deletesuccess!\n");getchar();saveflag=1;}elseNofind();getchar();}elseif(sel==2){stringinput(findmess,15,"inputtheexistingstudentname");p=Locate(l,findmess,"name");/*先按姓名查詢到該統(tǒng)計(jì)所在節(jié)點(diǎn)*/if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("\n=====>Deletesuccess!\n");getchar();saveflag=1;}elseNofind();getchar();}elseWrong();getchar();}voidModify(Linkl)/*修改學(xué)生統(tǒng)計(jì)。先按輸入學(xué)號(hào)查詢到該統(tǒng)計(jì),然后提醒用戶修改學(xué)號(hào)之外值,學(xué)號(hào)不能修改*/{Node*p;charfindmess[20];if(!l->next){system("cls");printf("\n=====>Nostudentrecord!\n");getchar();return;}system("cls");printf("Modifystudentrecorder:");Disp(l);stringinput(findmess,10,"\nInputtheexistingstudentnumber:");/*輸入并檢驗(yàn)該學(xué)號(hào)*/p=Locate(l,findmess,"num");/*查詢到該節(jié)點(diǎn)*/if(p)/*若p!=NULL,表明已經(jīng)找到該節(jié)點(diǎn)*/{printf("Number:%s,\n",p->data.num);printf("Name:%s,",p->);stringinput(p->,15,"inputnewname:");printf("Clanguagescore:%d,",p->data.cgrade);p->data.cgrade=numberinput("ClanguageScore[0-100]:");printf("Mathscore:%d,",p->data.mgrade);p->data.mgrade=numberinput("MathScore[0-100]:");printf("Englishscore:%d,",p->data.egrade);p->data.egrade=numberinput("EnglishScore[0-100]:");p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade;p->data.ave=(float)(p->data.total/3);p->data.mingci=0;printf("\n=====>Modifysuccess!\n");Disp(l);saveflag=1;}elseNofind();getchar();}voidInsert(Linkl)/*插入統(tǒng)計(jì),按學(xué)號(hào)查詢到要插入節(jié)點(diǎn)位置,然后在該學(xué)號(hào)以后插入一個(gè)新節(jié)點(diǎn)*/{Linkp,v,newinfo;/*p指向插入位置,newinfo指新插入統(tǒng)計(jì)*/charch,num[10],s[10];/*s[]保留插入點(diǎn)位置之前學(xué)號(hào),num[]保留輸入新統(tǒng)計(jì)學(xué)號(hào)*/intflag=0;v=l->next;system("cls");Disp(l);while(1){stringinput(s,10,"\nPleaseinputInsertlocationaftertheNumber:");flag=0;v=l->next;while(v)/*查詢?cè)搶W(xué)號(hào)是否存在,flag=1表示該學(xué)號(hào)存在*/{if(strcmp(v->data.num,s)==0){flag=1;break;}v=v->next;}if(flag==1)break;/*若學(xué)號(hào)存在,則進(jìn)行插入之前新統(tǒng)計(jì)輸入操作*/else{getchar();printf("\n=====>Thenumber%sisnotexisting,tryagain?(y/n):",s);scanf("%c",&ch);if(ch=='y'||ch=='Y')continue;elsereturn;}}stringinput(num,10,"InputnewstudentNumber:");/*以新統(tǒng)計(jì)輸入操作和Add()相同*/v=l->next;while(v){if(strcmp(v->data.num,num)==0){printf("=====>Sorry,thenewnumber:'%s'isexisting!\n",num);printheader();printdata(v);printf("\n");getchar();return;}v=v->next;}newinfo=(Node*)malloc(sizeof(Node));if(!newinfo){printf("\nAllocatememoryfailure");/*如沒有申請(qǐng)到,打印提醒信息*/return;/*返回主界面*/}strcpy(newinfo->data.num,num);stringinput(newinfo->,15,"Name:");newinfo->data.cgrade=numberinput("ClanguageScore[0-100]:");newinfo->data.mgrade=numberinput("MathScore[0-100]:");newinfo->data.egrade=numberinput("EnglishScore[0-100]:");newinfo->data.total=newinfo->data.egrade+newinfo->data.cgrade+newinfo->data.mgrade;newinfo->data.ave=(float)(newinfo->data.total/3);newinfo->data.mingci=0;newinfo->next=NULL;saveflag=1;p=l->next;/*將指針賦值給p,因?yàn)閘中頭節(jié)點(diǎn)下一個(gè)節(jié)點(diǎn)才實(shí)際保留著學(xué)生統(tǒng)計(jì)*/while(1){if(strcmp(p->data.num,s)==0)/*在鏈表中插入一個(gè)節(jié)點(diǎn)*/{newinfo->next=p->next;p->next=newinfo;break;}p=p->next;}Disp(l);printf("\n\n");getchar();}voidTongji(Linkl)/*統(tǒng)計(jì)總分,單科第一和各科不及格人數(shù)*/{Node*pm,*pe,*pc,*pt;/*用于指向分?jǐn)?shù)最高節(jié)點(diǎn)*/Node*r=l->next;intcountc=0,countm=0,counte=0;/*保留三門成績(jī)中不及格人數(shù)*/if(!r){system("cls");printf("\n=====>Nostudentrecord!\n");getchar();return;}system("cls");Disp(l);pm=pe=pc=pt=r;while(r){if(r->data.cgrade<60)countc++;if(r->data.mgrade<60)countm++;if(r->data.egrade<60)counte++;if(r->data.cgrade>=pc->data.cgrade)pc=r;if(r->data.mgrade>=pm->data.mgrade)pm=r;if(r->data.egrade>=pe->data.egrade)pe=r;if(r->data.total>=pt->data.total)pt=r;r=r->next;}printf("\n------------------------------theTongJiresult--------------------------------\n");printf("CLanguage<60:%d(ren)\n",countc);printf("Math<60:%d(ren)\n",countm);printf("English<60:%d(ren)\n",counte);printf("-------------------------------------------------------------------------------\n");printf("Thehigheststudentbytotalscroename:%stotoalscore:%d\n",pt->,pt->data.total);printf("ThehigheststudentbyEnglishscorename:%stotoalscore:%d\n",pe->,pe->data.egrade);printf("ThehigheststudentbyMathscorename:%stotoalscore:%d\n",pm->,pm->data.mgrade);printf("ThehigheststudentbyCscorename:%stotoalscore:%d\n",pc->,pc->data.cgrade);printf("\n\npressanykeytoreturn");getchar();}voidSort(Linkl)/*利用插入法排序?qū)崿F(xiàn)單鏈表按總分字段降序排序,從高到低*/{Linkll;Node*p,*rr,*s;inti=0;if(l->next==NULL){system("cls");printf("\n=====>Nostudentrecord!\n");getchar();return;}ll=(Node*)malloc(sizeof(Node));if(!ll){printf("\nAllocatememoryfailure");/*如沒有申請(qǐng)到,打印提醒信息*/return;}ll->next=NULL;system("cls");Disp(l);
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)派遣合同十
- 協(xié)議與合同有啥不同
- PTAD-PEG8-alkyne-生命科學(xué)試劑-MCE
- LZ9-生命科學(xué)試劑-MCE
- E3-ligase-Ligand-50-生命科學(xué)試劑-MCE
- 世界各國(guó)旅游業(yè)收入對(duì)比表
- 3-4-5-Hydroxypent-1-yn-1-yl-1-oxoisoindolin-2-yl-piperidine-2-6-dione-生命科學(xué)試劑-MCE
- 教代會(huì)教師代表發(fā)言稿
- 各地區(qū)GDP產(chǎn)值分類統(tǒng)計(jì)表
- 并發(fā)操作下的數(shù)據(jù)同步方案
- 2024-2025學(xué)年新教材高中語(yǔ)文 第六單元 13.2 裝在套子里的人教案 部編版必修下冊(cè)
- 中央2024年中國(guó)醫(yī)學(xué)科學(xué)院血液學(xué)研究所血液病醫(yī)院招聘17人筆試歷年典型考題及考點(diǎn)附答案解析
- 產(chǎn)調(diào)授權(quán)委托書模板
- JBT 14732-2024《中碳和中碳合金鋼滾珠絲杠熱處理技術(shù)要求》
- 【直播帶貨發(fā)展前景探究:以抖音平臺(tái)為例6700字(論文)】
- 2024入贅協(xié)議書范本
- 2024屆江蘇省蘇北七市(南通)高三二??荚囉⒄Z(yǔ)試題讀后續(xù)寫思路分析My best examination 講義
- 計(jì)算機(jī)系統(tǒng)原理13015習(xí)題答案
- 2024年益陽(yáng)醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)及答案解析
- 臨床實(shí)驗(yàn)室精液常規(guī)檢驗(yàn)中國(guó)專家共識(shí)
- 《新能源發(fā)電技術(shù)第2版》 課件全套 朱永強(qiáng) 第1-10章 能源概述- 分布式發(fā)電與能源互補(bǔ)
評(píng)論
0/150
提交評(píng)論