




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、XXXX民族大學高級數據庫技術及應用課程設計報告課程設計題目:家庭財務管理系統所屬學院:信息科學與工程學院軟件學院專業年級:2010網絡XX:郭璇學號:9指導教師:葛麗娜蔣榮萍專業資料 TOC o 1-5 h z .課程設計名稱.2.課程設計目的.2.系統概述.2.系統需求分析.2 HYPERLINK l bookmark6 o Current Document 系統分析.2 HYPERLINK l bookmark8 o Current Document 系統需要實現的功能.2.系統設計說明.2 HYPERLINK l bookmark10 o Current Document 系統E-R圖
2、設計.3 HYPERLINK l bookmark12 o Current Document 系統數據庫設計4 HYPERLINK l bookmark14 o Current Document .實現方案描述.4 HYPERLINK l bookmark16 o Current Document 信息管理.4讀取信息.4添加信息.6刪除信息.8 HYPERLINK l bookmark24 o Current Document 信息查詢.8按收支人員統計查詢8按類型進展統計查詢.11同時按類型和人員查詢.16.課程設計總結19課程設計名稱家庭財務管理系統。二.課程設計目的1、通過本次課程設計
3、,對之前課程中學習的VisualC+6.0編程技術和數據庫系統與應用進展一次綜合的使用。2、通過開發小型數據庫應用系統,充分地實踐數據庫系統開發的全過程,將書本中學到的數據庫理論、數據庫設計原理與技術應用到實踐中,提高學生的動手能力。三.系統概述隨著經濟的開展,人們的消費水平越來越高,消費的類型也在根本的柴米油鹽上多了精神層次上的消費。但是這并不能讓我們盲目消費,因此,家庭財務管理系統可對每天的收支進展記賬,讓我們清楚的知道家庭的收支情況。平衡收支情況能讓我們的生活更加穩定,不會盲目消費,也可在有剩余閑錢的時候去娛樂放松一下。四系統需求分析系統分析家庭財務管理系統可以對家庭成員,收支類型管理,
4、并根據成員和收支類型添加和管理相應的收支信息??蓪γ總€時間段中某成員或某類型的收支進展統計查詢。系統需要實現的功能實現家庭財務管理系統支出的相關功能,可以對每天的支出進展記賬,記賬要實現分類:1、按不同的支出類型分類;2、按不同的消費人員進展分類??梢詫v史數據進展查詢,查詢要實現的功能:1、指定時間段,可以按類型進展該時間段的支出統計查詢。2、指定時間段,可以按消費人員進展該時間段的支出統計查詢。3、指定時間段,可以同時按類型和消費人員進展該時間段的支出統計查詢。注:對歷史數據的查詢需要實現的是:設定消費,那么可以查看該消費人員在特定時間段的消費總額,或者設定消費類型,那么可以查看在特定時間
5、段該消費類型總額為多少。擴展功能:能同時實現家庭財務管理系統收入的相關功能,具體功能按照自己的想法實現。五系統設計說明5.1系統E-R圖設計CXJ成支出類型/D員2v、/O:收入(金額)收入類型5.2系統數據庫設計字段名字MnameMnoSex字段類型Char(10)Char(2)Char(2)主鍵是外鍵是否為空描述成員名字成員編號成員性別家庭成員表MemberAgePhoneintChar(11)是成員年齡成員支出類型表Consume字段名字ameo字段類型Char(20)Char(2)主鍵是外鍵是否為空描述支出類型名稱支出類型編號成員支出表CM字段名字字段類型主鍵外鍵是否為空描述Mname
6、Char(10)是是成員名字ameChar(20)是是支出類型名稱CtimeDatetime是支出時間CmoneyMoney支出金額收入類型信息Ine字段名字InameIno字段類型Char(20)Char(2)主鍵是外鍵是否為空描述收入類型名稱收入類型編號成員收入信息IM字段名字字段類型主鍵外鍵是否為空描述MnameChar(10)是是成員名字InameChar(20)是是收入類型名稱ItimeImoneyDatetimeMoney是收入時間收入金額六.實現方案描述信息管理讀取信息對表格中的信息進展讀取,方便用戶查看已有的信息,對相應的信息進展管理。第一條:點擊”第一條按鈕,顯示表中第一條信
7、息。上一條:點擊”上一條按鈕,顯示上一條信息,假設直接點此按鈕,從第一條記錄開場顯示。假設記錄已是第一條,提示用戶已經是第一條信息。下一條:點擊“下一條按鈕,顯示下一條信息,假設直接點此按鈕,從第一條記錄開場顯示。假設記錄已是最后一條,提示用戶已經是最后的信息。讀取信息功能代碼voidCMemberInfoDialog:OnTOOLBARMemberFirst()/TODO:AddyourmandhandlercodehereMyMemberInfoSet.MoveFirst();移動到第一條記錄DisplayRecord()/更新窗口顯示voidCMemberInfoDialog:OnTOO
8、LBARMemberPrevious()/TODO:Addyourmandhandlercodehereif(m_MemberID.IsEmpty()MyMemberInfoSet.MoveFirst();DisplayRecord();elseif(!MyMemberInfoSet.IsBOF()不是第一條記錄MyMemberInfoSet.MovePrev();if(!MyMemberInfoSet.IsBOF()DisplayRecord();elseMyMemberInfoSet.MoveNext();AfxMessageBox已是第一條信息!);/*elseMyMemberInfoS
9、et.MoveNext();AfxMessageBox(已是第一條信息!);*/voidCMemberInfoDialog:OnTOOLBARMemberNext()/TODO:Addyourmandhandlercodehereif(m_MemberID.IsEmpty()MyMemberInfoSet.MoveFirst();DisplayRecord();elseif(!MyMemberInfoSet.IsEOF()/不是移動到了最后一條MyMemberInfoSet.MoveNext();/移動到下一條記錄if(!MyMemberInfoSet.IsEOF()/下一條不是移動到了最后一
10、條DisplayRecord();elseMyMemberInfoSet.MovePrev();AfxMessageBox已是最后一條信息!);elseMyMemberInfoSet.MovePrev();AfxMessageBox。已是最后一條信息!);添加信息為每一個表格添加記錄,對于不能為空的選項,在用戶未填寫的時候做出相應的提示,只有正確輸入后才能添加。但由于主碼要唯一,所以要進展判斷用戶輸入的信息是否與表中記錄沖突,如果沖突,提示用戶修改相應的選項。正確無誤后可以將記錄保存到相應的表格里,實現對信息的添加。添加信息功能代碼voidCMemberInfoDialog:OnTOOLBAR
11、MemberSave()/TODO:AddyourmandhandlercodehereUpdateData(true);/讀入輸入的資料if(m_MemberName.IsEmpty()AfxMessageBoxC請輸入成員名字!);elseif(m_MemberID.IsEmpty()AfxMessageBoxC請輸入成員編號!);elseim_MemberSex.IsEmpty()AfxMessageBoxC請輸入成員性別!);elseim_MemberAge100)AfxMessageBox(,成員年齡應在到!);els。CStringFind_MName;CStringFind_MN
12、o;Find_MNo.Format(SELECT*FROMMemberWHEREMno=%s,m_MemberID);if(MyMemberInfoSet_MNo.IsOpen()/關閉表MyMemberInfoSet_MNo.Close();if(!MyMemberInfoSet_MNo.Open(AFX_DB_USE_DEFAULT_TYPE,Find_MNo)AfxMessageBoxC成員信息表翻開失敗!);if(MyMemberInfoSet_MNo.GetRecordCount()!=0)AfxMessageBoxC成員編號不能重復,請修改后再保存!);if(MyMemberInf
13、oSet_MNo.IsOpen()MyMemberInfoSet_MNo.Close();return;elseFind_MName.Format(SELECT*FROMMemberWHEREMname=%s,m_MemberName);if(MyMemberInfoSetMName.IsOpen()/關閉表MyMemberInfoSet_MName.Close();if(!MyMemberInfoSet_MName.Open(AFX_DB_USE_DEFAULT_TYPE,Find_MName)AfxMessageBox成員信息表翻開失敗!);if(MyMemberInfoSet_MName
14、.GetRecordCount()!=0)AfxMessageBox成員名字不能重復,請修改后再保存!);if(MyMemberInfoSet_MName.IsOpen()MyMemberInfoSet_MName.Close();return;MyMemberInfoSet.AddNew();/如果是添加記錄,就調用添加記錄的函數處理MyMemberInfoSet.m_Mname=m_MemberName;/對應變量更新MyMemberInfoSet.m_Mno=m_MemberID;MyMemberInfoSet.m_Sex=m_MemberSex;MyMemberInfoSet.m_Ag
15、e=m_MemberAge;MyMemberInfoSet.m_Phone=m_MemberPhone;MyMemberInfoSet.Update();MyMemberInfoSet.Requery();AfxMessageBox(保存成功!);/m_Add=false;/設置添加狀態為falseDisplayRecord()/更新顯示刪除信息用戶點擊“刪除按鈕,可以對當前信息進展刪除。因為刪除信息后不可恢復,所以當用戶刪除信息時,再次詢問是否要刪除,只有用戶確認后才能刪除。刪除信息功能代碼voidCMemberInfoDialog:OnTOOLBARMemberDelete()/TODO:
16、Addyourmandhandlercodehereintret=MessageBox是否要刪除該記錄?,提示,MB_OKCANCEL);if(ret=1)MyMemberInfoSet.Delete();/刪除記錄MyMemberInfoSet.Requery();AfxMessageBox(刪除成功!);else;DisplayRecord()/更新顯示信息查詢按收支人員統計查詢按家庭成員查詢收支情況,在下來列表中可供用戶選擇已用的成員,防止出現打錯字等麻煩。用戶選擇時間,在相應的時間段查詢信息。如果該成員在該時段沒有收支情況,提示用戶沒有該成員的記錄,如果有便在下來列表中顯示詳情和總額。
17、如果選擇的時間有錯,提示用戶重新輸入。清輸入查詢成員名字消費日期從201V1/197支出信息詳情消費總額示例編輯框元返回按支出人員統計查詢界面和功能代碼voidCSelect_CM_By_Member:OnBUTTONSelect()/TODO:Addyourcontrolnotificationhandlercodeherem_List.DeleteAllItems();UpdateData(true);if(m_MemberName.IsEmpty()AfxMessageBoxC請輸入要查詢的成員名字!);return;if(m_BeginTimem_EndTime)AfxMessageB
18、oxC時間輸入有錯,請重新輸入!);return;if(m_MemberName=全部)m_TotalMoney=0;while(!By_MemberSet.IsEOF()if(m_BeginTimeBy_MemberSet.m_Ctime|By_MemberSet.m_Ctimem_EndTime)By_MemberSet.MoveNext();continue;CStringMname=By_MemberSet.m_Mname;CStringame=By_MemberSet.m_ame;Mname.TrimRight();ame.TrimRight();CStringCtime=By_Me
19、mberSet.m_Ctime.Format(%Y-%m-%d);CStringCMoney=By_MemberSet.m_Cmoney;m_List.InsertItem(0,);m_List.SetItemText(0,0,Mname);m_List.SetItemText(0,1,ame);m_List.SetItemText(0,2,Ctime);m_List.SetItemText(0,3,CMoney);intMoney=atoi(CMoney);m_TotalMoney+=Money;By_MemberSet.MoveNext();UpdateDatafalse);return;
20、elseCStringSelectMember;SelectMembePSELECT*FROMCMWHEREMname=;SelectMember+=m_MemberName;SelectMember+=;if(By_MemberSet.IsOpen()By_MemberSet.Close();if(!By_MemberSet.Open(AFX_DB_USE_DEFAULT_TYPE,SelectMember)AfxMessageBox(Mumber表翻開失敗!);if(By_MemberSet.GetRecordCount()=0)AfxMessageBoxC此成員不存在,請確認后再輸入!)
21、;if(By_MemberSet.IsOpen()By_MemberSet.Close();return;while(m_BeginTimeBy_MemberSet.m_Ctime|By_MemberSet.m_Ctimem_EndTime)if(舊y_MemberSet.IsEOF()By_MemberSet.MoveNext();elseAfxMessageBox此成員在此時段無消費記錄!);if(By_MemberSet.IsOpen()By_MemberSet.Close();return;m_TotalMoney=0;while(!By_MemberSet.IsEOF()if(m_B
22、eginTimeBy_MemberSet.m_Ctime|By_MemberSet.m_Ctimem_EndTime)ByMemberSet.MoveNext();continue;CStringMname=By_MemberSet.m_Mname;CStringame=By_MemberSet.m_ame;CStringCtime=By_MemberSet.m_Ctime.Format(%Y-%m-%d);CStringCMoney=By_MemberSet.m_Cmoney;Mname.TrimRight();ame.TrimRight();m_List.InsertItem(0,Mnam
23、e);m_List.SetItemText(0,1,ame);m_List.SetItemText(0,2,Ctime);m_List.SetItemText(0,3,CMoney);intMoney=atoi(CMoney);m_TotalMoney+=Money;By_MemberSet.MoveNext();UpdateData(false);return;按類型進展統計查詢按收支類型查詢收支情況,在下來列表中可供用戶選擇已用的類型,防止出現打錯字等麻煩。用戶選擇時間,在相應的時間段查詢信息。如果該類型在該時段沒有收支情況,提示用戶沒有該類型的記錄,如果有便在下來列表中顯示詳情和總額。如
24、果選擇的時間有錯,提示用戶重新輸入。 TOC o 1-5 h z n局首姿類型查詢亙114a1111miiii-iiii-in-niiiim1111kii1114111miiiimiiiit1hiiiim-iiiihhiiiiimiiiiH-iiiji,入I!類型名稱|-查詢!I酒費日期A2013/1/19Q-到2013rH19力|-(I.III支出信息詳情iI,I哨費總額示例編輯框元I色色色色 色紅黃藍績 顏XKHK二中.可修編.返回按類型進展統計查詢界面和功能代碼BOOLCSelect_CM_By_Consume:OnInitDialog()CDialog:OnInitDialog();/
25、TODO:AddextrainitializationhereCStringSelectAll;SelectAll=SELECT*FROMCM;if(SelectAllConsume.IsOpen()SelectAllConsume.Close();if(!SelectAllConsume.Open(AFX_DB_USE_DEFAULT_TYPE,SelectAll)AfxMessageBox消費信息表翻開失敗!);while(!SelectAllConsume.IsEOF()m_SelectConsumeName.AddString(SelectAllConsume.m_ame);Selec
26、tAllConsume.MoveNext();m_List.InsertColumn(0,消費者);m_List.InsertColumn(1,7肖費類型);m_List.InsertColumn(2,時間);m_List.InsertColumn(3,“金額(元);RECTrect;m_List.GetWindowRect(&rect);intwid=rect.right-rect.left;m_List.SetColumnWidth(0,wid/4-5);m_List.SetColumnWidth(1,wid/4);m_List.SetColumnWidth(2,wid/4);m_List
27、.SetColumnWidth(3,wid/4);m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);/TODO:AddextrainitializationhereCStringsqlStr;sqlStr=SELECT*FROMCM;if(!By_ConsumeSet.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr)/翻開數據表AfxMessageBox。支出信息表翻開失敗!);returnTRUE;/returnTRUEunlessyousetthefocustoacontrol/EXCEPTION:OCXPropertyPa
28、gesshouldreturnFALSEvoidCSelect_CM_By_Consume:OnBUTTONSelect()/TODO:Addyourcontrolnotificationhandlercodeherem_List.DeleteAllItems();UpdateData(true);if(m_ConsumeName.IsEmpty()AfxMessageBox(,請輸入要查詢的消費類型!);return;if(m_BeginTimem_EndTime)AfxMessageBoxC時間輸入有錯,請重新輸入!);return;if(m_ConsumeName=全部)/m_Total
29、Money=0;while(舊y_ConsumeSet.IsEOF()if(m_BeginTimeBy_ConsumeSet.m_Ctime|By_ConsumeSet.m_Ctimem_EndTime)By_ConsumeSet.MoveNext();continue;CStringMname=By_ConsumeSet.m_Mname;CStringame=By_ConsumeSet.m_ame;Mname.TrimRight();ame.TrimRight();CStringCtime=By_ConsumeSet.m_Ctime.Format(%Y-%m-%d);CStringCMone
30、y=By_ConsumeSet.m_Cmoney;m_List.InsertItem(0,);m_List.SetItemText(0,0,Mname);m_List.SetItemText(0,1,ame);m_List.SetItemText(0,2,Ctime);m_List.SetItemText(0,3,CMoney);intMoney=atoi(CMoney);m_TotalMoney+=Money;By_ConsumeSet.MoveNext();UpdateDatafalse);return;elseCStringSelectConsume;SelectConsume=ELEC
31、T*FROMCMWHEREame=;SelectConsume+=m_ConsumeName;SelectConsume+-;if(By_ConsumeSet.IsOpen()By_ConsumeSet.Close();if(!By_ConsumeSet.Open(AFX_DB_USE_DEFAULT_TYPE,SelectConsume)AfxMessageBox消費類型表翻開失敗!);if(By_ConsumeSet.GetRecordCount()=0)AfxMessageBox此成員不存在,請確認后再輸入!);if(By_ConsumeSet.IsOpen()By_ConsumeSet
32、.Close();return;while(m_BeginTimeBy_ConsumeSet.m_Ctime|By_ConsumeSet.m_Ctimem_EndTime)if(!By_ConsumeSet.IsEOF()By_ConsumeSet.MoveNext();elseAfxMessageBox此消費類型在此時段無消費記錄!);if(By_ConsumeSet.IsOpen()By_ConsumeSet.Close();return;/m_TotalMoney=0;while(舊y_ConsumeSet.IsEOF()if(m_BeginTimeBy_ConsumeSet.m_Cti
33、me|By_ConsumeSet.m_Ctimem_EndTime)By_ConsumeSet.MoveNext();continue;CStringMname=By_ConsumeSet.m_Mname;CStringame=By_ConsumeSet.m_ame;CStringCtime=By_ConsumeSet.m_Ctime.Format(%Y-%m-%d);CStringCMoney=By_ConsumeSet.m_Cmoney;Mname.TrimRight();ame.TrimRight();m_List.InsertItem(0,Mname);m_List.SetItemTe
34、xt(0,1,ame);m_List.SetItemText(0,2,Ctime);m_List.SetItemText(0,3,CMoney);intMoney=atoi(CMoney);m_TotalMoney+=Money;By_ConsumeSet.MoveNext();UpdateData(false);return;同時按類型和人員查詢按收支類型和成員查詢收支情況,在下來列表中可供用戶選擇已用的類型和成員,防止出現打錯字等麻煩。用戶選擇時間,在相應的時間段查詢信息。如果該類型和成員在該時段沒有收支情況,提示用戶沒有該的記錄,如果有便在下來列表中顯示詳情和總額。如果選擇的時間有錯,提
35、示用戶重新輸入??砂闯蓡T般型直詢陵I請輸入成員名字類型名稱查詢消費日期從2013/1/19m_EndTime)AfxMessageBoxC時間輸入有錯,請重新輸入!);return;if(m_ConsumeName=全部|m_MemberName=全部)/m_TotalMoney=0;while(!SelectCM.IsEOF()if(m_BeginTimeSelectCM.m_Ctime|SelectCM.m_Ctimem_EndTime)SelectCM.MoveNext();continue;CStringMname=SelectCM.m_Mname;CStringame=SelectC
36、M.m_ame;Mname.TrimRight();ame.TrimRight();CStringCtime=SelectCM.m_Ctime.Format(%Y-%m-%d);CStringCMoney=SelectCM.m_Cmoney;m_List.InsertItem(0,);m_List.SetItemText(0,0,Mname);m_List.SetItemText(0,1,ame);m_List.SetItemText(0,2,Ctime);m_List.SetItemText(0,3,CMoney);intMoney=atoi(CMoney);m_TotalMoney+=Money;SelectCM.MoveNext();UpdateDatafalse);return;elseCStringSelectCMInfo;SelectCMInfo=SELECT*FROMCMWHEREame=;SelectCMInfo+=m_ConsumeName;SelectCMInfo+=andMname=;SelectCMInfo+=m_MemberName;SelectCMInfo+=;if(SelectCM.IsO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業展覽館設計建設合同范本
- 2025供用電合同協議范本
- 2025個體健身房器材租賃合同樣式
- 2025年鋼材購銷合同范本
- 浙江省浙南名校聯盟2024-2025學年高二下學期4月期中考試 生物 含答案
- 患者康復護理
- 金屬活動性順序教學
- 職場魔方培訓體系構建
- 急性放射病的臨床護理
- 辦公室內勤年終總結模版
- 《中醫基礎理論》課程教案
- 第十三屆全國交通運輸行業職業技能競賽試題一
- T-CTSS 86-2024 原味茶飲料標準
- 財務管理委托代理會計服務 投標文件(技術方案)
- 體育館項目總體規劃方案
- AQ 1066-2008 煤層瓦斯含量井下直接測定方法(正式版)
- SL-T+62-2020水工建筑物水泥灌漿施工技術規范
- GB 1499.2-2024鋼筋混凝土用鋼第2部分:熱軋帶肋鋼筋
- 音樂家肖邦課件
- 新煤炭建設工程技術資料管理標準(礦建工程技術資料表格)
- 《鐵道車輛構造與檢修》 課件 模塊2 項目三 輪對的檢修理論(一)
評論
0/150
提交評論