家庭财务管理系统设计与实现.docx

上传人:b****6 文档编号:10184229 上传时间:2023-02-09 格式:DOCX 页数:45 大小:471.21KB
下载 相关 举报
家庭财务管理系统设计与实现.docx_第1页
第1页 / 共45页
家庭财务管理系统设计与实现.docx_第2页
第2页 / 共45页
家庭财务管理系统设计与实现.docx_第3页
第3页 / 共45页
家庭财务管理系统设计与实现.docx_第4页
第4页 / 共45页
家庭财务管理系统设计与实现.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

家庭财务管理系统设计与实现.docx

《家庭财务管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《家庭财务管理系统设计与实现.docx(45页珍藏版)》请在冰豆网上搜索。

家庭财务管理系统设计与实现.docx

家庭财务管理系统设计与实现

 

湖南第一师范学院

毕业论文(设计)

 

题目家庭财务管理系统设计与实现

学生姓名

学号

系(部)

专业班级

指导教师

湖南第一师范学院毕业论文(设计)指导教师评语

[主要对学生毕业论文(设计)的工作态度,研究内容与方法,工作量,文献应用,创新性,实用性,科学性,文本(图纸)规范程度,存在的不足等进行综合评价]

 

指导教师:

(签名)

年月日

指导教师评定成绩:

 

 

摘要

家庭财务管理系统的设计采用EditPlus作为编辑器,linux下GCC编译器,版本为4.1.220070626(RedHat4.1.2-14)作为开发环境。

采用了两个文本文件来保存用户使用过程中产生的数据进行测试运行。

具有:

添加,查询,删除,修改,修改密码,更换家长等的功能。

实现创建编号链接各功能列表,输入家庭成员收入信息情况,以及增加,删除,修改,还具有按具体时间指定姓名查找个人财务情况,按总计排序浏览所有用户财务信息等。

同时还设计了家长管理权限,实现用户的密码登陆功能,更加保密家庭财务信息等。

本系统为家庭的管理者提供充足的财务信息添加和查询手段,大大的方便家庭的管理者的合理理财。

是一个较具实用价值的推广软件。

关键词:

家庭财务;管理系统;linux操作系统

绪论

家庭财务管理系统是专门为一般家庭的财务管理所设计服务的,是每个家庭都该拥有的一款软件。

本系统具有界面清晰、操作简易、等特点,考虑到人们的一些操作习惯,提高了其的可操作性,完全能够满足你的需求。

作为计算机应用的一部分,使用计算机对家庭的各项事务进行管理,具有手工管理所无法比拟的优点,其优势已非常明显。

例如:

查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大的节省浪费在处理家庭事务上的时间,也是标志着一个家庭现代化,能够更好的融入社会。

本系统本着实用的原则,完成家庭财务管理系统中包括家庭成员信息的添加和删除、收支信息的添加、删除及帐户的管理,及相关数据的统计、查询、修改等全过程的工作。

总之,该系统对家庭财务的管理实现了规范化,非常适合于大部分家庭的的日常财务管理。

本系统编制过程中充分考虑了计算机的优越性,对于不是计算机专业的人员来说,只要阅读了操作说明,也可以很方便的进入系统和使用本系统提供的功能。

遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,任何一个系统都是在不断的发展中完善的,本系统也不例外,通过学习C程序设计后,采用linux环境下的GCC编译器作为编译环境,使程序编译和运行的。

本应用程序设计过程中使用基本控制结构,如循环和选择,着重实现管理系统的增、查、删、改等典型的管理功能。

程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的毕业论文编撰使我从实践中更进一步的学习和熟练了C语言的编写。

本家庭财务管理系统在设计完成后进行了试运行,运行结果获得了大家的认可。

第1章系统需求分析

1.1系统目标

本系统要达到的目标有以下几点:

1.验证用户和密码的正确性再登入,以及修改密码和退出系统;

2.保存每次输入的收支记录,并提供两种查询方式:

按姓名和按年份;

3.家庭现金的收入/支出进行管理,实现收支记录的增加,修改,查询,删除;

4.整个收支记录保存为文本文件。

1.2系统可行性分析

可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。

从现在应用的技术方面、管理者和用户的操作方式方面研究家庭理财系统的可行性和必要性。

家庭理财系统的实施,将很大程度上提高现代家庭的理财效率,使得现代家庭能够更加方便的对自己的财务进行个性化的管理。

1.2.1技术可行性

技术可行性研究的任务,是从总体上鉴别和选择技术系统,是研究现有的技术条件能否顺利完成开发工作,硬、软件配置能否满足开发的需求等等。

本系统的开发使用Linux操作系统中得红帽企业版五作为系统开发的开发环境,linux系统有如下的特性:

自由与开放,配置要求低廉,功能强大而稳定,独立工作[1]等。

运用C语言程序设计语言,C是一种融合了控制特性的现代化语言,其设计使得用户可以自然地采用自顶向下的规划,同时C还具有高效性,可移植性,强大的功能和灵活性,面向编程人员等特点[2]。

非常有利于以后对新系统的扩展与修改。

综上所述,本系统为一个小型的家庭理财系统,所耗费的资源非常的小,现行的电脑无论是硬件还是软件都能够满足条件,因此,本系统在技术上是可行的。

1.2.2经济可行性

进行软件开发项目成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发,这些即为经济可行性。

如今,随着计算机的大量普及,各种软件的开发成本越来越低,价格也越来越底。

本系统也是这样,开发成本较低,只是需要一台配置一般的计算机,该系统运行时占计算机的资源也不多,但并不会因为开发成本低而造成系统功能性能的下降。

相反,随着计算机技术的发展,各种实用软件的性能日渐提高。

家庭理财管理系统廉价的开发成本,却能够为居民带来相当大的实惠和方便。

主要表现在:

(1)本系统是一个拥有多种实用功能的家庭理财管理信息系统,它集成了家庭成员管理、收入管理、支出管理、密码管理等多种功能,具有较强的实用性和方便性。

(2)本系统的运行可以大大提高居民管理财务的效率,减少不必要的人力和物力。

(3)本系统具有查询和统计功能,能够查询到用户在一段特定时间内收入和支出的情况。

(4)本系统的运行可以大大的提高家庭的工作效率。

由此可以得出,本系统在经济上是具有可行性的。

1.3系统需求分析方法

1.3.1系统需求分析概述

在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时,为描写新系统的目的、范围和定义所要做的所有的工作[3]。

需求分析是软件工程中的一个关键过程。

在这个过程中,系统分析员和软件工程师确定顾客的需要。

只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。

需求分析阶段的任务是确定软件系统功能。

需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

它是软件工程中的一个关键过程。

在这个过程中,系统分析员和软件工程师必须确定顾客的需要。

只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。

如果在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。

1.3.2系统需求分析方法

在管理信息系统开发实践中,系统分析人员使用了多种系统分析方法,三种非常普通的系统分析方法是:

结构化方法、信息工程方法以及面向对象的方法等。

其中,结构化分析方法自从20世纪70年代末提出以后,由于其简单、清晰、易于学习、掌握和使用的特点,成为长期以来被广泛使用的分析方法[4]。

结构化系统分析是指用一组标准的准则和工具从事分析工作,即有组织、有计划、有规律地进行分析。

它是一种利用系统工程的思想和有关结构的概念、自顶向下划分模块、逐步求精的分析方法。

该方法把研究对象看成一个系统,用分解和抽象这两个基本策略来控制系统的复杂性。

它有三个要点:

(1)分解和抽象;

(2)图表描述;(3)模型转换。

1.4系统功能需求分析

家庭理财管理系统是典型的信息管理系统,其开发功能主要包括:

通过计算机管理个人财务,实现无纸化理财;通过查询分析,统计出各项数据,分析出生活中的浪费和节约的地方,通过强大的查询和索检高效的索检出数据,提高办事效率。

本系统主要有以下功能:

(1)对家庭成员的管理。

相关信息存在“peoplelist.txt”中,普通成员可以对自己的密码进行修改,家长在密码修改功能上的基础上可以添加或删除成员。

(2)日常财务管理,包括日常收入和日常支出,即记下日常的收入和日常的支出。

相关信息存入“thinglist.txt”中,均可以实现查询、添加、删除、修改功能。

(3)理财分析,实现分类查询,即按类别查询收支明细。

 

第2章系统总体设计

2.1系统设计方法

系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块。

模块化程序设计就是把一个大程序按一个人能理解的规模进行分解的一种方法。

模块化指的是把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些组成部分称为模块。

系统设计是本系统开发的重要阶段,它直接影响到目标系统的质量,是整个开发工作的核心。

系统设计阶段的主要任务是:

在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型设计。

本系统在设计过程中,充分考虑了系统的适应性和效率性,符合系统设计的原则。

2.2系统架构

通过对家庭理财功能的分析,本系统分为系统登录界面,浏览成员财务信息,增加新的家庭成员,查询成员收支信息,添加成员收支信息,修改成员收支信息,删除成员收支信息,收入支出项目管理界面,查询收支信息管理界面,查询明细界面,成员收支排行,更换家长,删除家庭成员信息,修改密码。

系统结构设计如图1。

图1系统结构设计

2.3系统功能模块细分

根据上述系统总体架构思想的分析,可将系统分为以下三大部分,系统功能模块如图2。

(1)系统管理模块:

负责对家长和成员密码等进行管理;

(2)基础数据管理模块:

负责对家庭成员和财务信息进行管理;

(3)日常收支管理模块:

负责对日常收入和支出进行管理。

图2系统功能模块

 

第3章系统实现

3.1系统主界面

用户进入系统时要输入正确的用户名和密码,系统从后台peoplelist.txt文件中检索是否有相对应的数据信息,若输入正确则进入主界面,否则提示错误,需重新输入。

选择取消退出登陆系统。

模块流程图如图3所示。

 

图3模块流程图

登录界面如图4所示。

图4登录界面

输入正确的用户名和密码登录,进入系统主界面,如图5示。

图5系统主界面

3.2系统管理模块

进入系统主界面“增加新的家庭成员”、“更换家长”和“退出本菜单”四个选项,各选项界面如图6,7,8,9所示。

图6增加新成员界面

相关代码:

Carry_Data();

printf("\n[添加新成员]\n\n");

printf("\n>请输入新成员姓名:

");

scanf("%s",peop[n].username);

for(i=0;i

{//先判断将要添加的成员是否系统中已经存在了的成员

if(strcmp(peop[i].username,peop[n].username)==0)

{

j=0;

break;

}

}

if(j==0)printf("\n该成员已存在。

\n");

图7更换家长界面

图8删除家庭成员界面

if(k==1)//k标记是指要删除的成员存在系统中

{

for(i=0;i

if(strcmp(peop[i].username,name)==0){

g=i;//用g保存序号

p=1;//当找到该成员的具体位置时用p标记

break;

}

if(p==1)

{//由于我采用的结构体存储用户信息所以删除其中某个成员后,其后的成员要依次前移一位

n=h-1;

fp=fopen("peoplelist.txt","w");

fprintf(fp,"%d\n",n);

for(i=0;i

fprintf(fp,"%s%s%s\n",peop[i].username,peop[i].code,peop[i].flag);

for(i=g+1;i

fprintf(fp,"%s%s%s\n",peop[i].username,peop[i].code,peop[i].flag);

fclose(fp);

printf("\n删除%s成员成功\n",name);

}

}

图9退出本菜单界面

3.3基础数据管理模块

进入系统主界面后选择对应序号查询,添加,修改和删除四个成员收支信息功能,设计分别如图10,图11,图12,图13所示。

图10查询收支信息界面

图11录入收支信息界面

printf("\n[录入收支信息]\n\n>请按以下顺序录入成员收支信息:

\n");

printf("\n>请输入姓名:

");

scanf("%s",name);

for(i=0;i

if(strcmp(peop[i].username,name)==0){k=1;break;}

if(i==n)k=0;

if(k==0)printf("\n不存在该成员,请先添加其为家庭成员。

\n");

if(k==1)

{

strcpy(thi[m].name,name);

printf("\n>请输入年份:

");

scanf("%d",&thi[m].year);

printf("\n>请输入月份:

");

scanf("%d",&thi[m].month);

for(i=0;i

{

if(strcmp(peop[i].username,name)==0&&thi[i].year==thi[m].year&&thi[i].month==thi[m].month)

{

printf("\n已存在%d年%d月的收支信息。

\n录入失败。

\n",thi[m].year,thi[m].month);

p=0;

break;

}

}

图12修改收支信息界面

printf("\n请输入需要修改的收支信息的具体时间:

\n年份月份\n");

scanf("%d%d",&year,&month);

for(i=0;i

{//如果时间信息不匹配则不能修改收支信息,防止无意修改信息

if(thi[i].year==year&&thi[i].month==month){p=1;break;}

}

if(p==0)

printf("\n没有该时间的收支信息。

\n\n修改失败。

\n");

图13删除收支信息界面

 

第4章系统的测试与维护

4.1系统运行环境

硬件:

建议采用奔腾133以上的个人电脑,1G以上内存,40G以上的硬盘。

软件:

运行环境RedHatEnterpriseLinux5操作系统。

4.2系统测试

4.2.1系统登录测试

输入错误的密码看系统能否进入本系统,重复多次。

在口令中输入一些不规范的符号,看系统的处理方式。

按正确的用户名和密码检查登录是否成功。

4.2.2数据保存测试

根据程序的输入项输入,然后执行一次,如果成功,查看系统的状态。

根据恢复的限制条件,测试其他用户正在使用时,数据库能否正常恢复,关闭其他正在使用的用户,数据库的恢复是否成功。

4.2.3系统功能测试

根据限制条件添加成员时,看系统的判断是否有效;增加和修改时,看是否能够更新成功;修改成员信息时,看成员编号及标记(Flag)是否被无意修改。

新增加的成员分配家长权限后,查看该新家长成员是否具有家长应该有的操作权限,比如再新增用户,添加收支,修改,删除收支信息等。

按照菜单提示,选择相应操作的数字,添加收支信息数据,查看有无错误;进行查看收支信息,修改收支信息,删除收支信息操作,看是否成功,收支信息数据添加后的结果是否准确。

家长身份:

修改密码,尝试更新后的密码是否可以再次登录,更换一下家长身份等

普通成员身份:

具有查询年度收支信息,查询其他成员收支信息,家庭成员收支排行,修改密码等。

本程序中,添加的收支信息或成员名字时不允许重复,输入信息格式必须与我们定义格式相符,不相符时提示输入错误操作不成功,完成每一个添加、修改、删除动作保存后文本文件”peoplelist.txt”及”thinglist.txt”文本文件中的数据会相应更新。

4.3系统运行情况

进入系统操作登陆界面后,输入正确的姓名,密码登陆系统。

如果是家长身份的成员登陆后,则出现如图14所示菜单:

图14家长身份登录界面

选择功能简介

Ø1.浏览成员财务信息

根据系统提示,输入浏览信息的年份。

系统会显示相应信息,如无则提示无该年的收支信息。

Ø2.增加新的家庭成员

根据系统提示,增加新的家庭成员。

按照格式依次输入(姓名,密码,以及是否作为家长)

Ø3.查询成员收支信息

根据系统提示,查询指定成员的收支信息。

即显示相应信息。

Ø4.添加成员收支信息

根据系统提示,添加指定家庭成员收支信息。

按照格式依次输入(姓名,年份,月份,收入,支出),如果指定时间的信息已经存在则提示录入失败。

Ø5.修改成员收支信息

根据系统提示,输入修改收支信息的成员姓名,以及要修改的年份,月份,更新后的数据。

Ø6.删除成员收支信息

根据系统提示,删除指定成员指定时间的收支信息。

Ø7.成员收支排行榜

根据系统提示,输入指定年份,月份,系统将自动显示所有家庭成员该时间段的收支信息,并按照总计由大到小排序。

Ø8.更换家长

根据系统提示,输入登录系统的家长姓名,以及用户想要更改为现任家长的新成员姓名。

Ø9.删除家庭成员

系统自动显示当前系统中存在所有家庭成员姓名,家长按照需求输入要删除的成员姓名。

Ø10.修改密码

根据系统提示,输入需要修改密码的用户名,先判断是不是该用户知道的情况下,所以要先验证性的输入旧密码,待验证成功后则可以输入新的密码。

Ø11.退出本菜单

系统自动显示退出家长操作界面,并反馈给用户是否返回,或者退出系统

如果是普通成员身份的成员登陆后,则出现如图15所示菜单:

图15普通成员身份登录界面

功能简介:

Ø1.浏览成员财务信息

根据系统提示,输入浏览信息的年份。

系统会显示相应信息,如无则提示无该年的收支信息。

Ø2.查询成员收支信息

根据系统提示,查询指定成员的收支信息。

即显示相应信息。

Ø3.家庭成员收支信息

根据系统提示,查询指定年份,月份的收入支出信息。

即显示按收入由大到小排序和按支出由大到小排序的两张表。

Ø4.修改密码

根据系统提示,输入需要修改密码的用户名,先判断是不是该用户知道的情况下,所以要先验证性的输入旧密码,待验证成功后则可以输入新的密码。

Ø5.退出本菜单

系统自动显示退出家长操作界面,并反馈给用户是否返回,或者退出系统。

 

结束语

经过近一个多月的系统分析和设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要耐心、要善于运用已有的资源来充实自己。

同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样对于系统而言才能更加有效。

通过此次毕业论文的编撰,我不但对linux下GCC编译环境有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,同时最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我将来走上工作岗位受益匪浅。

另外,在整个开发的过程中,本人一直都在坚持着。

尽管本管理系统存在着一些瑕疵,但其功能全面、易于日后程序更新、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。

相信本家庭财务管理系统是家庭用户进行财务管理中必不可少的管理软件,通过开发这个系统,我掌握了C语言编程的各种应用技巧,大大增加了我对C语言的熟悉程度,巩固了之前我对C语言程序设计的学习,但在这次毕业论文中的最大收获并不是掌握这些开发工具及语言的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。

总之,家庭财务管理系统的设计为我提供了一个良好的学习的平台,提供了坏境和基础,因为毕业论文的编写,使我更加全身心投入到了整合所学各种知识,更能学以致用,这对我来说意义是非凡的。

在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足,我将会一如既往的努力。

 

参考文献

[1]鸟哥编著鸟哥的Linux私房菜基础学习篇[M].第二版.北京:

人民邮电出版社,200716

[2]StephenPrata云巅工作室译.CPrimerPlus[M].北京:

人民邮电出版社,2005

[3]2012.4.1

[4]JohnW.Satzinger朱群雄汪晓男等译系统分析与设计[M]北京:

机械工程出版社,200290

[5]李春葆等著.数据结构与算法[M].北京:

清华大学出版社,2005

[6]谭浩强著.C程序设计教程[M].北京:

清华大学出版社,2007.7.

致谢

非常感谢赵晋琴老师一直以来对我们的悉心指导,本文是在我的指导师赵晋琴老师的精心指导下完成的。

无论在选题、确定研究内容,还是在研究过程中都凝聚了赵老师的辛勤与汗水。

导师渊博的知识、活跃的学术思想、严谨求实的治学态度、丰富的教学经验、敏锐的科学前瞻性使我受益很多,赵老师的谆谆教海和精心指导将使我永生难忘。

赵晋琴老师教导我们学习的同时还指导我们正确的工作态度和方法,从他身上我们每个组员都可以感受到一个真正科学工作者的一丝不苟,这对我们一生都受益匪浅。

在此我要向赵晋琴老师表示最诚挚的敬意和谢意。

 

附录

/*

*家庭财务管理系统

*作者:

DaHai时间:

2012/4/2

*/

#include

#include

#defineMAXSIZE100//定义家庭成员人数

#defineMAXINFOR10000//定义收支信息容量

structpeople//家庭成员登录信息结构

{

charusername[200];//用户名(也是姓名)

charcode[200];//密码

charflag[200];//标志0为普通成员,1为家长

}peop[MAXSIZE];

structthing//成员收支信息结构

{

charname[30];//姓名

intyear;//年份

intmonth;//月份

intincome;//收入

intoutput;//支出

}thi[MAXINFOR];

intWrite_Save();//将数据写进文件中

intCarry_Data();//将数据从文件中读出

intInit_Master();//初始化家长

intAdd_People();//增加新的家庭成员

intAdd_Thing();//录入成员收支信息

intDele_People();//删除家庭成员

intDele_Thing();//删除家庭成员收支信息

intChange_Thing();//修改收支信息

intChange_Host();//更换家长

intBrowse_Peop();//浏览家庭成员信息

intFind_Info

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1