侯世中 江連?!∷蝹骼?/p>
摘 要:改革開放以來,中國(guó)的社會(huì)經(jīng)濟(jì)得到了長(zhǎng)足的發(fā)展,百姓的收入也有了大幅度的提高,不少家庭把剩余的資金用于購(gòu)買理財(cái)產(chǎn)品。在這種背景下,使用計(jì)算機(jī)軟件來管理家庭的日常理財(cái)信息,顯得尤為重要。
關(guān)鍵詞:家庭理財(cái)系統(tǒng);數(shù)據(jù);用戶
引言
家庭理財(cái)系統(tǒng)采用了Visual Studio 2008作為開發(fā)工具,數(shù)據(jù)存儲(chǔ)使用微軟公司的Access數(shù)據(jù)庫。本文主要介紹了理財(cái)系統(tǒng)的相關(guān)技術(shù),以及系統(tǒng)的需求分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)。
1 相關(guān)技術(shù)
在本系統(tǒng)的設(shè)計(jì)中用到了ADO.NET技術(shù)。ADO.NET是.NET Framework中提供了專門用來處理數(shù)據(jù)的技術(shù)。通過該技術(shù),可以訪問SQL Server、ODBC、OLEDB、XML等的數(shù)據(jù)源,并檢索、操作和更新這些數(shù)據(jù)源中的數(shù)據(jù)。
ADO.NET是一個(gè)介于數(shù)據(jù)源和數(shù)據(jù)使用者之間的轉(zhuǎn)換器,ADO.NET接收使用者語言中的命令,如連接數(shù)據(jù)庫、返回?cái)?shù)據(jù)集等,然后將這些命令轉(zhuǎn)換成可以在數(shù)據(jù)源中正確執(zhí)行的語句。
2 需求分析
2.1 主要功能:家庭財(cái)務(wù)系統(tǒng)主要包括對(duì)用戶的管理,收入支出的管理、查詢,收入支出分類的管理查看,銀行賬戶的管理、查詢,以及生成報(bào)表。用戶需要從數(shù)據(jù)庫中獲取信息,這些信息包括用戶信息、收支賬目信息、賬戶信息、分類信息。
2.2 技術(shù)分析:采用C#+Access技術(shù)可以很好的實(shí)現(xiàn)其全部功能,而且后期的維護(hù)也非常方便。
3 系統(tǒng)設(shè)計(jì)
3.1 登陸窗口設(shè)計(jì)
在登錄窗口中不僅可以進(jìn)行用戶登錄,也可以用戶注冊(cè)、刪除用戶。因此在該窗口中添加了一個(gè)TabControl控件。該控件用于顯示多個(gè)選項(xiàng)卡,選項(xiàng)卡中可以包含圖片和其它控件。為了達(dá)到用戶登錄、注冊(cè)、刪除,在這里一共用到了三個(gè)選項(xiàng)卡,分別命名為loginPage、addPage、deletePage。
3.2 用戶主窗口
主窗口是整個(gè)系統(tǒng)最重要的部分,運(yùn)行家庭財(cái)務(wù)管理信息系統(tǒng)之后,用戶登錄成功之后出現(xiàn)的第一個(gè)窗口就是MainForm.cs窗體。該窗體會(huì)以列表的形式顯示指定分類下的收支賬目。單擊該窗體菜單欄中的菜單項(xiàng)或窗體下方的功能按鈕,都會(huì)完成相應(yīng)的功能或者啟動(dòng)相應(yīng)的窗體。
3.3 添加收支功能
用戶可以選擇日期、種類、分類名稱、填寫金額與備注,單擊“確定”按鈕實(shí)現(xiàn)添加收支功能。另外,在該窗體上還有一個(gè)“計(jì)算器”按鈕,點(diǎn)擊該按鈕就可以調(diào)用計(jì)算器功能。
3.4 理財(cái)報(bào)告功能
理財(cái)報(bào)告主要包含:月理財(cái)和年理財(cái)報(bào)告兩個(gè)部分;其中,用戶可以點(diǎn)擊月理財(cái)選項(xiàng)卡來查看不同月份的收入與支出的詳細(xì)賬目;同樣,也可以選擇年理財(cái)選項(xiàng)卡來查看不同年份的收入與支出的詳細(xì)賬目,并能給出詳細(xì)的財(cái)務(wù)分析。
3.5 收支理財(cái)分析
用戶可以選擇日期、種類、分類名稱、填寫金額與備注,單擊“確定”按鈕實(shí)現(xiàn)添加收支功能。也可以將所有的收入金額和所有的支出金額進(jìn)行統(tǒng)計(jì),向用戶繪制出一個(gè)餅形圖,并在餅形圖上顯示出收入和支出所占的百分比。
4 系統(tǒng)實(shí)現(xiàn)
在本系統(tǒng)中,涉及到的實(shí)現(xiàn)模塊很多,這里只是講解系統(tǒng)中的幾個(gè)關(guān)鍵模塊的實(shí)現(xiàn),具體如下。
4.1 數(shù)據(jù)庫的連接功能
本系統(tǒng)連接的是Access數(shù)據(jù)庫,所以需要引入命名空間using System.Data.Oledb。Access數(shù)據(jù)庫是一種桌面級(jí)的數(shù)據(jù)庫,連接Access數(shù)據(jù)庫時(shí),必須指定數(shù)據(jù)庫文件的路徑。連接字符串為:
string strCon = “provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + “./cx.mdb”;。
在MainForm.cs中有一個(gè)getConnection()方法用來獲得數(shù)據(jù)庫連接。關(guān)鍵代碼如下:
public static OleDbConnection getConnection()
{
if (oledbCon == null)
{
oledbCon=newOleDbConnection(strCon);
oledbCon.Open();
}
return oledbCon;
}
4.2 收入圖表功能的實(shí)現(xiàn)
該功能由ChartOfIncome_Load()方法實(shí)現(xiàn)。在該方法中有兩個(gè)重點(diǎn),一是查詢語句的創(chuàng)建,另外就是將查詢到的數(shù)據(jù)綁定到chart1控件中。這里的查詢語句為“”select 分類名稱,sum(金額) as 金額 from accounts where 種類='收入' and 用戶名='“ + Program.currentUser + ”' group by 分類名稱“;”。然后創(chuàng)建OledbDataReader對(duì)象dr來獲取數(shù)據(jù),遍歷讀取數(shù)據(jù)庫表中行信息,并綁定到chart1控件中。在綁定時(shí)用到了數(shù)據(jù)點(diǎn)函數(shù)DataBindXY(),代碼為:chart1.Series[“Series1”].Points.DataBindXY(dr, “分類名稱”, dr, “金額”)。
4.3 系統(tǒng)主窗體信息顯示
系統(tǒng)主窗體是在MainForm.cs中實(shí)現(xiàn)的,其中有一個(gè)非常重要的方法:FillDataGrid()。該方法是把數(shù)據(jù)填充到DataGrid控件中,并返回該數(shù)據(jù)。實(shí)現(xiàn)該方法的步驟如下:
(1)調(diào)用getConnection()方法,打開數(shù)據(jù)庫連接。
(2)利用DataAdapter將數(shù)據(jù)填充到DataSet。使用DataAdapter屬性指定需要執(zhí)行的SQL語句,再通過DataAdapter對(duì)象的Fill()方法,即可將返回的數(shù)據(jù)存放到DataSet數(shù)據(jù)集中。
(3)利用SetDataBinding()方法將數(shù)據(jù)填充到DataGrid控件中。關(guān)鍵代碼如下:
if (oledbCon.State == ConnectionState.Closed)
oledbCon.Open();
Console.WriteLine(sql);
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, oledbCon);
DataSet ds = new DataSet(dname);
adapter.Fill(ds, dname);
dg.SetDataBinding(ds, dname);
return ds;
參考文獻(xiàn)
[1]范盛榮.Visual C# 2008控件使用范例詳解[M].北京:清華大學(xué)出版社,2010.
[2]鄭耀東,等.C#從入門到實(shí)踐[M].北京:清華大學(xué)出版社,2009.
[3]張海藩,倪寧.軟件工程(第3版)[M].北京:人民郵電出版社,2010.endprint