家庭理財數據庫課程設計報告_第1頁
家庭理財數據庫課程設計報告_第2頁
家庭理財數據庫課程設計報告_第3頁
家庭理財數據庫課程設計報告_第4頁
家庭理財數據庫課程設計報告_第5頁
已閱讀5頁,還剩27頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、華 北 科 技 學 院數據庫應用課程設計說明書班級: 姓名: 設計題目: 家庭理財系統 設計時間: 2013.12.23 至 2014.1.3 指導教師: 評 語:_評閱成績: 評閱教師: 28 / 32文檔可自由編輯打印目 錄設計總說明II第1章 緒論1第2章 總體設計2總體系統結構設計2第3章 數據庫設計與實施33.1數據庫設計33.1.1需求分析33.1.2邏輯設計:63.1.3物理設計:63.2數據庫的實施63.2.1創建數據庫63.2.2創建表73.2.3創建視圖83.2.4創建索引9第4章 系統界面設計與實現114.1登錄模塊114.2系統的詳細設計134.2.1主界面設計134.

2、2.2收入界面設計144.2.3支出管理界面設計184.2.4余額查詢界面設計204.2.5用戶注冊界面的設計204.2.6用戶注銷界面的設計21第5章 總 結22參 考 文 獻24附 錄25設計總說明在如今的社會生活中,收入與支出也呈現多樣化,收入方向相對來收比較穩定,但是支出卻包羅萬象,像平時的手機話費、上網費用、衣食住行等等都需要財產的支出,在這種社會背景下,家庭理財顯得越來越重要,這讓我們能夠更好的把握自己的財產來源和去向。及時的控制和計劃個人及家庭的消費,使得在家庭生活中避免出現沒錢現象,也避免在生活中出現錢花了卻不知道去向,個人及家庭經濟出現混亂的現象。家庭理財應當慎重。俗話說“你

3、不理財,財不理你”,只有通過合理的理財,才能夠有效的管理家庭資產的合理運用。家庭理財軟件不僅可以幫你記帳,更多的是可以實時掌握家庭的收入與支出,掌握資金的變動情況,同時還可以統計出資金的主要流向,從而更合理的分配資金。正因為家庭理財越來越重要,所以開發一個應用于家庭理財的小軟件也越來越重要。在本次的數據庫課程設計中我開始了家庭理財系統的開發過程。家庭理財系統采用C+6.0編寫前臺應用于數據的操作,可以進行用戶注冊、用戶注銷,用戶登錄系統,收入的添加、刪除、修改、查詢,支出的添加、刪除、修改、查詢,可以進行余額的查詢,基本上滿足家庭理財的需求。采用SQL2008開發后臺,承擔的數據的保存、修改和

4、刪除,在與SQL數據庫之間采用ODBC方式連接。關鍵詞 個人理財管理;Visual C+ 6.0;SQL2008;第1章 緒論本課程設計是在學習了數據庫系統和C+語言等有關課程后,通過實際的操作來熟悉數據庫和相關軟件的連接和操作應用,能夠培養獨立的完成對相關課題或者項目的分析能力、設計能力和調試能力。通過課本與實踐的結合,使學生更好的掌握相關的課程知識。家庭理財系統登錄須有數據庫中的賬號信息,系統可以對條目進行查詢、添加、修改、刪除等操作,方便用戶對財產收入支出的管理。課程設計,著重培養的是學生的自學能力,以及獨立分析互聯網上和圖書館里的各種資料,用來豐富自己的知識并且提高對SQL、VC+等軟

5、件的實際操作能力。通過這次的課程設計,使我們對已經學習過的數據庫課程的進一步的掌握,對知識進行最大程度的消化融匯。因此這次的課程設計對我們來說具有非常重要的作用:為以后學習工作做必要的準備和實踐,提高自身對數據庫開發的能力。第2章 總體設計總體系統結構設計本軟件在登錄后進入主界面,主界面有四個功能共用戶選擇,有支出管理、收入管理、余額管理和退出功能。功能設計圖如圖2.1.所示。刪除添加刪除添加用戶登錄支出管理查詢查詢收入管理修改修改主界面余額管理退出查詢 圖2.1 系統功能結構圖第3章 數據庫設計與實施3.1數據庫設計數據庫的概念結構設計階段是整個數據庫設計的關鍵,它通過對用戶需求進行綜合、歸

6、納與抽象,形成一個獨立于具體DBMS的概念模型3.1.1需求分析數據字典 數據項是數據庫的關系中不可再分的數據單位,下表分別列出了數據的名稱、數據類型、長度、取值能否為空。利用SQL Server 2008建立“grlcxt”數據庫,其基本表清單及表結構描述如下:數據庫中用到的表:數據庫表名關系模式名稱備注YHB用戶表用戶信息表SR收入表收入信息表ZC支出表支出信息表 YHB基本情況數據表,結構如下:字段名字段類型Not Null說明IDCharPrimary key,Not Null用戶編號NamecharNot Null用戶姓名SexcharNot Null性別Passwor

7、dcharNot Null密碼bithdatecharNot Null出生日期zhycharNot Null職業 SR數據表,結構如下:字段名字段類型約束控制說明IDCharNot Null用戶編號NamecharNot Null用戶姓名b_Datecharnot null時間Typechar null收入類型Amountmoneynull收入金額Commentcharnull備注 ZC情況數據表,結構如下:字段名字段類型約束控制說明IDCharNot Null用戶編號NamecharNot Null用戶姓名b_Datecharnot null時間Titlechar null支出類型Amoun

8、tmoneynull支出金額Commentcharnull備注 由需求分析的結果可知,本系統設計的實體包括:(1)用戶基本信息:用戶編號,用戶姓名,用戶密碼,性別,出生日期,職業。(2)收入基本信息: 用戶編號,用戶姓名,記錄日期,收入類型,收入金額,備注。(3)支出基本信息: 用戶編號,用戶姓名,記錄日期,支出類型,支出金額,備注。創建流程圖:依據數據字典創建數據流圖:收入添加修改收入信息支出添加修改支出信息用戶收入支出查詢刪除結果圖3.1數據流圖創建視圖:YECX(余額查詢)字段名字段類型約束控制說明總收入moneyNot Null來自視圖zzr總支出money

9、Not Null來自視圖zzc余額moneynot null總收入-總支出Yhdl(用戶登錄)字段名字段類型約束控制說明IDCharNot Null用戶編號NamecharNot Null用戶姓名Passwordcharnot null用戶密碼Zzc(總支出)字段名字段類型約束控制說明總支出moneyNot Null來自ZC表Zsr(總收入)字段名字段類型約束控制說明總收入moneyNot Null來自SR表 E-R圖PasswordNameSexbirthdayIDzhyYHB(用戶表)收入查詢支出查詢IDYHSRYHZCNameIDb_DateNameb_DateTypeSR

10、(收入表)ZC(支出表)TitleAmountAmountYECXCommentComment余額查詢圖3.2 實體及其屬性圖3.1.2邏輯設計:邏輯結構的任務是把概念結構設計階段設計好的基本E-R圖轉化為宜選用的DBMS所支持的數據模型相符合的邏輯結構,并對其進行優化。對于個人理財系統數據庫,收入支出信息表這個關系,考慮到數據庫的完整性,其關系模式中對實體的定義如下:用戶表:(用戶編號,用戶姓名,用戶密碼,性別,出生日期,職業)收入表:(用戶編號,用戶姓名,記錄日期,收入類型,收入金額,備注) 支出表:(用戶編號,用戶姓名,記錄日期,支出類型,支出金額,備注)3.1.3物理設計: 創建索引,

11、索引根據表中的一列或若干列按照一定順序建立的列值與記錄行之間的對應關系表。在表中創建索引可以快速讀取數據,保證數據的唯一性,實現表與表之間的參照完整性。 在SR與ZC表中分別建立時間索引。3.2數據庫的實施3.2.1創建數據庫在創建數據庫時,在SQL Server查詢分析器中鍵入以下代碼完成數據庫的建立。CREATE DATABASE grlcxt ON PRIMARY ( NAME='grgrlcxt_DATA1', 'F:VCgrlcxt_DATA1.mdf', size=20MB, MAXSIZE=UNLIMITED, ), ( NAME='grl

12、cxt_DATA2', 'F:VCgrlcxt_DATA2.ndf', size=5MB, MAXSIZE=100MB, ) LOG ON ( NAME='grlcxt_log1', 'F:VCgrlcxt_log1.ldf', size=50MB, MAXSIZE=1000MB, )結果如圖:圖3.2創建數據庫3.2.2創建表在創建表時在查詢分析器中鍵入如下代碼完成表的創建。use grlcxt go create table SR ( ID nchar(20) not null, Name nchar(15) not null, b_

13、Date nchar(15) not null, Type nchar(15) null, Amount money null, Comment nchar(50) null ) create table YHB ( ID nchar(20) not null, Name nchar(15) not null, Password nchar(15) not null, Sex nchar(2) null, birthday money null, zhy nchar(10) null ) create table ZC ( ID nchar(20) not null, Name nchar(1

14、5) not null, b_Date nchar(15) not null, Type nchar(15) null, Amount money null, Comment nchar(50) null )結果如圖:圖3.3、創建表3.2.3創建視圖在創建表時在查詢分析器中鍵入如下代碼完成表的創建。use grlcxtgocreate view zzcas select SUM(Amount) as '總支出' from ZC ,YHB WHERE YHB.ID =ZC .ID use grlcxtgocreate view zsras select SUM(Amount)

15、as '總收入' from SR ,YHB WHERE YHB.ID =SR .ID use grlcxtgocreate view YEas select 總收入-總支出 as '余額' from zzc ,zsr use grlcxtgocreate view YHSRas select YHB.ID ,YHB .Name,SR.b_Date ,SR.Type ,SR.Amount ,SR.Comment from YHB,SR WHERE YHB.ID =SR.ID use grlcxtgocreate view YHZCas select YHB.ID

16、,YHB .Name,ZC.b_Date ,ZC.Title ,ZC.Amount ,ZC.Comment from YHB,ZC WHERE YHB.ID =ZC.ID結果如下圖:圖3.4 視圖的創建3.2.4創建索引在創建表時在查詢分析器中鍵入如下代碼完成表的創建。Use grlcxtgocreate index aaon SR(b_Date)Use grlcxtgocreate index bbon ZC(b_Date)圖3.5 索引創建第4章 系統界面設計與實現4.1登錄模塊每個軟件的應用都需要登錄,家庭理財系統的運行首先要通過登錄,登錄的用戶名和密碼都是指定好的。當用戶名和密碼都輸入

17、正確時才能登錄成功并跳轉到主功能界面,如圖4.1和圖4.2所示。當用戶名與密碼不匹配時提示錯誤,具體如圖4.3所示。圖4.1 用戶名和密碼輸入正確圖4.2成功登錄并跳轉到主功能界面圖4.3 用戶名或密碼錯誤登錄失敗在登錄界面的設計時用到的函數代碼如下:void yhdl:OnButton1() UpdateData(true);CDatabase m_database;CLoginSet *m_recordset=new CLoginSet(&m_database);CString strSQl;strSQl.Format("select Name,Password from

18、 Yhdl where Name='%s' AND Password='%s' ",m_yhname,m_yhmm); m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQl);if(m_recordset->GetRecordCount()=0)AfxMessageBox("用戶名或密碼錯誤!");else m_database.Close(); AfxMessageBox("登錄成功!"); zjm b; b.DoModal();4.2系統的詳細設計4.2

19、.1主界面設計本軟件的主要功能是對家庭個人日常的財產收入支出條目進行記錄、修改、查詢和刪除等管理操作。所以在軟件的主界面上提示用戶選擇所要進行的操作。在主界面上設計了三個按鈕,分別是收入管理、支出管理、余額管理。當點擊其中一個按鈕時,會跳轉到相應操作的界面,跳轉功能的實現是運用了 DoModal()函數,同時要在頭文件中包含相應跳轉到頁面的類的頭文件。例如跳轉到收入管理界面,過程如下:在函數void zjm:OnButton2() 中添加代碼zcgl z;z.DoModal(); 同時在頭文件中包含#include "zcgl.h"。為了美觀在主界面上添加了背景圖片。主界面

20、如圖4.4所示。圖4.4 軟件主界面4.2.2收入界面設計收入管理界面的功能是針對收入進行一系列操作,如添加記錄,修改記錄,刪除記錄,查詢記錄,當操作成功是會有相應的正確操作提示;如一下圖片所示:圖4.5收入界面圖4.6 成功添加記錄圖4.7時間為空添加記錄失敗圖4.8修改成功圖4.9刪除成功 在查詢功能中分當天查詢和以前的查詢圖4.10一天內的查詢結果圖4.11退出收入管理4.2.3支出管理界面設計 收入管理界面的功能是針對收入進行一系列操作,如添加記錄,修改記錄,刪除記錄,查詢記錄,當操作成功是會有相應的正確操作提示;如一下圖片所示:圖4.12 支出窗口圖4.13 成功添加記錄圖4.14

21、添加記錄失敗備注:其他功能基本與收入管理基本相同,所以就不一一展示4.2.4余額查詢界面設計本界面操作就是查詢總收入,總支出,余額。查詢記錄功能如圖所示。圖4.15余額管理界面圖4.16余額查詢界面4.2.5用戶注冊界面的設計 每個家庭中都會有各自的家庭成員每個成員有不同的收入支出,所以本系統可以有多個用戶,進行各自的操作,用戶注冊如下圖所示。圖4.17 用戶注冊4.2.6用戶注銷界面的設計 用戶注銷時,同時將數據庫中他的收入支出刪除,用戶注銷如下圖所示:圖4.18 用戶注銷第5章 總 結在這次數據庫課程設計中,我的課題是個人理財系統,我的題目是“家庭理財系統”。在大二第一學期我所選的也是同一

22、個課題,記得當初的數據是保存在文本里面的,存在著讀取和查找的麻煩。在本次課程設計中,我所選的課題還是這個課題,我所想的是將自己在上學期的比較麻煩的的查找問題進行修改,讓整個系統更加完善,使上學期沒有實現的功能在本次課程設計中得以體現。在本次課程是設計一個完整的數據庫應用平臺,將數據庫作為后臺,MFC開發前臺操作界面,在整個程序設計過程中,我感覺耗費時間最多的就是如何編寫代碼使得MFC界面可以對數據庫進行打開、查找、添加、刪除、保存,同時這也是整個程序最重要的一部分。在數據庫創建數據時,我除了創建三個基本表,還創建了大量的視圖,因為在視圖中我提更大量的規則,使得MFC對數據庫進行查詢時,更加適合

23、用戶的使用心理。因為課程設計是一個獨立的技能訓練,在系統開發過程中許多東西都是課本上沒有的東西,這些沒有的東西就得靠自己主動去圖書館查詢圖書資料,網絡百度信息,還有問同學老師。在無形中提高了自己的動手能力,鍛煉了自己的獨立思考的能力,使得自己更加的獨立,同時也拉近了與同學之間的關系。通過本次課程設計發現這其中需要的很多知識都是我們沒有接觸過的,去圖書館查資料的時候才發現我們前面所學到的僅僅是皮毛,hi啊有很多需要我們掌握的東西我們根本不知道。同時也發現很多已經學過的東西我們沒有理解到位,不能靈活運用與實際,不能很好的用來解決問題,這就需要我們不斷的大量實踐,通過不斷的自學,不斷的發現問題,思考

24、問題,進而解決問題。在這個過程中我們將深刻理解所學知識,同時也可以學到不少很實用的東西。很多東西都沒有那么簡單,尤其是看起來簡單的東西往往越麻煩,我們能做到的就是好好設計細心操作,因為在程序開發過程中,往往已經設計好的程序得到結果不是自己想要的,只好拋棄從頭開始,也有是因為自己敲錯了一個代碼,導致程序出現問題,反反復復修改半天才發現原來就是那么一定小毛病,而就是這點小毛病花費了自己半天時間。所以在程序開發的時候,我們要做的是好好的規劃,根據需求一步步設計好程序,按照自己的設計來開發程序,同時在程序開發過程中要注重細心,穩重,出現錯誤也不要慌,認認真真的該,錯誤總會有消除的時候,不是有句話說好的

25、軟件都是一步一步修改出來的嗎?兩周時間很快就過去了,本次數據庫課程設計也快結束了,我們也有了各自的勞動成果,我們不僅僅是有自己的設計成果,還提高了本分設計能力。同時也有部分不足,在以后的學習生活中一步步將這些不足解決掉。參 考 文 獻1.鄭阿奇,劉啟芬,顧韻華.SQL Server實用教程(第三版).北京:電子工業出版社,2012.2.張榮梅.Visual C+ 程序設計案例教程M.北京:北京大學出版社,2009 3 王瑞,于速. Visual C+數據庫系統開發完全手冊 M. 北京:人民郵電出版社, 2006.4 朱景德,陳品華.SQL Server數據庫系統技

26、術 M. 陜西:西安電子科技大學出版社, 2008.5王珊,薩師煊.數據庫系統概論.第四版.高等教育出版社,20066宋輝,曲向麗,宋振龍.Visiual C+實用培訓教程.第一版.人民郵電出版社,2008附 錄部分源程序代碼1登錄控制:void yhdl:OnButton1() UpdateData(true);CDatabase m_database;CLoginSet *m_recordset=new CLoginSet(&m_database);CString strSQl;strSQl.Format("select Name,Password from Yhdl w

27、here Name='%s' AND Password='%s' ",m_yhname,m_yhmm); m_recordset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQl);if(m_recordset->GetRecordCount()=0)AfxMessageBox("用戶名或密碼錯誤!");else m_database.Close(); AfxMessageBox("登錄成功!"); zjm b; b.DoModal();2.收入添加記錄;void sygl:O

28、nButton1() CDatabase m_database;if (!m_database.Open(_T("grlcxt")MessageBox("打開數據庫失敗。");UpdateData(true);if(!UpdateData()return;TRYCString sql;sql.Format("Insert into SR(ID,Name,b_Date,Type,Amount,Comment) VALUES ('%s','%s','%s','%s','%s&#

29、39;,'%s')",m_idi,m_namei,m_rq,m_lx,m_sm,m_bz);tryif(m_rq.IsEmpty()MessageBox("日期不能為空!");return;/CDatabase m_database;m_database.ExecuteSQL(sql);MessageBox("添加記錄成功!");catch(CDBException e)MessageBox("錯誤!");CATCH(CDBException,ex)AfxMessageBox (ex->m_strErr

30、or);AfxMessageBox (ex->m_strStateNativeOrigin);AND_CATCH(CException,e)TCHAR szError100;e->GetErrorMessage(szError,100);AfxMessageBox (szError);END_CATCH3. 收入修改記錄控制:void sygl:OnButton2() / TODO: Add your control notification handler code hereCDatabase m_database;if (!m_database.Open(_T("gr

31、lcxt")MessageBox("打開數據庫失敗。");UpdateData(true);CString sql;sql.Format("update SR set ID='%s',Name='%s',b_Date='%s',Type='%s',Amount='%s',Comment='%s' where Comment='%s' ",m_idi,m_namei,m_rq,m_lx,m_sm,m_bz,m_bz);m_databas

32、e.ExecuteSQL(sql);m_database.Close();AfxMessageBox ("修改成功!"); 4. 收入查詢:void sygl:OnButton5() UpdateData(true); UpdateData(true);CDatabase m_db; if(m_rqq.IsEmpty() ) MessageBox("時間不能為空!"); return; m_db.Open("grlcxt",FALSE,FALSE,"ODBC;",FALSE);CString sql;CRecordset m_rSet(&m_db);sql.Format("select * from GRSR where Password='%s' and b_Date='%s' ",m_mima,m_rqq);m_listll.DeleteAllItems();m_rSet.Open(CRecordset:dy

溫馨提示

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

評論

0/150

提交評論