計專畢業(yè)設計_第1頁
計專畢業(yè)設計_第2頁
計專畢業(yè)設計_第3頁
計專畢業(yè)設計_第4頁
計專畢業(yè)設計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 專 科 畢 業(yè) 論 文 企業(yè)人事管理信息系統(tǒng)Enterprise personnel management information system學院名稱: 宿遷學院 專業(yè)班級: 05計專(1) 學生姓名: 王金龍 指導教師姓名: 巫宗賓 指導教師職稱: 教師 2008 年 5 月企業(yè)人事管理信息系統(tǒng)專業(yè)班級:05計算機??疲?)班 學生姓名: 王金龍指導教師: 巫宗賓 職稱:教師摘 要 文中設計一個基于C/S架構(gòu),用PowerBuilder與SQL Server 2000相結(jié)合的企業(yè)人事管理信息管理信息系統(tǒng),實現(xiàn)企業(yè)人事資源的查詢與管理,運用了管理信息系統(tǒng)的理論和軟件工程學的原理描述了該系統(tǒng)

2、的體系結(jié)構(gòu)設計和功能模塊設計,并給出部分功能的實現(xiàn)方法。系統(tǒng)采用靈活的設計方式具有可用性強,可擴展性強等特點。關鍵詞 企業(yè)人事管理信息系統(tǒng), PowerBuilder,SQL ServerEnterprise personnel management information systemAbstract Design one because of C/S framework in the article, the management information system of the enterprise combined with SQL Server 2000 with PowerBui

3、lder, realize the enterprise human affairs resources inquiry and management of exhibition information and resource, have used the theory of the management information system and principle of the software engineering to describe that this system system structural design and function module are design

4、ed, and provide some function implementation methods . It has strong usability that the system adopts flexible design, the characteristic such as being strong of expansibility.Key words Enterprise personnel management information system, PowerBuilder, SQL Server,目 錄引言5第一章 緒 論711課題的來源和意義 71.2 企業(yè)人事管理信

5、息系統(tǒng) 71.3 管理信息系統(tǒng)的研究狀態(tài) 91.4 本文的主要工作 91.5 本文結(jié)構(gòu) 10第二章 數(shù)據(jù)庫理論基礎112.1 數(shù)據(jù)庫管理系統(tǒng)與數(shù)據(jù)庫應用系統(tǒng)112.1.1 數(shù)據(jù)庫管理系統(tǒng)的功能及作用112.1.2 數(shù)據(jù)庫應用系統(tǒng)142.1.3 概念模型和關系數(shù)據(jù)模型.142.1.4 關系模式的規(guī)范化142.2 數(shù)據(jù)庫設計的基本方法152.3 關系數(shù)據(jù)庫標準語言SQL 172.3.1 SQL語言的主要特點 172.3.2 數(shù)據(jù)定義語言(DDL)182.3.3 數(shù)據(jù)操縱語言(DML)19第三章 應用系統(tǒng)開發(fā)工具203.1Powerbuilder簡介.203.2 MFC類庫概述.233.3 Micr

6、osoft SQL Server 簡介.26第四章 企業(yè)人事管理信息系統(tǒng)設計分析284.1需求分析.284.1.1 機構(gòu)編制的需求284.1.2 人員信息管理的需求284.1.3 人事檔案管理的需求284.1.4 考勤管理的需求.284.1.5 薪資福利管理的需求284.1.6 查詢管理的需求.284.1.7 性能需求.284.2 總體設計.294.2.1 基本設計概念和處理流程.294.2.2 系統(tǒng)功能模塊劃分294.2.3 系統(tǒng)流程圖:.304.2.3 系統(tǒng)功能模塊圖:.30第五章 企業(yè)人事管理信息系統(tǒng)的詳細設計315.1完成機構(gòu)設置及編碼功能315.1.1完成機構(gòu)詳細信息功能325.2完

7、成職員信息主窗口335.2.1完成職員信息顯示窗口335.2.2完成職員信息查詢窗口345.3完成職員信息編輯功能.355.4完成當月工資管理功能.365.5完成個人所得稅設置功能.375.5.1查詢模塊.375.5.2編輯模塊.375.6完成工資發(fā)放歷史查詢功能38第六章40 總結(jié).40致謝.41參考文獻42引言20世紀,隨著全球經(jīng)濟的蓬勃發(fā)展,眾多經(jīng)濟學家紛紛提出了新的管理理論。20世紀50年代,西蒙提出管理依賴于信息和決策的思想。同時期的維納發(fā)表了控制論,他認為管理是一個控制過程。1958年,蓋爾寫到:“管理將以較低的成本得到及時準確的信息,做到較好的控制”。這個時期,計算機開始用于會計

8、工作。數(shù)據(jù)處理一詞已經(jīng)出現(xiàn)。管理信息系統(tǒng)起初應用于最基礎的工作,如打印報表、計算工資、人事管理等,進而發(fā)展到企業(yè)財務管理、庫存管理等單項業(yè)務管理,這屬于電子數(shù)據(jù)處理(EDP,Electronic Data Processing)系統(tǒng)。當建立了企業(yè)數(shù)據(jù)庫,有了計算機網(wǎng)絡從而達到數(shù)據(jù)共享后,從系統(tǒng)觀點出發(fā),實施全局規(guī)劃和設計信息系統(tǒng)時,就達到管理信息系統(tǒng)的階段。隨著計算機技術的進步和人們對系統(tǒng)的需求進一步提高,人們更加強調(diào)管理信息系統(tǒng)能否支持企業(yè)高層領導的決策這一功能,更側(cè)重于企業(yè)外部信息的收集、綜合數(shù)據(jù)庫、模型庫、方法庫和其他人工智能工具能否直接面向決策者,這是決策支持系統(tǒng)(DSS,Decisi

9、on Support System)的任務。我國20世紀70年代末有少數(shù)企業(yè)開始MIS的局部應用。“六五”期間,選擇一些大型企業(yè)進行MIS的開發(fā)試點,其中首都鋼鐵公司、北京第一棉紡廠、湖北第二汽車制造廠、寧江機床廠等取得了經(jīng)驗。20世紀80年代中后期,在全國性的計算機應用熱潮中,許多企業(yè)紛紛從財務管理、人事管理等單項應用入手,嘗試建立MIS。許多企業(yè),如北京內(nèi)燃機廠、北京電視機廠、沈陽鼓風機廠、天津渤海無線電廠的MIS初具規(guī)模,建立了覆蓋全廠的計算機網(wǎng)絡。“八五”期間,企業(yè)逐步走向市場,MIS建設的目標和需求日益明確。一些企業(yè)的系統(tǒng),如北京第一機床廠、山西經(jīng)緯紡織機械廠、成都飛機制造公司等都達

10、到了很高水平,與企業(yè)中其他系統(tǒng)集成,形成了CIMS。目前,我國MIS已經(jīng)有了相當?shù)钠占奥?,幾乎覆蓋了各個行業(yè)及各個部門。近20年間,國外大公司出現(xiàn)了3種變化:l 抓管理著重于建立MIS系統(tǒng),使管理技術走向成熟。l 信息是決策的依據(jù),MIS隨時為經(jīng)理們提供信息服務。l 經(jīng)理通過MIS使其經(jīng)營計劃和具體的業(yè)務活動聯(lián)系在一起。由于以上的變化,MIS應用得到了迅速發(fā)展。不僅大中型企業(yè)普遍建立了自己的MIS,一些中小企業(yè)也不例外,普遍建立了公用數(shù)據(jù)網(wǎng)絡,如電子郵件、電子數(shù)據(jù)交換等,尤其是近年來Internet的飛速發(fā)展,Intranet技術得到應用,為企業(yè)MIS提供了良好的支持環(huán)境。根據(jù)現(xiàn)在本學期學科要

11、求和管理系統(tǒng)的發(fā)展我們開發(fā)了學生管理信息系統(tǒng)。第一章 緒 論11課題的來源和意義隨著市場競爭的日趨激烈,人才已成為實現(xiàn)企業(yè)自身戰(zhàn)略目標的一個非常關鍵的因素。企業(yè)中人心的向背和員工對工作的投入程度在很大程度上決定了該企業(yè)的興衰與成敗。如何能保持本企業(yè)員工的工作責任感,激勵他們的工作熱情,減少人才的流失,已成為困擾企業(yè)主管和人事部經(jīng)理的一個日益尖銳的問題,可以說企業(yè)管理從根本上來講就是對人的管理?,F(xiàn)在“公平、公正、合理”的企業(yè)管理原則已為不少企業(yè)所采納。但是要實現(xiàn)“公平、公正、合理”絕非易事,它不是僅靠規(guī)章制度和政策就可以解決的。通過建立透明、相容、一致、易查和全面的企業(yè)人事管理信息系統(tǒng),將與人相

12、關的信息同意地管理起來,才有可能為“公平、公正、合理”原則的實現(xiàn),以及企業(yè)在運做和勞資糾紛等方面的風險規(guī)避等建立一套科學的保障體系。1.2 企業(yè)人事管理信息系統(tǒng)管理信息系統(tǒng)簡稱為MIS(Management Information System),它是計算機應用領域的一個重要分支。管理信息系統(tǒng)幫助人們完成原來需要手工處理的復雜工作,它不僅能明顯地提高工作效率,較小勞動強度,而且能提高信息管理的質(zhì)量和管理水平。因而,管理信息系統(tǒng)不是在模擬手工勞動,它要更合理地組織數(shù)據(jù)和更科學地管理數(shù)據(jù),為控制事務發(fā)展提供控制信息,為預測事務變化的狀態(tài)提供事務發(fā)展趨勢信息和變化規(guī)律的信息。管理信息系統(tǒng)有以下兩個突

13、出特點:管理信息系統(tǒng)是以數(shù)據(jù)庫技術為基礎的(1) 管理信息系統(tǒng)的核心是數(shù)據(jù)庫。管理信息系統(tǒng)的數(shù)據(jù)存放在數(shù)據(jù)庫中,數(shù)據(jù)庫技術為管理信息系統(tǒng)提供了數(shù)據(jù)管理的手段,數(shù)據(jù)庫管理系統(tǒng)()為管理信息系統(tǒng)提供了系統(tǒng)設計的方法、工具和環(huán)境。我們學習數(shù)據(jù)庫及數(shù)據(jù)庫管理系統(tǒng)的基本理論和設計方法,其目的就是要掌握設計數(shù)據(jù)的技術,學會設計、開發(fā)管理信息系統(tǒng)的方法,以便能夠勝任數(shù)據(jù)庫應用系統(tǒng)的設計、管理和應用工作。( 2 )管理信息系統(tǒng)一般采用功能選單方式控制程序絕大多數(shù)管理信息系統(tǒng)是采用功能選單方式進行程序控制的。在這種程序控制方式中,系統(tǒng)功能按層次結(jié)構(gòu)組織成系統(tǒng)功能菜單,用戶通過選擇功能選項表達需要執(zhí)行功能的意愿,

14、系統(tǒng)根據(jù)用戶選擇調(diào)用相應的功能模塊。管理信息系統(tǒng)應用非常廣泛,其中企業(yè)人事管理系統(tǒng)是一個典型的例子,人事管理系統(tǒng)是基于先進的軟件和高速、大容量的硬件基礎上的新的人事資源管理模式,通過集中式的信息庫、自動處理信息、員工自助服務、外協(xié)以及服務共享,達到降低成本、提高效率、改進員工服務模式的目的。它通過與企業(yè)現(xiàn)有的網(wǎng)絡技術相聯(lián)系,保證人力資源與日新月異的技術環(huán)境同步發(fā)展。一般來說,可以分四個部分來理解人事管理系統(tǒng):(1)管理人員角色和目標的改變傳統(tǒng)的企業(yè)人事管理中,管理人員的大部分精力將耗資在繁瑣的日常行政事務處理上,而作為企業(yè)管理層的參謀角色應該做的咨詢和策略制定的工作相對缺乏。通過人事管理系統(tǒng),

15、管理人員可以將絕大部分精力方在為管理層提供咨詢、建議上,而在行政事務上的工作可以由電子化系統(tǒng)完成,只需占用人事資源管理人員極少的精力和時間。(2)提供更好的服務人事資源管理系統(tǒng)可以迅速、有效地收集各種信息,加強內(nèi)部的信息溝通。各種用戶可以直接從系統(tǒng)中獲得自己所需要的各種信息,并根據(jù)相關的信息做出決策和相應的行動方案。(3)降低成本人事管理系統(tǒng)通過減少人事管理工作的操作成本、降低員工流動率以及減少通信費用等達到降低企業(yè)運作成本的目的。(4)革新管理理念人事管理系統(tǒng)的最終目的是達到革新企業(yè)的管理理念,而不僅是改進管理方式,優(yōu)化人事資源管理?,F(xiàn)金技術應用于人事資源管理不僅是為了將現(xiàn)有的人事資源工作做

16、的更好,更重要的是,做些對于企業(yè)來講更有效率的事情,成為管理層的決策支持者,為決策提供信息和解決方法。1.3 管理信息系統(tǒng)的研究狀態(tài) 一個管理信息系統(tǒng)是能夠提供過去、現(xiàn)在、未來和將來預期信息的一種有條理的方式,這些信息涉及到內(nèi)部業(yè)務和外部情報。它按適當?shù)臅r間間隔供給格式相同的信息,支持一個組織的計劃、控制和操作功能,以便輔助決策制定的過程。管理信息系統(tǒng)是多種多樣的,它們所管理的事務對象和操作方式各不相同,但信息管理系統(tǒng)所具有的數(shù)據(jù)操作功能是非常相似的。一般的信息管理系統(tǒng)都有輸入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)、數(shù)據(jù)查詢、數(shù)據(jù)統(tǒng)計等功能。對管理信息系統(tǒng)的結(jié)構(gòu)研究有以下幾種(1)總體結(jié)構(gòu):信息源,信息處理

17、器,信息用戶、信息管理者。(2)物理結(jié)構(gòu):物理組成、處理功能、用戶需要的輸出。(3)層次結(jié)構(gòu):用于執(zhí)行控制的信息系統(tǒng)、管理控制的信息系統(tǒng)、戰(zhàn)略計劃的信息系統(tǒng)。(4)空間分布結(jié)構(gòu):集中式系統(tǒng)、分布式系統(tǒng)。(5)職能結(jié)構(gòu):一個學校的職能系統(tǒng)主要包括,教師人事管理系統(tǒng)、學生學籍管理系統(tǒng)、學生考試系統(tǒng)、學校財務管理系統(tǒng)、宿舍管理系統(tǒng),學校圖書管理系統(tǒng)。1.4 本文的主要工作本文主要是介紹了設計一個企業(yè)人事管理系統(tǒng)的過程,首先介紹一些基礎知識比如研究企業(yè)人事管理系統(tǒng)的目的和意義,數(shù)據(jù)庫的基礎理論知識和本系統(tǒng)的開發(fā)工具;然后再介紹企業(yè)人事管理系統(tǒng)設計包括需求分析、總體設計和數(shù)據(jù)庫設計;接下來介紹企業(yè)人事管

18、理系統(tǒng)的詳細設計部分;最后總結(jié)設計的體會并指出取得的成績和不足之處。1.5 本文結(jié)構(gòu)第一章緒論部分包括研究的目的和意義,企業(yè)人事管理信息系統(tǒng)的基本知識介紹和管理信息系統(tǒng)的研究狀態(tài)。第二章介紹了數(shù)據(jù)庫理論基礎,包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫應用系統(tǒng),數(shù)據(jù)庫設計的基本方法,概念模型、關系模型、關系模式的規(guī)范化以及SQL語言。第三章介紹應用系統(tǒng)開發(fā)工具,包括Powerbuilder介紹,MFC類庫概述和Microsoft SQL SERVER 簡介。第四章分析了企業(yè)人事管理信息系統(tǒng)的系統(tǒng)設計分析,包括系統(tǒng)需求分析,總體設計和系統(tǒng)數(shù)據(jù)庫設計。第五章系統(tǒng)詳細設計階段,用Powerbuilder9.0和Micro

19、soft SQL SERVER 2000進行了具體的應用程序設計。第二章 數(shù)據(jù)庫理論基礎2.1 數(shù)據(jù)庫管理系統(tǒng)與數(shù)據(jù)庫應用系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是提供數(shù)據(jù)庫管理的計算機系統(tǒng)軟件,數(shù)據(jù)庫應用系統(tǒng)是實現(xiàn)某種具體事物管理功能的計算機應用軟件。數(shù)據(jù)庫管理系統(tǒng)為數(shù)據(jù)庫應用系統(tǒng)提供了數(shù)據(jù)庫的定義、存儲和查詢方法,數(shù)據(jù)庫應用系統(tǒng)通過數(shù)據(jù)庫管理系統(tǒng)管理其數(shù)據(jù)庫。一般來說,數(shù)據(jù)庫應用系統(tǒng)安裝在客戶端并有專門的開發(fā)系統(tǒng)或語言設計,數(shù)據(jù)庫管理系統(tǒng)及其數(shù)據(jù)庫安裝在服務器端,它們之間通過數(shù)據(jù)庫訪問技術進行數(shù)據(jù)通信。2.1.1 數(shù)據(jù)庫管理系統(tǒng)的功能及作用數(shù)據(jù)庫管理系統(tǒng)簡稱DBMS(Database Management Sy

20、stem),它是專門用于管理數(shù)據(jù)庫的計算機系統(tǒng)軟件。數(shù)據(jù)庫管理系統(tǒng)能夠為數(shù)據(jù)庫提供數(shù)據(jù)的定義、建立、維護、查詢和統(tǒng)計等操作功能,并完成對數(shù)據(jù)完整性、安全性進行控制的功能。 在數(shù)據(jù)庫管理系統(tǒng)的操作功能中:數(shù)據(jù)定義功能是指為說明庫中的數(shù)據(jù)情況而進行的建立數(shù)據(jù)庫結(jié)構(gòu)的操作,通過數(shù)據(jù)定義可以建立起數(shù)據(jù)庫的框架;數(shù)據(jù)庫建立功能是指將大批數(shù)據(jù)錄入到數(shù)據(jù)庫的操作,它使得庫中含有需要保存的數(shù)據(jù)記錄;數(shù)據(jù)庫維護功能是指對數(shù)據(jù)的插入、刪除和修改操作,其操作能滿足庫中信息變化或更新的需求;數(shù)據(jù)查詢和統(tǒng)計功能是指通過對數(shù)據(jù)庫的訪問,為實際應用提供需要的數(shù)據(jù)。 數(shù)據(jù)庫管理系統(tǒng)不僅要為數(shù)據(jù)管理提供數(shù)據(jù)操作功能,還要為數(shù)據(jù)

21、庫提供必要的數(shù)據(jù)控制功能。數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)控制主要指對數(shù)據(jù)安全性和完整性的控制。數(shù)據(jù)安全性控制是為了保證數(shù)據(jù)庫的安全可靠,防止不合法的使用造成數(shù)據(jù)的泄漏和破壞,即避免數(shù)據(jù)被人偷看、篡改或搞壞;數(shù)據(jù)完整性控制是為了保證數(shù)據(jù)庫中數(shù)據(jù)的正確、有效和相容,以防止不合法語義的錯誤數(shù)據(jù)被輸入或輸出。 數(shù)據(jù)庫管理系統(tǒng)的目標是讓用戶能夠更方便、更有效、更可靠地建立數(shù)據(jù)庫和使用數(shù)據(jù)庫中的信息資源。數(shù)據(jù)庫管理軟件不是應用軟件,它不能直接用于諸如工資管理、人事管理或資料管理等事務管理工作,但數(shù)據(jù)庫管理系統(tǒng)能夠為事物管理提供技術和方法、應用系統(tǒng)的設計平臺和設計工具,使相關的事物管理軟件很容易設計。也就是說,數(shù)據(jù)庫

22、管理系統(tǒng)是為設計數(shù)據(jù)管理應用項目提供的計算機軟件,利用數(shù)據(jù)庫管理系統(tǒng)設計事物管理系統(tǒng)可以達到事半功倍的效果。2.1.2 數(shù)據(jù)庫應用系統(tǒng)凡使用數(shù)據(jù)庫技術管理及其數(shù)據(jù)(信息)的系統(tǒng)都稱為數(shù)據(jù)庫應用系統(tǒng)(Database Application System )。一個數(shù)據(jù)庫應用系統(tǒng)應攜帶有較大的數(shù)據(jù)量,否則他就不需要數(shù)據(jù)庫管理。數(shù)據(jù)庫應用系統(tǒng)按其實現(xiàn)的功能可以被劃分為數(shù)據(jù)傳遞系統(tǒng)、數(shù)據(jù)處理系統(tǒng)和管理信息系統(tǒng)。數(shù)據(jù)傳遞系統(tǒng)只具有信息交換功能,系統(tǒng)工作中不改變信息的結(jié)構(gòu)和狀態(tài),例如電話、程控交換系統(tǒng)就是數(shù)據(jù)傳遞系統(tǒng)。數(shù)據(jù)處理系統(tǒng)通過對輸入的數(shù)據(jù)進行轉(zhuǎn)換、加工和提取等一系列操作,從而得出更有價值的新數(shù)據(jù),

23、其輸出的數(shù)據(jù)在結(jié)構(gòu)和內(nèi)容方面與輸入的源數(shù)據(jù)相比有較大的改變。管理信息系統(tǒng)是具有數(shù)據(jù)的保存、維護和檢索等功能的系統(tǒng),其作用主要是數(shù)據(jù)管理,我們通常所說的事務管理系統(tǒng)就是典型的管理信息系統(tǒng)。一個實際的數(shù)據(jù)庫應用系統(tǒng)往往不受這3種類別的限制,它會同時具有數(shù)據(jù)傳遞、數(shù)據(jù)管理和數(shù)據(jù)處理的多種功能,這使我們無法嚴格地區(qū)別它是數(shù)據(jù)處理系統(tǒng),還是管理信息系統(tǒng)。對于一個數(shù)據(jù)庫應用系統(tǒng),由于它擁有巨大的數(shù)據(jù)量,就必須具有管理信息系統(tǒng)的功能,因而,管理信息系統(tǒng)應該是數(shù)據(jù)庫應用系統(tǒng)的核心系統(tǒng)。2.1.3 概念模型和關系數(shù)據(jù)模型1、概念模型的基本概念(1) 實體(Entity):客觀存在并可以相互區(qū)分的客觀事物或抽象事

24、件。(2) 屬性(Attribute):實體所具有的某一特性叫做屬性,一個實體可以由若干個屬性來描述。(3) 聯(lián)系(Relationship):現(xiàn)實世界的事物之間是有聯(lián)系的,這種聯(lián)系必然要反映到信息世界中,可以分為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。兩個實體型之間的聯(lián)系可分為3類,一對一聯(lián)系(1:1)、一對多聯(lián)系(1:n)、和多對多聯(lián)系(m:n)。(4) 實體型(Entity Type):相同屬性的實體必然具有共同的特征和性質(zhì)。(5) 實體集(Entity Set):同類型的實體的集合成為實體集。(6) 關鍵字(Key):惟一表示一個實體的屬性集為關鍵字。(7) 域(Domain):屬性的取值范圍

25、稱為該屬性的域。E-R圖是用于描述概念世界,建立概念模型的實用工具。概念模型用于現(xiàn)實世界的建模,最常用的建模方法就是“實體-聯(lián)系”方法,該方法用E-R圖來描述某一組織的概念模型。E-R圖包括以下3個要素。實體型:用矩形框表示,框內(nèi)標注實體名稱。屬性:用橢圓形表示,并用連線與實體連接起來。聯(lián)系:用菱形框表示,框內(nèi)標注聯(lián)系名稱,并用連線將菱形框分別與有關實體相連,并在連線上注明聯(lián)系類型(1:1,1:n,m:n)。需要指出的是,如果聯(lián)系具有屬性,則這些屬性也要用無向邊與該項連接起來。E-R圖設計過程實際是對數(shù)據(jù)進行歸納分析,例如,把企業(yè)的全部用戶按他們對數(shù)據(jù)和功能需求進行分組。然后從局部入手,對每一

26、類用戶,建立局部E-R模型,再綜合成總體E-R模型.2、實體聯(lián)系的類型實體之間的類型有一對一(1:1)、一對多(1:n)和多對多(m:n)三種,其中最常見的是一對多和多對多聯(lián)系。一對一聯(lián)系:如果實體集A與實體集B之間存在聯(lián)系,并且對于實體A中的任意一個實體,實體集B至多只有一個實體與之對應;而對實體集B中的任意一個實體,在實體集A中也至多只有一個實體與之對應,則稱實體集A到實體集B的聯(lián)系是一對一的,記為1:1。 一對多聯(lián)系:如果實體集A與實體集B之間存在聯(lián)系,并且對于實體集A中的任意一個實體,在實體集B中可以有多個實體與之對應;而對實體集B中的任意一個實體,在實體集A中至多只有一個實體與之對應

27、,則稱實體集A到實體集B的聯(lián)系是一對多的,記為1:n。 多對多聯(lián)系:如果實體集A與實體集B之間存在聯(lián)系,并且對于實體集A中的任意一個實體,在實體集B中可以有多個實體與之對應;而對實體集B中的任意一個實體,在實體集A中也可以有多個實體與之對應,則稱實體集A到實體集B的聯(lián)系是多對多的,記為m:n。3、關系數(shù)據(jù)模型在以關系模型為基礎的數(shù)據(jù)庫中,用關系來描述現(xiàn)實世界。關系具有概念單一性特點,一個關系可以描述一個實體,又可以描述實體之間的聯(lián)系。 關系模型的基本結(jié)構(gòu)是表(Table),即關系(Relation),在關系數(shù)據(jù)庫中,每一個關系是一張命名的二維表,表的每一行成為一條記錄,每一列成為一個屬性。對應

28、于概念模型,關系也有一些術語:(1)關系:一個關系就是一張二維表,每個關系有一個關系名。在計算機里,一個關系可以存儲為一個文件。(2)元組:表中的行稱為元組。一行是一個元組,對應存儲文件中的一個記錄值。(3)屬性:表中的列稱為屬性。每一列有一個屬性名。(4)域:屬性的取值范圍,即不同元組對一個屬性的取值所限定的范圍。(5)主關鍵字:屬性或?qū)傩越M合,其值能夠惟一地標識一個元組。(6)關系模式:對關系的描述稱為關系模式,其格式為:關系名(屬性1,屬性2,屬性N)。一個關系模式對應一個關系的結(jié)構(gòu)。對于關系,具有以下的幾個性質(zhì):(1)不能有重復的元組。(2)元組上下無序。(3)按屬性名引用時,屬性左右

29、無序。(4)所有屬性值都是原子項(不可再分)。2.1.4 關系模式的規(guī)范化根據(jù)關系模式滿足的不同性質(zhì)和規(guī)范化的程度,把關系模式分為第一范式、第二范式、第三范式、BC范式和第四范式等,范式越高,規(guī)范化的程度越高,關系模式則越好。1、 第一范式(1NF)每個關系模式都應滿足最低要求,即關系的所有分量都必須是不可分的最小數(shù)據(jù)項,并把其稱為第一范式(1NF)關系。2、 第二范式(2NF)如果R(U,F(xiàn))1NF,并且R中的每個非主屬性都完全函數(shù)依賴于關鍵字,則R(U,F(xiàn))2NF。3、 第三范式(3NF)如果R(U,F(xiàn))2NF,并且所有非主屬性都不傳遞依賴于關鍵字,則R(U,F(xiàn))3NF。4、 BC范式(B

30、CNF)關系模式R(U,F(xiàn))1NF,XY是F上的任意函數(shù)依賴,并且Y不屬于X、U完全函數(shù)依賴于X,則R(U,F(xiàn))BCNF。 簡言之,如果R(U,F(xiàn))中的每個函數(shù)依賴的左部都是關鍵字(或所有的決定因素都是關鍵字),則R(U,F(xiàn))BCNF。也可以說,如果R(U,F(xiàn))3NF,并且不存在主屬性對非主屬性的函數(shù)依賴,則R(U,F(xiàn))BCNF。5、 第四范式(4NF)設關系模式R(U,D)1NF,若對每個非平凡的多值依賴XY,X都含有候選關鍵字,則R(U,D)4NF2.2 數(shù)據(jù)庫設計的基本方法現(xiàn)實世界的信息結(jié)構(gòu)復雜且應用環(huán)境多種多樣,在很長一段時間內(nèi),數(shù)據(jù)庫設計是采用手工試湊法進行的。用手工試湊法設計數(shù)據(jù)庫

31、與設計人員的經(jīng)驗和水平有直接關系,它更像是一種技藝而不是工程技術,這種方法缺乏科學的理論和工程方法支持,數(shù)據(jù)庫的質(zhì)量很難得到保證,數(shù)據(jù)庫常常在投入使用以后才發(fā)現(xiàn)問題,不得不進行修改,這樣就增加了系統(tǒng)維護的代價,十余年來,人們努力探索,提出了各種各樣的數(shù)據(jù)庫系統(tǒng)設計方法,并提出了多種數(shù)據(jù)庫系統(tǒng)設計的準則和規(guī)程,這些設計方法被稱為規(guī)范設計法。新奧爾良(New Orleans)方法是規(guī)范設計法中的一種方法,它將數(shù)據(jù)庫設計分為四個階段:需求分析、概念設計、邏輯設計和物理設計。其后,許多科學家進行了改進,認為數(shù)據(jù)庫設計應分六個階段進行:需求分析、概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計、物理結(jié)構(gòu)設計、數(shù)據(jù)庫實施和數(shù)據(jù)

32、庫運行和維護。在數(shù)據(jù)庫設計的不同階段上,實現(xiàn)的具體方法有基于E-R模型的數(shù)據(jù)庫設計方法、基于3NF(第三范式)的設計方法、基于抽象語法規(guī)范的設計方法等。1、 需求分析階段需求分析是數(shù)據(jù)庫設計的第一步。需求分析的任務是準確了解并分析用戶對系統(tǒng)的需要和要求,弄清系統(tǒng)要達到的目標和實現(xiàn)的功能。需求分析是否做得充分與準確,決定著在其上構(gòu)建數(shù)據(jù)庫大廈的速度和質(zhì)量。如果需求分析做得不好,會影響整個系統(tǒng)的性能,甚至導致整個數(shù)據(jù)庫設計返工重做。2、 概念結(jié)構(gòu)設計階段概念結(jié)構(gòu)設計是整個數(shù)據(jù)庫設計的關鍵。概念模型設計是不倚賴于任何數(shù)據(jù)庫管理系統(tǒng)的,它是對用戶信息需求的歸納。概念設計的結(jié)果得到數(shù)據(jù)庫的概念結(jié)構(gòu),或稱

33、概念模型,由于它是現(xiàn)實世界的角度進行抽象和描述,所以與具體的硬件和軟件環(huán)境均無關。概念模型設計描述常用工具是E-R圖,包括以下內(nèi)容:() 確定實體;() 確定實體的屬性;() 確定實體的標識屬性(關鍵字);() 確定實體間的聯(lián)系和聯(lián)系類型;() 畫出表示概念模型的E-R圖() 確定屬性間的倚賴關系。3、 邏輯結(jié)構(gòu)設計階段數(shù)據(jù)的邏輯結(jié)構(gòu)設計的主要任務實將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并將其性能優(yōu)化。首先將概念模型轉(zhuǎn)換位關系數(shù)據(jù)模型,即將E-R圖中實體和聯(lián)系轉(zhuǎn)換為關系模式。包括以下內(nèi)容:() 確定各個關系模式的主關鍵字,考慮實體完整性,() 確定各個關系模式的外部關鍵字,考慮參照完整

34、性;() 確定各個關系模式中屬性的約束、規(guī)則和默認值,考慮域完整性;() 考慮特殊用戶定義完整性;() 根據(jù)用戶需求設計視圖;() 考慮安全方案和用戶使用權(quán)限。4、 物理設計階段數(shù)據(jù)庫物理設計的主要任務是為邏輯數(shù)據(jù)模型選取一個最合適應用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)的存儲位置、數(shù)據(jù)存儲結(jié)構(gòu)和存儲方法。5、 數(shù)據(jù)庫實施階段在數(shù)據(jù)庫實施階段中,系統(tǒng)設計人員要運用DBMS提供的數(shù)據(jù)操作語言和宿主語言,根據(jù)數(shù)據(jù)庫的邏輯設計和物理設計的結(jié)果建立數(shù)據(jù)庫、編制與調(diào)試應用程序、組織數(shù)據(jù)入庫并進行系統(tǒng)試運行。6、 數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中,必須不斷地對其結(jié)

35、構(gòu)性能進行評價、調(diào)整和修改。2.3 關系數(shù)據(jù)庫標準語言SQL2.3.1 SQL語言的主要特點1、SQL是一種一體化語言,它包括了數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱和數(shù)據(jù)控制等方面的功能,它可以完成數(shù)據(jù)庫活動中全部工作。以前的非關系模型的數(shù)據(jù)語言一般包括存儲模式描述語言、概念模式描述語言、外部模式描述語言和數(shù)據(jù)操縱語言等等,這種模型的數(shù)據(jù)語言,一是內(nèi)容多,二是掌握和使用起來都不像SQL那樣簡單、實用。2、SQL語言是一種高度非過程化的語言,它沒有必要一步步地告訴計算機“如何”去做,而只需要描述清楚用戶要“做什么”,SQL語言就可以將要求交給系統(tǒng),自動完成全部工作。3、SQL語言非常簡潔。雖然SQL語言

36、功能很強,但他只有為數(shù)不多的幾條命令,另外SQL語法也非常簡單,它很接近自然語言(英語),因此容易學習、掌握。4、SQL語言可以直接命令方式交互使用,也可以嵌入到程序設計語言中以程序方式使用。現(xiàn)在很多數(shù)據(jù)庫應用開發(fā)工具,都將SQL語言直接溶入到自身的語言之中,使用起來更方便。SQL命令動詞表,如表2.1所示:SQL功能命令動詞數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE、DROP、ALTER數(shù)據(jù)操縱INSERT、UPDATE、DELETE數(shù)據(jù)控制GRANT、REVOKE表2.1 SQL命令動詞2.3.2 數(shù)據(jù)定義語言(DDL)數(shù)據(jù)定義語言是指用來定義和管理數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象的語句,這些語

37、句包括CREATE、ALTER和DROP等語句。在SQL Server 2000中,數(shù)據(jù)庫對象包括表、視圖、觸發(fā)器、存儲過程、規(guī)則、缺省、用戶自定義的數(shù)據(jù)類型等。這些對象的創(chuàng)建、修改和刪除等都可以通過使用CREATE、ALTER、DROP等語句來完成。創(chuàng)建或定義基本表的SQL命令是CREATE TABLE,一般格式是:CREATE TABLE ( , , ) 其中: 給出要創(chuàng)建的基本表的名稱; 給出列名或字段名;為列指定數(shù)據(jù)類型及其數(shù)據(jù)寬度,不同的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)類型可能不完全相同;用于定義或字段一級的完整性約束,一般包括是否允許為空值、域完整性約束(取值范圍約束)、默認值、主關鍵字

38、(單屬性做主關鍵字時)等;用于定義表一級的完整性約束,一般包括復合屬性構(gòu)成的主關鍵字說明、外部關鍵字及參照關系說明、同時涉及到多個屬性的域完整性約束等;不是SQL的標準選項,一般用于與物理存儲有關的說明,不同的數(shù)據(jù)庫管理系統(tǒng)定義的方式肯定不同,另外該項參數(shù)一般也不是必需的。2.3.3 數(shù)據(jù)操縱語言(DML)數(shù)據(jù)操縱語言是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)據(jù)的語句,這些語句包括SELECT、INSERT、UPDATE、DELETE等。SQL的核心是查詢。SQL的查詢命令也稱作SELECT命令,它的基本形式由SELECTFROMWHERE查詢塊組成,多個查詢塊可以嵌套執(zhí)行。 SQL SELEC

39、T語句的一般格式是: SELECTALL|DISTINCT , FROM , WHERE GROUP BY , HAVING ORDER BYASC|DESC,ASC|DESC下面解釋一下各個短語的作用:SELECT說明要查詢的數(shù)據(jù),ALL說明不去掉重復元組,DISTINCT說明要去掉重復元組,一般是表中的列名,查詢表中的所有列用“*”表示;FROM說明要查詢的數(shù)據(jù)來自哪個表,可以基于單個表或多個表進行查詢;WHERE說明查詢條件,即選擇元組的條件,可以用于查詢條件的運算符非常豐富; GROUP BY短語用于對查詢結(jié)果進行分組,可以利用它進行分組匯總;HAVIG短語必須跟隨GROUP BY使用

40、,它用來限定分組必須滿足的條件;ORDER BY短語用來對查詢的結(jié)果進行排序。第三章 應用系統(tǒng)開發(fā)工具3.1Powerbuilder簡介PowerBuilder(PB)作為一種“快速構(gòu)建商業(yè)應用程序”的開發(fā)工具,1991年一經(jīng)推出,就在業(yè)界引起轟動。IDC將之稱為一種“黃金標準” 一個用于衡量所有應用開發(fā)工具的基準。此前, PowerBuilder 8.0版本受到用戶一致好評?,F(xiàn)在,全球領先的數(shù)據(jù)管理及企業(yè)集成解決方案供應商Sybase公司精益求精,再一次為廣大企業(yè)推出了全新的PowerBuilder 9.0,在原有PB 8.0的基礎上,這一最新版本提供了更為開放的開發(fā)環(huán)境并擴展了很多新的功能

41、,具體有以下幾個方面: RAD JavaSever Page(JSP)Targets開發(fā)者可利用wizards和其他的RAD工具,快速開發(fā)、部署一套JSP網(wǎng)絡應用系統(tǒng) Web Services開發(fā)者毋需具備深厚的SOAP協(xié)議或WSDL的背景,即可在Microsoft .NET或其它架構(gòu)環(huán)境下,創(chuàng)建、發(fā)布、完成網(wǎng)絡服務系統(tǒng)。 XML DataWindow可直接從一個XML文檔中輸入數(shù)據(jù),或把從任何數(shù)據(jù)來源中恢復的數(shù)據(jù)存儲為完全的用戶化XML文檔,也可存儲為PDF或XSL的格式化對象。 PoweBuilder Native Interface通過捆綁了一個C+標準的補充部分,極大地擴展了Power

42、Builder應用開發(fā)的功能,在系統(tǒng)中調(diào)用其方法,并且通過JNI,Java應用程序,也可與PBVM相互交流。 Third-Party Application Servers除了對現(xiàn)有的Sybase EAServer的支持,PowerBuilder還可實現(xiàn)對BEA Weblogic Server TM,IBM WebSphere和其它的J2EE應用開發(fā)服務器的支持。 The PowerBuilder Document Object ModelSybase產(chǎn)品執(zhí)行可存貯或操作XML文件的文檔對象模塊(DOM)。這項功能(PBDOM)用于從PowerScript源碼中讀取、編寫、并操作標準格式的XM

43、L。 PDF Report Generaton提供2種保存DataWindow對象的方法,以使其能夠直接生成PDF格式的報告。此類提取方法以默認的方式加以應用,并可保存所有類型的DataWindow對象。 Source Control Enhancements幫助開發(fā)者更有效地管理大型的PowerBuilder項目,并實現(xiàn)與Rational ClearCase及Merant PVCS的更緊密結(jié)合。 OrcaScript Utility可以用類似英文的自然語言調(diào)用Orca應用程序。新的源碼控制集成能根據(jù)源控件直接生成目標對象。 【功能特性】 (一)先進的 4GLPLUS 基礎 PowerBuil

44、der9.0是業(yè)界第一個“4GLplus”平臺,它的發(fā)布預示了4GLplus的開端。PowerBuilder 9.0的 4GLplus 提供了多種全新的開發(fā)功能和集成特性,適用于:J2EE、Microsoft .NET、客戶端/服務器、Web 服務器、語言集成、設計/建模同步、n 層結(jié)構(gòu)、版本控制、腳本等多種情況。所有這些功能綜合起來,PowerBuilder9.0為開發(fā)人員提供了前所未有的靈活性,能夠幫助他們將正確的架構(gòu)和開發(fā)模式應用到正確的應用程序中。PowerBuilder9.0 允許用戶快速創(chuàng)建并配置持久的企業(yè)級或者商務級應用程序,通過增長收入、提高用戶效率、增強客戶服務以及更緊密的與

45、伙伴合作來改變現(xiàn)有業(yè)務模式。 (二)多樣的適用性 對于關鍵型應用來說,不存在固定不變的程序。如何應對這些無法避免的變化呢?利用 PowerBuilder Native Interface (PBNI),一個全新的、強大的應用程序編程接口。使用 PBNI 將現(xiàn)有的 PowerBuilder 應用程序的功能性與生命力擴展到 C+ 和 Java 程序中,為它們打開一個全新的世界與市場?,F(xiàn)在,用戶能夠?qū)⑻幱凇熬S護狀態(tài)”的客戶端/服務器程序帶入一個嶄新的、以前無法企及的環(huán)境中。 將 PowerBuilder 的精確性、能力、速度以及簡易性充分應用到 Web 和分布式應用程序中。用戶無需舍棄任何東西,就可

46、以將用戶的程序、用戶還有技能帶入 Web 和分布式運算中。在新的 Web 程序中重新使用用戶已經(jīng)創(chuàng)建的、復雜的 DataWindows 或者建造全新的 DataWindows 。只需拖曳鼠標就可以創(chuàng)建復雜的 SQL 語句,所生成的強大的瘦客戶端應用程序?qū)⑻峁┯脩羲煜さ臄?shù)據(jù)操作、驗證、格式化以及表現(xiàn)方式?,F(xiàn)在,用戶能夠支持一個不同種類的、由客戶機/服務器、 n 層結(jié)構(gòu)以及 Web 程序組成的混合體一個合理的混合體而只需要一個功能強大的集成開發(fā)環(huán)境:PowerBuilder。 PowerBuilder 9.0 標志著首次對 Microsoft .NET 的支持,也是與強大的 J2EE 在更高級別

47、上的集成。作為與 .NET 整合的第一階段,PowerBuilder 9.0 可以生成并使用 Web 服務,這使得 .NET 程序員能夠充分利用 DataWindow 與 DataStore 模式的優(yōu)勢。在未來,與 .NET 的整合計劃包括編譯成 MSIL 代碼的能力,并使程序員能夠利用 .NET 自帶控件,例如預覽、選項卡等建立 .NET 應用程序。 通過與 Sybase EAServer 的緊密結(jié)合, PowerBuilder 已經(jīng)能夠支持 J2EE 的開發(fā)與配置。在最新版本中,PowerBuilder 幫助用戶創(chuàng)建的應用程序既能夠訪問任何一臺 J2EE 兼容應用程序服務器(包括 IBM

48、WebSphere Application Server、BEA WebLogic Server 以及其他 J2EE 應用程序服務器)的 Enterprise JavaBeans,也可以同時使用 PowerBuilder Web 服務。用戶也能夠使用 PowerBuilder 創(chuàng)建 RAD 類型的 JavaServer Pages (JSP) 應用程序。并且,為了整合 PowerBuilder 應用程序與 J2EE 或 .NET 框架,可以使用 PowerBuilder 的 Web Services 功能。 (三)利用集成開發(fā)與設計獲得優(yōu)異的成果 Sybase PowerBuilder 與Sy

49、base PowerDesigner 更緊密的結(jié)合,為客戶機/服務器開發(fā)工作帶來了高水準的精確、速度與智能。它重新設計了現(xiàn)有的應用程序邏輯,在 PowerDesigner 內(nèi)將之改變以支持新的業(yè)務要求,并將這些變化反映到 PowerBuilder 應用程序中。這就降低了維護和擴展客戶機/服務器應用程序所需的時間與成本。 PowerDesigner 提供的全新功能可以從 PowerBuilder 9.0 中提取所有的對象與代碼,而不再僅僅是 NVO。這大大簡化了現(xiàn)有應用程序的維護,哪怕最初的開發(fā)人員已經(jīng)離開公司,也無需顧慮。更有意義的是,PowerDesigner 允許用戶將舊的 PB 應用程序

50、擴展到新的架構(gòu)中去哪怕那些程序不是按照面向?qū)ο蟮脑瓌t編寫的。PowerBuilder 與 PowerDesigner 配合得越順暢,4GLplus 發(fā)展計劃越長遠。 (四)不斷增加的強大功能 PowerBuilder 9.0 擁有諸多處于技術前沿的新一代開發(fā)功能,它們能夠?qū)⒊绦蜷_發(fā)推升到更高的水平。 PowerBuilder 的文檔對象模型 (PBDOM) 是通過使用標準的 PowerScript 來創(chuàng)建、閱讀、編寫并操作 XML 文檔的完善的 API。PBDOM 以非可視化類為基礎,使用 PowerBuilder Native Interface 技術進行構(gòu)建。 DataWindow 是 P

51、owerBuilder 的專利技術,它將 XML 的強大功能融入到開發(fā)項目中。DataWindow painter 的一個新視圖把 XML 模板圖形化地構(gòu)建為 DataWindow 對象的一部分。這些模板能夠?qū)牖蛘邔С龈鞣N傳統(tǒng)架構(gòu)內(nèi)的 XML 數(shù)據(jù)。DataWindow 演示也能夠被保存為 XSL-FO,用于描述頁面報告、打印以及 XML-to-PDF 應用程序的 XML 語言。 PowerBuilder 9.0 包括一個便捷的開發(fā)環(huán)境,用于編寫 JSP Web 應用程序,它能夠使許多開發(fā)工作自動化,并且允許配置 Web 應用程序。用戶可以直接將 JSP Web 目標從 PowerBuild

52、er 配置到 EAServer 或 Tomcat 上,并且一個命令行選項使用戶能夠?qū)⒅渲玫狡渌餍械?JSP 容器中。 PowerBuilder IDE 的 Web 服務向?qū)?chuàng)建了一個代理對象或傳統(tǒng)的 tag 庫,包含從 PowerBuilder 應用程序或 JSP 頁面調(diào)用 Web 服務的必要信息。Web 服務是支持 Microsoft .NET 框架計劃幾個階段中的第一階段。 3.2 MFC類庫概述微軟于1989年成立了Application Framework 開發(fā)小組,開始設計一個用于建立圖形應用程序的可移植的C+ 類庫。AFX的目的是建立一個單一的類庫,用來簡化Windows 、O

53、S/2Presentation Manager 和Apple Macintosh應用程序的開發(fā)。當時,開發(fā)小組希望利用面向?qū)ο蟮募夹g建立一個易于使用并可移植的GUI。然而一年以后,AFX計劃失敗了,其主要原因是AFX開發(fā)小組過于信任面向?qū)ο蟮某绦蛟O計方法的能力,一個純粹抽象的類往往并不實用。因此,AFX開發(fā)小組轉(zhuǎn)向開發(fā)MFC庫,并將其實現(xiàn)目標從多目標平臺轉(zhuǎn)向?qū)indows API的封裝。他們不再試圖建立高度抽象的類,而重點在于建立實際可用的類。他們還避開使用復雜的C+ 結(jié)構(gòu)(例如,多重繼承和模板),而只是使用了一個C+的子集。另外,他們不再使用抽象的類來隱藏Windows本身API的細節(jié),而

54、是使用戶能夠方便地存取Windows原有的API。這樣做有兩個原因:首先,可以簡化已有的Win16代碼到MFC庫的轉(zhuǎn)換。其次,確保原有API的所有功能對應用程序都是可以使用的-這意味著可以繞過類庫而直接調(diào)用這些Windows原有的API函數(shù)。AFX和MFC的另一個區(qū)別是所使用的開發(fā)方法不同,AFX采用自頂向下的設計方法,逐步將對象抽象出來并施加到Windows上;而MFC庫采用的則是自底向上的設計方法,也就是說,從MFC的第一個版本開始,它的類就是建立在已有的Windows API對象基礎上的,這樣就避免了AFX中代碼的超支與浪費。當使用MFC進行編程時,將會發(fā)現(xiàn)在MFC源程序中有很多名稱包含

55、“AFX”的字符串,如函數(shù)名AfxGetApp(),常量名AFX_IDS_APP_TITLE,數(shù)據(jù)結(jié)構(gòu)名AFX_MSGMAP_ENTRY等。這些名稱在Windows API函數(shù)中是不存在的,它們是AFX開發(fā)小組遺留的痕跡,而MFC的基本框架正是建筑于這個基礎之上,所以MFC多多少少保留了該開發(fā)小組的標志AFX??梢奙icrosoft基本類庫(MFC)封裝了SDK(軟件開發(fā)工具包)結(jié)構(gòu)、功能及應用程序框架內(nèi)部技術。該應用程序框架隱藏了過去Windows程序員不得不處理的許多重復性工作。AFX開發(fā)小組根據(jù)他們開發(fā)第一類庫的經(jīng)驗,確定了在建立MFC庫時需要遵循的一些基本原則。下面的設計原則,也就是他

56、們的設計目標:(1) 使用C+創(chuàng)建Windows應用程序的過程容易和直觀。(2) 合并已有的Windows模型和概念。(3) 確保類庫有足夠的擴展性,以便加入Windows后續(xù)版本的特性和功能。(4) 使用Windows API特性更容易,同時采用Windows API的概念,編程風格和函數(shù)名稱。(5) 使用標準Windows命令約定和編碼風格。(6) 用類封裝Windows API和Windows對象,并按照API的指引完成工作。幾乎所有的MFC (Microsoft Foundation Class微軟基本類庫)全部是從CObject這個根類衍生出來的,由CObject這個類衍生出以下一個

57、重要的類:CCmdTarget 他是MFC類庫中消息映射體系的一個基類(消息映射是把命令或消息引導給用戶為之編寫的響應函數(shù));再由CCmdTarget派生出應用程序線程類CWinThread和窗口類CWnd以及基本文檔類CDocument(CWinThread類的對象代表在一個應用程序內(nèi)運行的線程;CWnd類提供MFC中所有的窗口類的基本功能;CDocument類為用戶定義的文檔類提供基本的函數(shù)功能如:各類操作文檔)。CWinThread類又派生出應用程序?qū)ο箢怌WinApp,可以通過他來繼承Windows應用程序?qū)ο?,同時提供MFC中所有的窗口類的基本功能;CWnd類派生出框架窗口類CFra

58、meWnd、對話框類CDialog和視圖類CView,CFrameWnd用以完成Windows文檔界面重疊或彈出式框架窗口,以及管理窗口的成員,在其派生類中加入成員變量,實現(xiàn)窗口的消息處理與映射,CDialog類是在屏幕上顯示的對話框基類(包含模式對話框和非模式對話框),CView類為用戶提供視圖類的基本功能。文檔類從CDocument派生,應該包括任何屬于應用程序文檔的數(shù)據(jù)。對于真實的C+封裝,不允許文檔類對它的數(shù)據(jù)進行直接訪問(甚至從視圖類也不行),而應包含封裝函數(shù)以訪問它的數(shù)據(jù)。文檔類還應包括裝入和保存一個文檔所必須的所有功能,這些文檔包括從簡單的二進制文件到ODBC數(shù)據(jù)庫。如果應用程序

59、不做任何其他事情而只訪問一個ODBC數(shù)據(jù)庫,則文檔類可以只包含打開和關閉那個數(shù)據(jù)庫所必須的邏輯,因為數(shù)據(jù)庫是數(shù)據(jù)的主要倉儲地,文檔類對它自己來說是獨立的。從一個存儲設備中獲得信息,并把它取出來交給視圖,但是幾乎不把信息存儲到其他類中。一份文檔可以有多個相關視圖,文檔作為窗口標準命令的一部分,接收標準用戶界面組件的命令,當文檔數(shù)據(jù)被修改時,各個視圖都必須響應這些修改。應用程序類從CWinApp派生,并不對任何窗口進行控制。應用程序?qū)ο鬄橛脩籼峁┝顺跏蓟瘧贸绦颍ㄒ约八拿恳粋€實例)和運行應用程序所需的成員函數(shù)。除了控制應用程序的創(chuàng)建和卸載外,它自身應該有少數(shù)重要的附加功能,這些功能包括處理命令行

60、標志和提供一種定制的打開文檔的方法。應用程序類還提供一些應用程序范圍的服務,諸如后臺處理和超分類等。每個使用MFC的應用程序只包含一個從CWinApp繼承的對象。主框架類從CFrameWnd類派生,控制應用程序的主窗口,負責所有應用程序范圍的界面,包括工具欄、狀態(tài)欄、菜單和對話條。然而,如果這些條中的任何一個有新增的功能的話,它應該被封裝到它自己的類中。對用戶優(yōu)先選項的支持也通??梢栽谥骺蚣茴愔邪l(fā)現(xiàn)。有三種方法可以構(gòu)造一個框架窗口:用Creat直接構(gòu)造、用LoadFrame直接構(gòu)造和用文檔模板間接構(gòu)造;使用Creat成員函數(shù)傳遞框架構(gòu)造參數(shù)作為立即參數(shù),LoadFrame從資源中獲取大多數(shù)缺省值,為了能使資源被LoadFrame訪問,所有的資源必須有相同的ID(如,IDR_MAINFRAME)。當一個CFrameWnd對象包含視圖和文檔時,它們由框架類間接構(gòu)造而不是由程序員直接構(gòu)造,由此他們之間的聯(lián)系通過了CDocTemplate對象,他將視圖的構(gòu)造、視圖與文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論