計算機專業(yè)畢業(yè)論文-項目管理系統(tǒng).doc_第1頁
計算機專業(yè)畢業(yè)論文-項目管理系統(tǒng).doc_第2頁
計算機專業(yè)畢業(yè)論文-項目管理系統(tǒng).doc_第3頁
計算機專業(yè)畢業(yè)論文-項目管理系統(tǒng).doc_第4頁
計算機專業(yè)畢業(yè)論文-項目管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢 業(yè) 論 文題 目 項目管理系統(tǒng)姓 名 學 號 年 級 專 業(yè) 導 師 結題時間 【摘 要】在當今社會,隨著項目管理的理論方法及管理模式的普及,以及信息化進程的不斷發(fā)展,越來越多的企業(yè)和組織在內(nèi)部推廣項目管理軟件。本系統(tǒng)采用c+語言開發(fā),用mfc制作前臺界面,用odbc和ado操作sql server 2000搭建的后臺數(shù)據(jù)庫,用socket和http協(xié)議進行網(wǎng)絡通訊,實現(xiàn)了一個面向軟件企業(yè)開發(fā)部門應用的部署在局域網(wǎng)內(nèi)的c/s架構項目管理系統(tǒng)。其主要功能包括:部門與小組管理、項目與任務管理,此外還包括日志、通知、問題等輔助功能模塊,以及數(shù)據(jù)庫備份與恢復、系統(tǒng)升級、用戶權限管理等系統(tǒng)功能模塊。本文對該系統(tǒng)的分析、設計、實現(xiàn)、部署過程做了詳細介紹?!娟P鍵詞】 項目管理mfcodbcsocketdesign and implementation of project management system【abstract】 in the society of nowadays, with popularization of the theory method and manage mode of project management, and continuous development of the informationization procedure, more and more enterprises and organizations start to deploy project management software. this system is developed with c+ language, drawing foreground interface with mfc, using odbc and ado to operate background database building with sql server 2000, processing network communication with socket and http protocol, implemented a c/s model - project management system which have application in develop department of software corporations, it can be deployed in local area network. the main function mainly including: department and team management, project and task management, besides, it also contains assistant functions modules of log, notice and problem, and system function module of database backup and restore, system update and user rights management. this article will introduce the procedure of analyzing, design, implementation and deployment of this system in detail. 【keywords】 project management, mfc, odbc, socket目 錄第一章引言11.1選題背景11.2國內(nèi)現(xiàn)狀11.3研究意義2第二章需求分析32.1系統(tǒng)定義32.2功能需求32.3數(shù)據(jù)需求4第三章數(shù)據(jù)庫設計53.1數(shù)據(jù)庫的概念53.2數(shù)據(jù)庫的選擇53.3數(shù)據(jù)庫表的設計6第四章技術介紹134.1c+語言及microsoft visual c+的介紹134.2mfc技術介紹144.3odbc,ado技術介紹144.4sql語言技術介紹164.5開發(fā)環(huán)境介紹17第五章系統(tǒng)實現(xiàn)185.1系統(tǒng)總體架構及實現(xiàn)185.2部門組建215.3小組管理235.4項目部署255.5任務分配275.6日志管理305.7通知管理325.8問題管理355.9用戶管理385.10數(shù)據(jù)庫備份與恢復385.11其它功能40第六章安裝程序的制作及部署436.1installshield介紹436.2建立installshield工程436.3填寫程序信息446.4添加程序文件及相關動態(tài)鏈接庫456.5添加快捷方式及設置安裝語言456.6添加相關運行庫及odbc驅(qū)動466.7生成安裝包476.8服務器端和客戶端安裝配置方法48第七章后記49參考文獻50附錄一odbc和ado操作數(shù)據(jù)庫的方法51附錄二ini配置文件的讀寫58- 64 -第一章 引言1.1 選題背景項目是指一系列獨特的、復雜的并相互關聯(lián)的活動,這些活動有著一個明確的目標或目的,必須在特定的時間、預算、資源限定內(nèi),依據(jù)規(guī)范完成。項目參數(shù)包括項目范圍、質(zhì)量、成本、時間、資源。項目管理(project management pm) 最早是在美國的曼哈頓計劃中產(chǎn)生的概念。后由華羅庚教授50年代引進中國,是指基于被接受的管理原則的一套技術方法,這些技術或方法用于計劃、評估、控制工作活動,以按時、按預算、依據(jù)規(guī)范達到理想的最終效果。隨著計算機、網(wǎng)絡系統(tǒng)的迅速發(fā)展,項目管理技術的不斷進步,項目管理軟件產(chǎn)品層出不窮,其功能、特點、應用對象也各不相同。當前,越來越多的企業(yè)和組織在內(nèi)部推廣項目管理的理論方法及管理模式。1.2 國內(nèi)現(xiàn)狀項目管理軟件在我國的應用起步較早,80年代初期就有很多單位開始使用。這個階段,國內(nèi)出現(xiàn)了很多項目管理軟件,每上一個項目,如果該項目有意使用計算機進行項目管理,那么就會請一班人馬來開發(fā)一套項目管理軟件。也有一些項目嘗試引進國外項目管理軟件,我國最早引進該技術的項目是山西潞安煤礦。在這些項目中我方項目管理人員基本處于被動使用的狀況,缺乏對國外項目管理的理解,對國外項目管理模式不了解。到了90年代,隨著與國際接軌的需要,國內(nèi)很多單位已接收了國外項目管理的思路,很多單位也引進了國際先進的項目管理軟件,已經(jīng)積累了部分經(jīng)驗和數(shù)據(jù)。目前在國內(nèi)使用項目管理軟件進行項目管理的項目和企業(yè)已有上千家。綜合國內(nèi)的應用情況,分為以下幾種:(1)運用項目管理軟件編排進度計劃,在項目投標以及工程開工之前均能用這些軟件來編制計劃。部分企業(yè)還處于被動使用狀態(tài),因為項目招標書中要求使用項目管理軟件進行項目管理,而被迫使用相應軟件。(2)通過進度和資源結合使用,分析資源的強度和資源的使用安排是否滿足要求。很多企業(yè)和項目通過使用項目管理軟件,嘗到了甜頭,希望通過項目管理軟件的資源分析和成本管理的功能,合理配置資源,使得進度計劃更為合理。(3)根據(jù)施工組織措施來編制進度和資源計劃,根據(jù)計劃來安排生產(chǎn),通過計劃對進度進行控制。有部分項目的計劃編制十分漂亮,資源配置也很合理,但是現(xiàn)場施工沒有按照計劃來執(zhí)行。這就要求計劃的編制人員必須按照施工方案來編制計劃,現(xiàn)場施工人員按照計劃安排生產(chǎn),并及時將實際進程向上反饋,實施動態(tài)跟蹤。能做到這一點,已基本體現(xiàn)了項目管理軟件的功能。目前國內(nèi)已有部分項目正在按照該模式進行動態(tài)控制。(4)項目管理的數(shù)據(jù)與企業(yè)管理信息系統(tǒng)(mis)集成,通過數(shù)據(jù)共享,減少重復輸入。通過項目管理軟件的接口功能與企業(yè)的管理信息系統(tǒng)連接,對于企業(yè)項目管理系統(tǒng)可進行該部分工作,對于非超長工期型項目而言,不必提出該要求。(5)通過internet對遠程項目進行控制。分散在全球各地的分公司或項目工地上的工程數(shù)據(jù)通過 internet傳遞到本部,在總部進行匯總和統(tǒng)一安排,并將指令通過郵件下發(fā)給分公司或工地。對于企業(yè)和戰(zhàn)線偏長的項目可推廣此應用。綜上所述,項目管理軟件的設計應該根據(jù)企業(yè)的規(guī)模、項目的工期、資源的復雜程度等因素來考慮。1.3 研究意義當今,以全球信息普及和全球信息共享為標志的“全球信息網(wǎng)絡革命”正在蓬勃興起,世界已進入在計算機信息管理領域中激烈競爭的時代。誰掌握的知識多,信息量大,信息處理速度快,批量大,誰的效率就高,誰就能在各種競爭中立于不敗之地。企業(yè)實現(xiàn)項目管理,最終目的是通過管理體系的運行達到管理目標。通過運行管理軟件構造企業(yè)管理體系是一種切實可行的辦法。一個成熟的項目管理系統(tǒng)中貫穿了科學的項目管理理念、積淀了項目管理實踐經(jīng)驗,在軟件的實施過程中,對規(guī)范企業(yè)的管理行為、形成項目管理體系能起到事半功倍的作用。第二章 需求分析2.1 系統(tǒng)定義項目管理是指基于管理原則的一套技術方法,那么本系統(tǒng)作為一個項目管理軟件,為面向的用戶(軟件企業(yè)的開發(fā)部門)提供信息化的項目管理服務。2.2 功能需求項目管理軟件的主要功能需求便是為用戶快速、準確地提供軟件項目進程中的各類項目參數(shù),方便項目的實施者對自己參與部分的工作進度進行報告和匯總,方便管理者對項目進程進行計劃、評估和控制。一、 從信息需求的角度分析信息注冊主要包括用戶的個人信息、部門和小組信息、項目和任務信息的采集。信息交互即項目信息管理,主要包括將項目落實至小組、具體任務落實至個人,以及該過程中相關信息的篩選、匯總和呈現(xiàn)。用戶的日志信息問題和解答信息(項目知識庫)通知信息二、 從用戶的角度分析該系統(tǒng)將用戶分為系統(tǒng)管理員(administrator)、部門負責人(department leader)、小組負責人(team leader)、職員(worker)四個級別,分別對應不同的職責權限和操作權限:系統(tǒng)管理員負責用戶管理、日常系統(tǒng)維護(包括數(shù)據(jù)庫的備份與恢復、程序新版本的發(fā)布);部門負責人主要負責部門的組建與項目的部署工作,包括將不同項目分配給各項目組、評估和控制項目進度、發(fā)布項目相關的通知;小組負責人主要負責小組的編成與項目中具體任務的部署工作,包括將不同任務分配給各組員、評估和控制任務進度;職員主要負責具體任務的實施,提交自己的工作日志,在問題管理面板發(fā)布自己在工作中遇到的問題,同時也可以解答或補充他人提出的問題;在本系統(tǒng)中,高權限的用戶可以執(zhí)行權限低于自己的用戶的操作。2.3 數(shù)據(jù)需求一、用戶信息用戶的個人信息包括用戶登錄名、密碼、賬號狀態(tài)、用戶姓名、所屬小組、所屬部門、用戶權限等。二、部門信息部門信息包括部門名稱、部門負責人、部門描述等。三、小組信息小組信息包括小組名稱、小組所屬部門、小組負責人、小組描述等。四、項目信息項目信息包括項目名稱、項目創(chuàng)建者、項目所屬小組、項目負責人、項目描述、項目類型、項目開始時間、項目預計終止時間、項目實際終止時間、項目當前狀態(tài)等。五、任務信息任務信息包括任務名稱、任務所屬項目、任務創(chuàng)建者、任務實施者、任務內(nèi)容、任務優(yōu)先級、任務開始時間、任務預計終止時間、任務實際終止時間、任務當前狀態(tài)、任務完成百分比等。六、日志信息日志信息包括日志提交者、日志內(nèi)容、日志提交時間等。七、通知信息通知信息包括通知標題、通知內(nèi)容、通知創(chuàng)建者、通知所屬項目、通知起效時間、通知失效時間等。八、問題信息問題信息包括問題標題、問題內(nèi)容、問題提出者、問題提出時間、問題解決時間、問題狀態(tài)等。九、解答信息解答信息是對應問題信息而存在的,包括解答對應的問題、解答者、解答內(nèi)容、解答時間等。第三章 數(shù)據(jù)庫設計3.1 數(shù)據(jù)庫的概念數(shù)據(jù)庫是指存儲在一起的相關數(shù)據(jù)的集合,這些數(shù)據(jù)是結構化的,無有害的或不必要的冗余,并為多種應用服務;數(shù)據(jù)的存儲獨立于使用它的程序;對數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進行。使用數(shù)據(jù)庫可以帶來許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲空間;實現(xiàn)數(shù)據(jù)資源的充分共享等等。數(shù)據(jù)庫通常分為層次式數(shù)據(jù)庫、網(wǎng)絡式數(shù)據(jù)庫和關系式數(shù)據(jù)庫三種。層次結構模型實質(zhì)上是一種有根結點的定向有序樹,按照層次模型建立的數(shù)據(jù)庫系統(tǒng)稱為層次模型數(shù)據(jù)庫系統(tǒng)。ims(information management system)是其典型代表;按照網(wǎng)狀數(shù)據(jù)結構建立的數(shù)據(jù)庫系統(tǒng)稱為網(wǎng)狀數(shù)據(jù)庫系統(tǒng),其典型代表是dbtg(data base task group);關系式數(shù)據(jù)結構把一些復雜的數(shù)據(jù)結構歸結為簡單的二元關系,由關系數(shù)據(jù)結構組成的數(shù)據(jù)庫系統(tǒng)被稱為關系數(shù)據(jù)庫系統(tǒng),現(xiàn)在市面上諸多主流的數(shù)據(jù)庫產(chǎn)品如oracle,sql server 2000/2005等,都屬于關系型數(shù)據(jù)庫。3.2 數(shù)據(jù)庫的選擇本系統(tǒng)采用sql server 2000搭建關系型數(shù)據(jù)庫。sql server 2000 是microsoft 公司推出的數(shù)據(jù)庫管理系統(tǒng),該版本繼承了sql server 7.0 版本的優(yōu)點,同時又比它增加了許多更先進的功能。其特點包括:1真正的客戶機/服務器體系結構。2圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3豐富的編程接口工具,為用戶進行程序設計提供了更大的選擇余地。4sql server與windows nt完全集成,利用了nt的許多功能,如發(fā)送和接受消息,管理登錄安全性等。sql server也可以很好地與microsoft backoffice產(chǎn)品集成。5具有很好的伸縮性,可跨越從運行windows 98/xp的個人電腦到運行windows server 2000/2003的大型多cpu服務器等多種平臺使用。6對web技術的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到web頁面上。7sql server提供數(shù)據(jù)倉庫功能,這個功能只在oracle和其他更昂貴的dbms中才有。以上也是本系統(tǒng)選用sql server 2000作為后臺數(shù)據(jù)庫系統(tǒng)的重要原因。3.3 數(shù)據(jù)庫表的設計本系統(tǒng)在進行數(shù)據(jù)庫表的設計時使用了power designer 12數(shù)據(jù)建模軟件,用power designer進行建模之后,通過odbc驅(qū)動即可將包含實體、屬性和關系完整地導入sql server 2000,圖3-1是用power designer 12生成的物理數(shù)據(jù)模型(physical data model):圖3-13.3.1 用戶登錄表(login)該表用來存放用戶的登錄信息,在此表中定義了4個字段來進行用戶登錄信息的存儲。見表3-1表31標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明user_idint4y用戶idy自增login_namevarchar100y用戶登錄名user_namevarchar50y用戶姓名passwordvarchar50y密碼3.3.2 用戶信息表(users)該表用來存放用戶的個人信息,在此表中定義了5個字段來進行用戶個人信息的存儲,并以外鍵記錄用戶id,與用戶登錄表的用戶id對應。見表3-2。表32標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明user_idint4y用戶idyy login表user_iduser_deptvarchar100n用戶所屬部門user_teamvarchar100n用戶所屬小組user_statusint4y帳號狀態(tài)用0,1,2表示0:未通過管理員認證1:正常2:被注銷user_roleint4y用戶權限用1,2,3,4表示1:職員(默認)2:小組負責人3:部門負責人4:管理員3.3.3 部門信息表(departments)該表主要用來對部門信息進行錄入、刪除、修改、查詢等操作,在此表中定義了4個字段來進行部門信息的存儲,并以外鍵記錄部門負責人id,與用戶登錄信息表的用戶id對應。見表3-3。表33標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明dept_idint4y部門idy自增dept_namevarchar100y部門名稱dept_desctext16n部門描述dept_ownerint4n部門負責人ylogin表user_id3.3.4 小組信息表(teams)該表主要用來對小組信息進行錄入、刪除、修改、查詢等操作,在此表中定義了5個字段來進行小組信息的存儲,并以外鍵記錄小組所屬部門id、小組負責人id,分別與部門信息表的部門id、用戶登錄信息表的用戶id對應。見表3-4。表34標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明team_idint4y小組idy自增team_dept_idint4y小組所屬部門ydepartments表dept_idteam_namevarchar100y小組名稱team_desctext16n小組描述team_ownerint4n小組負責人ylogin表user_id3.3.5 項目信息表(projects)該表主要用來對項目信息進行錄入、刪除、修改、查詢等操作,在此表中定義了11個字段來進行項目信息的存儲,并以外鍵記錄項目負責人id、項目創(chuàng)建者id,都是與用戶登錄信息表的用戶id對應;還以外鍵記錄項目所屬小組id,與小組信息表的小組id對應。見表3-5。表35標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明project_idint4y項目idy自增project_namevarchar100y項目名稱project_desctext16y項目描述project_ownerint4n項目負責人ylogin表user_idproject_creatorint4y項目創(chuàng)建者ylogin表user_idproject_team_idint4n項目所屬小組yteams表team_idproject_start_datedatetime8n項目開始時間project_end_datedatetime8n項目預計終止時間project_actual_end_datedatetime8n項目實際終止時間project_typevarchar20y項目類型project_statusint4y項目當前狀態(tài)用1,2,3,4表示1:未開始(默認)2:進行中3:暫停中4:結束3.3.6 任務信息表(tasks)該表主要用來對任務信息進行錄入、刪除、修改、查詢等操作,在此表中定義了12個字段來進行任務信息的存儲,并以外鍵記錄任務實施者id、任務創(chuàng)建者id,都是與用戶登錄信息表的用戶id對應;還以外鍵記錄了任務所屬項目id,與項目信息表的項目id對應。見表3-6。表36標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明task_idint4y任務idy自增task_project_idint4y任務所屬項目yprojects表project_idtask_namevarchar100y任務名稱task_contenttext16y任務內(nèi)容task_ownerint4y任務實施者ylogin表user_idtask_creatorint4y任務創(chuàng)建者ylogin表user_idtask_start_datedatetime8y任務開始時間task_end_datedatetime8y任務預計終止時間task_actual_end_datedatetime8n任務實際終止時間task_percentint4y任務完成百分比默認值:0task_statusint4y任務當前狀態(tài)用1,2,3,4表示1:未開始(默認)2:進行中3:暫停中4:結束task_orderint4y任務優(yōu)先級用1,2,3表示1:正常(默認)2:較緊急3:非常緊急3.3.7 日志信息表(logs)該表主要用來對日志信息進行錄入、修改、查詢等操作,在此表中定義了4個字段來進行日志信息的存儲,并以外鍵記錄日志提交者id,與用戶登錄信息表的用戶id對應,見表3-7。表37標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明log_idint4y日志idy自增log_userint4y日志提交者ylogin表user_idlog_timevarchar8y日志提交時間log_desctext16y日志內(nèi)容3.3.8 通知信息表(notices)該表主要用來對通知信息進行錄入、刪除、修改、查詢等操作,在此表中定義了7個字段來進行通知信息的存儲,并以外鍵記錄通知創(chuàng)建者id,與用戶登錄信息表的用戶id對應,見表3-8。表38標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明notice_idint4y通知idy自增notice_titlevarchar50y通知標題notice_contenttext16n通知內(nèi)容notice_creatorint4y通知創(chuàng)建者y login表user_idnotice_projectint4y通知所屬項目notice_startdatetime8y通知起效時間notice_enddatetime8y通知失效時間3.3.9 問題信息表(problems)該表主要用來對問題信息進行錄入、修改、查詢等操作,在此表中定義了7個字段來進行問題信息的存儲,并以外鍵記錄問題提出者id,與用戶登錄信息表的用戶id對應,見表3-9。表39標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明problem_idint4y問題idy自增problem_ownerint4y問題提出者ylogin表user_idproblem_titlevarchar50y問題標題problem_startdatetime8y問題提出時間problem_enddatetime8n問題解決時間problem_statustinyint1y問題狀態(tài)用0,1表示0:未解決1:已解決problem_contenttext16y問題內(nèi)容3.3.10 解答信息表(answers)該表主要用來與問題信息表聯(lián)合使用,實現(xiàn)對問題的解答和補充,在此表中定義了5個字段來進行解答信息的存儲,并以外鍵記錄問題解答者id,與用戶登錄信息表的用戶id對應,見表3-10。表310標識符數(shù)據(jù)類型長度非空描述主鍵外鍵說明answer_idint4y解答idy自增problem_idint4y解答對應問題yproblems表problem_idanswer_contenttext16y解答內(nèi)容user_idint4y問題解答者ylogin表user_idanswer_timedatetime8y解答時間第四章 技術介紹4.1 c+語言及microsoft visual c+的介紹本系統(tǒng)采用c+語言和microsoft visual c+ 6。0開發(fā)環(huán)境,下面對它們進行介紹。美國at&t貝爾實驗室的本賈尼斯特勞斯特盧普(bjarne stroustrup)博士在20世紀80年代初發(fā)明并實現(xiàn)了c+。一開始c+是作為c語言的增強版出現(xiàn)的,從給c語言增加類開始,不斷的增加新特性。虛函數(shù)、運算符重載、多重繼承、模板、異常、rtti、名字空間逐漸被加入標準。根據(jù)effective c+第三版第一條款的描述,現(xiàn)在c+由以下四個“子語言”組成:1、c子語言。c+支持c語言的幾乎全部功能,在語法上與c語言僅有極微妙的差別。2、面向?qū)ο蟮腸+。c+首先作為一門面向?qū)ο蟮恼Z言而聞名,這個特點在這里不再詳述。3、泛型編程語言。c+強大的模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。4、stl(c+標準模板庫)。隨著stl的不斷發(fā)展,它已經(jīng)逐漸成為c+程序設計中不可或缺的部分,其效率可能比一般的naive代碼低些,但是其安全性與規(guī)范性使它大受歡迎。c+的設計原則包括: c+設計成靜態(tài)類型、和c同樣高效且可移植的多用途程序設計語言。 c+設計成直接的和廣泛的支援多種程序設計風格(程序化程序設計、資料抽象化、面向?qū)ο蟪绦蛟O計、泛型程序設計)。 c+設計成給程序設計者更多的選擇,即使可能導致程序設計者選擇錯誤。 c+設計成盡可能與c兼容,籍此提供一個從c到c+的平滑過渡。 c+避免平臺限定或沒有普遍用途的特性。 c+不使用會帶來額外開銷的特性。 c+設計成無需復雜的程序設計環(huán)境。vc+是微軟公司開發(fā)的一個ide(集成開發(fā)環(huán)境),想要熟練使用vc開發(fā)大型的軟件項目,需要了解許多windows平臺的特性,并且需要掌握mfc、atl、com等的知識。vc+應用程序的開發(fā)主要有兩種模式,一種是win api方式,另一種則是mfc方式,傳統(tǒng)的win api開發(fā)方式比較繁瑣,而mfc則是對win api再次封裝,所以mfc相對于win api開發(fā)更具備效率優(yōu)勢。4.2 mfc技術介紹mfc的全稱是microsoft foundation classes(微軟基礎類),是微軟提供的,用于在c+環(huán)境下編寫應用程序的一個框架和引擎,vc+是windows下開發(fā)人員使用的專業(yè)c+ sdk(sdk,standard software develop kit,專業(yè)軟件開發(fā)平臺),mfc就是掛在它之上的一個輔助軟件開發(fā)包,mfc作為與vc+血肉相連的部分,mfc同bc+集成的vcl一樣是一個非外掛式的軟件包,類庫,只不過mfc類是微軟為vc+專配的。mfc是win api與c+的結合,api,即微軟提供的windows下應用程序的編程語言接口,是一種軟件編程的規(guī)范,但不是一種程序開發(fā)語言本身,可以允許用戶使用各種各樣的第三方的編程語言來進行對windows下應用程序的開發(fā),使這些被開發(fā)出來的應用程序能在windows下運行。mfc是微軟對api函數(shù)的專用c+封裝,這種結合一方面讓用戶使用微軟的專業(yè)c+ sdk來進行win下應用程序的開發(fā)變得容易,因為mfc是對api的封裝,微軟做了大量的工作,隱藏了好多程序開發(fā)人員在win下用c+ & mfc編制軟件時的大量內(nèi)節(jié),如應用程序?qū)崿F(xiàn)消息的處理,設備環(huán)境繪圖,這種結合是以方便為目的的,必定要付出一定代價,因此就造成了mfc對類封裝中的一定程度的的冗余和迂回,但這是可以接受的。4.3 odbc,ado技術介紹一、odbcodbc(open database connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務結構(wosa,windows open services architecture)中有關數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標準api。這些api利用sql來完成其大部分任務。odbc本身也提供了對sql語言的支持,用戶可以直接將sql語句送給odbc。一個基于odbc的應用程序?qū)?shù)據(jù)庫的操作不依賴任何dbms,不直接與dbms打交道,所有的數(shù)據(jù)庫操作由對應的dbms的odbc驅(qū)動程序完成。也就是說,不論是foxpro、access , mysql還是oracle數(shù)據(jù)庫,均可用odbc api進行訪問。由此可見,odbc的最大優(yōu)點是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫。一個完整的odbc由下列幾個部件組成:應用程序;odbc管理器。該程序位于windows 95控制面板(control panel)的32位odbc內(nèi),其主要任務是管理安裝的odbc驅(qū)動程序和管理數(shù)據(jù)源。驅(qū)動程序管理器。驅(qū)動程序管理器包含在odbc32.dll中,對用戶是透明的。其任務是管理odbc驅(qū)動程序,是odbc中最重要的部件;odbc api;odbc 驅(qū)動程序。是一些dll,提供了odbc和數(shù)據(jù)庫之間的接口;數(shù)據(jù)源。數(shù)據(jù)源包含了數(shù)據(jù)庫位置和數(shù)據(jù)庫類型等信息,實際上是一種數(shù)據(jù)連接的抽象。應用程序要訪問一個數(shù)據(jù)庫,首先必須用odbc管理器注冊一個數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及odbc驅(qū)動程序等信息,建立起odbc與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應用程序?qū)?shù)據(jù)源名提供給odbc,odbc就能建立起與相應數(shù)據(jù)庫的連接。在odbc中,odbc api不能直接訪問數(shù)據(jù)庫,必須通過驅(qū)動程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動程序管理器負責將應用程序?qū)dbc api的調(diào)用傳遞給正確的驅(qū)動程序,而驅(qū)動程序在執(zhí)行完相應的操作后,將結果通過驅(qū)動程序管理器返回給應用程序。odbc 使用層次的方法來管理數(shù)據(jù)庫,在數(shù)據(jù)庫通信結構的每一層,對可能出現(xiàn)依賴數(shù)據(jù)庫產(chǎn)品自身特性的地方,odbc 都引入一個公共接口以解決潛在的不一致性,從而很好地解決了基于數(shù)據(jù)庫系統(tǒng)應用程序的相對獨立性,這也是odbc 一經(jīng)推出就獲得巨大成功的重要原因之一。二、adoado (activex data objects) 是微軟提供的一個用于存取數(shù)據(jù)源的com組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式ole db的一個中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關心數(shù)據(jù)庫是如何實現(xiàn)的,而只用關心到數(shù)據(jù)庫的連接。訪問數(shù)據(jù)庫的時候,關于sql的知識不是必要的,但是特定數(shù)據(jù)庫支持的sql命令仍可以通過ado中的命令對象來執(zhí)行。ado是一種面向?qū)ο蟮木幊探涌?,微軟介紹說,與其同ibm和oracle提倡的那樣,創(chuàng)建一個統(tǒng)一數(shù)據(jù)庫,不如提供一個能夠訪問不同數(shù)據(jù)庫的統(tǒng)一接口,這樣會更加實用一些。為實現(xiàn)這一目標,微軟在數(shù)據(jù)庫和微軟的ole db中提供了一種“橋”程序,這種程序能夠提供對數(shù)據(jù)庫的連接。開發(fā)人員在使用ado時,其實就是在使用ole db,不過ole db更加接近底層。ado的一項屬性遠程數(shù)據(jù)服務,支持“數(shù)據(jù)倉庫”activex 組件以及高效的客戶端緩存。作為activex的一部分,ado也是com組件的一部分。ado向我們提供了一個熟悉的,高層的對ole db的automation封裝接口。ado對象是ole db的接口;如同不同的數(shù)據(jù)庫系統(tǒng)需要它們自己的odbc驅(qū)動程序一樣,不同的數(shù)據(jù)源要求它們自己的ole db提供者。目前,雖然ole db提供者比較少,但微軟正積極推廣該技術,并打算用ole db取代odbc。4.4 sql語言技術介紹sql的全稱是structured query language(結構化查詢語言),最初是由ibm的圣約瑟研究實驗室為其關系數(shù)據(jù)庫管理系統(tǒng)system r開發(fā)的一種查詢語言,它的前身是square語言。sql語言結構簡潔,功能強大,簡單易學,所以自從ibm公司1981年推出以來,sql語言,得到了廣泛的應用。如今無論是像oracle ,sybase, informix, sql server這些大型的數(shù)據(jù)庫管理系統(tǒng),還是像visual fox pro, powerbuilder這些微機上常用的數(shù)據(jù)庫開發(fā)系統(tǒng),都支持sql語言作為查詢語言。sql是高級的非過程化編程語言,允許用戶在高層數(shù)據(jù)結構上工作。他不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結構的不同數(shù)據(jù)庫系統(tǒng)可以使用相同的sql語言作為數(shù)據(jù)輸入與管理的接口。它以記錄集合作為操縱對象,所有sql語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條sql語句的輸出作為另一條sql語句的輸入,所以sql語言可以嵌套,這使他具有極大的靈活性和強大的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的一個單獨事件只需要一個sql語句就可以達到目的,這也意味著用sql語言可以寫出非常復雜的語句。 sql語言包含4個部分: 數(shù)據(jù)定義(ddl)語言(如create, drop,alter等語句) 數(shù)據(jù)操縱(dml)語言(如select, insert, update, delete等語句)數(shù)據(jù)控制語言(如grant,revoke,commit, rollback等語句) 4.5 開發(fā)環(huán)境介紹操作系統(tǒng):windows xp開發(fā)工具:microsoft visual c+ 6.0數(shù)據(jù)庫:sql server 2000 develop edition數(shù)據(jù)建模工具:power designer 12安裝程序制作工具:installshield 10.5服務器:iis第五章 系統(tǒng)實現(xiàn)5.1 系統(tǒng)總體架構及實現(xiàn)5.1.1 系統(tǒng)總體結構圖圖5-15.1.2 系統(tǒng)主界面截圖用戶從登錄界面(如圖5-2)登錄項目管理系統(tǒng)主程序后,將彈出主界面,界面從上到下分別是菜單欄、各主要功能面板、狀態(tài)信息條(歡迎文字、當前系統(tǒng)時間、當前系統(tǒng)版本),不同權限的用戶登錄后可進行的操作范圍也不盡相同,權限最高的管理員在操作上無限制,權限最低的職員的操作范圍最小,主要體現(xiàn)在對添加、修改、刪除等操作的限制上。主界面效果如圖5-3。圖5-2圖5-35.1.3 關鍵代碼bool cmaindlg:oninitdialog() cdialog:oninitdialog();/將dialog設置為ws_ex_appwindow風格,以便在任務欄顯示標簽this-modifystyleex(0, ws_ex_appwindow);ctime t=ctime:getcurrenttime();/獲得當前時間cstring s=t.format(%h:%m:%s);/轉(zhuǎn)換時間為cstrings=當前系統(tǒng)時間:+s; /設置顯示的字符串crect rect;this-getclientrect(&rect);m_statusbarctrl.create(ws_child|ws_visible|ccs_bottom,crect(0,0,0,0),this,id_status_bar_ctrl); /創(chuàng)建狀態(tài)欄/創(chuàng)建狀態(tài)欄區(qū)間數(shù)和寬度int xpos = :getsystemmetrics(sm_cxscreen);int indicators3;indicators0 = xpos*1/5;indicators1 = xpos*2/5;indicators2 = xpos;m_statusbarctrl.setparts(3,&indicators0);cstring cstemp = ;cstemp.format(歡迎你:%s, cpublic:user_name);m_statusbarctrl.settext(cstemp,0,0);m_statusbarctrl.settext(s,1,0);cstring t_version=;cfileversioninfo t_fver;t_fver.create();t_version=t_fver.getfileversion();t_version=當前版本:+t_version;m_statusbarctrl.settext(t_version,2,0);/設置計時器,每一秒觸發(fā)計時事件this-settimer(12,1000,null);this-myinitial();/向界面中添加選項卡和面板并設置大小和位置的函數(shù)cmenu* mmenu = getmenu();cmenu* submenu = mmenu-getsubmenu(0);/只有administrator權限用戶才能使用用戶管理功能if(cpublic:user_role!=4)submenu-enablemenuitem(id_usermanager, mf_grayed);return true;5.2 部門組建5.2.1 界面及功能描述主界面中的幾個主要功能模塊都是以選項卡+面板的方式實現(xiàn)的,主界面上的第一個功能面板是部門組建,面板中部的列表控件用來顯示部門列表;面板上方是部門查詢框,輸入部門名稱、部門負責人這兩個條件中的一個或多個,點擊查詢按鈕,符合條件的搜索結果就會出現(xiàn)在列表控件中;面板下方是部門基本信息框,選中列表控件中的一個部門,該部門的基本信息就會顯示在部門基本信息框中,如圖5-4。要創(chuàng)建一個部門,點擊添加按鈕,在彈出的對話框中填入該部門的信息,并給該部門分配部門成員,即可完成部門的創(chuàng)建工作,如圖5-5。創(chuàng)建出的部門都可以通過修改和刪除按鈕來進行部門信息的修改和部門的刪除工作。5.2.2 界面截圖圖5-5圖5-65.2.3 關鍵代碼bool cgroupdlg:oninitdialog() cdialog:oninitdialog();m_ltdeptshow.insertcolumn(0, id, lvcfmt_left, 50);m_ltdeptshow.insertcolumn(1, 部門名稱, lvcfmt_left, 150);m_ltdeptshow.insertcolumn(2, 負責人, lvcfmt_left, 150);dword dwstyle = m_ltdeptshow.getextendedstyle();dwstyle |= lvs_ex_fullrowselect; /選中某行使整行高亮dwstyle |= lvs_ex_gridlines; /網(wǎng)格線(只適用與report風格的listctrl) m_ltdeptshow.setextendedstyle(dwstyle); /設置擴展風格this-initialgroup();/負責向listctrl中填入數(shù)據(jù)的函數(shù)cbutton *pbutton = null; /根據(jù)用戶權限高低,限制用戶的操作范圍switch(cpublic:user_role)case 1:pbutton = (cbutton *)getdlgitem(idc_bn_deptquery);pbutton-enablewindow(false);/禁用職員不允許操作的按鈕break;case 2:/禁用小組負責人不允許操作的按鈕break;case 3:/禁用部門負責人不允許操作的按鈕break;default:break;return true; 5.3 小組管理5.3.1 界面及功能描述在部門組建面板中選擇一個部門,點擊查看,便會彈出小組管理對話框,如圖5-7。對話框上方是小組查詢框,輸入小組名稱、小組負責人這兩個條件中的一個或多個,點擊查詢按鈕,符合條件的搜索結果就會出現(xiàn)在對話框下方列表控件中;要創(chuàng)建一個小組,點擊添加按鈕,在彈出的對話框中填入該小組的信息,并給該小組分配小組成員,即可完成小組的創(chuàng)建工作,如圖5-8??梢酝ㄟ^查看、修改和刪除按鈕來進行小組具體信息的查看、修改和小組刪除工作。5.

溫馨提示

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

評論

0/150

提交評論