个人记账系统课程设计报告Word文档格式.doc
《个人记账系统课程设计报告Word文档格式.doc》由会员分享,可在线阅读,更多相关《个人记账系统课程设计报告Word文档格式.doc(22页珍藏版)》请在冰豆网上搜索。
1.1开发背景及意义 1
1.2相关技术背景 2
1.3开发及运行环境 4
第二章需求分析 5
2.1设计目标 5
2.2功能需求 5
2.3可行性分析 5
第三章总体设计 7
3.1设计目标 7
3.2系统结构设计 7
3.3系统功能结构图 7
第四章详细设计 12
5.1基本对象设计 12
5.2系统主程序的设计与实现 13
5.3用户登录功能的设计与实现 17
5.4流水账视图的设计与实现 20
5.5消费结构视图的设计与实现 23
5.6流水账明细视图的设计与实现 24
5.7账户设置功能的设计与实现 28
5.8消费趋势堆栈图的设计与实现 29
5.9系统辅助功能的设计与实现 30
第六章软件测试 34
6.1系统测试 34
6.2性能测试 37
6.3验收测试 37
第七章总结 38
参考文献 40
第一章绪论
1.1开发背景及意义
个人理财在我国得到大众的认可和金融机构的重视是近几年的事情。
人们对个人理财的重视程度,与我国市场经济制度不断完善、资本市场长足发展、金融产品的日趋丰富以及居民总体收入水平的逐年上升等等是分不开的。
但是比起美、日等发达国家,我国人民对于个人理财的理解还处于初级阶段。
但是其实理财并不困难,并非非要依靠个人理财专业人士的建议才能身体力行。
只要了解收支状况、设定财务目标、拟定策略、编列预算、执行预算到分析成果这六大步骤,便可以轻松的达成个人的财务管理。
至于要如何预估收入掌握支出进而检讨改进则有赖于平日的财务记录,简单的说记账是理财的第一步。
最近越来越多的人具有了记账的习惯,在上班族、学生族既定收入稳定的情况下,采取“节流”的科学理财方式是非常实际的,也符合个人理财统筹的原则。
家庭、个人的收入支出结构在日益发生变化,单纯地靠在本子上记录收入支出无法满足对于收入支出结构的统计分析,因此以个人用户为目标的记账软件应运而生。
相应的各种面向家庭及个人的理财软件也越来越多。
但是众多个人理财软件操作专业,对于个人用户来说功能过于强大,分析数据用语专业也不易理解。
因此开发一个操作简便、统计结果直观并对个人用户理财有参考价值的记账软件无疑能为广大个人用户提供方便。
在盛行个人理财的美国,70%以上的家庭都拥有一套自己的理财软件,其中最具影响力的理财软件要数Intuit公司开发的Quiken和微软公司开发的Money这两款软件。
现在,Intuit公司已成为世界最大的理财软件与理财咨询公司,Quiken也成为全世界用户最多的家庭理财软件。
欧美家庭平日的财务报表,预算,税务处理,银行账目的查询等等都借助软件的各项功能,使用理财软件帮助家庭打理日常的财务安排已经成为一件很平常的事。
但由于金融体制上的巨大差异,在欧美国家使用的个人家庭理财软件却并没有登陆中国市场。
但是国内的个人理财服务却刚刚起步,各式各样的个人理财软件也如雨后春笋,数不胜数。
至少有上百款的所谓个人理财软件,但实际上99%是个人写的业务小程序,功能比Excel方便一点而已,有的加一点报表功能,充其量叫记账软件。
如果个人理财软件仅有告诉你“柴米油盐酱醋茶”这种流水账的功能,Excel足够了。
但真正做到功能强大,技术专业,市场有影响力的,而且形成规模的,国内只有区区两款,成都的财智和深圳的家财通。
总而言之,在不久的将来家庭使用理财软件也将成为国内家庭的必需品。
能提供简单明了的功能及操作的记账软件更是被广泛需要。
这种软件也会为提升人们的生活质量发挥它最大的效用。
1.2相关技术背景
C语言是国内外广泛使用的一种计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。
对于我们大学生来说,学习这样一门“C程序设计教程”更是必要的。
本课程设计“家庭财务管理系统”就是通过学习《C程序设计》采用VisualC++作为编译环境,是程序编译和运行的。
本系统的总体思想基于结构化的程序设计。
应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能由于主要实现的是管理系统的增、删、改、查等典型功能。
程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的课程设计我们从实践中更进一步的学习和了解C语言,当然由于我们的技术水平有限,在这途中遇到很多问题,程序也未能做到很完美,望见谅!
1.3开发及运行环境
开发工具:
DEVc++
运行环境:
WindowsXP/WindowsVista/Win7
第二章需求分析
需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。
需求分析就是分析软件用户的需求是什么。
如果投入大量的人力、物力、财力和时间开发出的软件却不被人需要,那么所有的投入都是徒劳。
本章将详细阐述对于个人记账系统的需求分析。
以使得本系统可以尽可能地满足大多数个人用户记录日常收支的需要。
2.1设计目标
为了做出满足个人用户的需要的符合质量要求的系统,制定以下设计目标:
Ø
对于日常收入设parents,school,labor,others分类记录收入。
对于日常支出设clothes,food,house,travel,else分类记录
2.2功能需求
为满足用户需要,要求本系统有以下功能:
记录日常收支情况的功能。
查找某天的收支情况的功能。
插入忘记的收支的功能。
显示账单的功能。
统计的功能。
2.3可行性分析
本课题是基于DEV c++环境,实现记账系统的开发。
为了使本设计更具可行性,本系统的设计严格按照软件工程的设计思想要求,首先对系统进行了可行性分析。
为了使分析更为清晰、完整,设计本系统的时,将可行性分析分为经济可行性、操作可行性、技术可行性三个方面进行分析。
1.经济上可行性:
DEV c++是免费开源的软件,使得开发成本大大下降。
而且可重用性高,节省了二次开发的费用。
资源利用率高,成本低。
从成本效益角度考虑十分可行。
2.操作上的可行性:
该设计的模块界面简洁,方便快捷,简单易学。
即便电脑初学者也可以轻松的操作所有系统的功能。
并不需要掌握繁杂的财务专业知识也可以对自己的日常收支有一个大体的把握。
3.技术上的可行性:
该设计结合了软件工程和会计学两个专业的知识,通过相关技术的学习和钻研是对大学几年学习内容的很好的串联。
在给定的时间一定能完成需求说明要求的功能,并且确保软件运行速度及性能均达到用户期望。
第三章总体设计
软件总体设计是把需求分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
从需求分析到总体设计,是一个逐渐扩充模型的过程。
系统总体设计确定实现系统的策略和目标系统的高层结构。
确定设计中的类、关联、接口形式及实现操作的算法。
符合传统面向对象设计的准则:
模块化,抽象,信息隐藏,低耦合,高内聚。
3.1设计目标
本系统为个人用户提供一个记录日常收支情况,并得到相应统计结果的平台,主要实现以下目标:
提供日常收支情况记录查看及修改的功能。
备份账目信息。
3.2系统结构设计
个人记账系统面向的用户主要是个人用户,用户只要记录流水账信息便可经过测算得到相应的统计结果,结合实际调查的其他资料可以得出系统的主要功能和辅助功能,并进行主控界面及基本对象的设计。
根据上述分析,结合用户的具体需求,确定系统主要包括四大功能,分别是流水账、统计报表。
3.3系统功能结构图
具体系统结构如下图:
个人记账系统
统计
查找流水账
流水账
排序流水账
保存读取文件
按金额排序
删除流水账
新增流水账
按时间排序
按日期查找
按序号查找
第四章详细设计
软件详细设计是软件工程的重要阶段,软件详细设计细化了高层的体系结构设计,将软件结构中的主要部件划分为能独立编码、编译和测试的软件单元,并进行软件单元的设计,并最终将影响软件实现的成败。
优秀的详细设计在提高编码质量、保证开发周期、节约开发成本等各方面都起着非常重要的作用,是一个软件项目成功的关键保证。
本章将按照设计实现的顺序介绍各个单元的设计与实现情况。
4.1基本对象设计
按照面向对象的分析与设计方法的基本思想,“万物皆对象”,把“对象”作为解决问题的重心。
根据个人记账系统的具体情况分析主要对象有流水账、统计数据等。
1.流水账对象
流水账对象代表用户所记录的每一笔账目。
每一笔账目信息包括账目发生的年月日信息,账目所属的消费或收入的详细类别,账目名称和金额。
2.统计数据对象
本来其实统计数据对象可以不设立,因为全部的统计数据都可以通过计算得到。
但是考虑到用户查询较为频繁,为了避免每次查询均要计算一次,特别设立了统计数据对象。
实际上,用于保存计算结果的数据量比较小,牺牲了这些许的空间却能换来整个系统的高性能,这无疑是很值得的。
统计数据对象包含了消费结构所需要的各项收支的统计计算结果。
4.2系统主程序的设计与实现
在设计系统主程序时,着重考虑项目的核心功能,并围绕核心功能进行设计。
显然本项目的核心功能就是记账。
用户需要很方便的进行记账活动,并且可以快速看到记账结果。
经过反复考虑设计系统的主控界面如图5-1所示。
4.3流水账视图的设计与实现
1.输入数据创建链表
实现代码如下:
APtrcreat()
{
APtrcPtr;
intnum;
printf("
输入的序号为0时代表输入记录结束\n"
);
输入序号:
"
scanf("
%d"
&
num);
if(num==0)
returnNULL;
else
{
cPtr=(APtr)malloc(sizeof(Account));
cPtr->
num=num;
printf("
输入日期,格式为****.**.**:
scanf("
%s"
cPtr->
date);
输入in或out表示收入和支出:
in_out);
输入金额:
%f"
cPtr->
amount);
输入门类,收入有parents、school、labor、others\n"
"
支出有:
clothes、food、house、travel、else: