版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南城建学院面向对象程序设计课程设计设计说明书课程名称:面向对象程序设计课程设计设计题目:家庭财务管理系统指导教师: 班 级: 学 号:学生姓名:同组人员:计算机科学与工程系2011年6月23日第1章选题21.1题目背景2.1.2系统实现的具体分工2.1.2.1 选题2.1.2.2 团队分工3.1.3开发环境.3.第2章设计内容32.1实现功能.3.2.2概要设计(涉及类的框图) 4.2.3界面设计6.第3章系统实现63.1涉及知识点 6.3.2系统运行(主要运行界面抓图) 7.3.3源程序清单(关键代码)7.第4章测试与实验结果16第5章结束语17.参考文献17.第1章选题1.1题目背景近几
2、年来,随着我国城乡居民收入的增加和生活水平的提高,家庭理财已成为人们居家过日子 的重要内容。社会学家细心的观察到,时下家庭的“小九九”比之计划经济年代,开始发生微妙的 变化。现在的城乡家庭生活发生了明显的变化,人们的收入逐渐拉开档次,消费水平也高了。大多 数家庭关注的是提高生活质量,一方面精打细算,量入为出,把钱用在刀刃上;另一方面保证适当 的娱乐活动、社会交际、智力开发等方面的开支。为此,不少家庭就有中长期财务预算,有基本建 设规划。总的说来,家庭理财必须以量入为出为原则,以财产保值增值为目标,处理好积累和消费的关 系。因此,应树立以下四个观念:第一,资金运动质量观。资金(包括现金,有价证券
3、,存款等)运动,是家庭经济活动的价值 反应,家庭理财应管好用活资金,加速资金周转,提高资金利用效果,力争做到结构合理、偿债能 力强、经济效益高,家庭财务做为资金的载体,应力争实现其保值增值。第二,资金使用责任观。家庭财产作为社会资源的一部分,有责任创造社会财富,履行社会责 任,为适应我国经济发展的要求,家庭可根据自身状况,适当投资,适度超前消费。第三,经济效益观。家庭经济生活的基本目标,是在满足生活最佳需要的基础上,实现家庭财 力的最大化。因此家庭理财要与经济效益挂钩,必须处理好投入与产出的关系,规避各种经济风险,堵塞各种经济漏洞,增收节支,当好家理好财,不断提高经济效益。第四,利益协调观。家
4、庭作为社会的细胞,它无疑又是一个利益结合体。从该意义上讲,家庭 理财实质就是处理协调家庭内部及与各有关的经济方面的经济利益关系。在理财实践中,要坚持公 正、公平、诚实和守信的原则,妥善处理好家庭内部利益关系、家庭与国家及有关经济单位的利益 关系。1.2系统实现的具体分工家庭财务的中心内容账务管理。人们几乎每一天都会经过许多次货币活动。其中包括了买入卖 出实物,娱乐消费,起居饮食消费,还有发放工资,收缴保费等。如果能把各类不同的活动进行分 类,建立不同的账户,分别对活动进行管理,那么无论现在还是将来,你的账务就会清楚明白了。每天,我们对自己账务的操作有如下几类:添加新的数据项,比如今天我卖出了多
5、少元,生活 中,我们就要对自己还有多少元。现在我们把这些工作放到程序里去实现,就是这样的操作。某账 户今天是添加还是减少,比如对元的操作就是减少。做到程序里,把它存放到一个数据表里就可以 了。归结后,账户的操作一般如下:新添,删除,增加,减少,查找,统计。对重要的数据表记录 还可以打印。1.2.1选题现代社会家庭的理财观念进一步提高,理财手段变得更加丰富。随着生活水平和文化水平的提 高,家庭购买电脑的能力和应用电脑的能力开始提高。电脑及其应用的普及化,人们应用电脑进行 家庭财务管理的观念增强,因此,开发一个通用性家庭理财软件已经成为社会需求。本系统是一个 家庭通用型理财软件,系统目标是把适合家
6、庭化管理的各种理财手段及家庭日常收支管理实现计算 机化管理,使对家庭及家庭成员的收支活动更好地进行记录并加以统计分析成为可能,也使家庭理 财变得方便,快捷,全面。1.2.2团队分工表1.1项目分工一览表角色姓名承担的具体任务组长周广敬程序的整体构架,功能实现。组员郭黎阳功能的实现。组员时兴平调试运行程序,查错,改错。1.3开发环境编程工具:Visual C+ 6.0机型:方正电脑处理器名称:In tel( R) Core(TM)2 Duo CPU E7200 2.53GHz硬盘驱动器: WDC WD1600AAJS-22WAAO系统内存:金士顿内存2GB显示卡: NVIDIA GeFORCE
7、9400 GT显示器: 方正科技FG981-W9操作系统:Microsoft Win dows XP Professio nal第2章设计内容2.1实现功能家庭财务的中心内容账务管理。人们几乎每一天都会经过许多次货币活动。其中包括了买入卖出实物,娱乐消费,起居饮食消费,还有发放工资,收缴保费等。如果能把各类不同的活动进行分类,建立不同的账户,分别对活动进行管理,那么无论现在还是将来,你的账务就会清楚明白了。每天,我们对自己账务的操作有如下几类:添加新的数据项,比如今天我卖出了多少钱,生活 中,我们就要对自己还有多少钱,今天所得的利润进行统计。现在我们把这些工作放到程序里去实 现,就是这样的操作
8、。某账户今天是添加还是减少,比如对钱的操作就是减少,如果与这个操作相 关的账户是现金。 做到程序里,把它存放到一个数据表里就可以了。归结后,账户的操作一般如下:新添,删除,增加,减少,查找,转账,统计。2.2概要设计(涉及类的框图)Finance 类private:私有成员变量int tag;/删除标记1:已删0:未删int no;/财务编号 char n ame20; 姓名 int aco unt;int on tag;/ int date;/财务日期public:公共函数声明Finan ce()char *getname() return name; / 获取姓名 int getno()
9、return no; / 获取财务编号 int getacout()retur n aco un t; int gettag() return tag; / 获取删除标记 int get on tag() retur n on tag; int getdate() return date; / 获取日期 void setname(char na); 设置void delfinance() tag=1;/ 删除财务void addfinance(int da,int n,char *na,int nu);/ 增加财务int borrowfinance(); 支出操作void retfinance
10、();/ 收入操作void disp();输出财务Database 类private:私有成员变量 int top; /财务记录指针Finance financeMaxb; / 财务记录public:公共函数声明BDatabase(); 构造函数,将 finance.txt 读到 finance中 void clear(); 全部删除int addfinance(int da,int n,char *na,int nu);/ 增加收入 Finance *query(int financeid);/ 查找财务 void financedata(); 财务维护 void finan ceco un
11、 t(); 财务统计void financecount(int data);/ 按月财务统计void disp(); / 显示财务BDatabase();析构这个类表1业务流程图符号能改变数据值或数据位置的加工或部处理件数据流H用来连接其他符号,指明数据流动方 向rC(存储表示任何种类的联机存储输入/输出表示输入或输出的报表2.3界面设计在用户界面部分,根据需求分析结果,用户需要一个友善界面。在界面设计上,应做到简单明 了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。在界面设计部分,本 系统为用户提供友好、方便、直观、简洁的操作环境。可供用户选择的项目主要有:退出,新增账
12、务,删除账务,查找账务,显示所有账务,总计。第3章系统实现3.1涉及知识点类封装、面向对象程序设计、数组的应用、循环语句的使用、过程化设计的思想等。3.2系统运行(主要运行界面抓图)请选择您頂服筲的类别:逬入家庭理财盲理系统0.退出制作人,同厂敬琴隧阳石兴平_ _ _ _ _ _请选坪哲塁陋堂曹羡世二主茱单眈迎使用姦:庭理財肯理系纭島彳口 IX豢务务有统除 贱贱贱晋间删 出増專找一鲁部 通瀆:r罟聲 0123456-7 8IIr单图3.1系统主界面:服务的类别入家庭咸,员宅输入金额=LS0输入时间:to bib年丁月写成201且丁2S116欢迎进入寡庭财劳收支系统菜单1234567UV务畛计
13、壽务务有统除 贱账M账所囁 出増專拽示恋部 退摯W杳显意鑿系统功能实现3.3源程序清单(关键代码)/程序主函数/#in elude #in elude #in elude #in elude #in elude Finan ee.h#inelude BDatabase.husing n amespaee std;void BDatabase:fi nan eedata()ehar ehoiee;ehar bn ame40;int danum;int finan eeid;int aeo unt;int date;Finance *b;while (choice!=0)eout e ndl;eo
14、utnnttA_A欢迎进入家庭财务收支系统A_A endl;eout厂1e ndl;1 e ndl;eout 1菜单eout idendl;eout 10.退出1 e ndl;eout 11.新增账务1 e ndl;eout 12.更改账务1 e ndl;eout 13.删除账务1 e ndl;eout 14.查找账务1 e ndl;eout 15.显示所有账务1 e ndl;eout 16.总计1 e ndl;eout 17.按时间统计1 e ndl;eout 18.全部删除1 e ndl;eout 19.将信息存入文件1 e ndl;eout丿e ndl;eoute ndl;eout eh
15、oiee;switeh (ehoiee)ease 1:eout 输入财务编号: finan eeid;eout 输入家庭成员名: bn ame;eout 输入金额: aeo unt;cout输入时间:如 2010年7月写成20107da num;addfi nan ce(da nu m,fi nan ceid,b name,aco un t);break;case 2:cout 输入财务编号: finan ceid;b=query(fi nan ceid);if (b=NULL)cout 该财务不存在 endl;break;cout 输入新的家庭成员名: bn ame;b-set name(b
16、 name);break;case 3:cout 读入财务编号: finan ceid;b=query(fi nan ceid);if (b=NULL)cout 该财务不存在delfi nan ce();break;case 4:cout 读入财务编号: finan ceid;b=query(fi nan ceid);if (b=NULL)cout 该财务不存在disp();break;case 5:cout setw(6) 时间setw(6) 编号 setw(18) 家庭成员名 setw(10)收支类别 setw(10)金额endl;disp();break;case 6:finan cec
17、o un t();break;case 7:cout请输入年月 date;finan ceco un t(date);break;case 8:clear();cout删除成功! endl; break;case 9:break;default:cout请重新输入:;main()函数的实现,程序的主界面的引导void mai n() char choice;int finan ceid;BDatabase BookDB;while(choice!=0)system(cls);coutnttO( n _n )O欢迎使用家庭理财管理系统n;coutcout 1厂王采单1e ndl;1 e ndl;
18、cout |dendl;cout 11进入家庭理财管理系统1 e ndl;cout 11 e ndl;cout 10退出1 e ndl;cout丿e ndl;cout choice;switch (choice)case 1:BookDB.fi nan cedata(); break;case O:break;default:retur n;/BDatabaseh头文件Database类的声明#in elude #i nclude #in elude #in elude #in elude Finan ee.h#ifndef BDATABASEH#defi ne BDATABASEHconst
19、 int Maxb=10000;class BDatabaseprivate:int top; /财务记录指针Finance finaneeMaxb; / 财务记录public:BDatabase(); 构造函数,将 finanee.txt 读到 finanee中void clear(); 全部删除int addfinanee(int da,int n,char *na,int nu);/ 增加收入Finance *query(int financeid)/ 查找财务for (int i=O;i=top;i+)if (finan cei.get no()=fi nan ceid &finan
20、cei.gettag()=O)retur n &finan cei;return NULL;void financedata(); 财务维护void finan ceco un t(); 财务统计void financecount(int data);/ 按月财务统计void disp();BDatabase();/析构函数,将 finance写到 finanee.txt 文件中;#en dif/BDatabase .cpp BDatabase 功能函数#in elude #i nclude #in elude #in elude #in elude Finan ee.h#i nclude B
21、Database.hBDatabase:BDatabase()构造函数,将 finanee.txt 读到 finanee中Finance b;top=-1;fstream file(fi nan ee.txt,ios:i n);while (1)file.read(ehar *)& b,sizeof(b);if (!file) break;top+;finan eetop=b;file.elose();void BDatabase:clear() 全部删除top=-1;int BDatabase:addfinanee(int da,int n,char *na,int nu) 增加收入Fina
22、nce *p=query (n);if (NULL=p)top+;finan eetop.addfi nan ee(da ,n,n a, nu);return 1;return 0;void BDatabase:finaneeeount() 财务统计int Bnum=0;int Rnum=0;int Meout=0;int Beout=0;int Reout=0;for(i nt i=0;i=top;i+)if(finan cei.get on tag()=1)Bcout+=fi nan cei.getacout();Bnu m+;finan cei.disp();elseRcout+=fi
23、nan cei.getacout();Rnu m+;finan cei.disp();Mcout=Bcout-Rcout;cout收入总金额Bcoutendl;cout支出总金额:Rcoutendl;cout收支结余:Mcoute ndl;void BDatabase:financecount(int data)/ 按月财务统计int da=data;int Bnum=0;int Rnum=0;int Mcout=0;int Bcout=0;int Rcout=0;for(i nt i=0;i=top;i+)if(finan cei.getdate()=da)if(finan cei.get
24、on tag()=1)Bcout+=fi nan cei.getacout();Bnu m+;finan cei.disp();elseRcout+=fi nan cei.getacout();Rnu m+;finan cei.disp();Mcout=Bcout-Rcout;cout收入总金额Bcoutendl;cout支出总金额:Rcoutendl; cout收支结余:Mcoute ndl;void BDatabase:disp()for (int i=O;i=top;i+)if (finan cei.gettag()=O)finan cei.disp();BDatabase:BDatab
25、ase()/析构函数,将finance写到finance.txt 文件中fstream file(fi nan ce.txt,ios:out);for (int i=0;i=top;i+)if (finan cei.gettag()=0)file.write(char *)&finan cei,sizeof(fi nan cei);file.close();/Financeh Finance 头文件 Finance 类的声明#in elude #i nclude #in elude #in elude #ifndef FINANCEH #define FINANCEHclass Finance
26、private:int tag;/删除标记1:已删0:未删int no;/财务编号char n ame20; 姓名int aco unt;int on tag;/int date;/财务日期public:Finan ce()char *getname() return name; / 获取姓名int getno() return no; / 获取财务编号 int getacout()retur n aco un t; int gettag() return tag; / 获取删除标记int get on tag() retur n on tag; int getdate() return da
27、te; / 获取日期void setname(char na); 设置void delfinance() tag=1;/ 删除财务void addfinance(int da,int n,char *na,int nu);/ 增加财务int borrowfi nance()if (on tag=1)on tag=0;return 1;return 0; /支出操作void retfinance();/ 收入操作void disp();/ 输出财务;#en dif/Finance.cpp Finance函数的功能实现#in elude #i nclude #in elude #in elude
28、#in elude Finan ee.h#i nclude BDatabase.hvoid Finanee:setname(char na) 设置strepy( name ,n a);void Finanee:addfinanee(int da,int n,ehar *na,int nu) 增加财务ehar eh;tag=0;date=da;no=n;strepy( name ,n a);aeo unt=nu;on tag=1;eout记录为支出按(y),收入(其他键) ch;if(eh=Y |ch=y)on tag=0;void Finanee:retfinanee()/ 收入操作on tag=1;void Finance:disp() 输出财务cout setw(6) date setw(6) no setw(18) n ame setw(10)(ontag=1?收入:支出) setw(10)aeountendl;第4章测试与实验结果我在这次课程设计中种主要负责程序的整体架构和财务库类的功能实现。通过思考,我发现针对本题目对账目进行处理比对用户进行管理要简便许多,于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年成都经开区龙泉驿区面向社会公开招聘医疗卫生事业单位员额人员139人备考题库完整答案详解
- 2025年蚌埠市医调委公开选聘专职人民调解员备考题库及参考答案详解
- 急性胰腺炎的护理信息技术应用
- 配网自动化安全责任制度
- 连锁企业安全责任制度
- 医药质管员岗位责任制度
- 宾馆监管责任制度范本大全
- 接警员岗位目标责任制度
- 中层干部包班责任制度
- 锯床操作工岗位责任制度
- 全国妇联所属在京事业单位招聘笔试真题2025
- 第1课《社戏》课件(内嵌视频) 2025-2026学年统编版语文八年级下册
- 2026年潍坊工程职业学院单招文化素质模拟试题及答案
- 2026年九江职业大学单招职业适应性测试题库含答案详解(研优卷)
- 2026届高三二轮复习全攻略:精准提分与高效备考
- 遗传学视角下的哮喘精准诊疗策略
- 网络数据中心运维规范手册(标准版)
- 法拍培训教学课件
- 2026年常州工程职业技术学院单招综合素质考试模拟测试卷新版
- 腹膜透析室规范制度
- 《中国养老金精算报告2025-2050》原文
评论
0/150
提交评论