學(xué)生選修課信息管理系統(tǒng)(軟件工程導(dǎo)論課程設(shè)計(jì))_第1頁
學(xué)生選修課信息管理系統(tǒng)(軟件工程導(dǎo)論課程設(shè)計(jì))_第2頁
學(xué)生選修課信息管理系統(tǒng)(軟件工程導(dǎo)論課程設(shè)計(jì))_第3頁
學(xué)生選修課信息管理系統(tǒng)(軟件工程導(dǎo)論課程設(shè)計(jì))_第4頁
學(xué)生選修課信息管理系統(tǒng)(軟件工程導(dǎo)論課程設(shè)計(jì))_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、湖南人文科技學(xué)院計(jì)算機(jī)系課程設(shè)計(jì)說明書課程名稱:軟件工程導(dǎo)論課程代碼:題 目:學(xué)生選修課信息管理系統(tǒng)年級(jí)/專業(yè)/班:09級(jí)計(jì)科2班學(xué)生姓名:趙浩 胡碧山 文盼 聶惠俊 楊晨學(xué) 號(hào): ; ; ; ; 指導(dǎo)老師:顏富強(qiáng)開題時(shí)間:2010年6月5日完成時(shí)間:2010年6月30日2010年6月30日課程設(shè)計(jì)任務(wù)書及成績(jī)?cè)u(píng)定課程名稱:軟件工程導(dǎo)論完成者:趙浩 胡碧山 文盼 聶惠俊 楊晨1、設(shè)計(jì)的目的與要求 1)加強(qiáng)學(xué)生的實(shí)踐能力;2)理解小型系統(tǒng)開發(fā)的基本步驟; 3)本系統(tǒng)的功能包括:選修課信息查詢模塊、注冊(cè)模塊、選修課信息管理模塊(包括基本的添加、修改、刪除功能)。2、設(shè)計(jì)進(jìn)度及完成情況日 期內(nèi) 容6

2、.5-6.7項(xiàng)目開發(fā)計(jì)劃書6.8-6.10系統(tǒng)可行性研究 6.11-6.15系統(tǒng)需求分析 6.16-6.23系統(tǒng)設(shè)計(jì) 6.24-6.27系統(tǒng)測(cè)試 6.28-6.30項(xiàng)目的遞交3、成績(jī)?cè)u(píng)定設(shè)計(jì)成績(jī): (教師填寫)指導(dǎo)老師: (簽 字)2011 年 月 日目 錄第一章 項(xiàng)目開發(fā)計(jì)劃書11.1引言11.1.1編寫目的11.1.2背景11.2項(xiàng)目概述11.2.1工作內(nèi)容11.2.2主要參加人員21.2.3產(chǎn)品21.2.4服務(wù)21.2.5驗(yàn)收標(biāo)準(zhǔn)21.2.6本計(jì)劃的批準(zhǔn)者和批準(zhǔn)日期21.3實(shí)施計(jì)劃21.3.1工作任務(wù)的分配與人員分工21.3.2進(jìn)度31.4支持條件31.4.1計(jì)算機(jī)系統(tǒng)支持3第二章 可行

3、性分析42.1可行性研究前提42.2 對(duì)現(xiàn)有系統(tǒng)的分析42.3 建議新系統(tǒng)42.3.1 新系統(tǒng)說明42.3.2 新系統(tǒng)的流程圖52.4經(jīng)濟(jì)上可行性52.5技術(shù)可行性62.6開發(fā)工具的選擇62.7 新系統(tǒng)的影響62.8 結(jié)論6第三章 需求分析73.1市場(chǎng)需求分析73.2系統(tǒng)功能性需求分析73.2.1 功能劃分73.2.2 功能描述83.2.2.1 學(xué)生注冊(cè)信息模塊83.2.2.2 課程信息模塊83.2.2.3學(xué)生登錄功能模塊83.2.2.5選課功能模塊93.2.2.4選修課查詢模塊93.3 系統(tǒng)非功能性需求93.3.1 可用性93.3.2 可靠性93.4數(shù)據(jù)字典93.5實(shí)體-聯(lián)系圖10第四章 系

4、統(tǒng)設(shè)計(jì)114.1 總體設(shè)計(jì)114.1.1需求概述114.1.2 選修課信息管理系統(tǒng)功能設(shè)計(jì)114.1.3 系統(tǒng)層次模塊圖124.1.4 系統(tǒng)層次模塊圖124.1.5 模塊設(shè)計(jì)124.2 各模塊C語言詳細(xì)設(shè)計(jì)124.2.1 登錄模塊124.2.2 學(xué)生登錄頁面圖如下圖所示:134.2.3 學(xué)生注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn)224.2.4 學(xué)生查詢模塊的設(shè)計(jì)與實(shí)現(xiàn)264.2.5 學(xué)生選課模塊的設(shè)計(jì)與實(shí)現(xiàn)40第五章 系統(tǒng)測(cè)試425.1 測(cè)試的作用和意義425.2 測(cè)試方法435.3 測(cè)試內(nèi)容435.4 測(cè)試結(jié)果435.4.1注冊(cè)和登錄模塊測(cè)試435.4.2 查詢模塊測(cè)試455.4.3 管理員對(duì)學(xué)生選修課信息發(fā)

5、布、修改和刪除模塊測(cè)試465.5 結(jié)論48第六章 總結(jié)49參考文獻(xiàn)49第一章 項(xiàng)目開發(fā)計(jì)劃書1.1引言 1.1.1編寫目的此項(xiàng)目開發(fā)計(jì)劃書的編寫主要是為了給開發(fā)學(xué)生選修課信息管理系統(tǒng)做主要的規(guī)劃和整合,在開發(fā)過程中起到引導(dǎo)作用,以及給使用者提供簡(jiǎn)要的說明。1.1.2背景Internet的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運(yùn)作方式。人們打開網(wǎng)頁瀏覽當(dāng)天的新聞,發(fā)電子郵件給遠(yuǎn)方的朋友,使用搜索引擎查找資料,進(jìn)入網(wǎng)上商城購買商品這一切都是在使用Internet。社會(huì)的方方面面滲透著互連網(wǎng)的應(yīng)用,使得一向煩瑣的手工程序變得方便,快捷,而學(xué)校網(wǎng)上選課系統(tǒng)正是基于這一思想而發(fā)展起來的。1.2項(xiàng)目概述

6、1.2.1工作內(nèi)容學(xué)生選修課信息管理系統(tǒng)針對(duì)的用戶是學(xué)生:該系統(tǒng)需要實(shí)現(xiàn)如下功能:登錄查詢:主要是讓學(xué)生了解選修課的課程信息進(jìn)行瀏覽、查詢,包括課程類別,任課老師,上課時(shí)間和地點(diǎn)等。用戶注冊(cè):主要用于用戶注冊(cè)。用戶登陸:主要用于用戶的登錄。當(dāng)用戶輸入用戶名和密碼后經(jīng)過確認(rèn)以后可以選修自己所喜好的課程。選修課信息管理:只有當(dāng)管理員注冊(cè)登陸之后才可以使用這個(gè)功能。管理員可以發(fā)布選修課程信息和對(duì)選修課程信息進(jìn)行修改、添加或刪除。1.2.2主要參加人員 組長(zhǎng):趙浩設(shè)計(jì):趙浩、聶慧俊、文盼、胡碧山、楊晨開發(fā):趙浩、聶慧俊、文盼、胡碧山、楊晨 1.2.3產(chǎn)品1 系統(tǒng)開發(fā)計(jì)劃書2 系統(tǒng)需求說明書3 系統(tǒng)設(shè)計(jì)

7、說明書4 測(cè)試計(jì)劃5 一個(gè)能正確運(yùn)行的可執(zhí)行程序 源程序清單(有注釋)1.2.4服務(wù)安裝、維護(hù)和運(yùn)行支持從使用該系統(tǒng)開始,維護(hù)期限為一年。 1.2.5驗(yàn)收標(biāo)準(zhǔn) 各個(gè)功能均能正常使用,滿足學(xué)生的需求。1.2.6本計(jì)劃的批準(zhǔn)者和批準(zhǔn)日期 批準(zhǔn)者:顏富強(qiáng)批準(zhǔn)日期:2010年6月5日1.3實(shí)施計(jì)劃 1.3.1工作任務(wù)的分配與人員分工 組長(zhǎng): 趙浩 任務(wù): (1)系統(tǒng)總的開發(fā)計(jì)劃書 (2)每周至少組織小組討論一次,列出本周開發(fā)計(jì)劃 (3)項(xiàng)目開發(fā)進(jìn)度的管理 (4)團(tuán)隊(duì)的組織和協(xié)調(diào)設(shè)計(jì):趙浩、聶慧俊、文盼、胡碧山、楊晨 任務(wù): (1)參與小組討論(2)進(jìn)行系統(tǒng)的需求分析和系統(tǒng)設(shè)計(jì)(3)完成系統(tǒng)需求說明書和

8、系統(tǒng)設(shè)計(jì)說明書(4)編寫測(cè)試計(jì)劃,參與系統(tǒng)測(cè)試(5)協(xié)助文檔人員完成用戶相關(guān)文檔開發(fā):趙浩、聶慧俊、文盼、胡碧山、楊晨 任務(wù): (1)參與小組討論 (2)根據(jù)設(shè)計(jì)完成編碼,并注釋 (3)進(jìn)行單元測(cè)試1.3.2進(jìn)度 系統(tǒng)規(guī)劃階段: 項(xiàng)目標(biāo)志性事件 開始到完成開發(fā)階段: 項(xiàng)目開發(fā)計(jì)劃書的完成 6.5-6.7需求分析階段: 系統(tǒng)需求說明書完成 6.8-6.10設(shè)計(jì)階段: 系統(tǒng)設(shè)計(jì)說明書 6.11-6.14編碼實(shí)現(xiàn): 項(xiàng)目的形成 6.16-6.19測(cè)試階段: 測(cè)試計(jì)劃 6.20-6.23移交階段: 項(xiàng)目的遞交 6.24-6.261.4支持條件1.4.1計(jì)算機(jī)系統(tǒng)支持操作系統(tǒng)需要 windows 200

9、0以上;操作系統(tǒng)環(huán)境:能正常運(yùn)行VC+6.0;前臺(tái)開發(fā)工具:VC+6.0;前臺(tái)界面類型:html,jsp,servlet。第二章 可行性分析2.1可行性研究前提要求:滿足學(xué)生在網(wǎng)上進(jìn)行選修課課程信息進(jìn)行瀏覽、查詢,包括課程類別,任課老師,上課時(shí)間和地點(diǎn)等的基本要求,并對(duì)學(xué)生個(gè)人信息資料具有保密性,管理員可以對(duì)學(xué)生信息進(jìn)行修改,添加,刪除。目標(biāo):實(shí)現(xiàn)無紙化辦公,節(jié)省成本,方便學(xué)生選課和查詢相關(guān)信息以及管理員管理學(xué)生信息,提高工作效率。條件、假定、限制:本軟件自開發(fā)到運(yùn)行結(jié)束至少可運(yùn)行5年,開發(fā)成本不超過300人民幣,開發(fā)軟件到投入使用不超過1個(gè)月。2.2 對(duì)現(xiàn)有系統(tǒng)的分析目前,在手動(dòng)選課的情況下

10、,工作量繁雜,巨大,創(chuàng)建一個(gè)網(wǎng)上選課系統(tǒng)能大大減少工作流程,方便學(xué)生選課,查詢信息,可以更好的管理學(xué)生相關(guān)信息。2.3 建議新系統(tǒng)2.3.1 新系統(tǒng)說明新系統(tǒng)能夠?yàn)閷W(xué)生選課以及老師和系統(tǒng)管理員管理學(xué)生信息提供一個(gè)良好的平臺(tái)。使學(xué)生信息能及時(shí)準(zhǔn)確到達(dá)學(xué)生信息管理系統(tǒng)。學(xué)生,老師以及系統(tǒng)管理員能快捷、方便的找到想要的信息。而且本系統(tǒng)界面友好,操作簡(jiǎn)單,對(duì)硬件要求不高,且用戶的花費(fèi)是幾乎可以忽略的,因此十分有利于推廣。本系統(tǒng)的用戶可分為兩種:學(xué)生可以用用戶名和密碼登錄學(xué)生信息,查詢和管理自己的信息;系統(tǒng)管理員也可以用用戶名和密碼登錄管理以及了解學(xué)生的信息。2.3.2 新系統(tǒng)的流程圖圖1 新系統(tǒng)的流程

11、圖2.4經(jīng)濟(jì)上可行性開發(fā)成本:300元人民幣。效益:暫時(shí)無法具體衡量。效益/投資比:暫時(shí)無法估算。投資回收期:大約2個(gè)月。2.5技術(shù)可行性軟件需求:操作系統(tǒng)WINDOWS 2000 Advance Server以上硬件需求:賽揚(yáng)1.7G CPU、512M內(nèi)存 80G硬盤的計(jì)算機(jī)使用語言為:C語言 編輯工具為:VC+6.02.6開發(fā)工具的選擇VC+6.0作為前臺(tái)的開發(fā)工具;用記事文本作為后臺(tái)支持?jǐn)?shù)據(jù)庫;通過VC來連接到文本數(shù)據(jù)庫并對(duì)其編程來實(shí)現(xiàn)各種功能。2.7 新系統(tǒng)的影響l 設(shè)備的影響:創(chuàng)建新系統(tǒng)需要添置一臺(tái)性能良好的服務(wù)器。l 人員的影響:新系統(tǒng)需要一個(gè)專職維護(hù)人員。l 用戶的影響:用戶可準(zhǔn)

12、確、高效的發(fā)布和查找信息。2.8 結(jié)論 綜上所述,學(xué)生選修課信息管理系統(tǒng)在技術(shù)非常成熟,主客觀條件都具備,且具有良好的效益,因此開發(fā)此系統(tǒng)是可行的。為了提高學(xué)生選課效率,方便查找和管理學(xué)生信息,建議立即開發(fā)研究。第三章 需求分析3.1市場(chǎng)需求分析因?yàn)閷W(xué)生選課不僅涉及大量的選修課而且學(xué)生數(shù)目也很多如果人為操作將面臨的很大的工作量而且出錯(cuò)率將會(huì)比較高,所以開發(fā)一個(gè)學(xué)生選修課信息管理系統(tǒng)將會(huì)大大提高學(xué)校學(xué)生選課的效率,以及節(jié)省大量的人力物力,大大降低出錯(cuò)的概率,所以將會(huì)有較大的市場(chǎng)需求分析。3.2系統(tǒng)功能性需求分析3.2.1 功能劃分 圖2 需求規(guī)定3.2.2 功能描述3.2.2.1 學(xué)生注冊(cè)信息模

13、塊學(xué)生信息添加:學(xué)生進(jìn)入注冊(cè)頁面,輸入學(xué)號(hào)、密碼、院系、班級(jí)、年級(jí),然后進(jìn)行提交。系統(tǒng)把數(shù)據(jù)錄入學(xué)生資料數(shù)據(jù)庫中。3.2.2.2 課程信息模塊(1)課程信息添加:管理員用戶登錄后,進(jìn)入課程信息管理功能單元,輸入課程號(hào),課序號(hào),課程名稱,教師姓名,開設(shè)院系這些數(shù)據(jù)后提交數(shù)據(jù),完成課程信息地添加操作,此時(shí)在選課表中將出現(xiàn)剛才添加的課程的有關(guān)信息。(2)課程信息修改:管理員用戶登錄后,進(jìn)入課程信息管理功能單元,如果是已經(jīng)登錄了,選擇要修改的課序號(hào),選定后就可以修改該選定課程的課程編號(hào),課序號(hào),課程名稱,教師姓名,開設(shè)院系,提交后就得到該門課程修改后的信息。(3)課程信息刪除:管理員用戶登錄后,進(jìn)入課

14、程信息管理功能單元,如果是已經(jīng)登錄了,選擇要?jiǎng)h除的課程的課序號(hào),提交后,就將選定課程刪除了。(4)已選課程信息的維護(hù):管理員用戶登錄后,進(jìn)入選課程功能單元,就可以看到學(xué)生已選的課程,可以通過選擇相應(yīng)的課程號(hào)來將相應(yīng)學(xué)生的選課記錄刪除。3.2.2.3學(xué)生登錄功能模塊輸入學(xué)生的用戶名和密碼,然后連接數(shù)據(jù)庫,檢驗(yàn)用戶登錄信息。如果存在,則進(jìn)入選課頁面;如果用戶名不存在或密碼不正確,則給出登錄失敗的提示框。3.2.2.5選課功能模塊進(jìn)入選課頁面,選定所要選的課程后,然后提交。系統(tǒng)自動(dòng)修改課程數(shù)據(jù)庫的信息,然后在學(xué)生數(shù)據(jù)庫添加相關(guān)已選定的課程信息。3.2.2.4選修課查詢模塊該學(xué)生登錄后進(jìn)入選修課選課頁

15、面后,從學(xué)生數(shù)據(jù)庫中調(diào)出該學(xué)生的信息以及已選的課程信息,顯示在下面。3.3 系統(tǒng)非功能性需求3.3.1 可用性本系統(tǒng)的潛在用戶群是各個(gè)系的學(xué)生具有的身份可能會(huì)有較大的差異,因此對(duì)本系統(tǒng)的可操作性和易用性都提出了很高的要求。本系統(tǒng)應(yīng)能讓任何用戶除管理員外都不必借助任何操作手冊(cè)或相關(guān)的系統(tǒng)幫助就能順利地進(jìn)行各種操作。3.3.2 可靠性系統(tǒng)建成后預(yù)計(jì)將有大量的學(xué)生在此查詢相關(guān)的信息以及管理員在上面發(fā)布學(xué)生的成績(jī),因此對(duì)系統(tǒng)的穩(wěn)定性也有比較高的要求。一旦系統(tǒng)不能正常工作或系統(tǒng)出錯(cuò),會(huì)給學(xué)生帶很大不便,帶來的損失也將導(dǎo)致失去用戶對(duì)系統(tǒng)的信任。3.4數(shù)據(jù)字典通過系統(tǒng)需求分析,對(duì)學(xué)生選修課信息管理系統(tǒng)編制數(shù)

16、據(jù)字典如下:各主要數(shù)據(jù)流的定義如表1至表3:名字:學(xué)生檔案描述:學(xué)生確認(rèn)信息定義:學(xué)生檔案=姓名+學(xué)號(hào)+年級(jí)+班級(jí)+院系位置:學(xué)生檔案數(shù)據(jù)庫管理平臺(tái) 學(xué)生查詢成績(jī)和信息 表1名字:學(xué)生登錄信息描述:確認(rèn)是否是已經(jīng)添加用戶的注冊(cè)信息定義:用戶登錄信息=用戶名+密碼位置:登錄界面 表2名字:課程管理信息描述:管理員需要對(duì)課程記錄進(jìn)行管理的信息定義:課程管理信息=【課程添加】【課程刪除】【課程修改】位置:課程數(shù)據(jù)庫管理平臺(tái) 表33.5實(shí)體-聯(lián)系圖根據(jù)需求分析,可以畫出系統(tǒng)E-R圖如下:圖3 學(xué)生選修課信息管理系統(tǒng)E-R圖第四章 系統(tǒng)設(shè)計(jì)4.1 總體設(shè)計(jì)4.1.1需求概述本系統(tǒng)的目標(biāo)是實(shí)現(xiàn)向?qū)W生提供選

17、修課的課程信息的查詢,為學(xué)生選課和管理員發(fā)布和修改課程信息提供一個(gè)良好的平臺(tái)。因此,本系統(tǒng)需要實(shí)現(xiàn)對(duì)發(fā)布的信息的查詢功能,發(fā)布和管理已發(fā)布的選修課信息的功能。而在管理員發(fā)布信息前需要在系統(tǒng)注冊(cè),登錄。即系統(tǒng)還需實(shí)現(xiàn)用戶的注冊(cè)、登錄功能。4.1.2 選修課信息管理系統(tǒng)功能設(shè)計(jì)根據(jù)系統(tǒng)需求分析和系統(tǒng)功能模塊結(jié)構(gòu)圖來看,該系統(tǒng)應(yīng)具備如下基本功能:l 學(xué)生選課的查詢l 學(xué)生注冊(cè)l 已注冊(cè)管理員的發(fā)布、修改、刪除選修課程信息其功能模塊結(jié)構(gòu)圖如下:學(xué)生登錄選課查詢課程系統(tǒng)管理員選課信息圖4 程序功能模塊圖4.1.3 系統(tǒng)層次模塊圖 學(xué)生選課系統(tǒng)登陸/注冊(cè)選課查詢C語言的設(shè)計(jì)4.1.4 系統(tǒng)層次模塊圖4.1

18、.5 模塊設(shè)計(jì)(1) 用戶注冊(cè)模塊:填寫用戶名、密碼、確認(rèn)密碼(2) 用戶登錄模塊:填寫已注冊(cè)的用戶名稱,填寫正確的密碼,進(jìn)入主控制頁面。(3) 用戶選課模塊:學(xué)生可以根據(jù)選修課信息選擇自己所要選擇的課程。 (4) 用戶查詢模塊:可以進(jìn)行查看所選課程的操作。4.2 各模塊C語言詳細(xì)設(shè)計(jì)4.2.1 登錄模塊功能:本模塊主要用于對(duì)用戶身份進(jìn)行鑒別。用戶通過表單提供用戶名和密碼信息,系統(tǒng)根據(jù)用戶提供的登錄信息對(duì)用戶進(jìn)行身份查詢鑒別。如果身份合法,則將用戶導(dǎo)向系統(tǒng)的選課頁面。輸入:用戶名、密碼處理:(1) 輸入用戶的登錄信息:在頁面提供的表單出輸入用戶的用戶名和密碼信息,點(diǎn)擊“登錄”按鈕提交表單信息到

19、身份驗(yàn)證頁面?;螯c(diǎn)擊“重置”按鈕,重新輸入。(2) 用戶身份進(jìn)行驗(yàn)證:連接數(shù)據(jù)庫,打開用戶文本檔案信息,檢驗(yàn)用戶登錄信息。以輸入數(shù)據(jù)“用戶名”為查詢條件創(chuàng)建數(shù)據(jù)集查看輸入用戶名是否存在。如果存在,繼續(xù)檢驗(yàn)輸入的密碼是否正確。密碼和用戶名都正確,則進(jìn)入選課頁面;如果用戶名不存在或密碼不正確,則給出登錄失敗的提示框。輸出:學(xué)生選課頁面4.2.2 學(xué)生登錄頁面圖如下圖所示:登錄后通過此方法從檢索是否有此用戶:#include stdafx.h#include Ver1.h#include Ver1Dlg.h#include MainWindow.h#include AdminDlg.h#includ

20、e Student.h#include #include using namespace std;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWi

21、zard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/A

22、FX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CVer1Dlg dialogCVer1Dlg:CVer1Dlg(CWnd* pParent /*=NULL*/): CDi

23、alog(CVer1Dlg:IDD, pParent)/AFX_DATA_INIT(CVer1Dlg)m_strUserName = _T();m_strPassword = _T();m_iAdmin = 1;m_nCurLogin = -1;m_bIsExistUser = FALSE;/ 默認(rèn)為不存在用戶/m_StuInfo.clear();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDI_ICON2

24、);m_brush.CreateSolidBrush(RGB(208,231,250);void CVer1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CVer1Dlg)DDX_Text(pDX, IDC_USER, m_strUserName);DDX_Text(pDX, IDC_PASSWORD, m_strPassword);DDX_Radio(pDX, IDC_ADMIN, m_iAdmin);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CVer1Dlg

25、, CDialog)/AFX_MSG_MAP(CVer1Dlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(BTN_RESET, OnReset)ON_BN_CLICKED(BTN_ENTER, OnEnter)ON_WM_CTLCOLOR()/AFX_MSG_MAPEND_MESSAGE_MAP()/ CVer1Dlg message handlersBOOL CVer1Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to s

26、ystem menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applicat

27、ions main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization here/SetDialogBkCoLoadStudentInfo();/ Load student infomationreturn TRUE; / return TRUE unless you set the focus to a controlvoid CVer1Dlg:OnSysCommand(UINT n

28、ID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically don

29、e for you by the framework.void CVer1Dlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;G

30、etClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CVer1Dlg:OnQueryDragIcon()re

31、turn (HCURSOR) m_hIcon;void CVer1Dlg:OnReset() / TODO: Add your control notification handler code herem_strUserName = _T();m_strPassword = _T();m_iAdmin = 1;UpdateData(FALSE);void CVer1Dlg:OnEnter() / TODO: Add your control notification handler code hereUpdateData(TRUE);switch (m_iAdmin)case 1:if (!

32、m_strUserName.GetLength()MessageBox(用戶名不能為空!, 提示,MB_OK |MB_ICONINFORMATION);return;if (checkPassword()ShowWindow(SW_HIDE);/先隱藏登錄窗口CMainWindow dlg;dlg.pDlg=this;dlg.DoModal();break;case 0:if(m_strUserName=admin & m_strPassword=admin)ShowWindow(SW_HIDE);/先隱藏登錄窗口CAdminDlg dlg;dlg.pDlg=this;dlg.DoModal(

33、);elseMessageBox(用戶名或密碼錯(cuò)誤!t, 提示,MB_OK | MB_ICONINFORMATION);break;ShowWindow(SW_NORMAL);m_strUserName=;m_strPassword=;UpdateData(FALSE);void CVer1Dlg:LoadStudentInfo()/ Load student infomationifstream infile;infile.open(datastudent.txt,ios:in);if (infile)char buf50;while(!infile.eof()CStudent tmpStu

34、Info;infilebuf;tmpStuInfo.m_strID=buf;infilebuf;tmpStuInfo.m_strName=buf;infilebuf;tmpStuInfo.m_strPassword=buf;infilebuf;tmpStuInfo.m_strDepartment=buf;infilebuf;tmpStuInfo.m_strGreade=buf;infilebuf;tmpStuInfo.m_strClass=buf;infiletmpStuInfo.m_nCourseCnt;for (int i=0; inCourseID;tmpStuInfo.m_nSelCo

35、urse.insert(nCourseID);m_StuInfo.push_back(tmpStuInfo);infile.close();BOOL CVer1Dlg:checkPassword()UpdateData();for (int i=0; i!=m_StuInfo.size(); i+)if (m_StuInfoi.m_strID = m_strUserName)if(m_StuInfoi.m_strPassword != m_strPassword)MessageBox(密碼錯(cuò)誤, 請(qǐng)重新輸入!, 提示,MB_OK | MB_ICONINFORMATION);m_strPassw

36、ord=;UpdateData(FALSE);return FALSE;elsem_nCurLogin=i;return TRUE;MessageBox(用戶名不存在, 請(qǐng)重新輸入!, 提示,MB_OK | MB_ICONINFORMATION);m_strPassword=;UpdateData(FALSE);return FALSE;void CVer1Dlg:SaveStudentInfo()ofstream outfile;outfile.open(datastudent.txt,ios:out);for (int i=0; i!=m_StuInfo.size(); i+)if(i)

37、outfilen;outfile(LPCTSTR)(m_StuInfoi.m_strID);/ 寫入學(xué)號(hào)outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strName);/ 寫入姓名outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strPassword);/ 寫入密碼outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strDepartment);outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strGreade);outfilet;outfile(LPCTSTR)(m_StuI

38、nfoi.m_strClass);outfilet;outfilem_StuInfoi.m_nCourseCnt;/ 寫入所選課程總數(shù)/ 寫入各門課程編號(hào)for (set:iterator it=m_StuInfoi.m_nSelCourse.begin();it !=m_StuInfoi.m_nSelCourse.end(); it+)outfiletGetDlgCtrlID()=IDC_ADMIN | pWnd-GetDlgCtrlID()=IDC_STUDENT)pDC-SetBkMode(TRANSPARENT);pDC-SetTextColor(RGB(0,0,255);return

39、 m_brush;/ TODO: Return a different brush if the default is not desiredreturn hbr;4.2.3 學(xué)生注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn) 通過以上的界面添加學(xué)生信息,實(shí)現(xiàn)代碼如下:#include stdafx.h#include Ver1.h#include AddStudent.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAddStudent dialogCAddStudent:CAddSt

40、udent(CWnd* pParent /*=NULL*/): CDialog(CAddStudent:IDD, pParent)/AFX_DATA_INIT(CAddStudent)m_strSno = _T();m_strSname = _T();m_strClass = _T();/AFX_DATA_INITvoid CAddStudent:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAddStudent)DDX_Control(pDX, IDC_ComboDept, m_Dep

41、artment);DDX_Control(pDX, IDC_ComboGreade, m_Greade);DDX_Text(pDX, IDC_Sno, m_strSno);DDX_Text(pDX, IDC_Sname, m_strSname);DDX_Text(pDX, IDC_Sclass, m_strClass);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAddStudent, CDialog)/AFX_MSG_MAP(CAddStudent)ON_BN_CLICKED(IDC_BtnReset, OnBtnReset)ON_BN_CLICKED(IDC_BtnAd

42、d, OnBtnAdd)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAddStudent message handlersvoid CAddStudent:InitControls()/ 年級(jí)m_Greade.AddString(2008級(jí));m_Greade.AddString(2009級(jí));m_Greade.AddString(2010級(jí));m_Greade.SetCurSel(1);/ 院系m_Department.AddString(計(jì)算機(jī)科學(xué)技術(shù)系);m_Department.AddString(中文系);m_Department.AddString(外語系);m

43、_Department.AddString(經(jīng)濟(jì)與管理科學(xué)系);m_Department.AddString(教育科學(xué)系);m_Department.AddString(音樂系);m_Department.AddString(美術(shù)系);m_Department.AddString(數(shù)學(xué)與應(yīng)用數(shù)學(xué)系);m_Department.AddString(物理與信息工程系);m_Department.AddString(通信與控制工程系);m_Department.AddString(化學(xué)與材料科學(xué)系);m_Department.AddString(政治與法律系);m_Department.AddStr

44、ing(體育科學(xué)系);m_Department.AddString(生命科學(xué)系);m_Department.AddString(思想政治理論課教學(xué)部);m_Department.SetCurSel(0);void CAddStudent:OnBtnReset() / TODO: Add your control notification handler code herem_strClass=;m_strSname=;m_strSno=;UpdateData(FALSE);void CAddStudent:OnBtnAdd() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_strSno.GetLength()SaveStudentInfo(s);pAdminDlg-pDlg-m_StuInfo.push_back(s);pAdminDlg-vStudent.push_back(s);SetDlgItemText(IDC_Result,學(xué)生信息添加成功!);m_strSno=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論