




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、家庭記賬系統(tǒng)的設(shè)計與實現(xiàn) 摘要摘要:記賬是一個家庭不可缺少的,企業(yè)很早就實施了記賬的集中系統(tǒng)管理,而家庭使用 的小型記賬系統(tǒng)卻還是鳳毛麟角,記賬是很小的一個部分,但大到企業(yè),小到家庭都有十 分重要的意義。 本論文介紹了家庭記賬系統(tǒng)開發(fā)的整個過程。利用軟件工程原理,采用面向?qū)ο蟮木幊谭?法,其開發(fā)主要包括后臺數(shù)據(jù)庫的建立、維護(hù)以及前端應(yīng)用程序開發(fā),實現(xiàn)了家庭記賬的 自動化和信息化。 主要包括以下幾個模塊:用戶密碼登陸,原始數(shù)據(jù)的匯入、查詢、統(tǒng)計,家庭特殊事件的 提醒等,從而對家庭收入與支出進(jìn)行有效、系統(tǒng)的管理,并使之更全面和靈活。 論文系統(tǒng)地分析了軟件開發(fā)的背景及過程,首先介紹了軟件的開發(fā)環(huán)境,
2、其次介紹了本軟 件的詳細(xì)設(shè)計過程:數(shù)據(jù)庫的設(shè)計以及具體界面的設(shè)計和功能,最后對在本軟件開發(fā)過程 中的問題進(jìn)行了總結(jié)。 關(guān)鍵詞關(guān)鍵詞:記賬;收支管理;查詢;軟件工程 the design and implementation of the domestic accounting system abstract:the system of domestic accounting is very important to a family, and it is an indispensability part. long ago, the corporation had focused on car
3、ry out the financial manage. however, it was rarity. though accounting was only a small part, but to corporation or family, it has very important meaning. the thesis introduced the whole process which refers to the system of domestic accounting in family. using the theory of software engineering and
4、 adopting the way of object oriented program, whose exploitation mainly includes the establishment begin form1.hide; frm_userregister.showmodal; form1.show; end; procedure tform1.bitbtn2click(sender: tobject); begin form1.hide; frmlogon.showmodal; form1.show; end; /procedure tform1.bitbtn3click(send
5、er: tobject); /begin /form1.hide; /frmchangepassword.showmodal; /form1.show; /end; procedure tform1.formcreate(sender: tobject); var sql : string ; / i:integer; strstartdate:string ; strenddate:string ; begin strstartdate:=datetostr(now(); strenddate:=datetostr(now()+7 ); sql:=select * from dt where
6、 date_time= +strstartdate + and date_time 0 then begin showmessage(成功登錄!); frmlogon.hide; frmmain.showmodal; frmlogon.show; end else showmessage(輸入有誤!); end; procedure tfrmlogon.button3click(sender: tobject); begin close; end; end. 程序主界面 正確登陸后出現(xiàn)此窗口,可以選擇想進(jìn)行的操作,點擊對應(yīng)按鈕即可。設(shè)置的提醒事 件顯示在該窗口下方。 核心代碼: procedu
7、re tfrmmain.button1click(sender: tobject); begin frmincomeadd.showmodal; end; procedure tfrmmain.button2click(sender: tobject); begin frmoutcomeadd.showmodal; end; procedure tfrmmain.button3click(sender: tobject); begin frmqueryincome.showmodal; end; procedure tfrmmain.button4click(sender: tobject);
8、 begin frmqueryoutcome.showmodal; end; procedure tfrmmain.button5click(sender: tobject); begin frmincomesum.showmodal; end; procedure tfrmmain.button6click(sender: tobject); begin frmoutcomesum.showmodal; end; procedure tfrmmain.formcreate(sender: tobject); begin lbldt.caption := + unit1.strdt; end;
9、 procedure tfrmmain.button7click(sender: tobject); begin frmmain.hide; frmchangepassword.showmodal; frmmain.show; end; procedure tfrmmain.button8click(sender: tobject); begin frmmain.hide; frmaddnotice.showmodal; frmmain.show; end; end. 收入登記 輸入任一人的收入信息。 核心代碼: procedure tfrmincomeadd.button1click(sen
10、der: tobject); var sql:string; /i:integer; dt1:string; begin dt1:=datetostr(now(); sql:=insert into salary(user_name,price,mark,date_time) values(+edit2.text+,+edit1.text+,+edit3.text+,+dt1+); adoconnection1.open; adoconnection1.execute(sql); adoconnection1.close; showmessage(添加成功!); end; procedure
11、tfrmincomeadd.button2click(sender: tobject); begin close; 收入查詢 輸入用戶想查詢的人的名字,可一查詢到所有該姓名對應(yīng)的收入詳細(xì)情況。 核心代碼: procedure tfrmqueryincome.button1click(sender: tobject); var sql : string ; item:tlistitem; i:integer; begin sql:=select * from salary where user_name=+ edit1.text + and price not like -%; adoquery
12、1.sql.clear; adoquery1.sql.add(sql); adoquery1.open; / i := listview1.items.count; listview1.items.clear; while not(adoquery1.eof) do for i := 0 to adoquery1.recordcount -1 do begin item:=listview1.items.add; / listitem.caption:= inttostr(i); item.caption:=trim(adoquery1.fieldbyname(user_name).asstr
13、ing); item.subitems.add(trim(adoquery1.fieldbyname(price).asstring); item.subitems.add(trim(adoquery1.fieldbyname(mark).asstring); item.subitems.add(trim(adoquery1.fieldbyname(date_time).asstring); adoquery1.next; end; end; 收入統(tǒng)計 點擊收入統(tǒng)計按鈕后出現(xiàn)此窗口,顯示出一段時間內(nèi)所有姓名對應(yīng)的各項收入總和。 核心代碼: procedure tfrmincomesum.for
14、mcreate(sender: tobject); var sql : string ; item:tlistitem; i:integer; strstartdate:string ; strenddate:string ; begin strstartdate:=datetostr(now(); strenddate:=datetostr(now()-30 ); sql:=select user_name ,mark,sum(price) as price from salary where price not like -% and date_time= +strenddate + gr
15、oup by user_name,mark order by user_name; adoquery1.sql.clear; adoquery1.sql.add(sql); adoquery1.open; / i := listview1.items.count; listview1.items.clear; while not(adoquery1.eof) do for i := 0 to adoquery1.recordcount -1 do begin item:=listview1.items.add; / listitem.caption:= inttostr(i); item.ca
16、ption:=trim(adoquery1.fieldbyname(user_name).asstring); item.subitems.add(trim(adoquery1.fieldbyname(price).asstring); item.subitems.add(trim(adoquery1.fieldbyname(mark).asstring); adoquery1.next; end; end; 修改密碼 輸入正確的用戶名和密碼可以修改密碼。 核心代碼: procedure tfrmchangepassword.button2click(sender: tobject); var
17、 strstr:string; i:integer; begin /adoquery1,close; adoquery1.sql.text:=select * from user_info where user_name=+ edit1.text + and user_password=+ edit2.text + ; adoquery1.open; i:=adoquery1.recordcount; if i =0 then /原用戶名和密碼輸入有誤 showmessage(原用戶名和密碼輸入有誤!) else begin if edit3.text edit4.text then show
18、message(兩次輸入的密碼不相同!) else /兩次輸入的密碼相同 ,可以修改密碼 begin /adoquery1.close; /adoquery1.sql.text:=update user_info set user_password=+ edit3.text + where user_name=+ edit1.text + and user_password=+ edit2.text + ; /adoquery1.open; strstr:=update user_info set user_password=+ edit3.text + where user_name=+ e
19、dit1.text + and user_password=+ edit2.text + ; adoconnection1.open(); adoconnection1.execute(strstr); showmessage(密碼修改成功!) end; end; end; procedure tfrmchangepassword.button3click(sender: tobject); begin close; end; 事件提醒設(shè)置 可以設(shè)置需要進(jìn)行提醒的事件。 核心代碼: procedure tfrmaddnotice.button2click(sender: tobject); b
20、egin close; end; procedure tfrmaddnotice.button1click(sender: tobject); var sql:string; /i:integer; begin sql:=insert into dt values(+edit1.text+,+edit2.text+,+edit3.text+); adoconnection1.open; adoconnection1.execute(sql); adoconnection1.close; showmessage(添加成功!); end; 注:由于支出和收入模塊設(shè)計與實現(xiàn)類似,此處不再表述。 4.
21、2 ado 連接數(shù)據(jù)庫設(shè)計 ado 連接數(shù)據(jù)庫 delphi 連接數(shù)據(jù)庫使用 ado 控件,具體設(shè)置如下: (1)打開 ado 的屬性。 (2)選擇數(shù)據(jù)庫類型,我用的是 sql server 2000 數(shù)據(jù)庫,所以選擇 midrosoft ole db provider for sql server。 (3)選擇數(shù)據(jù)庫測試連接,如果連接成功確定即連接上了服務(wù)器了。 5 系統(tǒng)測試和優(yōu)化 5.1 測試目的 系統(tǒng)測試的目的是:測試的定義是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。所以測 試的目的是測試系統(tǒng)中各個功能模塊的功能,及時發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤,及時發(fā) 現(xiàn)系統(tǒng)中尚未發(fā)現(xiàn)的缺陷,及時地反饋給程
22、序設(shè)計人員,以達(dá)到改正錯誤、優(yōu)化程序代碼、 提高程序執(zhí)行速度和提高軟件可靠性的目的。 5.2 測試方法 測試任何的系統(tǒng)都有兩種方法:如果已經(jīng)知道了系統(tǒng)應(yīng)該具有的功能,可以通過測試 來檢驗是否每個功能都能正常使用;如果知道產(chǎn)品內(nèi)部工作過程,可以通過測試來檢驗系 統(tǒng)內(nèi)部動作是否按照規(guī)格說明回溯的規(guī)定正常進(jìn)行。前一種方法稱為黑盒測試;后一種方 法稱為白盒測試。 對于軟件測試而言,黑盒測試方法把程序看成一個黑盒子,完全不考慮程序的內(nèi)部結(jié) 構(gòu)和處理過程。也就是說,黑盒測試是在程序接口進(jìn)行的測試,它只檢查程序功能是否能 按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)慕邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息, 并且保
23、持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試又稱為功能測試。與黑盒測試 法相反,白盒測試法這種方法按照程序內(nèi)部的邏輯測試程序,檢驗程序中的每條通路是否 都能按預(yù)定要求正確工作。白盒測試又稱為結(jié)構(gòu)測試。 5.3 測試步驟 除非是測試一個小程序,否則一開始就把整個系統(tǒng)作為一個單獨的實體來測試是不現(xiàn) 實的。與開發(fā)過程類似,測試過程也必須分步驟進(jìn)行,后一個步驟在邏輯上是前一個步驟 的繼續(xù)。 從過程的觀點考慮測試,在軟件工程環(huán)境中的測試過程,實際上是順序進(jìn)行的四個步 驟的序列: (1) 單元測試 單元測試階段著重測試每個單獨的模塊,以確保它作為一個單元來說的功能是正確的。 單元測試大量使用白盒測試技術(shù)
24、,檢查模塊控制結(jié)構(gòu)中的特定路徑,以確保做到完全覆蓋 并發(fā)現(xiàn)最大數(shù)量的錯誤。 (2) 集成測試 集成測試是測試和組裝軟件的系統(tǒng)化技術(shù),在把模塊按照設(shè)計要求組裝起來的同時進(jìn) 行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。在集成測試過程中最常使用的是黑盒測試用 例設(shè)計技術(shù),當(dāng)然,為了保證覆蓋主要的控制路徑,也可能使用一定數(shù)量的白盒測試。 (3) 高級測試 在軟件集成完成之后,還要進(jìn)行一系列高級測試。必須測試在需求分析階段確定下來 的標(biāo)準(zhǔn),確認(rèn)測試是對軟件滿足所有功能的、行為的和性能的需求的最終保證。 5.4 系統(tǒng)優(yōu)化 系統(tǒng)優(yōu)化很大一部分是在數(shù)據(jù)庫系統(tǒng)的優(yōu)化,查詢優(yōu)化在數(shù)據(jù)庫中有著非常重要的地 位。所以系統(tǒng)
25、要優(yōu)化大部分的優(yōu)化是在查詢數(shù)據(jù)庫方面來做的。查詢優(yōu)化的優(yōu)點不僅在于 用戶不必考慮如何最好地表達(dá)查詢以獲得較好的效率,而且在于系統(tǒng)可以比用戶程序的優(yōu) 化做的更好,因為: (1) 優(yōu)化器可以從數(shù)據(jù)字典中獲取許多統(tǒng)計信息; (2) 如果數(shù)據(jù)庫的物理統(tǒng)計信息改變了,系統(tǒng)可以自動的對查詢進(jìn)行重新優(yōu)化以選擇 適當(dāng)?shù)膱?zhí)行計劃; (3) 優(yōu)化器可以考慮數(shù)百種不同的優(yōu)化技術(shù),而程序員一般只能考慮有限的幾種可能 性; (4) 優(yōu)化器中包括了很多復(fù)雜的優(yōu)化技術(shù),這些技術(shù)要很好的技術(shù)員才能掌握,系統(tǒng) 的自動優(yōu)化解決了這個問題。 另外 delphi 中在窗體轉(zhuǎn)化中,隱藏窗體有兩種方式,一個是.hide,另一個是 clo
26、se,前 面的只是把這個窗體隱藏起來,而后面的就是在運行本系統(tǒng)的時候的內(nèi)存中把窗體關(guān)掉, 所以除了主窗體用 hide 以外一般直接 close,這樣可以盡量減少本系統(tǒng)占用用戶機(jī)子的內(nèi)存, 使得系統(tǒng)的性能更好。 6 結(jié)束語結(jié)束語 通過此次畢業(yè)設(shè)計,我學(xué)習(xí)了用軟件工程的方法較為系統(tǒng)地開發(fā)一款應(yīng)用軟件的全過 程?;緦崿F(xiàn)了家庭記賬可能牽涉到的各方面功能。 在設(shè)計過程中,對 delphi 這一工具的學(xué)習(xí)也使我受益不少。很多更好的功能等待進(jìn)一 步的發(fā)掘。 對 sql server 2000 的使用也讓我對該數(shù)據(jù)庫的內(nèi)涵有了新的了解。 由于時間的關(guān)系,該系統(tǒng)設(shè)計的較粗糙,有許多需要完善的地方。比如,提醒功能只 能顯示出一條需要進(jìn)行提醒的事件,若有多條符合條件的無法全部顯示。在后續(xù)的時間里, 我將盡力完成對該系統(tǒng)的優(yōu)化。 計算機(jī)技術(shù)飛速發(fā)展,在今后的工作中,我會繼續(xù)學(xué)習(xí),學(xué)以致用,貢獻(xiàn)自己的力量。 參考文獻(xiàn)參考文獻(xiàn) 1 王珊.數(shù)據(jù)庫系統(tǒng)概論(第四版)m.高等教育出版社,2006 2 張海藩.軟件工程導(dǎo)輪(第 4 版)m.清華大學(xué)出版社,2003 3 黃梯云.管理信息系統(tǒng)(第三版)m. 高等教育出版社,2004 4 胡學(xué)鋼,王浩.計算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品檢驗檢測技術(shù)專業(yè)人才培養(yǎng)方案
- 黑龍江省高中名校2025屆高三下學(xué)期期末(一模)數(shù)學(xué)試題含解析
- 黑龍江省鶴崗市綏濱縣2025年初三4月仿真訓(xùn)練化學(xué)試題試卷含解析
- 湖南省長沙市四大名校2024-2025學(xué)年高三2月月考語文試題【含答案解析】
- ?;菲髽I(yè)2025年30條安全生產(chǎn)執(zhí)法檢查重點事項清單
- 2024年份三月份人工珊瑚礁EPC總承包合同海洋生態(tài)監(jiān)測條款
- 互動式學(xué)習(xí)的試題及答案
- 超純水設(shè)備GRC銷售合同顆粒物檢測條款2025
- 城市化對地方氣候的影響分析-試題及答案
- 2024年全球氣候變化試題及答案
- 【+初中語文+】《山地回憶》課件+統(tǒng)編版語文七年級下冊
- 五年級英語下冊 Unit 3 My school calendar Part B第二課時教學(xué)實錄 人教PEP
- 2024年浙江省中考英語試題卷(含答案解析)
- 中醫(yī)內(nèi)科學(xué)智慧樹知到答案2024年浙江中醫(yī)藥大學(xué)
- 8.6《林黛玉進(jìn)賈府》課本劇劇本
- 山東大學(xué)工程流體力學(xué)(杜廣生)課件第5章 粘性流體的一維流動
- 員工入職確認(rèn)單
- 初三優(yōu)秀學(xué)生座談會通用課件通用PPT課件
- T∕CAGHP 065.2-2019 地質(zhì)災(zāi)害防治工程工程量清單計價規(guī)范(試行)
- 室內(nèi)智能加濕器設(shè)計說明
- 發(fā)電機(jī)整體氣密試驗的要求
評論
0/150
提交評論