《.net 程序设计》
大作业
学生姓名:
***
学 号: 0806054249
电子与计算机科学技术学院
软件工程
个人理财系统
学 院:
专 业:
题 目:
成 绩:
指导教师: 王
2011 年 5 月 31 日
1. 设计目的
1.1 设计背景
随着我国国民经济的持续增长,人们收入也在逐年增加,个人身边可以支配的财产也在
增加,而且随着现在经济形式多样化,人们收入与支出形式也出现多样化,并不仅仅是局限
于传统的购物支出和工资收入这简单的形式,出现了越来越多的经济行为,像现在股票、证
券、信用卡、银行业务、个人福利、奖金、网上商店等的出现,面对这些复杂的经济行为,
个人越来越难以管理和支配自己的财产,难免出现混乱,最后自己往往抱怨不知道钱花什么
地方了,所以我们需要一个现代化的工具来管理我们个人的财产日常支出和收入,以合理管
理支出行为,使经济效益最大化。
1.2 编写目的
个人理财管理系统就是针对上面的这些问题而设计的,让每个用户对自
己的经济行为有个比较清晰的掌握,合理分配个人收入和管理自己的资产。本软
件是简单实用的公共软件。考虑到系统的构架简单,且主要实现主要模块,提供
清晰的设计框架,本文档在先做出概要设计前提下,然后在概要设计的基础上进
行扩展和详细的描述,完成主要模块的详细设计。
计。2.设计内容
设计一个个人理财管理系统,可以有效地记录和管理个人的收入与支出以及
借贷的情况,通过这些记录可以合理规划和支配个人财产。后台数据库使用 SQL
SERVER2005,前台开发工具使用 Microsoft Visual Studio.NET 2008。本系统
采用目前比较流行的 ADO 数据访问技术,并将每个数据库表的字段和操作封装到
类中,从而成功地将面向对象的程序设计思想应用到数据库应用程序设计中。并
通过界面的设置,进行界面的优化与美观。
3.需求描述
3.1 系统功能模块图:
1
个人理财系统
收支管理
借贷管理
账号管理
查询统计管理
添
加
查
找
删
除
统
计
修
改
添
加
查
找
删
除
修
改
修
改
密
码
修
改
用
户
查
询
收
支
查
询
借
贷
图 1:系统功能模块图
3.2 系统功能描述
3.21 各个模块的主要功能的介绍:
1) 账户管理
在这一功能模块中,用户可以修改登录密码和用户信息
2) 收支管理
在这一功能模块中,主要功能有针对债务管理、个人贷款、
管理模块中的支出的一个总揽,其中也可自己添加、删除、检索记录
3) 借贷管理
在这一功能模块中,主要是针对用户的债务关系,同样可以实现
添加(借入)、删除(还款)、修改和检索债务等功能,这些数据的更新也会上传到
收支管理。
4) 统计管理
在这一功能模块中,主要是针对用户的操作,进行选择要查询的 统 计 数 据 ,
然后进入该模块,进行统计。
3.22 各子模块的功能的介绍:
功 能 编 号 功 能 描 述 功 能 说 明
$F1.0
用 户 登 录
普 通 用 户 填 写 用 户 账 号 和 密 码 登 录 系
2
帐 户 管 理
收 支 管 理
进 入 帐 目 管 理 子 系 统 , 用 户 对 自 己 的
统 后 才 能 进 行 系 统 的 使 用 。
$F2.0
帐 目 进 行 管 理 和 维 护 。
F2.1 修 改 帐 户 密 码 修 改 账 户 密 码 。
F2.2 修 改 帐 户 信 息 修 改 账 户 信 息 。
F2.3 帐 户 管 理 退 出 退 出 帐 户 管 理 , 并 回 到 回 到 主 界 面 。
$F3.0
收 支 管 理 子 系 统 ,用 户 对 自 己 的 收
支 进 行 管 理 和 维 护 。
F3.1 添 加 收 支 信 息 往 添 加 信 息 框 里 添 加 收 入 与 支 出 及 其
他 信 息 。
F3.2 查 找 收 支 信 息 按 日 期 或 收 入 类 型 查 找 相 应 的 信 息 。
F3.3 修 改 收 支 信 息 先 查 找 要 修 改 的 信 息 ,然 后 直 接 往 表 里
修 改 , 在 点 击 “ 更 新 ” 按 钮
F3.4 删 除 收 支 按 日 期 或 收 入 类 型 进 行 删 除 收 支 信 息 。
F3.5 收 支 管 理 退 出 退 出 收 支 管 理 子 系 统 并 回 到 主 界 面 。
$F4.0
进 入 借 贷 管 理 子 系 统 , 对 个 人 的 借 贷
信 息 进 行 管 理 和 维 护 。
F4.1 添 加 借 贷 信 息 添 加 新 的 借 贷 信 息 。
F4.2 修 改 借 贷 信 息 对 已 经 存 在 的 信 息 进 行 修 改 。
F4.3 删 除 借 贷 信 息 按 借 款 人 或 是 否 或 者 编 号 查 找 到 相 应
的 信 息 收 , 然 后 删 除 相 应 已 经 存 在 的 借 贷 信 息 。
F4.4 借 贷 管 理 退 出 退 出 借 贷 管 理 子 系 统 并 回 到 主 界 面 。
$F5.0 统 计 查 询 管 理 进 入 统 计 查 询 管 理 子 系 统
F5.1 查 询 统 计 收 支 情 况 进 入 收 支 管 理 界 面 , 进 行 统 计
F5.2 统 计 退 出 退 出 统 计 子 系 统 , 回 到 主 界 面
借 贷 管 理
3.23 数 据 库 表 :
表 1: User 表
3
表 2: JieDai 表
表 3:ShouZhi 表
4.系统详细分析设计
4.1 开发工具及系统运行环境
开发工具:Visual Studio 2008
SQL Server2005
运行环境:Windows XP
4.2 系统实现
(1) 登录界面部分代码:
private void btnYes_Click(object sender, EventArgs e)
{
//获取文本框中录入的用户名和密码
string userId = txtName.Text;
string password = txtPwd.Text;
//连接数据库
string connString
=@"DataSource=.;InitialCatalog=MyDatabase;IntegratedSecurity=True";
SqlConnection connection = new SqlConnection(connString); //创建对象
//获取用户名和密码匹配的行的数量的SQL语句。
string sql =String.Format("select count(*) from [User] where userId='{0}'
and
password='{1}'",userId,password);
try
4
{
connection.Open();// 打开数据库连接
SqlCommand command = new SqlCommand(sql, connection); //创建 Command 对象
int num = (int)command.ExecuteScalar();//执行查询语句,返回匹配的行数
if (num > 0)
{
//如果有匹配的行,则表明用户名和密码正确
MessageBox.Show("欢迎进入个人理财管理系统!", "登录成功",
MessageBoxButtons.OK, MessageBoxIcon.Information);
//页面的跳转
MainFrame MainFrame = new MainFrame();// 创建主窗体对象
MainFrame.Show();// 显示窗体
this.Visible = false; // 登录窗体隐藏
}
else
{
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
MessageBox.Show("您输入的用户名或密码错误!", "登录失败",
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,
"操作数据库出错!
",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
connection.Close();// 关闭数据库连接
}
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
// 对界面的优化代码
private void Login_Load(object sender, EventArgs e)
{
skinEngine1.SkinFile = "MP10.ssk";
skinEngine1.SkinAllForm = true;
}
}
截图:
5
图 2:登录界面
(2)收支管理主要代码:
/**********************更新数据************************/
private void btnRenew_Click(object sender, EventArgs e)
{
String condition = dateTimePicker1.Text.ToString(); //获取日期
MessageBox.Show(condition);
connString = @"Data Source=(local);Initial
//显示选择的日期
Catalog=MyDatabase;Integrated Security=True"; //连接数据库
connection = new SqlConnection(connString);//创建 Connection 对象
String sql = String.Format("select * from ShouZhi where Date ='{0}'",
condition); //查找日期
MessageBox.Show(sql);
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);//创建
SqlDataAdapter对象(SQL语句,数据库连接)
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
//自动
生成用于更新的相关命令
DataTable dataTable = (DataTable)dataGridView1.DataSource;
adapter.Update(dataTable); //将Date的数据提交到数据源
connection.Close();
//ShouZhiTableAdapter.Fill(myDatabaseDataSet1.ShouZhi);
}
/********************** 关闭 ************************/
private void btnClose_Click(object sender, EventArgs e)
{
}
this.Close();
/********************** 查找类型 ************************/
private void btnSelect_Click(object sender, EventArgs e)
6
{
String condition = dateTimePicker1.Text.ToString();
MessageBox.Show(condition);
connString = @"Data Source=(local);Initial
Catalog=MyDatabase;Integrated Security=True";
//创建 Connection 对象
connection = new SqlConnection(connString);
String sql = String.Format("select * from ShouZhi where Date
='{0}'",condition);
//查找数据库里对应的数据段
MessageBox.Show(sql);
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
dataGridView1.DataSource = dataTable;
}
/********************** 按日期查找 ************************/
private void btnSelect2_Click(object sender, EventArgs e)
{
String condition = txtRemark.Text.ToString();
MessageBox.Show(condition);
connString = @"Data Source=(local);Initial
Catalog=MyDatabase;Integrated Security=True";
//创建 Connection 对象
connection = new SqlConnection(connString);
String sql = String.Format("select * from ShouZhi where Remark ='{0}'",
condition);
MessageBox.Show(sql);
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
dataGridView1.DataSource = dataTable;
}
/********************** 保存添加 ************************/
private void btnAdd_Click(object sender, EventArgs e)
{
String Date = dateTimePicker1.Text.ToString();
String Income = txtIncome.Text.ToString();
String Pay = txtPay.Text.ToString();
String Remark = txtRemark.Text.ToString();
string connString = @"Data Source=.;Initial
Catalog=MyDatabase;Integrated Security=True";
SqlConnection connection = new SqlConnection(connString);
7