天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、南 陽(yáng) 理 工 學(xué) 院本科生畢業(yè)設(shè)計(jì)(論文)學(xué)院(系): 軟件學(xué)院 專 業(yè): 軟件工程 學(xué) 生: 胡亮亮 指導(dǎo)教師: 劉嘵明 完成日期 2015 年 05 月南陽(yáng)理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)繁星天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation of theFanXing Weather Information Management System總 計(jì):畢業(yè)設(shè)計(jì)(論文) 27頁(yè)表 格: 6個(gè)圖 片: 22個(gè)繁星天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)南 陽(yáng) 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)繁星天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementa

2、tion of theFanXing Weather Information Management System學(xué) 院(系): 軟件學(xué)院 專 業(yè): 軟件工程 學(xué) 生 姓 名: 胡亮亮 學(xué) 號(hào): 1115115127 指導(dǎo)教師(職稱): 劉嘵明 講師 評(píng) 閱 教 師: 李倩偉 完 成 日 期: 2015年05月01日 南陽(yáng)理工學(xué)院Nanyang Institute of Technology繁星天氣信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)軟件工程 胡亮亮摘 要 隨著社會(huì)的進(jìn)步和經(jīng)濟(jì)的發(fā)展,天氣對(duì)人類的影響也日益的深遠(yuǎn),所以人們對(duì)于氣象變化的研究也愈發(fā)的頻繁,傳統(tǒng)的信息記錄方式已經(jīng)很難滿足現(xiàn)今的龐大天氣數(shù)據(jù)。基于

3、以上事實(shí),使用了VS2010,SQL2005以及ADO對(duì)象接口進(jìn)行開發(fā)。使用戶能夠注冊(cè)帳號(hào)并登錄系統(tǒng),對(duì)地區(qū)信息以及對(duì)應(yīng)的天氣信息進(jìn)行添加和修改并統(tǒng)計(jì)出來(lái),還能夠根據(jù)用戶的需求生成圖表和導(dǎo)出到Excel表格中。用戶能夠清晰直觀的了解某一地區(qū)的一段時(shí)間的天氣變化,可以做為研究天氣變化規(guī)律的參考數(shù)據(jù)資料。關(guān)鍵詞 天氣信息;數(shù)據(jù)管理;圖表化Design and Implementation of theFanXing Weather Information Management SystemSoftware Engineering MajorHu LiangLiangAbstract: With s

4、ocial progress and economic development, the impact of weather on human increasingly far-reaching, so people for climate change research also increasingly frequent ,the traditional way of recording information has been difficult to meet the current huge weather data. Based on the above facts, use VS

5、2010,SQL2005 and ADO object interfaces designed this system. Enables users to register an account and log on to the system, add and modify information and corresponding weather information and statistics, can also generate charts based on users ' needs and export to Excel tables. Users can clear

6、 intuitive understanding of a region's weather for a while, and can be used as reference data of weather changes.Key words: Weather Information; Data Management; Graphed目 錄1 緒論11.1 項(xiàng)目研究背景11.2 項(xiàng)目研究目的與意義11.3 論文的組織結(jié)構(gòu)22 相關(guān)技術(shù)及開發(fā)工具介紹22.1 相關(guān)技術(shù)22.2 開發(fā)工具33 系統(tǒng)分析33.1 可行性分析43.2 功能需求分析43.3 非功能需求分析54 系統(tǒng)設(shè)計(jì)64.1

7、 系統(tǒng)體系結(jié)構(gòu)64.2 系統(tǒng)工作流程74.3 功能設(shè)計(jì)84.3.1 系統(tǒng)模塊劃分84.3.2 系統(tǒng)模塊功能94.4 數(shù)據(jù)庫(kù)設(shè)計(jì)104.4.1 概念結(jié)構(gòu)設(shè)計(jì)104.4.2 邏輯結(jié)構(gòu)設(shè)計(jì)115 系統(tǒng)實(shí)現(xiàn)125.1 開發(fā)環(huán)境125.2 功能實(shí)現(xiàn)135.2.1 注冊(cè)135.2.2 登錄145.2.3 主界面145.2.4 地區(qū)管理155.2.5 天氣管理185.2.6 圖表生成206 功能測(cè)試216.1 注冊(cè)功能測(cè)試216.2 登錄功能測(cè)試23參考文獻(xiàn)26致謝271 緒論1.1 項(xiàng)目研究背景隨著社會(huì)的進(jìn)步和經(jīng)濟(jì)的發(fā)展,人們的戶外活動(dòng)也日益頻繁,各地的天氣情況越來(lái)越受到人們的關(guān)注,從氣象行業(yè)的發(fā)展歷程來(lái)

8、看,信息技術(shù)對(duì)氣象學(xué)科和氣象業(yè)務(wù)是起著決定性推動(dòng)作用的。氣象觀測(cè)在17世紀(jì)就已經(jīng)出現(xiàn)了,但到1870年以前,氣象預(yù)報(bào)基本上還是停留在單站天氣預(yù)報(bào),原因很簡(jiǎn)單,因?yàn)轭A(yù)報(bào)專家對(duì)氣象的整體狀態(tài)沒(méi)有明晰的了解1。1893年,無(wú)線電通信誕生了,由于無(wú)線電通信的誕生,到1930年之前,地面觀測(cè)網(wǎng)建立起來(lái)了,使得氣象科學(xué)家能夠從整體上了解到地面氣象要素,大氣波動(dòng)和大氣運(yùn)行的狀態(tài),由此天氣預(yù)報(bào)的實(shí)踐開始了。一些氣象學(xué)科的學(xué)派也開始誕生了。1928年,前蘇聯(lián)專家發(fā)明了無(wú)線電探空儀,使得大氣探測(cè)得以實(shí)現(xiàn),特別是1939年前,高空探測(cè)站網(wǎng)的建立,使得人們對(duì)全球整體大氣運(yùn)行狀態(tài)有了比較全面的了解,由此催生了氣象學(xué)科的

9、誕生和發(fā)展,許多氣象科學(xué)家是在1930年前后開始陸續(xù)出現(xiàn)的,像Rossby先生,此人在氣象界是非常著名的科學(xué)家,他提出了大氣長(zhǎng)波理論,奠定了整個(gè)氣象學(xué)科的基礎(chǔ),而如果沒(méi)有地面站網(wǎng)和高空站網(wǎng)所提供的大氣整體觀測(cè)資料,Rossby先生是無(wú)法提出該理論的;進(jìn)一步說(shuō),如果沒(méi)有無(wú)線電通信技術(shù),地面和高空站網(wǎng)是無(wú)論如何無(wú)法建立起來(lái)的。所以說(shuō),無(wú)線電通訊的誕生和在氣象部門的有效使用,促進(jìn)了,或者說(shuō)根本性地推動(dòng)了氣象學(xué)科的發(fā)展。進(jìn)入21世紀(jì),信息技術(shù)進(jìn)入高速發(fā)展階段,人們對(duì)于天氣的研究也越來(lái)多樣化,通過(guò)收集天氣信息,觀測(cè)天氣變化的規(guī)律,以期能夠促進(jìn)人類社會(huì)發(fā)展。1.2 項(xiàng)目研究目的與意義傳統(tǒng)的人工用紙進(jìn)行記錄

10、效率低、容易丟失,同時(shí),處理信息和管理模式需向信息化、網(wǎng)絡(luò)化方式轉(zhuǎn)變,擴(kuò)大信息共享。面對(duì)這樣的情況,及時(shí)的研發(fā)一套適用于天氣信息管理信息化軟件將有效彌補(bǔ)傳統(tǒng)方式的不足,并且能夠?qū)庀笮畔⑦M(jìn)行趨勢(shì)分析、數(shù)據(jù)共享等,開發(fā)這樣的一個(gè)系統(tǒng)對(duì)于提高氣象信息科學(xué)管理和預(yù)測(cè)分析工作具有重要意義3。天氣信息管理系統(tǒng)是為了管理一個(gè)地區(qū)和對(duì)應(yīng)天氣等信息設(shè)計(jì)的。結(jié)合在實(shí)際天氣觀察和記錄工作中所遇到的問(wèn)題和收獲,對(duì)社天氣信息系統(tǒng)在設(shè)計(jì)開發(fā)等方面進(jìn)行研究,重點(diǎn)研究系統(tǒng)開發(fā)中所采用的軟硬件平臺(tái)規(guī)范、數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)、開發(fā)工具的選擇與使用,從技術(shù)手段的角度闡述如何實(shí)現(xiàn)從傳統(tǒng)管理模式向信息化管理模式轉(zhuǎn)變,以及信息化管理的高效2

11、。通過(guò)現(xiàn)代科技研發(fā)出相關(guān)的軟件產(chǎn)品,我們可以使用新的方式記錄統(tǒng)計(jì)天氣信息,大大提高了氣象工作者的工作效率,也可以通過(guò)附加的一些功能對(duì)數(shù)據(jù)進(jìn)行優(yōu)化展示,使數(shù)據(jù)可視化,方便相關(guān)工作者對(duì)數(shù)據(jù)結(jié)果進(jìn)行處理,更快捷的做出初步的處理,得出研究的初步結(jié)論。1.3 論文的組織結(jié)構(gòu)本文的具體結(jié)構(gòu)安排如下:第一章,描述項(xiàng)目的選題背景,給出項(xiàng)目研究的目的與意義。第二章,詳細(xì)介紹一些本系統(tǒng)使用到的關(guān)鍵技術(shù)和開發(fā)平臺(tái)。第三章,通過(guò)收集和分析系統(tǒng)需求,描述了系統(tǒng)可行性分析、功能需求和非功能需求。第四章,詳細(xì)的描述系統(tǒng)的體系結(jié)構(gòu),并且簡(jiǎn)述系統(tǒng)的每一個(gè)主要功能,對(duì)系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)做簡(jiǎn)要說(shuō)明。第五章,利用C+編程,基于MFC

12、Dialog應(yīng)用程序,結(jié)合SQL Server 2008數(shù)據(jù)庫(kù),利用ADO進(jìn)行編程,說(shuō)明系統(tǒng)各功能的實(shí)現(xiàn)方法等。第六章,搭建測(cè)試環(huán)境,進(jìn)行系統(tǒng)功能測(cè)試。2 相關(guān)技術(shù)及開發(fā)工具介紹2.1 相關(guān)技術(shù)(1)CDC類CDC類定義的是設(shè)備上下文對(duì)象的類。CDC對(duì)象提供處理顯示器或打印機(jī)等設(shè)備上下文的成員函數(shù),以及處理與窗口客戶區(qū)對(duì)應(yīng)的顯示上下文的成員。通過(guò)CDC對(duì)象的成員函數(shù)進(jìn)行所有的繪圖。類對(duì)設(shè)備上下文操作提供了成員函數(shù),處理繪圖工具。安全型圖形設(shè)備接口(GDI)對(duì)象收集,以及處理顏色和調(diào)色板。它還為獲取和設(shè)置繪圖屬性、映射,處理視點(diǎn)、窗口擴(kuò)展、轉(zhuǎn)換坐標(biāo),處理區(qū)域、剪貼、繪制直線及繪制簡(jiǎn)單橢圓和多邊形

13、等形狀提供了成員函數(shù)。另外還為繪制文本、處理字體,使用打印機(jī)跳轉(zhuǎn),滾動(dòng)和播放元文件提供成員函數(shù)。使用CDC對(duì)象時(shí)要構(gòu)造它,然后調(diào)用與它平等的、使用設(shè)備上下文的Windows函數(shù)的成員函數(shù)。(2)MFCMFC(MicrosoftFoundationClasses)是微軟基礎(chǔ)類庫(kù)的簡(jiǎn)稱,是微軟公司實(shí)現(xiàn)的一個(gè)c+類庫(kù),主要封裝了大部分的windows API函數(shù),vc+是微軟公司開發(fā)的c/c+的集成開發(fā)環(huán)境,所謂集成開發(fā)環(huán)境,就是說(shuō)利用它你可以編輯,編譯,調(diào)試,而不是使用多種工具輪換操作,靈活性較大。有時(shí)人們說(shuō)vc呢也指它的內(nèi)部編譯器,集成開發(fā)環(huán)境必須有一個(gè)編譯器內(nèi)核,要不有什么用,例如DevC+其

14、中一個(gè)編譯器內(nèi)核就是gcc。 MFC除了是一個(gè)類庫(kù)以外,還是一個(gè)框架,你應(yīng)該試過(guò),在vc+里新建一個(gè)MFC的工程,開發(fā)環(huán)境會(huì)自動(dòng)幫你產(chǎn)生許多文件,同時(shí)它使用了mfcxx.dll。xx是版本,它封裝了mfc內(nèi)核,所以代碼看不到原本的SDK編程中的消息循環(huán)等等東西,因?yàn)镸FC框架幫你封裝好了,這樣你就可以專心的考慮你程序的邏輯,而不是這些每次編程都要重復(fù)的東西,但是由于是通用框架,沒(méi)有最好的針對(duì)性,當(dāng)然也就喪失了一些靈活性和效率但是MFC的封裝很淺,所以效率上損失不大。(3)ADO一種程序?qū)ο?,用于表示用戶?shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu)和所包含的數(shù)據(jù)。在Microsoft Visual Basic編輯器中,可

15、以使用ADO對(duì)象以及ADO的附加組件(稱為Microsoft ADO Extensions for DLL and Security(ADOX))來(lái)創(chuàng)建或修改表和查詢、檢驗(yàn)數(shù)據(jù)庫(kù)、或者訪問(wèn)外部數(shù)據(jù)源。還可在代碼中使用ADO來(lái)操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。2.2 開發(fā)工具(1) Microsoft Visual Studio 2010Visual Studio是微軟公司推出的開發(fā)環(huán)境,是目前最流行的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境。Visual Studio 2010版本于2010年4月12日上市,其集成開發(fā)環(huán)境(IDE)的界面被重新設(shè)計(jì)和組織,變得更加簡(jiǎn)單明了。Visual Studio 2010同時(shí)

16、帶來(lái)了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持開發(fā)面向Windows 7的應(yīng)用程序。除了Microsoft SQL Server,它還支持 IBM DB2和Oracle數(shù)據(jù)庫(kù)。(2) SQL Server 2005Microsoft SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。Microsoft SQL Server 2005數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,

17、使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。Microsoft SQL Server 2005 數(shù)據(jù)引擎是該企業(yè)數(shù)據(jù)管理解決方案的核心。此外 Microsoft SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。這使您的企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的 BI 解決方案,幫助您的團(tuán)隊(duì)通過(guò)記分卡、Dashboard、Web services 和移動(dòng)設(shè)備將數(shù)據(jù)應(yīng)用推向業(yè)務(wù)的各個(gè)領(lǐng)域。與 Microsoft Visual Studio、Microsoft Office System 以及新的開發(fā)工具包(包括 Business Intelligence Development

18、Studio)的緊密集成使 Microsoft SQL Server 2005 與眾不同。無(wú)論您是開發(fā)人員、數(shù)據(jù)庫(kù)管理員、信息工作者還是決策者,Microsoft SQL Server 2005 都可以為您提供創(chuàng)新的解決方案,幫助您從數(shù)據(jù)中更多地獲益。3 系統(tǒng)分析需求分析是描述建立一個(gè)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),描寫該系統(tǒng)具有什么目的、實(shí)現(xiàn)什么功能、所需功能性定義的工作。通過(guò)系統(tǒng)的分析產(chǎn)品需要,設(shè)計(jì)出符合系統(tǒng)定義的架構(gòu)、流程結(jié)構(gòu)、數(shù)據(jù)庫(kù)結(jié)構(gòu)等。用戶并不了解軟件開發(fā)的相關(guān)知識(shí)和流程,開發(fā)者不清楚用戶所需要的功能性需求。這樣一種認(rèn)知差異容易造成增加系統(tǒng)開發(fā)的難度。這就需要通過(guò)開發(fā)者與用戶進(jìn)行系統(tǒng)可行性與功能性

19、的深入溝通,從而針對(duì)具體內(nèi)容制定出一份詳實(shí)的需求分析文檔。事實(shí)證明,需求分析文檔的質(zhì)量對(duì)最終成品的質(zhì)量具有相當(dāng)大的影響。3.1 可行性分析(1)經(jīng)濟(jì)可行性天氣信息管理涉及到氣象、雨情等各種數(shù)據(jù),具有非常大的科研和實(shí)際價(jià)值,于是建設(shè)一套天氣信息管理系統(tǒng)就非常必要,會(huì)給一個(gè)地區(qū)經(jīng)濟(jì)和社會(huì)帶來(lái)顯著民生效應(yīng)4。(2)技術(shù)可行性本系統(tǒng)采用的C+編程、MFC框架、ADO編程,PowerDesigner建模工具等為基礎(chǔ)開發(fā)技術(shù),SQL Server2005作為數(shù)據(jù)庫(kù)。系統(tǒng)采用C/S結(jié)構(gòu),結(jié)合分層體系架構(gòu)來(lái)進(jìn)行設(shè)計(jì),降低層與層之間耦合性,有利于開發(fā)和測(cè)試,也有利于功能擴(kuò)展。3.2 功能需求分析信息管理系統(tǒng)就是

20、用戶在處理較多數(shù)據(jù)時(shí),人工方法的效率是較為低下的,因?yàn)樾枰到y(tǒng)能夠有條理的快捷的處理龐大的數(shù)據(jù)。尤其是天氣信息,因?yàn)樘鞖庑畔撕芏嗟囊?。包括溫度,風(fēng)向,風(fēng)力,降雨量,濕度,紫外線強(qiáng)度等等。用戶在使用本系統(tǒng)的時(shí)候,能夠?qū)κ褂孟到y(tǒng)的各個(gè)功能對(duì)包括用戶,地區(qū),天氣信息等進(jìn)行操作。使其更方便的管理數(shù)據(jù),讓工作人員能夠更方便的通過(guò)信息管理系統(tǒng)查看數(shù)據(jù),得出研究結(jié)果。主要前臺(tái)功能如下:(1)注冊(cè)模塊用戶需要使用帳號(hào)密碼才能夠登錄系統(tǒng),所以在登錄之前需要注冊(cè)信息。用戶需要輸入基本信息進(jìn)行注冊(cè),所以用戶需要有用戶名,因?yàn)橄到y(tǒng)的用戶不止一位,為了防止用戶名重復(fù),系統(tǒng)還需要對(duì)用戶的帳戶名進(jìn)行重復(fù)性檢測(cè),檢測(cè)

21、通過(guò)之后才能后注冊(cè)成功。注冊(cè)成功后用戶才能使用該系統(tǒng)。 (2)登錄模塊用戶在成功注冊(cè)完畢后,使用注冊(cè)賬號(hào)和密碼登錄系統(tǒng),賬戶名和密碼輸入正確之后成功登錄,之后進(jìn)入系統(tǒng)主界面。 (3)區(qū)域管理模塊系統(tǒng)主界面需要有個(gè)管理地區(qū)的功能,因?yàn)槲覀冊(cè)诠芾硪粋€(gè)地區(qū)不同時(shí)段的天氣信息之前,肯定是先要管理不同的地區(qū),區(qū)域管理模塊下分為兩個(gè)小功能,一是新增區(qū)域功能,可以隨著用戶的需要添加新的地區(qū):首先是添加具體的區(qū)域,然后是區(qū)域所在的國(guó)家,省區(qū),下面是市級(jí)地區(qū)。二是查詢功能,當(dāng)管理的地區(qū)過(guò)多的時(shí)候,有時(shí)候我們想要查看某一地區(qū)的情況就需要用到這一功能。然后在某個(gè)地區(qū)之下,管理這個(gè)地區(qū)的所有天氣信息。同樣在查詢中,我

22、們也需要先選擇查詢地區(qū)所在的國(guó)家,省,市,然后在選擇具體的區(qū)域,點(diǎn)擊查詢,系統(tǒng)給出該地區(qū)所有的天氣信息。 (4)天氣管理模塊在系統(tǒng)劃定了一個(gè)地區(qū)之后,我們才能夠?qū)@個(gè)地區(qū)的天氣信息進(jìn)行管理。在管理模塊下也分為新增天氣信息和查詢天氣信息,添加基本的天氣信息應(yīng)該包含有,這個(gè)天氣信息所在的地區(qū),總體的一個(gè)天氣情況,再細(xì)劃分成降雨量,風(fēng)向,風(fēng)力,最高溫度以及最低溫度等;然后當(dāng)我們需要查詢的時(shí)候,找到想要查詢的地區(qū)的信息,找到對(duì)應(yīng)的地區(qū)的位置,然后就可以查到對(duì)應(yīng)這個(gè)地區(qū)的所有的天氣信息。 (5)圖形統(tǒng)計(jì)模塊在我們收集到了某一地區(qū)的一段時(shí)間的天氣信息以后,為了用戶能夠更加直觀的了解這一地區(qū)在這一時(shí)間段的天

23、氣的變化,系統(tǒng)可以將溫度和降雨量分別生成折線圖和柱狀圖,使數(shù)據(jù)清晰易讀。 (6)導(dǎo)出excel模塊用戶在收集信息的時(shí)候可能是零散的,為了方便統(tǒng)計(jì),用戶可以查詢某地區(qū)的所有天氣信息,并且可以導(dǎo)出到Excel表格中。方便做為數(shù)據(jù)資料保存。在本系統(tǒng)中,Excel其實(shí)是相當(dāng)與另一個(gè)數(shù)據(jù)庫(kù),系統(tǒng)只是把SQL中的數(shù)據(jù)保存到Excel這個(gè)數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出功能。當(dāng)然在實(shí)際的應(yīng)用中,我們也可以把數(shù)據(jù)以其他的形式導(dǎo)出來(lái)。后臺(tái)功能:數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)設(shè)計(jì)是建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的技術(shù),是信息系統(tǒng)開發(fā)和建設(shè)中的核心技術(shù)。由于數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的復(fù)雜性,為了支持相關(guān)程序運(yùn)行,數(shù)據(jù)庫(kù)設(shè)計(jì)就變得異常復(fù)雜,因此最佳設(shè)計(jì)不可能

24、一蹴而就,而只能是一種“反復(fù)探尋,逐步求精”的過(guò)程,也就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程。數(shù)據(jù)的標(biāo)準(zhǔn)化有助于消除數(shù)據(jù)庫(kù)中的數(shù)據(jù)冗余。標(biāo)準(zhǔn)化有好幾種形式,但Third Normal Form(3NF)通常被認(rèn)為在性能、擴(kuò)展性和數(shù)據(jù)完整性方面達(dá)到了最好平衡。簡(jiǎn)單來(lái)說(shuō),遵守3NF 標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)的表設(shè)計(jì)原則是:“One Fact in One Place”即某個(gè)表只包括其本身基本的屬性,當(dāng)不是它們本身所具有的屬性時(shí)需進(jìn)行分解。表之間的關(guān)系通過(guò)外鍵相連接。它具有以下特點(diǎn):有一組表專門存放通過(guò)鍵連接起來(lái)的關(guān)聯(lián)數(shù)據(jù)。3.3 非功能需求分析(1)時(shí)間性能需求系統(tǒng)為桌面程序,使用客

25、戶端方式訪問(wèn),響應(yīng)速度為5秒以內(nèi)。(2)系統(tǒng)開放性需求基于主流WINDOWS平臺(tái)建設(shè),使其具有良好的可擴(kuò)充性和可移植性,系統(tǒng)可運(yùn)行在主流的WINDOWS操作系統(tǒng)平臺(tái)上,便于以后系統(tǒng)的升級(jí)。遵循主流的標(biāo)準(zhǔn)和協(xié)議,不僅可以為系統(tǒng)與上級(jí)平臺(tái)系統(tǒng)交換信息提供便利,而且也有利于系統(tǒng)內(nèi)部各部分之間交換信息,這將有助于提高系統(tǒng)擴(kuò)充性。(3)界面友好性需求系統(tǒng)提供統(tǒng)一的操作界面和方式,操作界面美觀大方,布局合理,功能完善。使用戶能夠獲得最佳的操作體驗(yàn)。(4)環(huán)境需求硬件環(huán)境:包括服務(wù)器端和客戶端,服務(wù)器端的最低配置要求為CPU 2GHZ、內(nèi)存256MB、硬盤2T;客戶端最低配置為CPU 1GHZ、內(nèi)存128M

26、B、硬盤500G。軟件環(huán)境:同樣包括服務(wù)器端和客戶端,服務(wù)器端采用Windows 2000 Server操作系統(tǒng),SQL Server 2005數(shù)據(jù)庫(kù);客戶端為Windows 7操作系統(tǒng)4 系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)體系結(jié)構(gòu)系統(tǒng)采用C/S結(jié)構(gòu)進(jìn)行設(shè)計(jì)。C/S 結(jié)構(gòu)的基本原則是將計(jì)算機(jī)應(yīng)用任務(wù)分解成多個(gè)子任務(wù),由多臺(tái)計(jì)算機(jī)分工完成,即采用“功能分布”原則。客戶端完成數(shù)據(jù)處理,數(shù)據(jù)表示以及用戶接口功能;服務(wù)器端完成DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))的核心功能。這種客戶請(qǐng)求服務(wù)、服務(wù)器提供服務(wù)的處理方式是一種新型的計(jì)算機(jī)應(yīng)用模式。被廣泛應(yīng)用于現(xiàn)在的軟件設(shè)計(jì)開發(fā)中。Client和Server常常分別處在相距很遠(yuǎn)的兩

27、臺(tái)計(jì)算機(jī)上,Client程序的任務(wù)是將用戶的要求提交給Server程序,再將Server程序返回的結(jié)果以特定的形式顯示給用戶;Server程序的任務(wù)是接收客戶程序提出的服務(wù)請(qǐng)求,進(jìn)行相應(yīng)的處理,再將結(jié)果返回給客戶程序。客戶端主要運(yùn)行天氣信息管理系統(tǒng),服務(wù)器端運(yùn)行SQL Server 2008數(shù)據(jù)庫(kù),客戶端和服務(wù)器采用網(wǎng)絡(luò)進(jìn)行通信5。天氣信息管理系統(tǒng)主要是完成天氣信息管理各個(gè)方面問(wèn)題的實(shí)現(xiàn),通過(guò)數(shù)據(jù)的收集,向用戶顯示具體各個(gè)地區(qū)信息(所在國(guó)家、所在省、所在城市、所在地區(qū))的具體天氣信息。用戶通過(guò)之前的新增,讓后可以查看某一段時(shí)間內(nèi),某個(gè)地區(qū)天氣趨勢(shì)圖,并且可以將結(jié)果導(dǎo)出excel。這種功能大大節(jié)

28、省了相關(guān)工作者的工作時(shí)間,提高工作者的工作效率。本系統(tǒng)為了提高程序的可讀性,可維護(hù)性,使用分層架構(gòu)對(duì)程序進(jìn)行分層,程序分為表示層、邏輯層和數(shù)據(jù)存儲(chǔ)層。層與層之間通過(guò)實(shí)體對(duì)象進(jìn)行傳遞6。通過(guò)整理分析上面的結(jié)果,我們分析得出了以下有關(guān)于系統(tǒng)體系結(jié)構(gòu)的邏輯圖,主要是分為3層。體系結(jié)構(gòu)圖如圖41所示:圖41系統(tǒng)體系結(jié)構(gòu)圖表示層:系統(tǒng)的主要操作界面,如登錄注冊(cè)界面,系統(tǒng)主界面,添加和修改界面等,業(yè)務(wù)邏輯層:就是整個(gè)系統(tǒng)的運(yùn)做流程邏輯。業(yè)務(wù)實(shí)體就是在系統(tǒng)中存在的幾個(gè)實(shí)體以及之間的關(guān)系;數(shù)據(jù)訪問(wèn)層就是系統(tǒng)通過(guò)代碼實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。4.2 系統(tǒng)工作流程天氣信息管理系統(tǒng)主要實(shí)現(xiàn)的就是用戶對(duì)天氣信息的管理和操作

29、。首先,用戶需要注冊(cè)一個(gè)可用的用戶名和賬戶,然后再打開登錄界面,輸入剛剛注冊(cè)的用戶名和密碼,輸入正確之后成功進(jìn)入系統(tǒng)。然后在系統(tǒng)的主界面,用戶可以根據(jù)自己的需求使用系統(tǒng)提供的功能。比如用戶如果想添加天氣信息的話,首先需要選擇在哪個(gè)地區(qū)添加信息,如果系統(tǒng)中還未添加地區(qū)的話,用戶需要先進(jìn)行添加地區(qū)的操作,添加完成之后,徐澤地區(qū),并且選擇添加日期,然后按照系統(tǒng)給出的界面進(jìn)行相關(guān)的信息添加工作,全部完成之后,確定即可。用戶在收集信息的時(shí)候可能是零散的,為了方便統(tǒng)計(jì),用戶可以查詢某地區(qū)的所有天氣信息,并且可以導(dǎo)出到Excel表格中。方便保存。Excel其實(shí)是相當(dāng)與另一個(gè)數(shù)據(jù)庫(kù),系統(tǒng)只是把系統(tǒng)的數(shù)據(jù)保存到

30、Excel這個(gè)數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出功能。當(dāng)然在實(shí)際的應(yīng)用中,我們也可以把數(shù)據(jù)以其他的形式導(dǎo)出來(lái),具體的導(dǎo)出形式可以根據(jù)用戶的需要進(jìn)行調(diào)整。注冊(cè)登錄流程圖如圖42所示:圖42注冊(cè)登錄流程圖4.3 功能設(shè)計(jì)4.3.1 系統(tǒng)模塊劃分按“分而治之”思想,進(jìn)行模塊劃分。按照需求分析得出的結(jié)論,系統(tǒng)一共擁有六個(gè)大模塊。分別為:(1)注冊(cè)模塊:用戶只有注冊(cè)以后才可以訪問(wèn)系統(tǒng),輸入用戶名和密碼,別人如果已經(jīng)注冊(cè)的用戶名,是不可以在被注冊(cè)的。(2)登錄模塊:在系統(tǒng)注冊(cè)成功之后,就可以進(jìn)行登錄(3)區(qū)域管理模塊:隨著關(guān)注的天氣信息擴(kuò)大,可以關(guān)注新增的區(qū)域。可以通過(guò)查看區(qū)域,知道關(guān)注了那些地區(qū)。(4)天氣信息管

31、理模塊:當(dāng)添加完新增地區(qū)以后,可以選擇新增的地區(qū),添加天氣信息。通過(guò)選擇具體的地區(qū)以后,可以查詢地區(qū)的具體天氣信息(5)圖形統(tǒng)計(jì)模塊:通過(guò)選擇之前添加的具體的地區(qū),選擇開始時(shí)間和結(jié)束時(shí)間,可以將天氣信息生成天氣趨勢(shì)圖(6)文件導(dǎo)出模塊:當(dāng)查詢完天氣信息以后,可以導(dǎo)出相應(yīng)的結(jié)果到excel4.3.2 系統(tǒng)模塊功能系統(tǒng)功能結(jié)構(gòu)圖如圖43所示:圖43系統(tǒng)功能結(jié)構(gòu)圖各模塊的具體操作流程信息如下:(1)注冊(cè)用戶需要使用帳號(hào)密碼才能夠登錄系統(tǒng),所以在登錄之前需要注冊(cè)信息。用戶需要輸入基本信息進(jìn)行注冊(cè),因?yàn)橄到y(tǒng)的用戶不止一位,為了防止用戶名重復(fù),系統(tǒng)還需要對(duì)用戶的帳戶名進(jìn)行重復(fù)性檢測(cè),檢測(cè)通過(guò)之后才能后注冊(cè)

32、成功。注冊(cè)成功后用戶才能使用該系統(tǒng)。(2)登錄用戶在成功注冊(cè)完畢后,使用注冊(cè)賬號(hào)和密碼登錄系統(tǒng),賬戶名和密碼輸入正確之后成功登錄,之后進(jìn)入系統(tǒng)主界面。(3)區(qū)域管理系統(tǒng)主界面需要有個(gè)管理地區(qū)的功能,因?yàn)槲覀冊(cè)诠芾硪粋€(gè)地區(qū)不同時(shí)段的天氣信息之前,肯定是先要管理不同的地區(qū),區(qū)域管理模塊下分為兩個(gè)小功能,一是新增區(qū)域功能,可以隨著用戶的需要添加新的地區(qū):二是查詢功能,當(dāng)管理的地區(qū)過(guò)多的時(shí)候,有時(shí)候我們想要查看某一地區(qū)的情況就需要用到這一功能。然后在某個(gè)地區(qū)之下,管理這個(gè)地區(qū)的所有天氣信息。 (4)天氣管理在系統(tǒng)劃定了一個(gè)地區(qū)之后,我們才能夠?qū)@個(gè)地區(qū)的天氣信息進(jìn)行管理。在管理模塊下也分為新增天氣信息

33、和查詢天氣信息,添加基本的天氣信息應(yīng)該包含有,這個(gè)天氣信息所在的地區(qū),總體的一個(gè)天氣情況,再細(xì)劃分成降雨量,風(fēng)向,風(fēng)力,最高溫度以及最低溫度等;然后當(dāng)我們需要查詢的時(shí)候,找到想要查詢的地區(qū)的信息,找到對(duì)應(yīng)的地區(qū)的位置,然后就可以查到對(duì)應(yīng)這個(gè)地區(qū)的所有的天氣信息。(5)圖形統(tǒng)計(jì)在我們收集到了某一地區(qū)的一段時(shí)間的天氣信息以后,為了用戶能夠更加直觀的了解這一地區(qū)在這一時(shí)間段的天氣的變化,系統(tǒng)可以將溫度和降雨量分別生成折線圖和柱狀圖,使數(shù)據(jù)清晰易讀。(6)導(dǎo)出Excel用戶在收集信息的時(shí)候可能是零散的,為了方便統(tǒng)計(jì),用戶可以查詢某地區(qū)的所有天氣信息,并且可以導(dǎo)出到Excel表格中。方便做為數(shù)據(jù)資料保存

34、8。4.4 數(shù)據(jù)庫(kù)設(shè)計(jì)通過(guò)系統(tǒng)業(yè)務(wù)分析和流程,在這個(gè)過(guò)程中提煉數(shù)據(jù)信息。本系統(tǒng)使用SQL Server2008數(shù)據(jù)庫(kù),利用PowerDesigner建模工具創(chuàng)建項(xiàng)目數(shù)據(jù)庫(kù)的概念模型、邏輯模型,并生成SQL Server2008數(shù)據(jù)庫(kù)建立SQL腳本。數(shù)據(jù)庫(kù)設(shè)計(jì)步驟:(1)根據(jù)需求,得出需要有用戶來(lái)操作,所以有用戶信息,在管理天氣信息之前,同樣需要一個(gè)用來(lái)管理地區(qū)的實(shí)體,最后在加上天氣信息本身,最后我們得出本天氣信息管理系統(tǒng)擁有三個(gè)業(yè)務(wù)實(shí)體。分別是用戶信息,區(qū)域信息和天氣信息。(2)根據(jù)信息識(shí)別出實(shí)體以及實(shí)體之間的關(guān)系(3)根據(jù)實(shí)體關(guān)系識(shí)建立E-R圖(4)根據(jù)E-R圖,設(shè)計(jì)數(shù)據(jù)庫(kù)的概念結(jié)果和邏輯結(jié)

35、構(gòu)5。4.4.1 概念結(jié)構(gòu)設(shè)計(jì)根據(jù)我們的需求分析,提取實(shí)體信息,系統(tǒng)中一共有3個(gè)實(shí)體,即用戶、地區(qū)、天氣信息。(1)基本信息為:ID、賬號(hào)、密碼、刪除標(biāo)記。(2)基本信息為:ID、區(qū)名稱、城市名稱、省名稱、國(guó)家名稱、刪除標(biāo)記。(3)基本信息為:ID、天氣現(xiàn)象、風(fēng)向、風(fēng)力、更新時(shí)間、最高溫度、最低溫度、降雨量、刪除標(biāo)記。(4) 用戶、地區(qū)和天氣信息各實(shí)體間的關(guān)系地區(qū)和天氣信息的關(guān)系:一對(duì)多(1:n),一個(gè)地區(qū)可以有多個(gè)天氣信息,某個(gè)天氣信息屬于某個(gè)地區(qū)。用戶實(shí)體是獨(dú)立的。因?yàn)橛脩糁皇枪芾磉@些地區(qū)及其信息的,從結(jié)構(gòu)上說(shuō)和地區(qū)實(shí)體與天氣實(shí)體并不存在實(shí)體間關(guān)系。應(yīng)用PowerDesigner進(jìn)行繪制E

36、-R圖,如圖44所示:圖44系統(tǒng)E-R圖4.4.2 邏輯結(jié)構(gòu)設(shè)計(jì)在建設(shè)系統(tǒng)之前,我們必須對(duì)系統(tǒng)所用到的數(shù)據(jù)進(jìn)行大致的分類和具體的結(jié)構(gòu)設(shè)計(jì),既要做到清晰明了,又要能適應(yīng)系統(tǒng)各項(xiàng)功能的調(diào)用,而不至于產(chǎn)生結(jié)構(gòu)上的邏輯混亂,保證關(guān)鍵數(shù)據(jù)在意外情況下不會(huì)被破壞,可以說(shuō)數(shù)據(jù)庫(kù)是系統(tǒng)的重中之重。數(shù)據(jù)庫(kù)設(shè)計(jì)要遵循一些規(guī)則,一個(gè)好的數(shù)據(jù)庫(kù)滿足一些嚴(yán)格的約束和要求。盡量分離各實(shí)體對(duì)應(yīng)的表,一個(gè)實(shí)體對(duì)應(yīng)一個(gè)表,搞清楚該實(shí)體有哪些屬性,對(duì)應(yīng)有些什么字段,以及各實(shí)體之間有何種聯(lián)系。實(shí)體、屬性與聯(lián)系是進(jìn)行概念設(shè)計(jì)時(shí)要考慮的三個(gè)元素,也是一個(gè)好的數(shù)據(jù)庫(kù)設(shè)計(jì)的核心10。根據(jù)本系統(tǒng)的需求分析,有如下表的設(shè)計(jì) (1)用戶表(Us

37、erInfo表),存儲(chǔ)了用戶的信息。用戶注冊(cè)時(shí),系統(tǒng)會(huì)將將注冊(cè)信息添加入該表,將用戶的注冊(cè)信息保存在數(shù)據(jù)庫(kù)中。用戶登陸時(shí),通過(guò)將表單數(shù)據(jù)與數(shù)據(jù)庫(kù)中信息比對(duì),進(jìn)行驗(yàn)證登錄,通過(guò)驗(yàn)證登錄后可進(jìn)行具體修改等操作。見(jiàn)表41:字段標(biāo)識(shí)字段名類型說(shuō)明idIDint主鍵,自增字段UserName賬號(hào)varchar(64)不能為空,不能重名Pwd密碼varchar(64)不能為空delDel刪除標(biāo)記int默認(rèn)為0,0:未刪除,1:刪除表41 用戶表(2)區(qū)域表(Area表),用戶登錄之后,如果需要修改區(qū)域信息,就需要用用到這張表,用戶需要將地區(qū)的具體名稱,所屬的國(guó)家,省和市依次填入,確認(rèn)添加完成之后,系統(tǒng)將用

38、戶輸入的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)就將用戶添加的區(qū)名稱,國(guó)家名稱,省名稱和市名稱保存完畢。見(jiàn)表42:字段標(biāo)識(shí)字段名類型說(shuō)明idIDInt主鍵,自增字段DistrictName區(qū)名稱varchar(64)不能為空CityName城市名稱varchar(64)不能為空ProvinceName省名稱varchar(64)不能為空NationName國(guó)家名稱varchar(64)不能為空delDelint默認(rèn)為0,0:未刪除,1:刪除表42區(qū)域表(3)天氣信息表(WeatherInfo表),用戶在添加過(guò)區(qū)域之后,就可以對(duì)這個(gè)區(qū)域的天禧信息進(jìn)行添加,這張表包含的字段有ID信息,區(qū)域名稱,天氣現(xiàn)象,風(fēng)向,

39、風(fēng)力,更新時(shí)間,最高溫度,最低溫度和降雨量。同添加區(qū)域信息一樣,用戶可以在界面中一次添加天氣的詳細(xì)信息。具體見(jiàn)表43:字段標(biāo)識(shí)字段名類型說(shuō)明idIDint主鍵,自增字段Are_id地區(qū)IDint外鍵,與地區(qū)表(Area)ID字段關(guān)聯(lián)Phenomena 天氣現(xiàn)象intDirection 風(fēng)向intPower 風(fēng)力intUpdateTime 更新時(shí)間datetime TempHigh 最高溫度f(wàn)loat TempLow 最低溫度f(wàn)loat RainFall降雨量float delDelint默認(rèn)為0,0:未刪除,1:刪除11表43天氣信息表(4)表結(jié)構(gòu)關(guān)系通過(guò)需求分析和數(shù)據(jù)庫(kù)結(jié)構(gòu)可知,用戶表是單獨(dú)

40、的一個(gè)實(shí)體。天氣信息表是從屬于區(qū)域表的。5 系統(tǒng)實(shí)現(xiàn)5.1 開發(fā)環(huán)境硬件環(huán)境:處理器3.20GHZ以上;內(nèi)存在2.96GB以上;軟件環(huán)境:Windows XP版本(或以上)數(shù)據(jù)庫(kù)系統(tǒng):SQL Server 2005輔助工具:VS 20105.2 功能實(shí)現(xiàn)5.2.1 注冊(cè)實(shí)現(xiàn)用戶輸入賬號(hào)信息進(jìn)行注冊(cè),界面為CRegisterDlg類,在該對(duì)話框上進(jìn)行布局。要添加靜態(tài)文本框,編輯框和按鈕。靜態(tài)文本框是提示用戶右邊的編輯框應(yīng)該輸入什么內(nèi)容,在編輯框輸入具體的信息,在輸入完用戶名稱之后,點(diǎn)擊檢測(cè)按鈕,系統(tǒng)會(huì)判斷該用戶名稱是否已經(jīng)被注冊(cè)。之后再輸入密碼,點(diǎn)擊確定完成注冊(cè)。(1)代碼實(shí)現(xiàn)部分判斷注冊(cè)者是否

41、輸入了用戶名void CRegisterDlg:OnBnClickedCheckButton()UpdateData(TRUE);/ 判斷用戶名不能為空if(m_szUSER = "")MessageBox(_T("用戶名不能為空!");return;檢測(cè)該用戶名是否已經(jīng)被注冊(cè)CUserDao userDao;/ 創(chuàng)建CUserDao對(duì)象CPtrArray arrUser; / 創(chuàng)建CPtrArray對(duì)象if (!userDao.QueryInfobyUser(arrUser, m_szUSER)return;elseif (arrUser.GetSiz

42、e() = 0)MessageBox(_T("此用戶名可以注冊(cè)!");else if(arrUser.GetSize() > 0)MessageBox(_T("此用戶名已經(jīng)被注冊(cè)!");else/ Do nothing(2)效果圖,如圖51:圖51用戶注冊(cè)界面5.2.2 登錄用戶注冊(cè)成功之后,在登錄界面上輸入自己的帳號(hào)和密碼。系統(tǒng)會(huì)將表單程序提交給處理程序,程序會(huì)將用戶輸入的信息和數(shù)據(jù)庫(kù)中已存在的帳號(hào)信息進(jìn)行比對(duì),判斷這個(gè)帳號(hào)是否存在,如果存在再判斷密碼是否正確,如果輸入正確。系統(tǒng)會(huì)進(jìn)行反饋處理,顯示系統(tǒng)的主菜單界面,即登錄成功。 (1)代碼實(shí)現(xiàn)部

43、分/ 獲取用戶名?CString& CLoginDlg:GetUserName(void)return m_szUser;/ 獲取密碼CString& CLoginDlg:GetPassword(void)return m_szPwd;(2)效果圖,如圖52:圖52登錄界面圖5.2.3 主界面驗(yàn)證用戶輸入的登錄信息,用戶就可以使用天氣信息管理系統(tǒng)。主界面為CWeatherInfoMgrDlg對(duì)話框,在該對(duì)話框上進(jìn)行布局,并且加入菜單和工具欄11,主界面顯示了這個(gè)系統(tǒng)的主要功能,通過(guò)下拉選項(xiàng)來(lái)實(shí)現(xiàn)菜單的管理。用戶在點(diǎn)擊某一個(gè)功能的時(shí)候,系統(tǒng)會(huì)接收到用戶發(fā)出的信息,并打開相應(yīng)的子界

44、面功能。如圖53所示:圖53系統(tǒng)主界面5.2.4 地區(qū)管理地區(qū)管理分為添加地區(qū)和查詢地區(qū)部分。(1)新增地區(qū)添加區(qū)域信息的界面是基于對(duì)話框開發(fā)的。在工作時(shí)候,系統(tǒng)會(huì)將用戶添加的記錄依次保存到數(shù)據(jù)庫(kù)中,完成區(qū)域信息的添加。對(duì)話框中有4個(gè)靜態(tài)文本控件、4個(gè)編輯控件、2個(gè)按鈕。如表51所示:控件個(gè)數(shù)說(shuō)明靜態(tài)文本控件(Static Text)4分別對(duì)應(yīng)“區(qū)域名稱”、“所在城市”、“所在城市”、“所在國(guó)家”編輯控件(Edit Control)4對(duì)應(yīng)4個(gè)靜態(tài)文本的編輯框按鈕控件(Button)2“確定”、“取消”按鈕表51新增地區(qū)控件代碼實(shí)現(xiàn):當(dāng)點(diǎn)擊確定按鈕時(shí),響應(yīng)新增地區(qū)界面確定按鈕的函數(shù)。首先更新對(duì)話

45、框,判斷4個(gè)編輯控件的值是否為空。void CAddAreaDlg:OnBnClickedOk()UpdateData(TRUE);/ 更新對(duì)話框/ 判斷區(qū)域名稱、所在城市、所在省、所在國(guó)家統(tǒng)統(tǒng)不能為空if (m_szArea = "" | m_szCity = "" | m_szNation= "" | m_szProvi= "")MessageBox(_T("區(qū)域名稱、所在城市、所在省、所在國(guó)家統(tǒng)統(tǒng)不能為空!");return;如果區(qū)域名稱、所在城市、所在省、所在國(guó)家不為空,連接數(shù)據(jù)庫(kù)voi

46、d CAddAreaDlg:OnBnClickedOk()/ 將輸入的數(shù)據(jù)賦值給AreaInfo的成員變量CAreaInfo cAreaInfo;cAreaInfo.SetDistrict(m_szArea);cAreaInfo.SetCity(m_szCity);cAreaInfo.SetProvince(m_szProvi);cAreaInfo.SetNation(m_szNation);CAreaDao areaDao;/ 創(chuàng)建CAreaDao對(duì)象if (!areaDao.AddAreaInfo(cAreaInfo)MessageBox("添加失敗","提示

47、信息");return;elseMessageBox("添加成功","提示信息");return;效果圖,如圖54所示:圖54新增地區(qū)圖(2)查詢地區(qū)在用戶選擇要查詢的地區(qū)之后,系統(tǒng)會(huì)從數(shù)據(jù)庫(kù)的區(qū)域表中讀取數(shù)據(jù),用select語(yǔ)句查找相應(yīng)的信息,并將找到的信息結(jié)果顯示在界面上。查詢地區(qū)信息界面是基于對(duì)話框開發(fā)的。如表52所示:表52查詢地區(qū)控件控件個(gè)數(shù)說(shuō)明靜態(tài)文本控件1顯示“區(qū)域名稱”編輯文本控件1用戶輸入?yún)^(qū)域名稱列表控件1顯示區(qū)域名稱的相應(yīng)信息按鈕1查詢按鈕代碼實(shí)現(xiàn)當(dāng)點(diǎn)擊查詢按鈕時(shí),響應(yīng)查詢地區(qū)界面查詢按鈕的函數(shù)。更新界面,連接數(shù)據(jù)庫(kù),在數(shù)據(jù)

48、庫(kù)中查詢相應(yīng)的區(qū)域信息,判斷是否成功。CUserDao userDao;/ 創(chuàng)建CUserDao對(duì)象CPtrArray arrUser; / 創(chuàng)建CPtrArray對(duì)象void CQueryAreaDlg:OnBnClickedQuery()SetListItem(m_szArea);void CQueryAreaDlg:SetListItem(CString& szArea)CAreaDao areaDao; / 創(chuàng)建CAreaDao對(duì)象CPtrArray arrArea;/ 存儲(chǔ)區(qū)域?qū)ο蟮臄?shù)組if (!areaDao.QueryAreaInfo(arrArea, szArea)re

49、turn;else/ 首先將列表清空m_lcArea.DeleteAllItems();/ 逐行讀取數(shù)據(jù)for(int i = 0; i < arrArea.GetSize(); i+)CAreaInfo* pAreaInfo = (CAreaInfo*)arrArea.GetAt(i);/ 將區(qū)域信息添加到列表中m_lcArea.InsertItem(i, pAreaInfo ->GetNation();/ 把數(shù)據(jù)庫(kù)中記錄的ID與列表的列綁定,這個(gè)值并不顯示m_lcArea.SetItemText(i, 1, pAreaInfo->GetProvince();m_lcAre

50、a.SetItemText(i, 2, pAreaInfo->GetCity();m_lcArea.SetItemText(i, 3, pAreaInfo->GetDistrict();/ 把數(shù)據(jù)庫(kù)中記錄的ID與列表的行綁定,這個(gè)值并不顯示m_lcArea.SetItemData(i, pAreaInfo->GetId();/ 刪除區(qū)域信息類對(duì)象delete pAreaInfo;pAreaInfo = NULL;/ 清空數(shù)組arrArea.RemoveAll();return;效果圖,如圖55所示:圖55查詢地區(qū)界面5.2.5 天氣管理天氣信息管理功能包括:新增天氣信息、查詢

51、天氣信息、刪除天氣信息、修改天氣信息。(1)添加信息代碼實(shí)現(xiàn)點(diǎn)擊國(guó)家的下拉列表,從數(shù)據(jù)庫(kù)中查找所有的之前添加國(guó)家信息,之后會(huì)出現(xiàn)相應(yīng)的下面的省市和地區(qū),依次點(diǎn)擊,選擇區(qū)域查詢。void CAddWeatherDlg:OnDropdownNationCombo()CAreaDao areaDao;/ 創(chuàng)建CAreaDao對(duì)象CPtrArray arrAreaInfo; / 存儲(chǔ)區(qū)域?qū)ο蟮臄?shù)組if (!areaDao.QueryNationInfo(arrAreaInfo)return;elsem_cbNation.ResetContent(); / 清空區(qū)域下拉列表for (int i = 0;

52、 i<arrAreaInfo.GetSize(); +i)CAreaInfo* pAreaInfo = (CAreaInfo*)arrAreaInfo.GetAt(i);m_cbNation.AddString(pAreaInfo->GetNation();/ 刪除區(qū)域信息類對(duì)象delete pAreaInfo;pAreaInfo = NULL;arrAreaInfo.RemoveAll();return;效果圖。如圖56所示:圖56添加天氣信息界面(2)查詢天氣信息代碼實(shí)現(xiàn)12CAreaDao areaDao;/ 創(chuàng)建CAreaDao對(duì)象CAreaInfo areaInfo; /

53、 創(chuàng)建CAreaInfo對(duì)象if(!areaDao.QueryByArea(areaInfo, szNation, szPro, szCity, szArea)return;Elseint nAreId;nAreId = areaInfo.GetId();CWeatherDao weatherDao; / 創(chuàng)建CWeatherDao對(duì)象CPtrArray arrCard; / 創(chuàng)建CWeatherInfo對(duì)象if(weatherDao.QueryByAreId(arrCard, nAreId)for(int i = 0; i<arrCard.GetSize(); i+)CWeatherInfo* pAreaInfo = (CWeatherInfo*)arrCard.GetAt(i);m_clWeatherIfo.InsertItem(i, pAreaInfo->GetUpdateTime().Format("%Y-%m-

溫馨提示

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