第22章 數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理課件_第1頁(yè)
第22章 數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理課件_第2頁(yè)
第22章 數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理課件_第3頁(yè)
第22章 數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理課件_第4頁(yè)
第22章 數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理課件_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第22章數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的研發(fā)大多這是工程型項(xiàng)目,而非理論型的研究,因此,在學(xué)習(xí)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)主要還是以實(shí)例示范為主。本章就是通過(guò)介紹實(shí)例開(kāi)發(fā)來(lái)進(jìn)行數(shù)據(jù)庫(kù)研發(fā)的學(xué)習(xí),本章數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)將實(shí)現(xiàn)數(shù)據(jù)庫(kù)的添加、修改和統(tǒng)計(jì)等功能。本章的主要內(nèi)容有:E-R圖設(shè)計(jì):讀者將學(xué)會(huì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)研發(fā)中最重要的E-R圖(實(shí)體關(guān)系圖)的設(shè)計(jì),以及學(xué)會(huì)由E-R圖轉(zhuǎn)化成為關(guān)系表?;跀?shù)據(jù)庫(kù)的應(yīng)用研發(fā):讀者將學(xué)會(huì)使用數(shù)據(jù)庫(kù)進(jìn)行項(xiàng)目研發(fā),掌握數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)常用的函數(shù)和程序設(shè)計(jì)步驟。第22章數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的122.1提出問(wèn)題:設(shè)計(jì)一個(gè)家庭財(cái)務(wù)管理系統(tǒng)本小節(jié)是講解概要功能和界面設(shè)計(jì),一般而言,小規(guī)模的項(xiàng)目研發(fā)總是以功能需求為主導(dǎo),界面設(shè)計(jì)為手段的。因此,在考慮具體的開(kāi)發(fā)實(shí)施之前,應(yīng)該先清楚本項(xiàng)目需要實(shí)現(xiàn)什么功能,以及可以提供給用戶(hù)的操作界面。22.1提出問(wèn)題:設(shè)計(jì)一個(gè)家庭財(cái)務(wù)管理系統(tǒng)本小節(jié)是講解概222.1.1概要功能家庭財(cái)務(wù)管理系統(tǒng)相對(duì)于企業(yè)的財(cái)務(wù)系統(tǒng)而言,要簡(jiǎn)單得多,畢竟收支方面的流程和種類(lèi)都比較小,而且使用該系統(tǒng)的管理員也比較少。為了簡(jiǎn)單起見(jiàn),本項(xiàng)目就實(shí)現(xiàn)家庭財(cái)務(wù)管理系統(tǒng)的支出方面進(jìn)行講解分析,收入方面的相關(guān)功能其實(shí)是類(lèi)似的,該功能留給感興趣的讀者完成。家庭財(cái)務(wù)管理系統(tǒng)的概要功能如下:可以對(duì)每天的支出進(jìn)行記帳,記帳要實(shí)現(xiàn)分類(lèi):(1)按不同的支出類(lèi)型分類(lèi)。(2)按不同的消費(fèi)人員進(jìn)行分類(lèi)??梢詫?duì)歷史數(shù)據(jù)進(jìn)行查詢(xún),查詢(xún)要實(shí)現(xiàn)的功能是:(1)指定時(shí)間段,可以按類(lèi)型進(jìn)行該時(shí)間段的支出統(tǒng)計(jì)查詢(xún)。(2)指定時(shí)間段,可以按消費(fèi)人員進(jìn)行該時(shí)間段的支出統(tǒng)計(jì)查詢(xún)。(3)指定時(shí)間段,可以同時(shí)按類(lèi)型和消費(fèi)人員進(jìn)行該時(shí)間段的支出統(tǒng)計(jì)查詢(xún)。22.1.1概要功能家庭財(cái)務(wù)管理系統(tǒng)相對(duì)于企業(yè)的財(cái)務(wù)系統(tǒng)322.1.2界面需求根據(jù)前文所述的功能需求,在功能上可以分為兩個(gè)模塊:記帳的功能。查詢(xún)并統(tǒng)計(jì)的功能。因此,在操作界面上也應(yīng)該分兩個(gè)區(qū)域分別為這兩個(gè)功能提供用戶(hù)的操作界面:日常功能:日常功能就是對(duì)日常的開(kāi)支進(jìn)行記帳。統(tǒng)計(jì)功能:統(tǒng)計(jì)功能就是根據(jù)用戶(hù)輸入的起止時(shí)間,對(duì)特定的類(lèi)型和消費(fèi)人員的支出進(jìn)行統(tǒng)計(jì)。22.1.2界面需求根據(jù)前文所述的功能需求,在功能上可以422.2數(shù)據(jù)庫(kù)設(shè)計(jì)基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)可以分為兩個(gè)層次:應(yīng)用程序?qū)訑?shù)據(jù)庫(kù)層數(shù)據(jù)庫(kù)層是不與用戶(hù)直接打交道的,用戶(hù)是通過(guò)應(yīng)用程序來(lái)訪問(wèn)數(shù)據(jù)庫(kù),因此,數(shù)據(jù)庫(kù)可以看作是整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的“后臺(tái)”,而應(yīng)用程序所展示的界面可以看作是該系統(tǒng)的“前臺(tái)”。因此,設(shè)計(jì)好后臺(tái),直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和應(yīng)用程序設(shè)計(jì)的方便與否。22.2數(shù)據(jù)庫(kù)設(shè)計(jì)基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)可以分為兩個(gè)層次:522.2.1數(shù)據(jù)關(guān)系分析數(shù)據(jù)庫(kù)的設(shè)計(jì),首先應(yīng)該從數(shù)據(jù)之間的相互關(guān)系入手。如果數(shù)據(jù)庫(kù)系統(tǒng)比較復(fù)雜,則還需要進(jìn)行規(guī)范化的項(xiàng)目管理流程,一般的數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)流程如下:(1)需求分析階段(2)概念結(jié)構(gòu)設(shè)計(jì)階段(3)數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)階段(4)應(yīng)用程序開(kāi)發(fā)階段(5)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)施階段(6)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行和維護(hù)階段22.2.1數(shù)據(jù)關(guān)系分析數(shù)據(jù)庫(kù)的設(shè)計(jì),首先應(yīng)該從數(shù)據(jù)之間622.2.2E-R圖設(shè)計(jì)概念模型就是對(duì)信息世界的抽象建模,狹義的信息世界可以專(zhuān)指數(shù)據(jù)庫(kù)中的數(shù)據(jù),那么概念模型就可以理解為對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的抽象建模。概念模型最常用的描述方法是E-R圖(“實(shí)體-聯(lián)系”圖)描述法,E-R圖主要有3個(gè)要素:實(shí)體:實(shí)體是以矩形表示。實(shí)體就是數(shù)據(jù)庫(kù)數(shù)據(jù)中具有實(shí)際意義的主體,如在前文分析的實(shí)體就是“消費(fèi)人員”和“消費(fèi)品”。屬性:屬性用橢圓表示。就是實(shí)體所擁有的特性,如果是在面向?qū)ο蟪绦蛟O(shè)計(jì)中,可以將“實(shí)體”和“屬性”對(duì)應(yīng)為“對(duì)象”和“對(duì)象中的數(shù)據(jù)成員”的關(guān)系。聯(lián)系:聯(lián)系用菱形表示。聯(lián)系是實(shí)體與實(shí)體之間發(fā)生的動(dòng)作、從屬或其他依賴(lài)關(guān)系。22.2.2E-R圖設(shè)計(jì)概念模型就是對(duì)信息世界的抽象建模722.2.3數(shù)據(jù)庫(kù)表的生成由E-R圖生成數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)系統(tǒng)研發(fā)的必要步驟,如果沒(méi)有聯(lián)系,只有單實(shí)體或孤立的實(shí)體的E-R圖,轉(zhuǎn)換方式很簡(jiǎn)單:(1)首先將實(shí)體名寫(xiě)成數(shù)據(jù)庫(kù)表的表名。(2)然后將實(shí)體的屬性寫(xiě)成數(shù)據(jù)庫(kù)表的屬性。(3)根據(jù)實(shí)際含義,將設(shè)定數(shù)據(jù)庫(kù)屬性的類(lèi)型(整型、字符串型或日期類(lèi)型等)。(4)設(shè)定主碼。22.2.3數(shù)據(jù)庫(kù)表的生成由E-R圖生成數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)822.3算法設(shè)計(jì)本章項(xiàng)目的功能比較簡(jiǎn)單,而且本章主要的學(xué)習(xí)目的在于:連接數(shù)據(jù)庫(kù)。修改數(shù)據(jù)庫(kù)內(nèi)容。添加數(shù)據(jù)。統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息。因此,算法的設(shè)計(jì)和分析也將圍繞這4個(gè)功能展開(kāi)。22.3算法設(shè)計(jì)本章項(xiàng)目的功能比較簡(jiǎn)單,而且本章主要的學(xué)922.3.1連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)的功能是所有數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)的必要過(guò)程,本項(xiàng)目采用ADO的連接方式進(jìn)行連接。連接數(shù)據(jù)庫(kù)的過(guò)程如下:初始化OLE,創(chuàng)建ADO連接。調(diào)用Open()函數(shù),打開(kāi)本地的數(shù)據(jù)庫(kù)文件“Home.mdb”。為界面讀取初始化數(shù)據(jù),傳遞SQL語(yǔ)句選擇出相應(yīng)的數(shù)據(jù)庫(kù)元組。22.3.1連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)的功能是所有數(shù)據(jù)庫(kù)應(yīng)用系1022.3.2添加數(shù)據(jù)為數(shù)據(jù)庫(kù)添加數(shù)據(jù)是數(shù)據(jù)庫(kù)開(kāi)發(fā)的重要功能,主要步驟如下:調(diào)用Open()函數(shù)打開(kāi)數(shù)據(jù)集。調(diào)用AddNew()成員函數(shù),告知系統(tǒng)開(kāi)始添加數(shù)據(jù)。添加數(shù)據(jù)操作。調(diào)用Update()將添加的數(shù)據(jù)寫(xiě)回到磁盤(pán)的數(shù)據(jù)庫(kù)文件中。調(diào)用Close()成員函數(shù)關(guān)閉數(shù)據(jù)集。22.3.2添加數(shù)據(jù)為數(shù)據(jù)庫(kù)添加數(shù)據(jù)是數(shù)據(jù)庫(kù)開(kāi)發(fā)的重要功1122.3.3修改數(shù)據(jù)庫(kù)內(nèi)容從應(yīng)用程序種修改數(shù)據(jù)庫(kù)的內(nèi)容關(guān)鍵也在于傳遞SQL語(yǔ)句,使用SQL的更新語(yǔ)句即可,如下所示:update表名setDateA='某日期',Content='某內(nèi)容',MoneyA=某金額,Handler='某人',Type='某類(lèi)型'whereID=某ID;將該SQL語(yǔ)句存放在strSql字符串變量中,然后再調(diào)用Execute()函數(shù)執(zhí)行即可。代碼如下:m_pConnection->Execute(_bstr_t(strSql),&vAffected,adCmdText);22.3.3修改數(shù)據(jù)庫(kù)內(nèi)容從應(yīng)用程序種修改數(shù)據(jù)庫(kù)的內(nèi)容關(guān)1222.3.4統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息統(tǒng)計(jì)數(shù)據(jù)庫(kù)的信息關(guān)鍵在于使用SQL語(yǔ)句的集函數(shù),就是對(duì)數(shù)據(jù)表中的某屬性進(jìn)行集操作,這里使用的集函數(shù)是“和”操作,即“SUM()”函數(shù),代碼如下:selectSUM(MoneyA)asSumMoneyAfromBudgetwhereDateA>=某日期andDateA<=某日期andType=某消費(fèi)品類(lèi)型andHandler=某消費(fèi)人;22.3.4統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息統(tǒng)計(jì)數(shù)據(jù)庫(kù)的信息關(guān)鍵在于使用S1322.4軟件項(xiàng)目開(kāi)發(fā)過(guò)程本節(jié)將講解如何開(kāi)發(fā)家庭財(cái)務(wù)管理項(xiàng)目,通過(guò)前文的項(xiàng)目背景和算法分析的準(zhǔn)備,本節(jié)的內(nèi)容就相對(duì)比較簡(jiǎn)單了。22.4軟件項(xiàng)目開(kāi)發(fā)過(guò)程本節(jié)將講解如何開(kāi)發(fā)家庭財(cái)務(wù)管理項(xiàng)1422.4.1開(kāi)發(fā)家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的流程開(kāi)發(fā)家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的流程如圖所示。圖22.5家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的開(kāi)發(fā)流程

22.4.1開(kāi)發(fā)家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的流程開(kāi)發(fā)家庭財(cái)務(wù)管1522.4.2根據(jù)E-R圖創(chuàng)建數(shù)據(jù)庫(kù)表E-R圖中一共有兩個(gè)實(shí)體和一個(gè)聯(lián)系,因此,在本項(xiàng)目中就相應(yīng)創(chuàng)建3個(gè)數(shù)據(jù)庫(kù)表,如圖所示。為數(shù)據(jù)庫(kù)創(chuàng)建3個(gè)數(shù)據(jù)表

22.4.2根據(jù)E-R圖創(chuàng)建數(shù)據(jù)庫(kù)表E-R圖中一共有兩個(gè)1622.4.3功能研發(fā)的準(zhǔn)備工作在實(shí)現(xiàn)系統(tǒng)的添加、修改和統(tǒng)計(jì)功能之前,需要做一些準(zhǔn)備工作,使整個(gè)項(xiàng)目的數(shù)據(jù)庫(kù)連接和訪問(wèn)等能順利進(jìn)行,并使界面可以達(dá)到預(yù)期目標(biāo)。準(zhǔn)備工作的工作流程如圖所示。準(zhǔn)備工作的工作流程

22.4.3功能研發(fā)的準(zhǔn)備工作在實(shí)現(xiàn)系統(tǒng)的添加、修改和統(tǒng)1722.4.4實(shí)現(xiàn)算法設(shè)計(jì)根據(jù)前文所創(chuàng)建的項(xiàng)目,在項(xiàng)目的對(duì)話(huà)框中設(shè)計(jì)出前文所示的界面設(shè)計(jì)。界面上主要的功能按鈕有:“添加”按鈕:?jiǎn)螕粼摪粹o后,將對(duì)話(huà)框編輯控件的內(nèi)容添加到數(shù)據(jù)庫(kù)。“修改”按鈕:?jiǎn)螕粼摪粹o后,使對(duì)話(huà)框編輯控件中與數(shù)據(jù)庫(kù)對(duì)應(yīng)的內(nèi)容作出相應(yīng)的修改?!敖y(tǒng)計(jì)”按鈕:?jiǎn)螕粼摪粹o后,對(duì)指定時(shí)間段內(nèi)的數(shù)據(jù)庫(kù)內(nèi)容,分消費(fèi)品的經(jīng)手人或消費(fèi)品種類(lèi)進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果顯示在對(duì)話(huà)框相應(yīng)的控件中。22.4.4實(shí)現(xiàn)算法設(shè)計(jì)根據(jù)前文所創(chuàng)建的項(xiàng)目,在項(xiàng)目的對(duì)1822.4.5測(cè)試本小節(jié)對(duì)“HomeRes”項(xiàng)目進(jìn)行測(cè)試,按F5鍵編譯并運(yùn)行項(xiàng)目,測(cè)試流程如下:(1)測(cè)試添加功能。(2)測(cè)試統(tǒng)計(jì)功能。(3)測(cè)試修改功能。在日常功能中,選中與添加功能的數(shù)據(jù)組合相同的數(shù)據(jù),對(duì)金額進(jìn)行修改,修改后,按照測(cè)試統(tǒng)計(jì)功能的數(shù)據(jù)組合再進(jìn)行統(tǒng)計(jì),查看并思考統(tǒng)計(jì)結(jié)果的變化。在軟件工程項(xiàng)目開(kāi)發(fā)過(guò)程中,軟件測(cè)試是軟件生命周期中質(zhì)量保證的關(guān)鍵環(huán)節(jié),任何軟件都不可能做到十全十美,而編譯器也只負(fù)責(zé)檢查語(yǔ)法錯(cuò)誤,而對(duì)于邏輯錯(cuò)誤則無(wú)能為力了,因此軟件測(cè)試對(duì)于成功開(kāi)發(fā)軟件至關(guān)重要。22.4.5測(cè)試本小節(jié)對(duì)“HomeRes”項(xiàng)目進(jìn)行測(cè)試,1922.5小結(jié)本章詳細(xì)講解了基于ADO連接方式的數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目-家庭財(cái)務(wù)管理系統(tǒng)的設(shè)計(jì)和研發(fā),涉及的技術(shù)較多,但各個(gè)知識(shí)點(diǎn)相對(duì)來(lái)說(shuō)并不難。需要讀者細(xì)心閱讀并通過(guò)本章的內(nèi)容進(jìn)行實(shí)踐操作。通過(guò)本章的學(xué)習(xí),讀者應(yīng)該掌握的內(nèi)容如下:E-R圖的設(shè)計(jì)。E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)表的方式,特別是聯(lián)系轉(zhuǎn)換成數(shù)據(jù)表的種類(lèi)和方法。數(shù)據(jù)庫(kù)連接操作。數(shù)據(jù)庫(kù)元組添加操作。修改數(shù)據(jù)庫(kù)元組的方法。簡(jiǎn)單的數(shù)據(jù)庫(kù)數(shù)據(jù)統(tǒng)計(jì)方法。22.5小結(jié)本章詳細(xì)講解了基于ADO連接方式的數(shù)據(jù)庫(kù)應(yīng)用20第22章數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的研發(fā)大多這是工程型項(xiàng)目,而非理論型的研究,因此,在學(xué)習(xí)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)主要還是以實(shí)例示范為主。本章就是通過(guò)介紹實(shí)例開(kāi)發(fā)來(lái)進(jìn)行數(shù)據(jù)庫(kù)研發(fā)的學(xué)習(xí),本章數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)將實(shí)現(xiàn)數(shù)據(jù)庫(kù)的添加、修改和統(tǒng)計(jì)等功能。本章的主要內(nèi)容有:E-R圖設(shè)計(jì):讀者將學(xué)會(huì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)研發(fā)中最重要的E-R圖(實(shí)體關(guān)系圖)的設(shè)計(jì),以及學(xué)會(huì)由E-R圖轉(zhuǎn)化成為關(guān)系表。基于數(shù)據(jù)庫(kù)的應(yīng)用研發(fā):讀者將學(xué)會(huì)使用數(shù)據(jù)庫(kù)進(jìn)行項(xiàng)目研發(fā),掌握數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)常用的函數(shù)和程序設(shè)計(jì)步驟。第22章數(shù)據(jù)庫(kù)研發(fā)實(shí)踐:家庭財(cái)務(wù)管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的2122.1提出問(wèn)題:設(shè)計(jì)一個(gè)家庭財(cái)務(wù)管理系統(tǒng)本小節(jié)是講解概要功能和界面設(shè)計(jì),一般而言,小規(guī)模的項(xiàng)目研發(fā)總是以功能需求為主導(dǎo),界面設(shè)計(jì)為手段的。因此,在考慮具體的開(kāi)發(fā)實(shí)施之前,應(yīng)該先清楚本項(xiàng)目需要實(shí)現(xiàn)什么功能,以及可以提供給用戶(hù)的操作界面。22.1提出問(wèn)題:設(shè)計(jì)一個(gè)家庭財(cái)務(wù)管理系統(tǒng)本小節(jié)是講解概2222.1.1概要功能家庭財(cái)務(wù)管理系統(tǒng)相對(duì)于企業(yè)的財(cái)務(wù)系統(tǒng)而言,要簡(jiǎn)單得多,畢竟收支方面的流程和種類(lèi)都比較小,而且使用該系統(tǒng)的管理員也比較少。為了簡(jiǎn)單起見(jiàn),本項(xiàng)目就實(shí)現(xiàn)家庭財(cái)務(wù)管理系統(tǒng)的支出方面進(jìn)行講解分析,收入方面的相關(guān)功能其實(shí)是類(lèi)似的,該功能留給感興趣的讀者完成。家庭財(cái)務(wù)管理系統(tǒng)的概要功能如下:可以對(duì)每天的支出進(jìn)行記帳,記帳要實(shí)現(xiàn)分類(lèi):(1)按不同的支出類(lèi)型分類(lèi)。(2)按不同的消費(fèi)人員進(jìn)行分類(lèi)。可以對(duì)歷史數(shù)據(jù)進(jìn)行查詢(xún),查詢(xún)要實(shí)現(xiàn)的功能是:(1)指定時(shí)間段,可以按類(lèi)型進(jìn)行該時(shí)間段的支出統(tǒng)計(jì)查詢(xún)。(2)指定時(shí)間段,可以按消費(fèi)人員進(jìn)行該時(shí)間段的支出統(tǒng)計(jì)查詢(xún)。(3)指定時(shí)間段,可以同時(shí)按類(lèi)型和消費(fèi)人員進(jìn)行該時(shí)間段的支出統(tǒng)計(jì)查詢(xún)。22.1.1概要功能家庭財(cái)務(wù)管理系統(tǒng)相對(duì)于企業(yè)的財(cái)務(wù)系統(tǒng)2322.1.2界面需求根據(jù)前文所述的功能需求,在功能上可以分為兩個(gè)模塊:記帳的功能。查詢(xún)并統(tǒng)計(jì)的功能。因此,在操作界面上也應(yīng)該分兩個(gè)區(qū)域分別為這兩個(gè)功能提供用戶(hù)的操作界面:日常功能:日常功能就是對(duì)日常的開(kāi)支進(jìn)行記帳。統(tǒng)計(jì)功能:統(tǒng)計(jì)功能就是根據(jù)用戶(hù)輸入的起止時(shí)間,對(duì)特定的類(lèi)型和消費(fèi)人員的支出進(jìn)行統(tǒng)計(jì)。22.1.2界面需求根據(jù)前文所述的功能需求,在功能上可以2422.2數(shù)據(jù)庫(kù)設(shè)計(jì)基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)可以分為兩個(gè)層次:應(yīng)用程序?qū)訑?shù)據(jù)庫(kù)層數(shù)據(jù)庫(kù)層是不與用戶(hù)直接打交道的,用戶(hù)是通過(guò)應(yīng)用程序來(lái)訪問(wèn)數(shù)據(jù)庫(kù),因此,數(shù)據(jù)庫(kù)可以看作是整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的“后臺(tái)”,而應(yīng)用程序所展示的界面可以看作是該系統(tǒng)的“前臺(tái)”。因此,設(shè)計(jì)好后臺(tái),直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和應(yīng)用程序設(shè)計(jì)的方便與否。22.2數(shù)據(jù)庫(kù)設(shè)計(jì)基于數(shù)據(jù)庫(kù)的應(yīng)用系統(tǒng)可以分為兩個(gè)層次:2522.2.1數(shù)據(jù)關(guān)系分析數(shù)據(jù)庫(kù)的設(shè)計(jì),首先應(yīng)該從數(shù)據(jù)之間的相互關(guān)系入手。如果數(shù)據(jù)庫(kù)系統(tǒng)比較復(fù)雜,則還需要進(jìn)行規(guī)范化的項(xiàng)目管理流程,一般的數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)流程如下:(1)需求分析階段(2)概念結(jié)構(gòu)設(shè)計(jì)階段(3)數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)階段(4)應(yīng)用程序開(kāi)發(fā)階段(5)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)施階段(6)數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行和維護(hù)階段22.2.1數(shù)據(jù)關(guān)系分析數(shù)據(jù)庫(kù)的設(shè)計(jì),首先應(yīng)該從數(shù)據(jù)之間2622.2.2E-R圖設(shè)計(jì)概念模型就是對(duì)信息世界的抽象建模,狹義的信息世界可以專(zhuān)指數(shù)據(jù)庫(kù)中的數(shù)據(jù),那么概念模型就可以理解為對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的抽象建模。概念模型最常用的描述方法是E-R圖(“實(shí)體-聯(lián)系”圖)描述法,E-R圖主要有3個(gè)要素:實(shí)體:實(shí)體是以矩形表示。實(shí)體就是數(shù)據(jù)庫(kù)數(shù)據(jù)中具有實(shí)際意義的主體,如在前文分析的實(shí)體就是“消費(fèi)人員”和“消費(fèi)品”。屬性:屬性用橢圓表示。就是實(shí)體所擁有的特性,如果是在面向?qū)ο蟪绦蛟O(shè)計(jì)中,可以將“實(shí)體”和“屬性”對(duì)應(yīng)為“對(duì)象”和“對(duì)象中的數(shù)據(jù)成員”的關(guān)系。聯(lián)系:聯(lián)系用菱形表示。聯(lián)系是實(shí)體與實(shí)體之間發(fā)生的動(dòng)作、從屬或其他依賴(lài)關(guān)系。22.2.2E-R圖設(shè)計(jì)概念模型就是對(duì)信息世界的抽象建模2722.2.3數(shù)據(jù)庫(kù)表的生成由E-R圖生成數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)系統(tǒng)研發(fā)的必要步驟,如果沒(méi)有聯(lián)系,只有單實(shí)體或孤立的實(shí)體的E-R圖,轉(zhuǎn)換方式很簡(jiǎn)單:(1)首先將實(shí)體名寫(xiě)成數(shù)據(jù)庫(kù)表的表名。(2)然后將實(shí)體的屬性寫(xiě)成數(shù)據(jù)庫(kù)表的屬性。(3)根據(jù)實(shí)際含義,將設(shè)定數(shù)據(jù)庫(kù)屬性的類(lèi)型(整型、字符串型或日期類(lèi)型等)。(4)設(shè)定主碼。22.2.3數(shù)據(jù)庫(kù)表的生成由E-R圖生成數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)2822.3算法設(shè)計(jì)本章項(xiàng)目的功能比較簡(jiǎn)單,而且本章主要的學(xué)習(xí)目的在于:連接數(shù)據(jù)庫(kù)。修改數(shù)據(jù)庫(kù)內(nèi)容。添加數(shù)據(jù)。統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息。因此,算法的設(shè)計(jì)和分析也將圍繞這4個(gè)功能展開(kāi)。22.3算法設(shè)計(jì)本章項(xiàng)目的功能比較簡(jiǎn)單,而且本章主要的學(xué)2922.3.1連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)的功能是所有數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)的必要過(guò)程,本項(xiàng)目采用ADO的連接方式進(jìn)行連接。連接數(shù)據(jù)庫(kù)的過(guò)程如下:初始化OLE,創(chuàng)建ADO連接。調(diào)用Open()函數(shù),打開(kāi)本地的數(shù)據(jù)庫(kù)文件“Home.mdb”。為界面讀取初始化數(shù)據(jù),傳遞SQL語(yǔ)句選擇出相應(yīng)的數(shù)據(jù)庫(kù)元組。22.3.1連接數(shù)據(jù)庫(kù)連接數(shù)據(jù)庫(kù)的功能是所有數(shù)據(jù)庫(kù)應(yīng)用系3022.3.2添加數(shù)據(jù)為數(shù)據(jù)庫(kù)添加數(shù)據(jù)是數(shù)據(jù)庫(kù)開(kāi)發(fā)的重要功能,主要步驟如下:調(diào)用Open()函數(shù)打開(kāi)數(shù)據(jù)集。調(diào)用AddNew()成員函數(shù),告知系統(tǒng)開(kāi)始添加數(shù)據(jù)。添加數(shù)據(jù)操作。調(diào)用Update()將添加的數(shù)據(jù)寫(xiě)回到磁盤(pán)的數(shù)據(jù)庫(kù)文件中。調(diào)用Close()成員函數(shù)關(guān)閉數(shù)據(jù)集。22.3.2添加數(shù)據(jù)為數(shù)據(jù)庫(kù)添加數(shù)據(jù)是數(shù)據(jù)庫(kù)開(kāi)發(fā)的重要功3122.3.3修改數(shù)據(jù)庫(kù)內(nèi)容從應(yīng)用程序種修改數(shù)據(jù)庫(kù)的內(nèi)容關(guān)鍵也在于傳遞SQL語(yǔ)句,使用SQL的更新語(yǔ)句即可,如下所示:update表名setDateA='某日期',Content='某內(nèi)容',MoneyA=某金額,Handler='某人',Type='某類(lèi)型'whereID=某ID;將該SQL語(yǔ)句存放在strSql字符串變量中,然后再調(diào)用Execute()函數(shù)執(zhí)行即可。代碼如下:m_pConnection->Execute(_bstr_t(strSql),&vAffected,adCmdText);22.3.3修改數(shù)據(jù)庫(kù)內(nèi)容從應(yīng)用程序種修改數(shù)據(jù)庫(kù)的內(nèi)容關(guān)3222.3.4統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息統(tǒng)計(jì)數(shù)據(jù)庫(kù)的信息關(guān)鍵在于使用SQL語(yǔ)句的集函數(shù),就是對(duì)數(shù)據(jù)表中的某屬性進(jìn)行集操作,這里使用的集函數(shù)是“和”操作,即“SUM()”函數(shù),代碼如下:selectSUM(MoneyA)asSumMoneyAfromBudgetwhereDateA>=某日期andDateA<=某日期andType=某消費(fèi)品類(lèi)型andHandler=某消費(fèi)人;22.3.4統(tǒng)計(jì)數(shù)據(jù)庫(kù)信息統(tǒng)計(jì)數(shù)據(jù)庫(kù)的信息關(guān)鍵在于使用S3322.4軟件項(xiàng)目開(kāi)發(fā)過(guò)程本節(jié)將講解如何開(kāi)發(fā)家庭財(cái)務(wù)管理項(xiàng)目,通過(guò)前文的項(xiàng)目背景和算法分析的準(zhǔn)備,本節(jié)的內(nèi)容就相對(duì)比較簡(jiǎn)單了。22.4軟件項(xiàng)目開(kāi)發(fā)過(guò)程本節(jié)將講解如何開(kāi)發(fā)家庭財(cái)務(wù)管理項(xiàng)3422.4.1開(kāi)發(fā)家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的流程開(kāi)發(fā)家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的流程如圖所示。圖22.5家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的開(kāi)發(fā)流程

22.4.1開(kāi)發(fā)家庭財(cái)務(wù)管理系統(tǒng)項(xiàng)目的流程開(kāi)發(fā)家庭財(cái)務(wù)管3522.4.2根據(jù)E-R圖創(chuàng)建數(shù)據(jù)庫(kù)表E-R圖中一共有兩個(gè)實(shí)體和一個(gè)聯(lián)系,因此,在本項(xiàng)目中就相應(yīng)創(chuàng)建3個(gè)數(shù)據(jù)庫(kù)表,如圖所示。為數(shù)據(jù)庫(kù)創(chuàng)建3個(gè)數(shù)據(jù)表

22.4.2根據(jù)E-R圖創(chuàng)建數(shù)據(jù)庫(kù)表E-R圖中一共有兩個(gè)3622.4.3功能研發(fā)的準(zhǔn)備工作在實(shí)現(xiàn)系統(tǒng)的添加、修改和統(tǒng)計(jì)功能之前,需要做一些準(zhǔn)備工作,使整個(gè)項(xiàng)目的數(shù)據(jù)庫(kù)連接和訪問(wèn)等能順利進(jìn)行,并使界面可以達(dá)到預(yù)期

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論