C#期末文档--家庭财务管理系统 - 图文

更新时间:2024-05-06 00:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

项目名称:家庭财务管理系统

专业班级 学姓号 名 13级软2 201358234104 辜建波 2015年12月29日 孔世明 完成日期 指导教师

软件工程学院

目录

一、设计目的 ....................................................................................................... 1 二、需求分析 ....................................................................................................... 3 三、模块分析及设计 ........................................................................................... 5

(一)登陆管理模块 ................................................................................... 6 (二)家庭成员管理 ................................................................................... 7 (三)收支项目管理 ................................................................................... 7 四、数据库设计说明 ........................................................................................... 9

4. 1数据表 .................................................................................................... 9

(1)family表 ..................................................................................... 9 (3)borrow表 .................................................................................. 10 4.2数据库的完整性和安全性 ................................................................... 10 五、制作过程及要点 ......................................................................................... 12

登录界面 ..................................................................................................... 12 管理界面 ..................................................................................................... 22 主页界面 ..................................................................................................... 23 家庭成员管理界面 ..................................................................................... 24 家庭成员管理-添加界面 ............................................................................ 24 家庭项目管理界面 ..................................................................................... 25 家庭项目管理-添加界面 ............................................................................ 25 收支报表管理界面 ..................................................................................... 26 六、实现管理系统模块代码 ............................................................................. 30 七、设计测试及总结 ......................................................................................... 62

八、参考文献 ..................................................................................................... 64

一、设计目的

社会的发展越来越快,人们的收入增长和家庭的资产的种类的增多,再加上市场经济的各种不确定性因素越来越大,以至于影响到家庭的各项活动,家庭理财普遍得到了人们的重视。随着计算机、网络技术的高速发展,如何做好家庭理财又有了新的方式方法,运用电脑管理个人的财产,包括银行存款、信用卡、现金、借款和股票、投资等。可以便于管理各种资金的流入和流出,家庭资产的增加和减少,金融投资项目的买入和卖出,使用户能更完整更清晰的了解自己家庭的财务状况和资产、投资的变动情况,帮助用户轻而易举的管理自己的家庭财务,再将这项技术运用到智能移动设备上面,就更能对家庭财务状况随时掌控和管理。在现代财务管理中借助Intranet/Internet为个人及家庭建立一个财务管理系统,将大大提高财务管理的水平,这也是当初选择将家庭财务管理系统做为本次毕业设计的初衷。本系统目的是解决个人或家庭的财务管理需求,能够按照用户要求进行高效的计算、统计,显示等任务,为用户日常生活中的财务管理提供便利。 本系统属于家庭财务管理系统,能够满足个人和家庭的财务管理需求,提供收入支出信息的记录,分类统计各项收支账户管理等功能。系统的实现在技术上充分采用Java Web组件技术,方便开发、维护和升级。本系统是针对用户要求用计算机,对自己的财务的收入、支出以及相关的各种信息,进行记录、修改、添加、删除而设计的一种现代化管理软件。本财务管理系统需要具有以下功能:能够实现个人财务管理方面各项功能,能成功的对用户各种信息进行管理、查询、修改、删除、添加数据方便,数据的稳定性和可靠性好,良好的

1

人机交互界面,对于没有专业计算机基础的人员,经过简单介绍后能够迅速掌握和熟练操作,在实际的应用过程中便于信息内容的管理和维护。

通过设计达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。

根据题目的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握C#语言的运用和Visual Studio2005工具的使用。

2

二、需求分析

家庭财务管理系统是针对家庭的财务软件,他能轻松帮你完成记帐以及理财规划。用户可以自由的设置收支类型(如生活费、通讯费、交通费、水电费、医药费等类型),可以制定每月的收入支出预算,还可以详细统计出各项家庭财务指标,便于您分析自己的财务。其它功能如:家庭亲友通讯录、家庭备忘录、家庭重要信息等。具体模块应包括:记账、资产管理、负债管理、投资理财管理、计划和提醒、家庭信息管理、统计报表(比如现金流报表、资产负债报表等)等模块。 本系统需要完成的功能有: 1.登陆管理

系统管理员可以设置家庭成员,修改或者删除。家庭成员应该包括“姓名,登录密码”等。家庭成员可以用姓名和登录密码登录家庭财务管理系统进行记账管理。 2. 家庭成员管理

以设置家庭成员,修改或者删除。家庭成员应该包括“姓名,登录密码”等。家庭成员可以用姓名和登录密码登录家庭财务管理系统进行记账管理。

3. 收支项目管理

可以设置收支项目,修改或者删除。收支项目要求分为两层,比如“车辆维护-保养费”;任意一层次都可作为收支项目记账,用户在不清楚支出是否属于“保养费”的时候,可以选择大类“车辆维护”作为支出项。

3

4.家庭成员收支报表管理

统计家庭成员一定时间内的收支情况。 5.退出管理

4

三、模块分析及设计

本次设计主要分为四个模块:登陆管理模块、家庭成员管理模块、

收支项目管理模块、家庭成员收支报表管理模块,详细可以参考下图:

5

(一)登陆管理模块

使用者:用户

目的:使用不同的角色进行登陆管理操作 基本事件流:

1、进入登陆界面,本用例开始

2、普通用户通过注册后进入系统进行操作。 3、超级用户进入系统后进行管理操,用例结束。

6

(二)家庭成员管理

1.增加家庭成员 使用者:管理员 目的:增加家庭成员 基本事件流:

1.1、用户进入增加家庭成员管理界面,本用例开始

1.2、系统显示家庭成员信息输入界面,用户输入家庭成员姓名、性别、出身日期、年龄,身高,体重。

1.3、用户确认输入信息,系统确认姓名是否唯一,若唯一,则增加成员信息,本用例结束。否则,提示该用户已存在。 2.修改家庭成员信息 3.删除家庭成员信息

(三)收支项目管理

1.查看收支项目 使用者:用户

目的:查看收支具体信息 基本事件流:

1、进入收支项目管理界面,点击查看,本用例开始。 2、查看具体项目收支情况。 3、点击确定,用例结束。

7

2.编辑收支项目 使用者:用户 目的:编辑收支条目 基本事件流:

1、进入收支项目管理界面,点击编辑,用例开始。 2、对当前选中的收支条目进行修改编辑。 3、编辑完后点确定,用例结束。

3.删除收支项目 使用者:用户 目的:删除条目 基本事件流:

1、进入收支项目管理界面,点击删除,本用例开始。2、对当前选中的收支条目进行删除操作。 3、点击确定删除,用例结束。

8

四、数据库设计说明

4. 1数据表

(1)family表

家庭表也是对系统登录的权限操作,此表用来记录家庭成员信息,方便家庭成员登录程序。

表1 家庭成员信息表 字段名 字段类型 非空 说明 姓名 整型 姓名 账号 文本 账号 密码 文本 密码 身份 文本 是 身份 生日 文本 生日

(2)item表

收入信息表,此表用来存放该家庭财务收入信息。

表2 功能信息表 字段名 字段类型 非空 说明 编号 自动编号 是 自动编号 日期 文本 入账日期 金额 货币 收入金额 人员 文本 发起记录者

9

身份 项目 说明

文本 文本 文本 身份 项目 说明 (3)borrow表

字段名 Borrowed Fromname Role Borrwmoney Borrwdate Borrwreason

字段类型 自动编号 文本 文本 货币 日期/时间 文本 非空 是 说明 自动编号 姓名 身份 借出金额 借出时间 借出理由 4.2数据库的完整性和安全性

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改,或者破坏.安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题,只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全笥问题更为突出,系统安全保护措施是否有效是数据库系统的主要指标之一.

数据库的完整性是指数据的正确性和相容性.例如本系统中;学生的学号必须唯一;性别只能是男或女;学生所在的系统必须是学校已开设的系.等.数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维

10

护数据库的完事性是非常重要的.

11

五、制作过程及要点

登录界面

特点描述:

1.与常用的账号设置不同,我的用户名用的是组合框(comboBox)来装

载,登入框架一载入,则从数据库里读入用户名,方便用户体验。

2.取消注册功能,原因是本系统防止任意人员注册即可使用本系统。如

果需要添加登录用户,需要进入系统才能添加,或数据库添加。

3.实现身份字段控制权限访问。主要分系统管理员与非系统管理员。系

统管理员最高权限,而后者只限于查找与修改个人密码。

12

FormLogin.cs

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.Data.SqlClient;

namespace WindowsFormsApplication1 {

public partial class FormLogin : Form {

string ConnectionString = \

\Catalog=家庭财务管理系统;Persist Security Info=True; \

\

//封装链接字符串,协调统一数据库链接信息 public string getCS()

13

{

return ConnectionString; } SqlConnection conn; string strSQL;

SqlCommand Command; SqlDataReader reader; public FormLogin() {

InitializeComponent(); } static string Uname = \

//封装登录的用户名,便于登录后显示 private void setUname(string s) {

Uname = s; }

public string getUname() {

return Uname; }

14

static string Role = \ //封装用户身份

private void setRole(string s) {

Role = s; }

public string getRole() {

return Role; }

//初始化参数

private void FormLogin_Load(object sender, EventArgs e) {

//取出系统的所有用户名

//显示在下拉列表,这样用户登录的时候 //选择用户名就可以了,不用再输入用户名了 conn = new SqlConnection(ConnectionString); strSQL = \账号 FROM family\ try {

Command = new SqlCommand(strSQL, conn); conn.Open();

15

reader = Command.ExecuteReader();//结果集放到reader对 int flag = 0; //把数据库账号加载到组合框中 while (reader.Read()) {

this.comboBox1.Items.Add(reader[0].ToString()); //如果能加载账号,则选中密码框 if (flag == 0) {

textBox1.Focus(); textBox1.Select(); } flag++; }

//如果系统存在用户,则默认选中第一个用户 if (flag > 0)

this.comboBox1.SelectedIndex = 0; }

16

象中

catch (Exception ex) {

ex.GetBaseException(); } finally

码为空

{

reader.Close(); Command.Dispose(); } }

//确定,完成登陆

private void button1_Click(object sender, EventArgs e) {

int flag = 0; if (textBox1.Text == \ {

showError(\账号或密码为空!\第一种错误,账号或密 return; } 17

当然,如果是非系统管理员,则界面被限制

28

29

六、实现管理系统模块代码

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; using System.Data.SqlClient;

using System.Windows.Forms.DataVisualization.Charting;//chart的命令空间 namespace WindowsFormsApplication1 {

public partial class FormManage : Form {

//初始化参数

string ConnectionString=\ private SqlConnection conn = null; private SqlDataAdapter DataAdapter = null; private DataSet dataset = null; private SqlCommand cmd = null;

30

string curNo;

public FormManage() {

InitializeComponent(); }

/*-----界面转换方法开始!!-----*/ //显示主页背景

private void pIndex_Click(object sender, EventArgs e) {

checkPage(\主页\ }

//pFmyMng2的取消按钮,跳转到pShowData

private void addMemCancel_Click(object sender, EventArgs e) {

if (lAddData.Text == \添加成员\ {

checkPage(\家庭成员管理\ }

if (lAddData.Text == \添加项目\ {

checkPage(\收支项目管理\ }

31

}

//家庭成员管理

private void iFmyMng_Click(object sender, EventArgs e) {

checkPage(\家庭成员管理\ }

//重新登录

private void reLoad_Click(object sender, EventArgs e) {

this.Hide();

(new FormLogin()).ShowDialog(); this.Close(); }

//安全退出

private void exist_Click(object sender, EventArgs e) {

Application.Exit(); }

//添加成员按钮,跳转到pFmyMng2

private void iAddMem_Click(object sender, EventArgs e) {

checkPage(\添加成员\ }

32

//账目收支管理

private void iItemMng_Click(object sender, EventArgs e) {

checkPage(\收支项目管理\ }

//收支报表管理

private void iGraphMng_Click(object sender, EventArgs e) {

checkPage(\收支报表管理\ } //添加项目

private void pAddItem_Click(object sender, EventArgs e) {

checkPage(\添加项目\ }

//页面转换方法

private void checkPage(String str) { //关闭所有页面显示的PANEL pFmyMng.Visible = false; pFmyMng1.Visible = false; pAddData.Visible = false; pShowData.Visible = false;

33

PitemMng1.Visible = false; pTableMng.Visible = false;

switch (str) {

case \家庭成员管理\ 理员\

{

pFmyMng.Visible = true; pShowData.Visible = true;

if ((new FormLogin()).getRole() == \系统管 {

pFmyMng1.Visible = true; }

itemText.Text = str; showData(str); break; }

case \添加成员\ {

pFmyMng.Visible = true; pAddData.Visible = true; pFmyMng1.Visible = true; groupBox1.Visible = false;

34

lAdd6.Visible = false; tbAdd6.Visible = false; lAdd1.Text = \账号:\ lAdd2.Text = \密码:\ lAdd3.Text = \姓名:\

理员\

lAdd4.Text = \生日:\ lAddData.Text = str; break; }

case \收支项目管理\ {

pFmyMng.Visible = true; pShowData.Visible = true;

if ((new FormLogin()).getRole() == \系统管 {

PitemMng1.Visible = true; }

itemText.Text = str; showData(str); break; }

35

case \收支报表管理\ {

//pFmyMng.Visible = true; //pShowData.Visible = true; pFmyMng.Visible = true; pTableMng.Visible = true; listView1.Clear(); chart1.Visible=false; break; }

case \添加项目\ {

pFmyMng.Visible = true; pAddData.Visible = true; groupBox1.Visible = true; lAdd6.Visible = true; tbAdd6.Visible = true; lAddData.Text = str; lAdd1.Text = \项目:\ lAdd2.Text = \人员:\ lAdd3.Text = \金额:\ lAdd4.Text = \日期:\

36

break; } default: break; } }

/*-----界面转换方法结束!!-----*/

/********************************/

/*-----功能模块方法开始!!-----*/

//载入相关参数

private void FormManage_Load(object sender, EventArgs e) {

welUser.Text FormLogin()).getUname()+\用户\

int w=(int)DateTime.Now.DayOfWeek;

string[] week=new string[]{\日\一\二\三\四\五\

37

= \欢迎您!\

本文来源:https://www.bwwdw.com/article/662g.html

Top