基于C++的學(xué)生宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-本科生畢業(yè)論文終稿_第1頁(yè)
基于C++的學(xué)生宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-本科生畢業(yè)論文終稿_第2頁(yè)
基于C++的學(xué)生宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-本科生畢業(yè)論文終稿_第3頁(yè)
基于C++的學(xué)生宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-本科生畢業(yè)論文終稿_第4頁(yè)
基于C++的學(xué)生宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-本科生畢業(yè)論文終稿_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

吉首大學(xué)本科生畢業(yè)論文JISHOUUNIVERSITY本科生畢業(yè)設(shè)計(jì)題目:基于C++的學(xué)生宿舍管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)作者:學(xué)號(hào):所屬學(xué)院:信息科學(xué)與工程學(xué)院專業(yè)年級(jí):指導(dǎo)教師:李建鋒職稱:副教授完成時(shí)間:2014年5月23日吉首大學(xué)教務(wù)處制目錄TOC\o"1-2"\h\u76摘要 第1章緒論1.1課題設(shè)計(jì)背景及現(xiàn)狀隨著計(jì)算機(jī)產(chǎn)業(yè)的飛速發(fā)展,電子計(jì)算機(jī)已經(jīng)被廣泛的應(yīng)用于文字處理、信息管理、輔助教學(xué)、輔助設(shè)計(jì)以及人們的日常生活當(dāng)中。尤其是在計(jì)算機(jī)的操作系統(tǒng)具有了圖形化的界面后,使用計(jì)算機(jī)早已經(jīng)不再是某些專業(yè)人員的特權(quán),各行各業(yè)的人們不需要經(jīng)過專業(yè)化的訓(xùn)練就能自如的在計(jì)算機(jī)上進(jìn)行各種復(fù)雜的操作。學(xué)生宿舍管理系統(tǒng)對(duì)于一所學(xué)校來說將是必不可少的組成部分。當(dāng)今社會(huì)是個(gè)飛速進(jìn)步的世界,原始的記錄方式早已經(jīng)被社會(huì)所淘汰,計(jì)算機(jī)化管理正是適應(yīng)時(shí)代的產(chǎn)物。21世紀(jì)的今天,信息社會(huì)占據(jù)著主流地位,計(jì)算機(jī)在各行中的運(yùn)用已經(jīng)得到了普及,自動(dòng)化、信息化的管理也越來越廣泛地應(yīng)用于各個(gè)領(lǐng)域。目前很多學(xué)校還停留在宿舍管理人員依靠手工記錄數(shù)據(jù)的最初階段,手工記錄相對(duì)于規(guī)模較小的學(xué)校來說還可以勉強(qiáng)接受,但相對(duì)于學(xué)生信息量比較龐大,需要記錄存檔的數(shù)據(jù)較多的高校來說,人工記錄是相當(dāng)?shù)穆闊┑摹6耶?dāng)查找某條記錄的時(shí)候,由于數(shù)據(jù)量非常龐大,還只能靠人工一條一條的去查找,這樣不但麻煩而且浪費(fèi)了許多時(shí)間,效率也就比較低。針對(duì)以上這些情況,設(shè)計(jì)一個(gè)學(xué)生宿舍管理系統(tǒng),使系統(tǒng)能夠解決當(dāng)前存在的這些問題。此系統(tǒng)采用的是計(jì)算機(jī)化管理,系統(tǒng)做到盡量人性化,讓使用者能夠感覺到操作非常的方便,管理人員只需要做的就是將數(shù)據(jù)錄入到系統(tǒng)的數(shù)據(jù)庫(kù)中去。由于數(shù)據(jù)庫(kù)存儲(chǔ)容量很大,而且非常穩(wěn)定,適合長(zhǎng)時(shí)間保存,也不易丟失。這毫無疑問可以解決學(xué)校在手工宿舍管理所存在的各種問題,能夠更方便的查詢以及統(tǒng)計(jì)各項(xiàng)信息。本系統(tǒng)具有安全性高、穩(wěn)定性好、運(yùn)行速度快的優(yōu)點(diǎn),并且能夠非??焖俚牟樵儗W(xué)校所需的各項(xiàng)信息[1]。第2章相關(guān)知識(shí)點(diǎn)介紹2.1C++知識(shí)介紹MicrosoftVisualC++,(簡(jiǎn)稱VisualC++、MSVC、VC++或VC)微軟公司的C++開發(fā)工具,具有集成開發(fā)環(huán)境,可編輯C語(yǔ)言,C++以及C++/CLI等編程語(yǔ)言。VC++整合了非常便利的除錯(cuò)工具,而且整合了微軟視窗程式設(shè)計(jì)(WindowsAPI)、三維動(dòng)畫DirectXAPI,Microsoft.NET框架。目前最新的版本是MicrosoftVisualC++2013。它利用MFC類庫(kù)的強(qiáng)大優(yōu)勢(shì),使其成為Windows平臺(tái)最為優(yōu)秀的開發(fā)工具之一,也是目前功能最為強(qiáng)大的程序開發(fā)平臺(tái)之一。MFC是采用VisualC++開發(fā)環(huán)境編寫Windows應(yīng)用程序的最佳選擇,它是一組C++類,采用它可以為用戶定制特定的Windows應(yīng)用程序[2]。C++這個(gè)名字是RickMascitti于1983年中所建議的,并于1983年12月首次使用。更早以前,尚在研究階段的發(fā)展中語(yǔ)言曾被稱為“newC”,之后是“CwithClasses”。在計(jì)算機(jī)科學(xué)中,C++仍被稱為C語(yǔ)言的上層結(jié)構(gòu)。它最后得名于C語(yǔ)言中的“++”操作符(其對(duì)變量的值進(jìn)行遞增)。而且在共同的命名約定中,使用“+”以表示增強(qiáng)的程序。Stroustrup說:“這個(gè)名字象征著源自于C語(yǔ)言變化的自然演進(jìn)”。C++以擁有“語(yǔ)法高亮”,IntelliSense(自動(dòng)完成功能)以及高級(jí)除錯(cuò)功能而著稱。使用它,用戶可以進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。用戶還能在調(diào)試期間重新編譯被修改的代碼,而不用重新啟動(dòng)正在調(diào)試的程序。其編譯和建置系統(tǒng)以最小重建功能、預(yù)編譯頭文件及累加連結(jié)著稱[3]。C++課程是計(jì)算機(jī)專業(yè)的專業(yè)基礎(chǔ)課程,具有較強(qiáng)的理論性和非常高的實(shí)踐操作性。該課程的主要作用和目的是:培養(yǎng)學(xué)生面向?qū)ο缶幊趟枷?,?xùn)練學(xué)生的編程思維,加強(qiáng)學(xué)生的技能訓(xùn)練,培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)能力和團(tuán)隊(duì)合作的意識(shí),以便更好地適應(yīng)將來工作崗位[4]。2.2ADO知識(shí)介紹ADO(activeXdataobjects)是基于組件的數(shù)據(jù)庫(kù)編程接口,它是一個(gè)和編程語(yǔ)言無關(guān)的COM組件系統(tǒng)ADO的精髓在于利用簡(jiǎn)單的COM指令來快速方便地訪問ODBC數(shù)據(jù)源,微軟的表格、列表框等ActiveX控件,使得用戶可以簡(jiǎn)便地利用ADO工作.ADO應(yīng)用程序通過OLEDB提供程序訪問數(shù)據(jù).雖然ADO應(yīng)用程序仍能對(duì)SQLServerODBC驅(qū)動(dòng)程序使用ODBC的OLEDB提供程序,但使用SQLServer的OLEDB提供程序效率更高[5]。在MicrosoftVisualC++編輯器中,可以使用ADO對(duì)象以及ADO的附加組件(稱為MicrosoftADOExtensionsforDLLandSecurity(ADOX))來創(chuàng)建或修改表和查詢、檢驗(yàn)數(shù)據(jù)庫(kù)、或者訪問外部數(shù)據(jù)源。還可在代碼中使用ADO來操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。2.3SQLSever2000知識(shí)介紹SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)版本。該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。具備以下幾個(gè)特性:1、數(shù)據(jù)結(jié)構(gòu)化2、數(shù)據(jù)共享性高、冗余度小、易擴(kuò)充3、數(shù)據(jù)獨(dú)立性高4、統(tǒng)一的數(shù)據(jù)管理和控制[6]具備以下幾個(gè)優(yōu)點(diǎn):1、系統(tǒng)管理先進(jìn),支持Windows圖形化管理工具,支持本地和遠(yuǎn)程的系統(tǒng)管理和配置。2、強(qiáng)壯的事務(wù)處理功能,采用各種方法保證數(shù)據(jù)的完整性。3、支持對(duì)稱多處理器結(jié)構(gòu)、存儲(chǔ)過程、ODBC,并具有自主的SQL語(yǔ)言。SQLServer以其內(nèi)置的數(shù)據(jù)復(fù)制功能、強(qiáng)大的管理工具、與Internet的緊密集成和開放的系統(tǒng)結(jié)構(gòu)為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個(gè)出眾的數(shù)據(jù)庫(kù)平臺(tái)。2.4本章小結(jié)本章重點(diǎn)介紹了開發(fā)“學(xué)生宿舍管理系統(tǒng)”所用到的開發(fā)工具與其應(yīng)用的數(shù)據(jù)庫(kù)系統(tǒng)。對(duì)C++的說明與相關(guān)控件技術(shù)進(jìn)行了系統(tǒng)的介紹。SQLServer2000作為應(yīng)用最為廣泛的數(shù)據(jù)庫(kù)系統(tǒng),它最大限度的支持了系統(tǒng)的需求,實(shí)現(xiàn)了本系統(tǒng)的各項(xiàng)功能。通過兩種工具的有機(jī)結(jié)合開發(fā)出的系統(tǒng)充分地滿足了用戶的需求。本章通過介紹面向?qū)ο蟮木幊桃约皟煞N工具的發(fā)展與其相應(yīng)的技術(shù),使大多數(shù)人明白了本系統(tǒng)的開發(fā)原理與相關(guān)技術(shù)的應(yīng)用。第3章系統(tǒng)需求分析3.1功能需求3.1.1基本功能需求本課題將要實(shí)現(xiàn)的是高校學(xué)生宿舍管理系統(tǒng),因此在設(shè)計(jì)該系統(tǒng)時(shí),要盡可能的貼近學(xué)生實(shí)際,便于用戶操作。系統(tǒng)在實(shí)現(xiàn)中應(yīng)該具有如下功能:1.系統(tǒng)要求用戶必須要輸入正確的用戶名和密碼才能進(jìn)入該系統(tǒng)。2.系統(tǒng)應(yīng)該提供學(xué)生住宿情況的基本信息登記。3.系統(tǒng)應(yīng)該提供查詢功能,以方便用戶可對(duì)學(xué)生的基本信息查詢(要實(shí)現(xiàn)可按多種條件的查詢)以及樓房信息的查詢。4.系統(tǒng)應(yīng)該提供增加、刪除、修改用戶帳戶的功能以及對(duì)帳戶的權(quán)限進(jìn)行設(shè)定。5.系統(tǒng)還應(yīng)具有增加、刪除、修改學(xué)生基本信息的功能。6.系統(tǒng)應(yīng)該具有統(tǒng)計(jì)學(xué)生人數(shù)(如總?cè)藬?shù),男女生人數(shù)等)的功能。7.系統(tǒng)應(yīng)具有每學(xué)期學(xué)生入學(xué)和離校的注冊(cè)登記。8.系統(tǒng)應(yīng)具有來訪人員的詳細(xì)登記。9.系統(tǒng)應(yīng)具有學(xué)生個(gè)人物品進(jìn)出宿舍情況的詳細(xì)登記。10.系統(tǒng)應(yīng)具有對(duì)學(xué)生宿舍的衛(wèi)生和出勤進(jìn)行登記[7]。3.1.2用戶界面需求學(xué)生宿舍管理系統(tǒng)應(yīng)當(dāng)提供簡(jiǎn)單、明了、層次清晰的用戶操作界面,使用戶操作的時(shí)候能夠一目了然。以讓用戶在使用該系統(tǒng)錄入、查詢、修改信息的時(shí)候能夠更加的方便、快捷。3.2性能需求3.2.1系統(tǒng)安全性學(xué)生宿舍管理系統(tǒng)中的用戶管理以及學(xué)生宿舍管理中的信息是很重要的,一般不允許隨意篡改的,所以在系統(tǒng)的管理權(quán)限上應(yīng)當(dāng)進(jìn)行嚴(yán)格控制,具體思想如下:要想對(duì)該學(xué)生宿舍管理系統(tǒng)進(jìn)行操作就應(yīng)當(dāng)具有某些操作權(quán)限。沒有權(quán)限的用戶將不能通過任何渠道來登錄該系統(tǒng),查看該系統(tǒng)的任何信息和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。在上述要求基礎(chǔ)上,可以為此系統(tǒng)設(shè)定兩種登錄方式,即超級(jí)用戶登錄和普通用戶登錄,沒有超級(jí)用戶或者普通用戶的用戶名和密碼,任何人都不可以登錄該系統(tǒng),而且超級(jí)用戶可以操作很多普通用戶不能操作的模塊。3.3數(shù)據(jù)庫(kù)選擇數(shù)據(jù)庫(kù)指的是以一定方式儲(chǔ)存在一起、能為多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。近年來,數(shù)據(jù)庫(kù)管理系統(tǒng)已經(jīng)從專用的應(yīng)用程序包迅速地發(fā)展為通用系統(tǒng)軟件,目前有很多種數(shù)據(jù)庫(kù),最典型的如ORACLE、MySQL、ACCESS。其中ORACLE是適用于數(shù)據(jù)量大,并發(fā)操作多的系統(tǒng),相對(duì)于學(xué)生宿舍管理系統(tǒng)這種不是特別大的管理系統(tǒng)而言,不必要選用ORACLE,而ACCESS是小型的數(shù)據(jù)庫(kù),可存儲(chǔ)的數(shù)據(jù)量相對(duì)來說最少,且同時(shí)訪問客戶端不能多于4個(gè)。因此也不選用ACCESS數(shù)據(jù)庫(kù)。考慮到以上實(shí)際情況,對(duì)于學(xué)生基本信息必須的變動(dòng),還有各種數(shù)據(jù)信息的數(shù)據(jù)量的變化,故選用MySQL作為數(shù)據(jù)庫(kù)開發(fā)軟件。SQLServer2000是MySQL中一種常用的關(guān)系數(shù)據(jù)庫(kù),能存放和讀取大量的數(shù)據(jù),管理眾多并發(fā)的用戶,故選用SQLServer2000數(shù)據(jù)庫(kù)。3.4開發(fā)環(huán)境本系統(tǒng)是用WindowsXp系統(tǒng)為開發(fā)平臺(tái),用MicrosoftVisualC++編程語(yǔ)言中的MFC和SQLServer2000數(shù)據(jù)庫(kù)來對(duì)高校學(xué)生宿舍管理系統(tǒng)所需要的功能進(jìn)行實(shí)現(xiàn)。3.5本章小結(jié) 本章非常具體地介紹了系統(tǒng)的需求分析,通過系統(tǒng)的需求分析而得出了系統(tǒng)的總體設(shè)計(jì)方向,確定了系統(tǒng)的開發(fā)框架。本章對(duì)系統(tǒng)的實(shí)現(xiàn)的功能作了簡(jiǎn)單的概述,得出了系統(tǒng)的主體流程。通過對(duì)系統(tǒng)的各項(xiàng)分析,得出了實(shí)現(xiàn)系統(tǒng)功能的要用到的基本方法,并確定了使用的開發(fā)工具。

第4章宿舍管理系統(tǒng)詳細(xì)設(shè)計(jì)學(xué)生宿舍管理系統(tǒng)4.1系統(tǒng)功能模塊圖學(xué)生宿舍管理系統(tǒng)系統(tǒng)管理系統(tǒng)管理出入登記學(xué)生管理查詢管理宿舍管理出入登記學(xué)生管理查詢管理宿舍管理統(tǒng)計(jì)分析幫統(tǒng)計(jì)分析幫助退出系統(tǒng)用戶管理退出系統(tǒng)用戶管理空宿舍查詢新生入住宿舍來訪人員登記物品進(jìn)出登記宿舍信息查詢?nèi)藬?shù)統(tǒng)計(jì)空宿舍查詢新生入住宿舍來訪人員登記物品進(jìn)出登記宿舍信息查詢?nèi)藬?shù)統(tǒng)計(jì)關(guān)于物品進(jìn)出查詢學(xué)生出勤查詢來訪人員查詢學(xué)生注冊(cè)查詢宿舍管理學(xué)生信息錄入物品進(jìn)出查詢學(xué)生出勤查詢來訪人員查詢學(xué)生注冊(cè)查詢宿舍管理學(xué)生信息錄入學(xué)生財(cái)務(wù)登記學(xué)生注冊(cè)管理學(xué)生離校登記學(xué)生出勤管理圖1系統(tǒng)功能模塊圖在整體設(shè)計(jì)中,我們將宿舍管理系統(tǒng)分為七個(gè)大的模塊:系統(tǒng)管理模塊、宿舍管理模塊、學(xué)生管理模塊、出入登記模塊、查詢管理模塊、統(tǒng)計(jì)分析模塊、幫助模塊。每個(gè)模塊將實(shí)現(xiàn)不同的功能,下面將具體進(jìn)行介紹。4.1.1系統(tǒng)管理模塊系統(tǒng)管理模塊包括:用戶管理、退出系統(tǒng)兩個(gè)部分。1、用戶管理:實(shí)現(xiàn)所有用戶信息的增刪查改功能以及顯示用戶。2、退出系統(tǒng):實(shí)現(xiàn)正常退出宿舍管理系統(tǒng)。4.1.2宿舍管理模塊宿舍管理模塊包括:宿舍管理、新生入住宿舍兩個(gè)大的部分。1、宿舍管理:實(shí)現(xiàn)對(duì)宿舍的登記。2、新生入住宿舍:實(shí)現(xiàn)對(duì)學(xué)生入住宿舍信息登記的增刪查改。4.1.3學(xué)生管理模塊學(xué)生管理模塊包括:學(xué)生信息錄入、學(xué)生財(cái)物登記、學(xué)生注冊(cè)管理、學(xué)生離校登記、學(xué)生出勤管理、來訪人員登記、物品進(jìn)出登記五個(gè)部分。1、學(xué)生信息錄入:實(shí)現(xiàn)對(duì)學(xué)生基本信息的登記。2、學(xué)生財(cái)務(wù)登記:實(shí)現(xiàn)對(duì)學(xué)生所擁有財(cái)務(wù)的登記。3、學(xué)生注冊(cè)管理:實(shí)現(xiàn)對(duì)學(xué)生新學(xué)期返校的注冊(cè)。4、學(xué)生離校管理:實(shí)現(xiàn)對(duì)學(xué)生放假離校的登記。5、學(xué)生出勤管理:實(shí)現(xiàn)對(duì)學(xué)生查寢情況的登記。4.1.4出入登記模塊出入登記模塊包括:來訪人員登記和物品進(jìn)出登記兩個(gè)部分。1、來訪人員登記:實(shí)現(xiàn)對(duì)來訪人員基本信息的登記。2、物品進(jìn)出登記:實(shí)現(xiàn)對(duì)學(xué)生進(jìn)出宿舍所攜帶貴重物品的登記。4.1.5查詢管理模塊信息查詢模塊基本上包括:宿舍信息查詢、來訪人員查詢、學(xué)生出勤查詢、物品進(jìn)出查詢、學(xué)生注冊(cè)查詢、空宿舍查詢六個(gè)部分。1、宿舍信息查詢:實(shí)現(xiàn)對(duì)宿舍信息的基本查詢。2、來訪人員查詢:實(shí)現(xiàn)對(duì)來訪人員信息的查詢。3、學(xué)生出勤查詢:實(shí)現(xiàn)對(duì)學(xué)生查寢情況的查詢。4、物品進(jìn)出查詢:實(shí)現(xiàn)對(duì)學(xué)生進(jìn)出攜帶物品的查詢。5、學(xué)生注冊(cè)查詢:實(shí)現(xiàn)對(duì)學(xué)生新學(xué)期返校信息的查詢。6、空宿舍查詢:實(shí)現(xiàn)對(duì)學(xué)校未入住宿舍情況的查詢。4.1.6統(tǒng)計(jì)分析模塊統(tǒng)計(jì)分析模塊包括:人數(shù)統(tǒng)計(jì)。1、人數(shù)統(tǒng)計(jì):實(shí)現(xiàn)統(tǒng)計(jì)學(xué)生總?cè)藬?shù)、男生人數(shù)、女生人數(shù)、學(xué)院人數(shù)等。4.1.7幫助模塊幫助模塊包括:關(guān)于模塊。1、關(guān)于模塊:是對(duì)學(xué)生宿舍管理系統(tǒng)開發(fā)者相關(guān)信息的一個(gè)簡(jiǎn)單介紹。4.2系統(tǒng)E-R圖在我所設(shè)計(jì)的模塊中,主要涉及到樓房、宿舍和學(xué)生這三個(gè)實(shí)體,所以在E-R圖中我將這兩個(gè)實(shí)體的屬性進(jìn)行了詳細(xì)說明。包含包含樓房樓層數(shù)房間數(shù)樓房號(hào)應(yīng)住人數(shù)聯(lián)系方式宿舍實(shí)住人數(shù)住宿費(fèi)用居住性別宿舍編號(hào)應(yīng)住人數(shù)入住姓名性別學(xué)號(hào)學(xué)生院系交費(fèi)注冊(cè)探望來訪人員進(jìn)出宿舍財(cái)物1 N 11 N 1N N 1 1 N 1 1 N圖2系統(tǒng)E-R圖如上述ER圖所示,系統(tǒng)通過對(duì)樓房的管理來管理詳細(xì)的宿舍信息,其中每一棟樓都包含很多個(gè)宿舍。然后是學(xué)生入住宿舍,每一間宿舍對(duì)應(yīng)入住多個(gè)學(xué)生,并且同時(shí)錄入學(xué)生的信息,學(xué)生是通過注冊(cè)交費(fèi)之后入住宿舍的,沒一個(gè)學(xué)期都要注冊(cè)一次,所以是一對(duì)多的關(guān)系。另外還有一些其它的功能如親友探訪,學(xué)生攜帶財(cái)物的進(jìn)出也是在學(xué)生實(shí)體上面實(shí)現(xiàn)的,親友探訪和攜帶財(cái)物進(jìn)出也是一對(duì)多的關(guān)系。4.3系統(tǒng)所需表綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,共需要設(shè)計(jì)二個(gè)表,分別是:用戶信息表、學(xué)生住宿信息表、宿舍樓房表、學(xué)生財(cái)物表、來訪人員表、學(xué)生注冊(cè)表、物品出入宿舍表、學(xué)生出勤表。對(duì)表的說明:1、用戶信息表:登記用戶名、密碼及登錄權(quán)限。2、學(xué)生住宿信息表:詳細(xì)登記學(xué)生基本信息及宿舍編號(hào)情況。3、宿舍樓房表:登記學(xué)校所有的宿舍樓房情況。4、學(xué)生財(cái)物表:登記學(xué)生開學(xué)入住時(shí)宿舍財(cái)物的情況。5、來訪人員表:登記來探訪學(xué)生的外來人員的信息。6、學(xué)生注冊(cè)表:登記學(xué)生新學(xué)期開學(xué)的注冊(cè)信息。7、物品出入宿舍表:登記學(xué)生物品出入宿舍樓的信息。8、學(xué)生出勤表:登記學(xué)生在校期間的宿舍出勤信息。表1用戶信息表(Slog)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeySname用戶名Varchar50NYSpassword用戶密碼Varchar50NNSquanxian用戶權(quán)限Varchar50NN表2學(xué)生住宿信息表(S_XINSRZ)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeysushebianhao宿舍編號(hào)Varchar50NYxingming姓名Varchar50NNxingbie性別Varchar50NNyuanxi院系Varchar50NNxuehao學(xué)號(hào)Varchar50NNlianxifangshi聯(lián)系方式Varchar50NN表3宿舍樓房表(SHOUSE)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeyLouId樓房號(hào)Varchar50NYLouNum樓層數(shù)Varchar50NNLouRom房間數(shù)Varchar50NNLouYing應(yīng)住人數(shù)int4NNLouShi實(shí)住人數(shù)int4YN表4學(xué)生財(cái)物表(SCAIWU)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeySXuehao學(xué)號(hào)Varchar50NYSName姓名Varchar50NNLouId樓房號(hào)Varchar50NFsushebianhao寢室Varchar50NFBed床位號(hào)Varchar50YNStool凳子號(hào)Varchar50YNDesk桌子號(hào)Varchar50YN表5來訪人員表(SVISIT)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeyVisId自動(dòng)編號(hào)Varchar10NYVisName來訪人姓名Varchar50NNVisHost被訪人姓名Varchar50NNLouId樓房號(hào)Varchar50NFsushebianhao宿舍編號(hào)Varchar50NFRelation所屬關(guān)系Varchar50NNVisData來訪時(shí)間datetime8NN表6學(xué)生注冊(cè)表(SZHUCE)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeyxuehao學(xué)號(hào)Varchar50NYxingming姓名Varchar50NFLouId樓房號(hào)Varchar50NFsushebianhao宿舍編號(hào)Varchar50NFZCDate注冊(cè)日期datetime8NYZCPrice所交費(fèi)用Varchar10NN表7物品出入宿舍表(SWUPINCR)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeyWPCRId自動(dòng)編號(hào)Bigint8NYxuehao學(xué)號(hào)Varchar50NNxingming姓名Varchar50NNLouId樓房號(hào)Varchar50NFsushebianhao宿舍編號(hào)Varchar50NFIn進(jìn)樓物品Varchar50YNOut出樓物品Varchar50YNDate日期datetime8NN表8學(xué)生出勤表(SCHUQIN)字段名描述數(shù)據(jù)類型數(shù)據(jù)長(zhǎng)度NULLPrimarykeyLouId樓房號(hào)Varchar50NYsushebianhao宿舍編號(hào)Varchar50NFnum缺勤人數(shù)int4YNwhy缺勤原因Varchar50YNdata日期datetime8NN4.4具體模塊設(shè)計(jì)在系統(tǒng)功能模塊介紹時(shí),我把整個(gè)系統(tǒng)分為系統(tǒng)管理模塊、宿舍管理模塊、學(xué)生管理模塊、出入登記模塊、查詢管理模塊、統(tǒng)計(jì)分析模塊、幫助模塊七個(gè)基本模塊。如下圖3是我設(shè)計(jì)的學(xué)生宿舍管理系統(tǒng)的主界面:圖3學(xué)生宿舍管理系統(tǒng)主界面4.4.1登錄模塊功能詳細(xì)設(shè)計(jì)圖4登錄界面設(shè)計(jì)思想:當(dāng)要進(jìn)入學(xué)生宿舍管理系統(tǒng)時(shí)會(huì)彈出一個(gè)登錄的對(duì)話框,用戶必須在登錄對(duì)話框中按要求輸入正確的用戶名和密碼才能夠進(jìn)入主窗口。具體實(shí)現(xiàn):1、在實(shí)現(xiàn)該功能模塊時(shí),需添加一個(gè)Windows對(duì)話框,系統(tǒng)自動(dòng)生成對(duì)話框的ID為IDD_ASPIRE_DIALOG,修改標(biāo)題屬性為“登錄”,系統(tǒng)會(huì)自動(dòng)生成2個(gè)類,分別為CASPIREApp和CASPIREDlg,在VC++操作界面的ClassView中可以看到。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能。添加相應(yīng)的靜態(tài)文本控件、編輯框控件、組合框控件和按鈕控件,其中密碼控件須在樣式屬性里面添加密碼功能,登錄按鈕控件須在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕,組合框控件的樣式屬性里面的所有者繪制屬性改為否以達(dá)到只讀的效果,并且修改所有控件的相關(guān)屬性使其如圖4所示界面。2、在實(shí)現(xiàn)登錄、注冊(cè)和退出功能時(shí),需要用到用戶表Slog,通過獲取數(shù)據(jù)庫(kù)的安裝路徑,調(diào)用ADO技術(shù)來實(shí)現(xiàn)VC++和數(shù)據(jù)庫(kù)的連接,給兩個(gè)編輯框和一個(gè)組合框修改對(duì)應(yīng)的ID為IDC_NAME、IDC_PASSWORD、IDC_QUANXIAN,并分別定義變量為m_name、m_password、m_quanxian,在對(duì)話框的命令按鈕的Click事件中寫入相應(yīng)的程序來實(shí)現(xiàn)登錄、注冊(cè)以及退出的功能,詳細(xì)代碼請(qǐng)查看附錄。4.4.2系統(tǒng)管理功能詳細(xì)設(shè)計(jì)1、用戶管理圖5用戶管理界面設(shè)計(jì)思想:為了方便多人同時(shí)使用此系統(tǒng),每個(gè)人都可以用自己?jiǎn)为?dú)的用戶登錄該系統(tǒng),特地添加用戶管理界面。而且能夠方便快捷的查詢、定位用戶。通過操作控件可為用戶提供新增、修改、刪除用戶功能等[8]。具體實(shí)現(xiàn):1、在實(shí)現(xiàn)該功能模塊時(shí),需要添加一個(gè)Windows對(duì)話框,改ID為IDD_USERMANAGE,修改標(biāo)題屬性為“用戶管理”,在此對(duì)話框界面按CTRL+W創(chuàng)建一個(gè)新的類CUSERMANAGE。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能。添加相應(yīng)的靜態(tài)文本控件、編輯框控件、組合框控件和按鈕控件以及列表控件,此處密碼控件無須在樣式屬性里面添加密碼功能,添加按鈕控件可在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕,組合框控件的樣式屬性里面的所有者繪制屬性改為否以達(dá)到只讀的效果,列表控件的樣式屬性里面的查看屬性改為報(bào)告。并修改相關(guān)的屬性使其如圖5界面所示。2、在實(shí)現(xiàn)添加、修改、刪除和退出功能時(shí),需要用到用戶表Slog,通過獲取數(shù)據(jù)庫(kù)的安裝路徑,調(diào)用ADO技術(shù)來實(shí)現(xiàn)VC++和數(shù)據(jù)庫(kù)的連接,給三個(gè)編輯框、一個(gè)組合框和一個(gè)列表框修改對(duì)應(yīng)的ID為IDC_SNAME、IDC_SPASS、IDC_SPASSWORD、IDC_SQUANXIAN,并分別定義變量為m_sname、m_spass、m_spassword、m_squanxian、m_usershow,在對(duì)話框的命令按鈕的Click事件中寫入相應(yīng)的程序來實(shí)現(xiàn)添加、修改、刪除以及退出的功能,其中查詢時(shí)候,系統(tǒng)需要獲取輸入的值來和數(shù)據(jù)庫(kù)里面的值做比較,那么就需要用到強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換又稱為顯示類型轉(zhuǎn)換,其作用是將某種類型僅在當(dāng)前運(yùn)算中轉(zhuǎn)換成指定的數(shù)據(jù)類型,運(yùn)算結(jié)束后,原類型保持不變。強(qiáng)制類型轉(zhuǎn)換格式為在一個(gè)數(shù)值或表達(dá)式前加上帶括號(hào)的類型名[9]。詳細(xì)代碼請(qǐng)查看附錄。4.4.3宿舍管理模塊詳細(xì)設(shè)計(jì)1、宿舍人員查詢圖6宿舍管理界面設(shè)計(jì)思想:宿舍管理系統(tǒng)自然是必須要有對(duì)宿舍住宿人員信息進(jìn)行查詢的功能的,因此這里設(shè)計(jì)這個(gè)模塊也是理所當(dāng)然的。并且能夠按照不同的查詢方式來進(jìn)行必要的查詢,如:按宿舍編號(hào),按姓名,按學(xué)號(hào)等。具體實(shí)現(xiàn):1、在實(shí)現(xiàn)該功能模塊時(shí),需要添加一個(gè)Windows對(duì)話框,改ID為IDD_DIALOG1_CHAXUN,修改標(biāo)題屬性為“查詢”,在此對(duì)話框界面按CTRL+W創(chuàng)建一個(gè)新的類CCHAXUN。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能。添加相應(yīng)的靜態(tài)文本控件、編輯框控件、組合框控件和按鈕控件以及列表控件,查詢按鈕控件可在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕,組合框控件的樣式屬性里面的所有者繪制屬性改為否以達(dá)到只讀的效果,列表控件的樣式屬性里面的查看屬性改為報(bào)告。并修改相關(guān)的屬性使其如圖6界面所示。2、在實(shí)現(xiàn)查詢和退出功能時(shí),需要用到表S_XINSRZ,通過獲取數(shù)據(jù)庫(kù)的安裝路徑,調(diào)用ADO技術(shù)來實(shí)現(xiàn)VC++和數(shù)據(jù)庫(kù)的連接,給兩個(gè)編輯框、一個(gè)組合框和一個(gè)列表框修改對(duì)應(yīng)的ID為IDC_EDIT_SSNUM、IDC_EDIT2_SNAME、IDC_COMBO1_CHAXUNFS、IDC_LIST1_CHAXUNXIANSHI,并分別定義變量為m_ssnum、m_sname、m_chaxunfs、m_chaxunxianshi,在對(duì)話框的命令按鈕的Click事件中寫入相應(yīng)的程序來實(shí)現(xiàn)查詢以及退出的功能,詳細(xì)代碼請(qǐng)查看附錄。2、新生入住宿舍圖7宿舍管理界面設(shè)計(jì)思想:新生入住宿舍是將每個(gè)學(xué)生直接安排到指定的宿舍床位,如無學(xué)生入住的宿舍也要添加進(jìn)去,不過不予添加其它的信息。具體實(shí)現(xiàn):1、在實(shí)現(xiàn)該功能模塊時(shí),需要添加一個(gè)Windows對(duì)話框,改ID為IDD_XINSHENGRUZHU,修改標(biāo)題屬性為“新生入住”,在此對(duì)話框界面按CTRL+W創(chuàng)建一個(gè)新的類CXINSRZ。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能。添加相應(yīng)的靜態(tài)文本控件、編輯框控件和按鈕控件以及列表控件,查詢按鈕控件可在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕,列表控件的樣式屬性里面的查看屬性改為報(bào)告。并修改相關(guān)的屬性使其如圖7界面所示。2、在實(shí)現(xiàn)查詢、刪除、修改和退出功能時(shí),需要用到表S_XINSRZ,通過獲取數(shù)據(jù)庫(kù)的安裝路徑,調(diào)用ADO技術(shù)來實(shí)現(xiàn)VC++和數(shù)據(jù)庫(kù)的連接,給六個(gè)編輯框、一個(gè)列表框修改對(duì)應(yīng)的ID為IDC_EDIT_SUSHEBIANHAO、IDC_EDIT_XINM、IDC_EDIT3_XIEB、IDC_EDIT4_YUANXI、IDC_EDIT5_XUEHAO、IDC_EDIT6_LIANXIFS,并分別定義變量為m_ssnum、m_xinm、m_xinb、m_yuanxi、m_xuehao、m_lianxifs、m_xinsrz,,在對(duì)話框的命令按鈕的Click事件中寫入相應(yīng)的程序來實(shí)現(xiàn)所有功能,詳細(xì)代碼請(qǐng)查看附錄。4.4.4查詢管理模塊詳細(xì)設(shè)計(jì)1、空宿舍查詢圖8空宿舍查詢界面設(shè)計(jì)思想:當(dāng)學(xué)校宿舍比較多的時(shí)候,要安排新生入住宿舍,需要清楚地知道哪些宿舍是空的,因此我做出了一個(gè)空宿舍查詢的功能。在做這個(gè)查詢的時(shí)候,我檢索數(shù)據(jù)庫(kù)表S_XINSRZ中的“xingming”是否為空,為空的話則說明對(duì)應(yīng)的宿舍編號(hào)是空宿舍。具體實(shí)現(xiàn):在實(shí)現(xiàn)該功能模塊時(shí),需要添加一個(gè)Windows對(duì)話框,改ID為IDD_DIALOG1KONGSS,修改標(biāo)題屬性為“空宿舍查詢”,在此對(duì)話框界面按CTRL+W創(chuàng)建一個(gè)新的類CKONGSS。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能。添加相應(yīng)的靜態(tài)文本控件、編輯框控件和按鈕控件以及列表控件,查詢按鈕控件可在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕,列表控件的樣式屬性里面的查看屬性改為報(bào)告。并修改相關(guān)的屬性使其如圖8界面所示。在實(shí)現(xiàn)顯示空宿舍功能時(shí),需要用到表S_XINSRZ,通過獲取數(shù)據(jù)庫(kù)的安裝路徑,調(diào)用ADO技術(shù)來實(shí)現(xiàn)VC++和數(shù)據(jù)庫(kù)的連接,給編輯框和列表框修改對(duì)應(yīng)的ID為IDC_EDIT1_SUSHEBH、IDC_LIST1KONGSSXS,并分別定義變量為m_sushebh、m_kongss,在對(duì)話框的命令按鈕的Click事件中寫入相應(yīng)的程序來實(shí)現(xiàn)顯示空宿舍的功能,詳細(xì)代碼請(qǐng)查看附錄。4.4.5統(tǒng)計(jì)分析模塊詳細(xì)設(shè)計(jì)1、人數(shù)統(tǒng)計(jì)圖9人數(shù)統(tǒng)計(jì)界面設(shè)計(jì)思想:當(dāng)學(xué)校在住人數(shù)比較多的時(shí)候,不進(jìn)行統(tǒng)計(jì)就很無法清楚總共到底有多少人,男生有多少人,女生有多少人,女生有多少人等。因此我做出了一個(gè)人數(shù)統(tǒng)計(jì)的功能。在做這個(gè)統(tǒng)計(jì)的時(shí)候,我按要求檢索數(shù)據(jù)庫(kù)表S_XINSRZ中對(duì)應(yīng)的列,如須查總?cè)藬?shù)則檢索“xingming”是否為空,查男生人數(shù)則檢索“xingbie”為男的人數(shù),女生人數(shù)自然就等于總?cè)藬?shù)和男生人數(shù)的差值了,查學(xué)院人數(shù)的話則檢索“yuanxi”對(duì)應(yīng)的不同學(xué)院,最后全部檢索完成之后統(tǒng)計(jì)出來顯示出來。具體實(shí)現(xiàn):1、在實(shí)現(xiàn)該功能模塊時(shí),需要添加一個(gè)Windows對(duì)話框,改ID為IDD_DIALOG1,修改標(biāo)題屬性為“人數(shù)統(tǒng)計(jì)”,在此對(duì)話框界面按CTRL+W創(chuàng)建一個(gè)新的類CTONGJI。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能。添加相應(yīng)的靜態(tài)文本控件、編輯框控件和按鈕控件,查詢按鈕控件可在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕。并修改相關(guān)的屬性使其如圖9界面所示。2、在實(shí)現(xiàn)顯示統(tǒng)計(jì)報(bào)表功能時(shí),需要用到表S_XINSRZ,通過獲取數(shù)據(jù)庫(kù)的安裝路徑,調(diào)用ADO技術(shù)來實(shí)現(xiàn)VC++和數(shù)據(jù)庫(kù)的連接,給五個(gè)編輯框分別修改對(duì)應(yīng)的ID為IDC_EDIT2ZONG、IDC_EDIT3NANSHENG、IDC_EDIT4NVSHENG、IDC_EDIT5XINGONG、IDC_EDIT6HUAGONG,并分別定義變量為m_zong、m_nansheng、m_nvsheng、m_xingong、m_huagong,在對(duì)話框的命令按鈕的Click事件中寫入相應(yīng)的程序來實(shí)現(xiàn)顯示統(tǒng)計(jì)報(bào)表的功能,詳細(xì)代碼請(qǐng)查看附錄。4.4.6幫助功能詳細(xì)設(shè)計(jì)1、關(guān)于圖10關(guān)于設(shè)計(jì)思想:通過此模塊來介紹軟件的版本和設(shè)計(jì)者的一些基本信息。具體實(shí)現(xiàn):1、在實(shí)現(xiàn)該功能模塊時(shí),需要添加一個(gè)Windows對(duì)話框,改ID為IDD_DIALOG2,修改標(biāo)題屬性為“關(guān)于”,在此對(duì)話框界面按CTRL+W創(chuàng)建一個(gè)新的類CGUANYU。調(diào)整對(duì)話框大小,在樣式屬性里面添加最小化功能,無須添加最大化功能,添加相應(yīng)的靜態(tài)文本控件和按鈕控件,確定按鈕控件可在樣式屬性里面添加缺省按鈕功能以設(shè)置默認(rèn)按鈕。并修改相關(guān)的屬性使其如圖10界面所示。2、在確定按鈕的Click事件中寫入代碼“this->EndDialog(1);”即可。4.4.7其他模塊功能設(shè)計(jì)由于時(shí)間的關(guān)系,其他模塊功能未能夠在指定的時(shí)間內(nèi)完成,在此感到非常的抱歉,我會(huì)在接下來的時(shí)間努力來完成未能完成的模塊,以達(dá)到系統(tǒng)預(yù)期的完善的功能。4.5后期美化處理所有界面完成后,對(duì)用到的所有對(duì)話框進(jìn)行細(xì)致的調(diào)整,并附加皮膚以及顯示權(quán)限和系統(tǒng)時(shí)間的功能。詳細(xì)代碼請(qǐng)查看附錄。4.6本章小結(jié)本章通過對(duì)第一章的需求分析得出的系統(tǒng)開發(fā)框架的研究,得出了本系統(tǒng)功能的具體實(shí)現(xiàn)辦法。通過對(duì)主要功能模塊的具體設(shè)計(jì)方法介紹,使系統(tǒng)的功能更加清晰,讓人更好的了解C++和其控件的使用方法。本章通過介紹系統(tǒng)的各個(gè)功能模塊的生成方法,基本上涵蓋了整個(gè)系統(tǒng)的功能,大部分功能模塊的設(shè)計(jì)類似,只是具體辦法稍有區(qū)別??梢哉f本章已經(jīng)介紹了系統(tǒng)的詳細(xì)設(shè)計(jì)過程,給人清晰明了的功能介紹。

第5章系統(tǒng)測(cè)試5.1軟件測(cè)試方法的描述測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;系統(tǒng)測(cè)試的目的,是以最少的測(cè)試資源去發(fā)現(xiàn)盡可能多的錯(cuò)誤。測(cè)試任何系統(tǒng)都有兩種方法:如果已經(jīng)知道了系統(tǒng)應(yīng)該具有的功能,可以通過測(cè)試來檢驗(yàn)是否每個(gè)功能都能正常使用;如果知道系統(tǒng)的內(nèi)部工作過程,可以通過測(cè)試來檢驗(yàn)系統(tǒng)內(nèi)部動(dòng)作是否按規(guī)格說明書的規(guī)定正常進(jìn)行。前一種方法稱為黑盒測(cè)試,后一種方法稱為白盒測(cè)試[10]。對(duì)于軟件測(cè)試而言,黑盒測(cè)試方法把程序看作一個(gè)黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程。也就是說,黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能夠很好地接收輸入的數(shù)據(jù)并且產(chǎn)生預(yù)期的正確輸出信息,程序在運(yùn)行過程中是否能保持外部信息(如數(shù)據(jù)庫(kù)和文件等)的完整性。黑盒測(cè)試又可以稱做功能測(cè)試。白盒測(cè)試的方法與黑盒測(cè)試的方法相反,它的前提是能把程序看成是放在一個(gè)透明的盒子里,測(cè)試者可以完全了解程序的結(jié)構(gòu)以及處理算法。這種方法是按程序內(nèi)部的邏輯來進(jìn)行程序測(cè)試,以此來檢測(cè)程序中所有的主要可執(zhí)行通路能否按照預(yù)定的要求正確地工作。白盒測(cè)試也叫做結(jié)構(gòu)測(cè)試。本系統(tǒng)的測(cè)試過程由三個(gè)步驟組成:?jiǎn)卧獪y(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。5.2單元測(cè)試單元測(cè)試通過檢測(cè)所設(shè)計(jì)軟件中的最小單元結(jié)構(gòu)——模塊。一般,單元測(cè)試是和編碼同時(shí)進(jìn)行的。將本軟件的功能模塊直接和主窗體相連,再編譯運(yùn)行工程文件,通過編譯程序來檢查可能產(chǎn)生的語(yǔ)法錯(cuò)誤,然后在編譯最終通過后,使用白盒測(cè)試的方法去檢查模塊接口、模塊內(nèi)部的數(shù)據(jù)結(jié)構(gòu)、邏輯路徑、出錯(cuò)處理、邊界條件等。這樣能夠使程序員及時(shí)發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤,減少最后集中查找錯(cuò)誤的工作量。5.3集成測(cè)試集成測(cè)試是測(cè)試和組裝軟件的系統(tǒng)化技術(shù),由模塊組裝成程序時(shí)有兩種不同的方法。一種方法是先分別測(cè)試單個(gè)模塊,再把所有模塊按照設(shè)計(jì)要求結(jié)合在一起得到最終的程序,我們把這種方法叫做非漸增式法;另一種方法則是把下一個(gè)將要測(cè)試的模塊和已經(jīng)測(cè)試通過的那些模塊結(jié)合在一起進(jìn)行測(cè)試,測(cè)試完以后又把下一個(gè)要測(cè)試的模塊結(jié)合在一起測(cè)試。這種方法就叫做漸增式法。集成測(cè)試以黑盒測(cè)試為主,采用漸增式法,對(duì)上層模塊采用自頂向下測(cè)試,對(duì)某些具有輸入輸出功能或復(fù)雜算法的關(guān)鍵分支,采用自底向上測(cè)試,直到整個(gè)軟件裝配完畢。測(cè)試的通過標(biāo)準(zhǔn)為“主要功能已實(shí)現(xiàn),已發(fā)現(xiàn)的重大錯(cuò)誤已排除”。5.4測(cè)試報(bào)告測(cè)試報(bào)告是對(duì)測(cè)試結(jié)果進(jìn)行收集和評(píng)價(jià),軟件的可靠性所達(dá)到的定性指標(biāo)可以從測(cè)試報(bào)告中明朗體現(xiàn)出來。5.4.1系統(tǒng)測(cè)試主要報(bào)告系統(tǒng)測(cè)試主要對(duì)用戶登錄、新生入住、宿舍查詢、空宿舍查詢進(jìn)行了仔細(xì)的測(cè)試和詳細(xì)的測(cè)試記錄。表3用戶登錄測(cè)試報(bào)告項(xiàng)目名稱:ASPIRE測(cè)試項(xiàng)模塊名稱:用戶登錄測(cè)試人:卓政元測(cè)試時(shí)間:2014/5/19錯(cuò)誤個(gè)數(shù):0序號(hào)路徑輸入理想輸出實(shí)際結(jié)果1.如果輸入正確的用戶名、密碼和權(quán)限,應(yīng)該顯示登錄成功。用戶名:a密碼:a進(jìn)入項(xiàng)目主界面進(jìn)入項(xiàng)目主界面2.如果輸入錯(cuò)誤的用戶名或密碼、或者選錯(cuò)權(quán)限,應(yīng)該顯示登錄失敗。用戶名:a密碼:b用戶名或密碼錯(cuò)誤或權(quán)限不夠用戶名或密碼錯(cuò)誤或權(quán)限不夠3.如果不輸入任何數(shù)據(jù),應(yīng)該提示用戶名不能為空。用戶名:空密碼:空用戶名不能為空用戶名不能為空表4新生入住測(cè)試報(bào)告項(xiàng)目名稱:ASPIRE測(cè)試項(xiàng)模塊名稱:新生入住測(cè)試人:卓政元測(cè)試時(shí)間:2014/5/19錯(cuò)誤個(gè)數(shù):1序號(hào)路徑輸入理想輸出實(shí)際結(jié)果1.輸入正確的信息宿舍編號(hào):7#107-3-2姓名:路人甲等等正確信息添加成功添加成功2.輸入錯(cuò)誤的信息宿舍編號(hào):111姓名:123等等錯(cuò)誤信息宿舍編號(hào)錯(cuò)誤、姓名錯(cuò)誤添加成功3.如果不輸入任何數(shù)據(jù)宿舍編號(hào):空姓名:空等全為空宿舍編號(hào)不能為空宿舍編號(hào)不能為空表5宿舍查詢測(cè)試報(bào)告項(xiàng)目名稱:ASPIRE測(cè)試項(xiàng)模塊名稱:宿舍查詢測(cè)試人:卓政元測(cè)試時(shí)間:2014/5/19錯(cuò)誤個(gè)數(shù):0序號(hào)路徑輸入理想輸出實(shí)際結(jié)果1.輸入正確的信息按宿舍編號(hào):7#107-3-2按姓名:路人甲成功查詢成功查詢2.輸入錯(cuò)誤的信息按宿舍編號(hào):111按姓名:123查詢失敗查詢失敗3.如果不輸入任何數(shù)據(jù)按宿舍編號(hào):空按姓名:空請(qǐng)輸入宿舍編號(hào)進(jìn)行查詢請(qǐng)輸入宿舍編號(hào)進(jìn)行查詢4.輸入正確,查詢方式選擇錯(cuò)誤按姓名:路人甲查詢方式選擇按宿舍編號(hào)請(qǐng)輸入宿舍編號(hào)進(jìn)行查詢請(qǐng)輸入宿舍編號(hào)進(jìn)行查詢5.輸入正確,查詢方式錯(cuò)誤按宿舍編號(hào):7#107-3-2查詢方式選擇按姓名請(qǐng)輸入姓名進(jìn)行查詢請(qǐng)輸入姓名進(jìn)行查詢表6空宿舍查詢測(cè)試報(bào)告項(xiàng)目名稱:ASPIRE測(cè)試項(xiàng)模塊名稱:空宿舍查詢測(cè)試人:卓政元測(cè)試時(shí)間:2014/5/19錯(cuò)誤個(gè)數(shù):0序號(hào)路徑輸入理想輸出實(shí)際結(jié)果1.顯示空宿舍不需要輸入成功顯示所有空宿舍成功顯示所有空宿舍通過對(duì)以上測(cè)試報(bào)告的分析,可以看出新生入住模塊系統(tǒng)不能夠自動(dòng)檢測(cè)輸入信息是否為有效信息,因此此處還有待改進(jìn)。5.5本章小結(jié)本章通過對(duì)系統(tǒng)測(cè)試方法的介紹,確定了本系統(tǒng)采用集成測(cè)試的方案。通過選取不同的人進(jìn)行不同權(quán)限的測(cè)試,給出了系統(tǒng)的基本功能測(cè)試實(shí)施辦法。通過測(cè)試,調(diào)試生成可執(zhí)行的應(yīng)用程序。本章基本上說明了具體的測(cè)試辦法,讓人們更明白系統(tǒng)測(cè)試對(duì)于系統(tǒng)在完成后期的重要性,充分體現(xiàn)了系統(tǒng)軟件開發(fā)的規(guī)范化。

第6章總結(jié)歷時(shí)一個(gè)半月的畢業(yè)設(shè)計(jì)現(xiàn)在已經(jīng)接近尾聲了,回想起這一個(gè)半月的日子,感覺收獲頗多。我這次畢業(yè)設(shè)計(jì)是開發(fā)一個(gè)學(xué)生宿舍管理系統(tǒng),它用到的開發(fā)工具是C++語(yǔ)言,SQLServer數(shù)據(jù)庫(kù)。在設(shè)計(jì)的開始階段為了盡快熟悉C++語(yǔ)言,我詳細(xì)翻閱有關(guān)該方面的資料,對(duì)書中的基本理論知識(shí)逐章逐節(jié)地分析,同時(shí)還用上機(jī)操作來加深理解。特別是對(duì)書中的一些典型實(shí)例,認(rèn)真學(xué)習(xí)它的編程思想,吸取它的編程技巧,弄懂程序中每句話的含義。在對(duì)所要應(yīng)用的技術(shù)有了一個(gè)基本認(rèn)識(shí)之后,就開始構(gòu)思自己的系統(tǒng)設(shè)計(jì)。認(rèn)真聽老師對(duì)設(shè)計(jì)要求的講解,根據(jù)用戶需求分析將整個(gè)系統(tǒng)分為幾個(gè)模塊,每個(gè)模塊具體又要實(shí)現(xiàn)哪些功能,然后就逐個(gè)模塊去一一詳細(xì)設(shè)計(jì),設(shè)計(jì)的過程中不時(shí)地翻閱資料,用一些巧妙的技術(shù)來優(yōu)化程序。程序代碼完成之后,要進(jìn)行運(yùn)行調(diào)試,剛開始由于沒有調(diào)試經(jīng)驗(yàn)和方法效率很低,最后在老師和同學(xué)的幫助下,終于順利完成了,自己也從中學(xué)到了不少東西??傊?,通過一個(gè)半月的畢業(yè)設(shè)計(jì),讓我感受了軟件開發(fā)的整個(gè)過程。畢業(yè)設(shè)計(jì)不僅是對(duì)我在大學(xué)所學(xué)知識(shí)的一個(gè)綜合運(yùn)用,也是一次增長(zhǎng)知識(shí)和經(jīng)驗(yàn)的好機(jī)會(huì),同時(shí)也使我學(xué)會(huì)了許多處理、解決問題的方法,大大提高了自己的動(dòng)手能力,為即將走上工作崗位打下了良好的基礎(chǔ)。

參考文獻(xiàn)[1]謝海平等.基于網(wǎng)絡(luò)的獨(dú)立學(xué)院園區(qū)管理方案研究[J].青年與社會(huì),2012,60(2),67-69[2]鄒麗.VisualC++開發(fā)技術(shù)及面向?qū)ο筌浖こ贪咐治鯷M].遼寧:遼寧科學(xué)技術(shù)出版社,2012-02[3]張興飛.網(wǎng)絡(luò)化區(qū)域氡濃度集群監(jiān)控系統(tǒng)的研究與設(shè)計(jì)[D].西南科技大學(xué),2011[4]李玉梅.《面向?qū)ο驝++程序設(shè)計(jì)》課程教學(xué)改革的研究與實(shí)踐[J].中國(guó)科技信息,2009,63(15),35-37[5]張鴻,熊文龍.基于C/S模式的SQL數(shù)據(jù)庫(kù)應(yīng)用技術(shù)[J].武漢理工大學(xué)學(xué)報(bào)(交通科學(xué)與工程版),2003,24(6),6-8[6]徐天晟,趙丹亞.SQL數(shù)據(jù)庫(kù)使用速查手冊(cè)[M].北京:人民郵電出版社,2009-02[7]王榕.基于WEB的宿舍管理系統(tǒng)開發(fā)與實(shí)現(xiàn)[J].華章,2011,61(10),56-61[8]關(guān)雪侖.高校圖書管理系統(tǒng)的分析與設(shè)計(jì)[D].北京郵電大學(xué),2010-10[9]寧濤.C++程序設(shè)計(jì)[M].遼寧:遼寧科學(xué)技術(shù)出版社,2012-02[10]羅洪剛.貴州師范大學(xué)學(xué)生公寓管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].廈門大學(xué),2011附錄高校學(xué)生宿舍管理系統(tǒng)主要源程序連接數(shù)據(jù)庫(kù)源代碼://ASPIRE.cpp:Definestheclassbehaviorsfortheapplication.#include"stdafx.h"#include"ASPIRE.h"#include"ASPIREDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//CASPIREAppconstructionCASPIREApp::CASPIREApp(){}//TheoneandonlyCASPIREAppobjectCASPIREApptheApp;//CASPIREAppinitializationBOOLCASPIREApp::InitInstance(){ AfxEnableControlContainer(); skinppLoadSkin(_T("Face\\spring.ssk")); //創(chuàng)建ADO數(shù)據(jù)庫(kù)連接 if(FAILED(::CoInitialize(NULL))) { AfxMessageBox("ADO初始化失敗?");//AfxMessageBoxAfx為主框架函數(shù)適用全局 returnFALSE; } try { m_pCon.CreateInstance("ADODB.Connection"); _bstr_tstrConnect="Provider=SQLOLEDB.1;Server=localhost;Database=ASPIRE;uid=sa;pwd=aspire"; m_pCon->Open(strConnect,"","",adModeUnknown); } catch(_com_errore) { AfxMessageBox(e.Description()); }#ifdef_AFXDLL Enable3dControls(); //CallthiswhenusingMFCinasharedDLL#else Enable3dControlsStatic(); //CallthiswhenlinkingtoMFCstatically#endif m_pRs.CreateInstance(_uuidof(Recordset));//初始化ADO記錄集 CASPIREDlgdlg; m_pMainWnd=&dlg; intnResponse=dlg.DoModal(); if(nResponse==IDOK) { } elseif(nResponse==IDCANCEL) { } returnFALSE;}boolCASPIREApp::ADOExecute(_RecordsetPtr&ADOSet,_variant_t&strSQL){ if(ADOSet->State==adStateOpen) ADOSet->Close(); try { ADOSet->Open(strSQL,m_pCon.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdUnknown); returntrue; } catch(_com_error&e) { CStringerr; err.Format("ADOError:%s",(char*)e.Description()); AfxMessageBox(err); returnfalse; }}主工程源代碼://ASPIREDlg.cpp:implementationfile#include"stdafx.h"#include"ASPIRE.h"#include"ASPIREDlg.h"#include"MAINFACE.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//CASPIREDlgmessagehandlersBOOLCASPIREDlg::OnInitDialog(){ CDialog::OnInitDialog(); m_quanxian.InsertString(0,"超級(jí)用戶"); m_quanxian.InsertString(1,"普通用戶"); m_quanxian.SetCurSel(0);//設(shè)置默認(rèn)值 ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX<0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu!=NULL) { CStringstrAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if(!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); } } SetIcon(m_hIcon,TRUE); //Setbigicon SetIcon(m_hIcon,FALSE); //Setsmallicon returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCASPIREDlg::OnPaint(){ if(IsIconic()) { CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); intcxIcon=GetSystemMetrics(SM_CXICON); intcyIcon=GetSystemMetrics(SM_CYICON); CRectrect; GetClientRect(&rect); intx=(rect.Width()-cxIcon+1)/2; inty=(rect.Height()-cyIcon+1)/2; dc.DrawIcon(x,y,m_hIcon); } else { CDialog::OnPaint(); }}voidCASPIREDlg::OnLog(){ CStringstrSql,str; _variant_tstrQuery; UpdateData(TRUE); ((CComboBox*)GetDlgItem(IDC_QUANXIAN))->GetWindowText(str); CMAINFACEdlg; if(m_name.IsEmpty())//判斷用戶名文本框是否為空 { MessageBox("用戶名不能為空","錯(cuò)誤",MB_ICONHAND); GetDlgItem(IDC_NAME)->SetFocus();//設(shè)置焦點(diǎn)特別注意顏色不同的必須//對(duì)應(yīng)好設(shè)置的ID return; } if(m_password.IsEmpty())//判斷密碼文本框是否為空 { MessageBox("密碼不能為空","錯(cuò)誤",MB_ICONHAND); GetDlgItem(IDC_PASSWORD)->SetFocus(); return; } strQuery="select*fromSlogwhereSname='"+m_name+"'andSpassword='"+m_password+"'andSquanxian='"+str+"'"; //查看數(shù)據(jù)庫(kù)中的用戶名和用戶密碼這個(gè)必須一一//對(duì)應(yīng)因此特別細(xì)心 //下面是從數(shù)據(jù)庫(kù)中取出密碼和用戶名不匹配清空。匹配則成功登陸。 theApp.ADOExecute(theApp.m_pRs,strQuery); intiCount=theApp.m_pRs->GetRecordCount(); if(iCount==0) { if(IDOK==(MessageBox("用戶或密碼錯(cuò)誤或權(quán)限不夠,請(qǐng)重新輸入","錯(cuò)誤",MB_ICONQUESTION|MB_OKCANCEL))) { m_name=""; m_password=""; GetDlgItem(IDC_NAME)->SetFocus(); UpdateData(false); } else { this->EndDialog(1); } } else { if(str=="普通用戶") { MessageBox("恭喜你,登錄成功!","正確",MB_ICONASTERISK); this->EndDialog(1); } else { MessageBox("恭喜你,登錄成功!","正確",MB_ICONASTERISK); this->EndDialog(1); CMAINFACEdlg; dlg.cleckstr=str; dlg.DoModal(); } UpdateData(false); } }voidCASPIREDlg::OnExit(){ MessageBox("是否退出系統(tǒng)?","退出",MB_ICONQUESTION|MB_OKCANCEL); exit(1);}voidCASPIREDlg::PreSubclassWindow(){ CDialog::PreSubclassWindow();}BOOLCASPIREDlg::PreTranslateMessage(MSG*pMsg){ if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN){ UpdateData(TRUE);if(GetFocus()->GetDlgCtrlID()==IDC_LOG)//按下回車,如果當(dāng)前焦點(diǎn)是在自己期望的控件上{CASPIREDlg::OnLog();//添加自己的處理代碼} returnTRUE;}if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)returnTRUE; returnCDialog::PreTranslateMessage(pMsg);}查詢?cè)创a://CHAXUN.cpp:implementationfile#include"stdafx.h"#include"ASPIRE.h"#include"CHAXUN.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//CCHAXUNmessagehandlersvoidCCHAXUN::OnButton1Chaxun(){ UpdateData(TRUE); m_chaxunxianshi.DeleteAllItems(); _variant_tHolder,strQuery; CStringtemp; inta=m_chaxunfs.GetCurSel();//獲取下拉列表選項(xiàng)索引值 switch(a) { case0://按姓名 strQuery="select*fromS_XINSRZwherexingminglike'%%"+m_sname+"%%'";//數(shù)據(jù)庫(kù)表中的對(duì)應(yīng)字段 if(m_sname=="") { MessageBox("請(qǐng)輸入姓名進(jìn)行查詢","錯(cuò)誤",MB_ICONERROR); GetDlgItem(IDC_EDIT2_SNAME)->SetFocus(); m_ssnum=""; return; } m_ssnum=""; break; case1://按宿舍編號(hào) strQuery="select*fromS_XINSRZwheresushebianhaolike'%%"+m_ssnum+"%%'"; if(m_ssnum=="") { MessageBox("請(qǐng)輸入宿舍編號(hào)進(jìn)行查詢","錯(cuò)誤",MB_ICONERROR); GetDlgItem(IDC_EDIT_SSNUM)->SetFocus(); m_sname=""; return; } m_sname=""; break; } theApp.ADOExecute(theApp.m_pRs,strQuery); intiCount=theApp.m_pRs->GetRecordCount(); if(0==iCount) return; theApp.m_pRs->MoveFirst(); inti=0; while(!theApp.m_pRs->adoEOF) { //MessageBox("213"); Holder=theApp.m_pRs->GetCollect("sushebianhao"); if(Holder.vt!=VT_NULL) m_chaxunxianshi.InsertItem(i,(char*)(_bstr_t)Holder); Holder=theApp.m_pRs->GetCollect("xingming"); if(Holder.vt!=VT_NULL) m_chaxunxianshi.SetItemText(i,1,(char*)(_bstr_t)Holder); Holder=theApp.m_pRs->GetCollect("xingbie"); if(Holder.vt!=VT_NULL) m_chaxunxianshi.SetItemText(i,2,(char*)(_bstr_t)Holder); Holder=theApp.m_pRs->GetCollect("yuanxi"); if(Holder.vt!=VT_NULL) m_chaxunxianshi.SetItemText(i,3,(char*)(_bstr_t)Holder); Holder=theApp.m_pRs->GetCollect("xuehao"); if(Holder.vt!=VT_NULL) m_chaxunxianshi.SetItemText(i,4,(char*)(_bstr_t)Holder); Holder=theApp.m_pRs->GetCollect("lianxifangshi"); if(Holder.vt!=VT_NULL) m_chaxunxianshi.SetItemText(i,5,(char*)(_bstr_t)Holder); theApp.m_pRs->MoveNext(); i++; } m_chaxunxianshi.SetRedraw(TRUE); m_sname=""; m_ssnum=""; UpdateData(FALSE);}BOOLCCHAXUN::OnInitDialog(){ CDialog::OnInitDialog(); m_chaxunfs.InsertString(0,"按姓名"); m_chaxunfs.InsertString(1,"按宿舍編號(hào)"); m_chaxunfs.SetCurSel(1);//設(shè)置默認(rèn)值 m_chaxunxianshi.InsertColumn(0,"宿舍編號(hào)"); m_chaxunxianshi.InsertColumn(1,"姓名"); m_chaxunxianshi.InsertColumn(2,"性別"); m_chaxunxianshi.InsertColumn(3,"學(xué)院"); m_chaxunxianshi.InsertColumn(4,"學(xué)號(hào)"); m_chaxunxianshi.InsertColumn(5,"聯(lián)系方式"); RECTrect;//設(shè)置一個(gè)矩形框 m_chaxunxianshi.GetWindowRect(&rect); intwid=rect.right-rect.left; m_chaxunxianshi.SetColumnWidth(0,wid/6); m_chaxunxianshi.SetColumnWidth(1,wid/6); m_chaxunxianshi.SetColumnWidth(2,wid/6); m_chaxunxianshi.SetColumnWidth(3,wid/6); m_chaxunxianshi.SetColumnWidth(4,wid/6); m_chaxunxianshi.SetColumnWidth(5,wid/6); m_chaxunxianshi.SetExtendedStyle(LVS_EX_FULLROWSELECT); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCCHAXUN::OnButton2Tuichu(){ this->EndDialog(1);}BOOLCCHAXUN::PreTranslateMessage(MSG*pMsg){ if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN){if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN) returnTRUE;}if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)returnTRUE; returnCDialog::PreTranslateMessage(pMsg);}空宿舍查詢?cè)创a:#if!defined(AFX_KONGSS_H__C402B04D_ED0D_44FB_A52D_6A4BC274F5AD__INCLUDED_)#defineAFX_KONGSS_H__C402B04D_ED0D_44FB_A52D_6A4BC274F5AD__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000//CKONGSSdialogclassCKONGSS:publicCDialog{public: CKONGSS(CWnd*pParent=NULL);//standardconstructor enum{IDD=IDD_DIALOG1KONGSS}; CListCtrl m_kongss; CString m_sushebh; public: virtualBOOLPreTranslateMessage(MSG*pMsg); protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupportprotected: virtualBOOLOnInitDialog(); afx_msgvoidOnButton1(); DECLARE_MESSAGE_MAP()};主界面源代碼://MAINFACE.cpp:implementationfile#include"stdafx.h"#include"ASPIRE.h"#include"MAINFACE.h"#include"USERMANAGE.h"#include"XINSRZ.h"#include"CHAXUN.h"#include"KONGSS.h"#include"TONGJI.h"#include"GUANYU.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//CMAINFACEmessagehandlersvoidCMAINFACE::OnMenuitem32771Usermanage(){ CUSERMANAGEdlg; dlg.DoModal();}voidCMAINFACE::OnMenuitem32773Xinsrz(){ CXINSRZdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32774schaxun(){ CCHAXUNdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32775chaxun(){ CCHAXUNdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32776schaxun(){ CCHAXUNdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32777kongss(){ CKONGSSdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32778tongjixx(){ CTONGJIdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32779guanyu(){ CGUANYUdlg; dlg.DoModal();}voidCMAINFACE::OnMENUITEM32772ss(){ CCHAXUNdlg; dlg.DoModal();}BOOLCMAINFACE::PreTranslateMessage(MSG*pMsg){ if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN){if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN) returnTRUE;}if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)returnTRUE; returnCDialog::PreTranslateMessage(pMsg);}BOOLCMAINFACE::OnInitDialog(){ CDialog::OnInitDialog(); m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1); m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1USERMANAGE));//1 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2CHAXUN));//2 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2KONGSS));//3 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2TONGJI));//4 UINTarr[4]; for(intk=0;k<4;k++) { arr[k]=k+1001; } m_ToolBar.Create(this); m_ToolBar.SetButtons(arr,4); m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList); m_ToolBar.SetSizes(CSize(50,60),CSize(32,32)); m_ToolBar.SetButtonText(0,"用戶管理"); m_ToolBar.SetButtonText(1,"查詢"); m_ToolBar.SetButtonText(2,"空宿舍"); m_ToolBar.SetButtonText(3,"統(tǒng)計(jì)"); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); UINTarraryx[4]; for(inti=0;i<4;i++) { arraryx[i]=1080+i; } m_Statusbr.Create(this); m_Statusbr.SetIndicators(arraryx,sizeof(arraryx)/sizeof(UINT)); for(intj=0;j<4;j++) { m_Statusbr.SetPaneInfo(j,arraryx[j],0,210); } m_Statusbr.SetPaneText(0,"當(dāng)前用戶身份"); m_Statusbr.SetPaneText(1,cleckstr); m_Statusbr.SetPaneText(2,"系統(tǒng)當(dāng)前時(shí)間"); SetTimer(1,1000,NULL); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); returnTRUE;}voidCMAINFACE::OnTimer(UINTnIDEvent){ CTimetime; time=CTime::GetCurrentTime(); m_Statusbr.SetPaneText(3,time.Format("%Y-%m-%d%H:%M:%S")); CDialog::OnTimer(nIDEvent);}voidCMAINFACE::OnUserSet(){ CUSERMANAGEdlg; dlg.DoModal();}voidCMAINFACE::OnUserSet1(){ CCHAXUNdlg; dlg.DoModal();}voidCMAINFACE::OnUserSet2(){ CKONGSSdlg; dlg.DoModal();}voidCMAINFACE::OnUserSet3(){ CTONGJIdlg; dlg.DoModal();}統(tǒng)計(jì)源代碼://TONGJI.cpp:implementationfile#include"stdafx.h"#include"ASPIRE.h"#include"TONGJI.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif//CTONGJImessagehandlersBOOLCTONGJI::OnInitDialog(){ CDialog::OnInitDialog(); returnTRUE;}voidCTONGJI::OnButton1(){ UpdateData(TRUE);//查詢總?cè)藬?shù) _variant_tHolder,strQuery; inta=0; strQuery="select*fromS_XINSRZwherexingmingisnotnullandxingming<>''";theApp.ADOExecute(theApp.m_pRs,strQuery); intiCount=theApp.m_pRs->GetRecordCount(); if(0==iCount) return; theApp.m_pRs->MoveFirst(); inti=0; while(!theApp.m_pRs->adoEOF) { Holder=theApp.m_pRs->GetCollect("xingming"); if(Holder.vt!=VT_NULL) a++

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論