




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理及应用课程设计设计报告院 系班级学 号姓名指导教师题 目年12月14日摘要:家庭理财系统,即Family Conduct Financial Transactions System。它利用计算机应用技术,使家庭理财逐步信息化,从而形成由家庭成员与计算机共同构成服务于家庭的人机信息财务管理系统。随着计算机发展,家庭理财系统已经成为很多家庭财务管理的一个重要途径。计算机的最大优点在于利用它能够高效准确地进行财务信息管理。使用计算机进行信息财务管理,不仅提高了工作效率,而且大大的提高了其安全性。家庭财务管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用
2、程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。关键字:家庭理财;数据库;Summary: The family financial management system, namely the Family Conduct Financial Transactions System.It uses computer technology to make family financial management step by step information, to form the computer by famil
3、y members together constitute the human-computer information services in the family financial management system.With the computer development, family financial management system, many families in financial management has become an important way.The biggest advantage is that the computer can use it t
4、o carry out efficient and accurate financial information management.Financial management of information using computers not only improve the working efficiency, but also greatly improve its safety.Family financial management system is a typical management information system (MIS), which mainly inclu
5、des the establishment and maintenance of back-end database and front-end application development aspects.Request for the establishment of data consistency and integrity, data security, a good library.For the latter application powerful, easy to use and so on.Keywords: family financial management; da
6、tabase;摘要:11 家庭理财管理21.1 需求分析21.2 数据库概念结构设计31.2.1 概念结构设计31.2.2 数据库设计51.3 系统功能模块设计61.3.1 系统功能模块划分61.3.2 系统功能模块图71.4 系统详细设计71.4.1 登录界面设计71.4.2 系统主界面91.4.3 系统管理 修改密码111.4.4 基础数据管理 家庭成员管理 收支项目管理15储蓄管理 银行账户管理201.4.6 理财分析 查询明细 理财报告271.4.7 帮助27总结:28参考文献2
7、81 家庭理财管理1.1 需求分析长期以来人们使用传统的大脑记忆方式来管理家里的日常消费,这非常麻烦,靠大脑的记忆,只能记住很短的时间,所以常常为钱不知去向而烦恼。而有时常常会想不起一些消费记录,家里的理财很是混乱。综上所述,靠人脑记忆理财存在很大的不足。而家庭理财系统则为家庭解决了上述问题,提供了快速,直观明了的理财过程,方便使用。家庭理财管理系统是针对用户的要求,用计算机对自己的财务的收入、支出以及相关的各种信息,进行记录、修改、添加、删除而设计的一种现代化管理软件。通过需求分析,本系统需要具有以下功能:(1)要求系统具有良好的人机界面。(2)能够完善家庭理财管理系统的各项功能,能成功的对
8、用户各种信息进行管理。(3)查询、修改、删除、添加数据方便,数据的安全性和可靠性好。(4) 系统最大限度地实现了易维护性和易操作性。1.2数据库概念结构设计1.2.1 概念结构设计建立系统数据模型的主要工具是实体-联系图,即E-R图。E-R图的图形符号约定如表1-1所示:表 1-1 ER图的图形符号图形符号说 明表示实体集合表示属性表示关系集将属性连接到实体集或将实体集连接到联系集系统的E-R图,如图1-1所示,每个实体及属性如下:家庭成员:姓名、称呼、密码、出生日期收入记录:收入项目编号、收入项目名称、收入人员、收入金额、收入日期支出记录:支出项目编号、支出项目名称、支出人员、支出金额、支出
9、日期银行信息:银行账号、银行名称、开户人、存款金额、开户日期家庭成员姓名密码称呼出生日期家庭成员关系E-R图收入记录项目名称项目编号收入金额收入人员收入日期收入记录E-R图支出记录项目名称支出人员支出日期支出金额项目编号支出记录E-R图银行信息银行账号开户人存款金额银行名称开户日期银行信息E-R图属于属于属于支出记录收入记录支出记录支出记录图1-1 系统总E-R图1.2.2 数据库设计系统数据库名为:财务管理,数据库中包括:家庭成员表(member),收入记录表(income),支出记录表(outcome),银行信息表(bank),各个表的数据结构如下表1-1表1-4所示。表1-1家庭成员表(
10、member)的数据结构字段名类型描述namenchar(8)姓名callnchar(10)称呼pwdnchar(10)密码birthnchar(20)出生日期表1-2收入记录表(income)的数据结构字段名类型描述inproIDsmallint收入项目编号inproNamenchar(15)收入项目名称callnchar(10)收入人员inmoneyint收入金额indatanchar(15)收入日期表1-3支出记录表(outcome)的数据结构字段名类型描述outproIDsmallint支出项目编号outproNamenchar(15)支出项目名称callnchar(10)支出人员ou
11、tmoneyint支出金额outdatanchar(15)支出日期表1-4银行信息表(bank)的数据结构字段名类型描述bankIDnchar(15)银行账号bankNamenchar(20)银行名称callnchar(10)开户人moneyint存款金额datanchar(15)开户日期表与表之间的关系:图1-2 表与表的关系图1.3 系统功能模块设计1.3.1 系统功能模块划分具体说来,要求本系统具有以下几个功能模块:用户登录模块、用户管理模块、收入模块、支出模块、密码管理模块、账目统计模块、报表输出模块以及查询模块。各模块具体的需求描述如下:(1) 用户登录模块用户登录:验证用户的信息是
12、否合法,以及验证用户是否为系统的合法用户。(2)用户管理模块在系统中主要包括添加用户、删除用户、更改用户、用户修改密码。(3) 收支输入模块主要实现对收入和支出记录的添加、删除、修改。(6) 报表输出模块主要实现对收入、支出记录的输出及打印。(7) 查询模块主要实现对收入、支出记录按时间按类型查询、消费提醒(实际消费额快接近预消费额)、收入、支出记录的输出。1.3.2 系统功能模块图理财报告家庭理财管理系统重新登录用户登录管理家庭成员管理姓名密码修改密码项目名称出生日期收支项目管理收入项目管理称呼项目编号支出项目管理理财分析收入日期收入金额收入人员项目名称项目编号支出日期支出金额支出人员银行名
13、称银行账号开户日期存款金额开户人银行信息管理查询明细图1-3系统功能模块结构图1.4 系统详细设计启动Visual Studio 2008,选择“文件”|“新建”|“项目”即命令,建立家庭理财管理应用程序。下面介绍各窗体的程序设计。1.4.1 登录界面设计登录界面的作用就是判断用户身份的合法性。输入用户名和密码,若用户名、密码正确,单击登录系统按钮,即可进入主界面,否则不能进入。登录界面效果,如图1-4所示:图 1-4 登录界面该窗体中设计了2个TextBox控件和两个Button控件。各个控件的名称、作用如表4-7所示:表1-5登录界面主要控件设计控件类型控件名称作用TextBoxtextB
14、ox1用户名textBox2用户密码Buttonloginbtn登录系统exitbtn退出系统l 登录界面部分代码:privatevoid loginbtn_Click_1(object sender, EventArgs e)/登录 SqlConnection cn = newSqlConnection("data source=.;Initial Catalog=财务管理;Integrated Security=true;");try cn.Open();SqlCommand cmd = newSqlCommand("select name,pwd from
15、member where name='" + textBox1.Text + "' and pwd='" + textBox2.Text + "'", cn); cmd.ExecuteNonQuery();MainForm form2 = newMainForm(textBox1.Text); form2.Show();this.Hide(); catch (SqlException ex)MessageBox.Show("用户名或密码错误!请检查!" + ex.Message); final
16、ly cn.Close(); 当单击“退出系统”按钮时,触发exitbtn_Click事件,关闭当前窗体。代码如下:privatevoid exitbtn_Click_1(object sender, EventArgs e)/退出 this.Close(); 另外,在登录界面出现前,Login窗体设置为消隐,代码如下:privatevoid timer1_Tick(object sender, EventArgs e) this.Opacity -= 0.03;if (this.Opacity = 0) timer1.Enabled = false;this.FormBorderStyle
17、= FormBorderStyle.Sizable;this.Opacity = 1; label1.Visible = true; label2.Visible = true; label3.Visible = true; textBox1.Visible = true; textBox2.Visible = true; loginbtn.Visible = true; exitbtn.Visible = true; 在窗体加载时,启动Timer,代码如下:privatevoid Form1_Load(object sender, EventArgs e) timer1.Enabled =
18、true; 1.4.2 系统主界面通过身份验证后,进入系统主界面,如图1-5所示,该主界面的作用就是显示用户所拥有的所有的功能菜单项,当用户单击相应的菜单项时,打开对应的模块窗口。图 1-5 系统主界面l 系统主界面部分代码:1、在主界面中选择【系统管理】|【修改密码】命令菜单,就会触发修改密码ToolStripMenuItem_Click事件,进入修改密码界面。代码如下:privatevoid修改密码ToolStripMenuItem1_Click(object sender, EventArgs e) ModifyPwd form3 = newModifyPwd(name); form3.
19、Show(); 2、在主界面中选择【重新登录】命令菜单,就会触发重新登录ToolStripMenuItem_Click事,进入登录界面。代码如下:privatevoid重新登录ToolStripMenuItem2_Click(object sender, EventArgs e) Login f1 = newLogin(); f1.Show();this.Close(); 3、在管理员主界面中选择【退出系统】命令菜单,就会触发退出系统ToolStripMenuItem_Click事件,整个程序退出。代码如下:privatevoid退出系统ToolStripMenuItem2_Click(obj
20、ect sender, EventArgs e) this.Close(); 1.4.3 系统管理.1修改密码在主界面中选择【系统管理】|【修改密码】命令菜单,即可进入修改密码界面,如图1-6所示。该窗体中需要提供的信息包括:用户名、密码、确认密码。信息录入后单击“确认”按钮,代码如下:图 1-6 修改密码界面在该窗体中主要设计了4个TextBox控件、2个Button控件。各个控件的名称、作用如表5-8所示。表1-6添加管理员界面控件设计控件类型控件名称作用TextBoxtextBox1用户名textBox2原密码textBox3用户新密码textBox4确认密码ButtonButton1确
21、认Button2取消1、单击“确认”按钮时触发button1_Click事件,第一步判断原密码是否正确;若正确,第二步判断两次密码是否相同;若相同则修改密码。代码如下:privatevoid button1_Click(object sender, EventArgs e) /确认 String pwd=""SqlConnection cn = newSqlConnection("data source=.;Initial Catalog=财务管理;Integrated Security=true;");try cn.Open();SqlCommand
22、checkCmd = newSqlCommand("select pwd from member where name='" + textBox1.Text + "'", cn);SqlDataReader dr = checkCmd.ExecuteReader();if (dr.Read() pwd = dr0.ToString(); if (textBox2.Text != pwd.Trim()MessageBox.Show("原密码输入错误!请重新输入!"); if (textBox2.Text = "
23、" | textBox3.Text = "" | textBox4.Text = "")MessageBox.Show("警告:密码不能为空!"); if (textBox3.Text != textBox4.Text)MessageBox.Show("警告:两次输入的密码必须相同!"); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); try cn.Open(); SqlCommand modifyCmd =
24、 newSqlCommand("update member set pwd='" + textBox3.Text + "' where name='" + textBox1.Text + "'", cn); modifyCmd.ExecuteNonQuery();MessageBox.Show("修改成功!");this.Close(); catch (SqlException ex)MessageBox.Show("修改失败!" + ex.Message); f
25、inally cn.Close(); 2、单击“取消”按钮时,将触发cancel_Click事件,关闭当前窗体。代码如下:privatevoid cancelbtn_Click(object sender, EventArgs e) this.Close(); 基础数据管理 家庭成员管理在主界面中选择【基础数据管理】|【家庭成员管理】命令菜单,即可进入家庭成员管理界面,如图1-7所示。图1-7 家庭成员管理l 家庭成员添加界面主要代码:1、窗体加载时触发Form4_Load事件,通过该事件向dataGridView控件中填入member表的内容,代码如下:void display
26、() ds.Clear();SqlCommand cmd = newSqlCommand("select name '姓名',pwd '密码',call '称呼',birth '出生日期' from member", cn); da = newSqlDataAdapter(cmd); da.Fill(ds, "member"); dataGridView1.DataSource = ds.Tables"member" privatevoid Form4_Load(obje
27、ct sender, EventArgs e) display(); cn.Open(); channametxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"姓名".ColumnName); chanpwdtxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"
28、;密码".ColumnName); chancalltxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"称呼".ColumnName); chanbirtxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"出生日期".ColumnName)
29、; delnametxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"姓名".ColumnName); delpwdtxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"密码".ColumnName); delcalltxb.DataBindings
30、.Add("Text", ds.Tables"member", ds.Tables"member".Columns"称呼".ColumnName); delbirtxb.DataBindings.Add("Text", ds.Tables"member", ds.Tables"member".Columns"出生日期".ColumnName); cn.Close(); 2、点击“添加“按钮时,触发addbtn_Click事件,向memb
31、er表中添加一条信息,并在dataGridView中显示,代码如下:privatevoid addbtn_Click(object sender, EventArgs e) /添加 String str=String.Format("insert into member values('0','1','2','3')",addnametxb.Text.Trim(),addcalltxb.Text.Trim(),addpwdtxb.Text.Trim(),addbirtxb.Text.Trim();SqlComm
32、and cmd = newSqlCommand(str, cn);try cn.Open(); cmd.ExecuteNonQuery(); display();MessageBox.Show("添加成功!"); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); 3、点击“修改“按钮时,触发modifybtn_Click事件,修改member表中的某条信息,并在dataGridView中显示,代码如下:privatevoid modifybtn_Click(object sende
33、r, EventArgs e) /修改 String str = String.Format("update member set call='" + chancalltxb.Text.Trim() + "' ,pwd='" + chanpwdtxb.Text.Trim() + "',birth='" + chanbirtxb.Text.Trim() + "' where name='" + channametxb.Text.Trim()+"'
34、;");SqlCommand cmd = newSqlCommand(str,cn);try cn.Open(); cmd.ExecuteNonQuery(); display();MessageBox.Show("修改成功!"); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); 4、点击“删除“按钮时,触发deltn_Click事件,从member表中删除一条信息,并在dataGridView中显示,代码如下:privatevoid delbtn_Click(obje
35、ct sender, EventArgs e) /删除 String str = String.Format("delete from member where name='"+ delnametxb.Text.Trim()+"'");SqlCommand cmd = newSqlCommand(str, cn);try cn.Open(); cmd.ExecuteNonQuery(); display();MessageBox.Show("删除成功!"); catch(SqlException ex)MessageB
36、ox.Show(ex.Message); finally cn.Close(); 收支项目管理在主界面中选择【基础数据管理】|【收支项目管理】命令菜单,即可进入收支项目管理界面,如图1-8所示。图 1-8 收支项目管理界面l 收支项目管理界面主要代码:窗体加载时触发Form5_Load事件,通过该事件向dataGridView控件中填入income和outcome表的内容,代码如下:privatevoid displayIncome() dsIn.Clear(); cmdIn = newSqlCommand("select distinct inproID '
37、项目编号',inproName '项目名称',call '收入人员',inmoney '收入金额',indata '收入日期' from income", cn); da = newSqlDataAdapter(cmdIn); da.Fill(dsIn, "income"); dataGridView2.DataSource = dsIn.Tables"income" privatevoid displayOutcome() dsOut.Clear(); cmdOut =
38、newSqlCommand("select distinct outproID '项目编号',outproName '项目名称',call '支出人员',outmoney '支出金额',outdata '支出日期' from outcome", cn); da = newSqlDataAdapter(cmdOut); da.Fill(dsOut, "outcome"); dataGridView1.DataSource = dsOut.Tables"outcome&
39、quot; privatevoid Form5_Load(object sender, EventArgs e) displayIncome(); displayOutcome(); cn.Open(); comboBox1.DataBindings.Add("Text", dsIn.Tables"income", dsIn.Tables"income".Columns"项目编号".ColumnName); textBox1.DataBindings.Add("Text", dsIn.Table
40、s"income", dsIn.Tables"income".Columns"项目名称".ColumnName); comboBox2.DataBindings.Add("Text", dsIn.Tables"income", dsIn.Tables"income".Columns"收入人员".ColumnName); textBox2.DataBindings.Add("Text", dsIn.Tables"income&q
41、uot;, dsIn.Tables"income".Columns"收入金额".ColumnName); dateTimePicker2.DataBindings.Add("Text", dsIn.Tables"income", dsIn.Tables"income".Columns"收入日期".ColumnName); comboBox6.DataBindings.Add("Text", dsOut.Tables"outcome",
42、dsOut.Tables"outcome".Columns"项目编号".ColumnName); textBox4.DataBindings.Add("Text", dsOut.Tables"outcome", dsOut.Tables"outcome".Columns"项目名称".ColumnName); comboBox5.DataBindings.Add("Text", dsOut.Tables"outcome", dsOut.T
43、ables"outcome".Columns"支出人员".ColumnName); textBox3.DataBindings.Add("Text", dsOut.Tables"outcome", dsOut.Tables"outcome".Columns"支出金额".ColumnName); dateTimePicker1.DataBindings.Add("Text", dsOut.Tables"outcome", dsOut.Ta
44、bles"outcome".Columns"支出日期".ColumnName);SqlCommand cmd = newSqlCommand("select distinct call from member", cn);SqlDataReader dr = cmd.ExecuteReader();while (dr.Read() comboBox2.Items.Add(dr0.ToString(); comboBox5.Items.Add(dr0.ToString(); cn.Close(); l 收入项目管理界面主要代码:1、点击
45、“添加“按钮时,触发button1_Click事件,向income表中添加一条信息,并在dataGridView中显示,代码如下:privatevoid button1_Click(object sender, EventArgs e) /添加收入项目 String str = String.Format("insert into income values('0','1','2',3,'4')", comboBox1.Text.Trim(), textBox1.Text.Trim(), comboBox2.T
46、ext.Trim(), textBox2.Text.Trim(), dateTimePicker2.Text.Trim(); cmdIn = newSqlCommand(str, cn);try cn.Open(); cmdIn.ExecuteNonQuery();MessageBox.Show("添加成功!"); displayIncome(); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); 2、点击“修改“按钮时,触发button2_Click事件,修改income表中的某
47、条信息,并在dataGridView中显示,代码如下:privatevoid button2_Click(object sender, EventArgs e) /修改收入项目 String str = String.Format("update income set inproName='"+textBox1.Text.Trim()+"',call='"+comboBox2.Text.Trim()+"',inmoney='"+textBox2.Text.Trim()+"',i
48、ndata='"+dateTimePicker2.Text.Trim()+"' where inproID='"+comboBox1.Text.Trim()+"'"); cmdIn = newSqlCommand(str, cn);try cn.Open(); cmdIn.ExecuteNonQuery();MessageBox.Show("修改成功!"); displayIncome(); catch (SqlException ex)MessageBox.Show(ex.Message);
49、 finally cn.Close(); 3、点击“删除“按钮时,触发button3_Click事件,从income表中删除一条信息,并在dataGridView中显示,代码如下:privatevoid button3_Click(object sender, EventArgs e) /删除收入项目 String str = String.Format("delete from income where inproID= '" + comboBox1.Text.Trim()+"'"); cmdIn = newSqlCommand(str
50、, cn);try cn.Open(); cmdIn.ExecuteNonQuery();MessageBox.Show("删除成功!"); displayIncome(); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); l 支出项目管理界面主要代码:1、点击“添加“按钮时,触发button5_Click事件,向outcome表中添加一条信息,并在dataGridView中显示,代码如下:privatevoid button5_Click(object sender, Even
51、tArgs e) /添加支出项目 String str = String.Format("insert into outcome values('0','1','2',3,'4')", comboBox6.Text.Trim(), textBox4.Text.Trim(), comboBox5.Text.Trim(), textBox3.Text.Trim(), dateTimePicker1.Text.Trim(); cmdOut= newSqlCommand(str, cn);try cn.Open();
52、cmdOut.ExecuteNonQuery();MessageBox.Show("添加成功!"); displayOutcome(); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); 2、点击“修改“按钮时,触发button6_Click事件,修改outcome表中的某条信息,并在dataGridView中显示,代码如下:privatevoid button6_Click(object sender, EventArgs e) /修改支出项目 String str = Stri
53、ng.Format("update outcome set outproName='" + textBox4.Text.Trim() + "',call='" + comboBox5.Text.Trim() + "',outmoney='" + textBox3.Text.Trim() + "',outdata='" + dateTimePicker1.Text.Trim() + "' where outproID='" + comboBox6.Text.Trim() + "'"); cmdOut= newSqlCommand(str, cn);try cn.Open(); cmdOut.ExecuteNonQuery();MessageBox.Show("修改成功!"); displayOutcome(); catch (SqlException ex)MessageBox.Show(ex.Message); finally cn.Close(); 3、点击“删除“按钮时,触发button7_C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青年创新活动的安全保卫总结计划
- 每周班级工作安排的优化思路计划
- 二零二五经营权抵押合同
- 二零二五版教室租赁合同模板
- 2025年钢筋扫描仪项目合作计划书
- 2025水电安装工程合同
- 2025年棕、藤、草制品项目发展计划
- 2025合同终止协议是否可以自行解除
- 濮阳科技职业学院《生产计划与控制》2023-2024学年第二学期期末试卷
- 三明市泰宁县2025届五下数学期末监测试题含答案
- 人工智能技术与知识产权保护
- 2025-2030便利店行业市场发展现状及发展前景与投资研究报告
- 信息技术与小学教育教学融合
- 提高教学管理质量校长讲话:“2574”工作实施思路!即两大抓手五项重点任务七个落实环节四个质量目标
- 2025届广东省深圳市高三年级第一次调研考试历史试题
- 清理报废渔船合同范本
- 《基于西门子S7-1200PLC的四层电梯控制系统设计》8900字
- 生产安全事故应急演练评估报告模版
- 退伍军人心理培训课件
- 2025年吉林铁道职业技术学院单招职业技能测试题库汇编
- “轻松前行压力不再”-高中生压力管理与情绪调节 课件-2024-2025学年高二下学期压力管理与情绪调节班会
评论
0/150
提交评论