ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:438.65KB ,
资源ID:20125674      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20125674.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计家庭财务管理系统.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计家庭财务管理系统.docx

1、C语言课程设计家庭财务管理系统 HUNAN UNIVERSITY程序设计训练报 告 课程 名称 家庭财务管理系统 学生姓名 学生学号 专业班级 指导老师 起 止 时 间 湖南大学课程训练设计报告家庭财务管理系统摘 要本报告介绍了一个运用C语言知识和Microsoft Visual c+ 6.0创建的用于家庭各成员财务情况管理的家庭财务管理系统。在该系统中创建了包含增加,删除,修改,查找,浏览的功能总列表,包含了输入家庭成员收入信息情况,增加信息,删除信息,修改信息,创建姓名查找和编号查询便于用户查找个人财务情况,创建合计排序浏览用户可从总体上浏览全家庭财务信息情况。1 绪 论 13 可行性分析

2、 25方案设计分析 56系统运行情况 141出现的问题。 14总结 15致谢 15参考文献 15 1 绪 论家庭财务管理对于每一个家庭来说有着重要的意义,随着科技的发达,财务的管理由原先的手写账本发展到现今的电脑系统输入并统计,不仅大大减少了时间与精力,也是财务管理更系统化,便捷化,清晰化,减少金钱上的缺失。家庭财务系统主要对家庭的各项财务收支管理进行在计算机上的信息存储和处理,从而简化用户的工作量本报告设计的家庭财务管理系统主要是负责给家庭成员提供了一个在Windows操作系统上运行的管理平台,家庭财务管理者可以对其成员编号、姓名以及收入、支出构成进行增加、删除、修改,查找等管理操作,还可以

3、对全家庭财务合计排序浏览。C语言是国内外广泛使用的一种计算机语言,学会使用C语言进行程序设计是计算机工作者的一项基本功。对于我们大学生来说,学习这样一门“C程序设计教程”更是必要的。本课程设计“家庭财务管理系统”就是通过学习C程序设计采用Visual C+作为编译环境,是程序编译和运行的。本系统的总体思想基于结构化的程序设计。应用高级语言程序设计中的基本控制结构,如循环和选择,着重实现管理系统的增、删、改、查等典型的管理功能。程序设计是一门实践性很强的课程,既要掌握概念,又要动手编译,还要上机调试运行,通过这一次的课程设计我们从实践中更进一步的学习和了解C语言,当然由于个人的技术水平有限,在这

4、途中遇到很多问题,程序也未能做到很完美,望见谅! 2 问题定义家庭财务管理系统的问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”不知道问题是什么就试图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果可能是毫无意义的。尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最容易被忽视的一个步骤。下面就将“家庭财务管理系统要解决的问题做是什么?”这个问题做出详细的分析。随着社会主义的不断发展与进步,人们的生活部断完善,家庭的收入和支出也越来越多,当然也不能盲目的追求时尚,高估了自己的能力,这就需要明确自己的收支情况,对家庭财务的来龙去脉有个大致的了解。做到心中有

5、数。经过我分析初步得出以下几个方面是家庭财务管理系统必须要解决的问题,主要包括:1:增加成员财务信息记录2:删除成员财务信息记录3:修改成员财务信息记录4:按成员姓名查询财务信息5:按成员编号查询财务信息6:查询全部成员信息 3 可行性分析进一步明确系统的目标,规模与功能。对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出拟定开发系统的初步方案与计划。可行性研究是对系统进行全面,概要的分析。此项活动开始时,要对初步调查的结果进行复审,重新明确问题,对所提系统大致规模和目标及有关约束条件论证,并且提出系统的逻辑模型和各种可能方案。当今社会是一个讲求效率的社会,时间就是金钱。开发简单,易

6、于操作的,管理软件不仅可以节省时间,还可以避免浪费人力,物力,提高效率。待开发系统是一个对家庭理财管理系统,简单,易学,将成为家庭理财的的好帮手。并非所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模或时间限制之内解决。如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软件资源和经费,都是无谓的浪费。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能解决。必须时刻记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。现从下述三个方面分析家庭理财系统问题的可行性。(1)技术可行性就技术可行性来说:我们已经学习了VC,具备了开发和维护的实力。

7、因此只要加上认真的编译、测试,这个家庭管理系统绝对可以实现的,开发和维护该系统也是可行的。(2)经济可行性。就经济可行性来说,由于我们为了学习每个人都有配置很算差不多的个人电脑,并组建了内部局域网,因此硬件上是没有问题的。而软件上由于是自己开发,所以开发及日后的维护费用并不高,在经济条件方面也是允许的。再加上由于家庭财务管理系统是各个家庭管理自己家的的财务,所以他不会涉及联机的,只要在自己家中的计算机按上家庭理财系统就可以使用。操作简单,功能强大。是每个家庭必不可少的好帮手。所以家庭理财系统是很值得开发的一款家庭助手软件。(3)操作可行性。就操作可行性来说,该系统能够实现家庭理财功能的要求,使

8、家庭成员能够及时、全面的掌握财产的流动情况、财产的使用、收支情况等。能够在很大程度上节省家庭在财产管理方面花费的精力。综上所述,证明我们开发该系统是切实可行的。总结:由于投资效益比远大于100%, 技术、经济、操作都有可行性,可以进行开发。4系统需求1编写目的本需求的编写目的在于研究家庭理财系统软件的开发途径和应用方法。一个好的需求分析可以为以后工作减轻很多不必要的花费。它是软件开过程中最重要的任务之一,如果需求分析完成的不好,这个软件很有可能是没有作用的,所以我们一定要编写好需求分析。2 背景及范围本项目的名称:家庭财务管理系统。本项目的任务提出者是很多家庭账务繁琐的家庭本产品能具体化、合理

9、化的管理家庭输入、开支、收入信息记录,用结构化的思维方式去了解计算机的基本工作原理。3确定对系统的综合要求(1)功能需求: 主要功能:提供家庭日常收入、开销的详细情况。账户管理等多项功能。输入要求:数据完整,详实。输出要求:简捷,快速,实时。(2)意图a. 帮助家庭管理财务信息.b. 为了给家庭人员减轻负担. c. 为了促进国家经济建设的发展.3)目标通过本系统软件,能帮家庭成员快速方便的对家庭财务管理、查看等需求操作时方便家庭财务记录管理,使散乱的各种记录,档案能够具体化,直观化、合理化。(4)使用及范围本软件适用于每个财务复杂的家庭,它是比较完善的系统管理软件,对家庭财务信息可以随时输入,

10、更改,查看。(5)背景 现在大多数家庭都在为麻烦的财务管理发愁,如果有一个专门管理软件来管理这些账务,岂不为家庭成员减少很多负担?(6)用户特点 本软件的使用对象是家庭成员只要稍微懂得计算机基本操作就可以利用该软件进行所需操作。 5方案设计分析 1、结构体设计用于存放每个家庭成员的序号、姓名、收入、支出、合计方面信息。typedef struct long no; /*每一组输入的编号*/ long Number; /*家庭成员编号*/ char Name20; /*家庭成员姓名*/ float in; /*家庭成员收入*/ char intime10; /*收入时间*/ float out;

11、 /*家庭成员支出*/ char outtime10; /*支出时间*/ float sum; /*总计*/money;由编号、姓名、收入、支出构成用于描述一个有机整体家庭成员财务信息系统,为了表明这些字段不是孤立的,而是共同描述一个完整的事物,因此用结构体这种形式来体现。2.函数设计为实现家庭财务管理系统用了下列自定义函数tianjiashouzhi(); /*增加成员财务信息记录*/shanchushouzhi(); /*删除成员财务信息记录*/xiugaishouzhi(); /*修改成员财务信息记录 */xingmingchaxun(); /*按成员姓名查询财务信息*/bianhaoc

12、haxun(); /*按成员编号查询财务信息*/chaxunquanbu(); /*查询全部成员信息*/家庭财务管理系统流程图:12 34系统运行界面:删除家庭成员财务信息6系统运行情况1出现的问题。 刚开始输出时乱码,上网搜了才知道是数据溢出。 数据的输入与输出结果不一致。 删除、修改功能不能如期实现。2相关的解决方法 通过不断试验,删除多余结构体; 查找错误,严格定义变量类型; 不断的进行调试及改进。3目前的运行情况针对一系列运行过程中出现的问题,我们进行了相应的修改,到目前为止,该管理系统基本上可以正常运行,实现其预期的功能管理,但仍有许多可以改进的地方。4系统操作说明进入系统操作界面后

13、,输入06选择功能。 选择1根据系统提示,添加家庭成员收支信息。 选择2根据系统提示,删除家庭成员收支信息 选择3根据系统提示,修改家庭成员收支信息 选择4根据系统提示,按姓名查找家庭成员收支信息 选择5根据系统提示,按编号查找家庭成员收支信息 选择6查看全部家庭成员收支信息。7系统维护一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,在这期间会需要程序员来维护这个软件正常工作,因此清晰简洁的文档是必不可少的,而不仅仅是只需要源代码。总结通过本此的课程设计,让我们更熟练地掌握了C程序设计教程的知识,熟悉了一个管理系统的运用和操作,熟悉如何采用Visual C+作为编译环境

14、,使程序成功的编译和运行,此次我们所设计的家庭财务管理系统可应用于家庭的简单管理,对家庭各成员的财务收入,支出进行增加,删除,修改,按姓名查询,按编号查询和浏览全部家庭成员财务信息。 在这次课程设计中由于对知识掌握的不够熟悉,专业技术水平的有限,从程序的初步设计,编辑到程序的运行,从一开始的按模块撰写,到各模块的链接运行,我遇到很多问题,有过放弃的想法,可最后还是坚持到了最后,直到把程序写完,编译调试完成。后来回头看自己的成果,虽然不容易,但是心里还是很高兴的,毕竟是自己亲手做的。通过这次课程设计,我更加深入地学习了VC语言这门课程,让我学了一个学期的知识得以应用,增强了我求知的欲望和学习的兴

15、趣,想对VC语言课程有更多的了解。致谢非常感谢老师一直以来对我们的悉心指导,从最初的选题,到辅导检查进展情况,到程序综合调试,再到最后的设计报告,老师牺牲休息时间给了我们耐心的知道和无私的帮助,老师的这种无私奉献的敬业精神令人钦佩,在此我们向老师表示我们最诚挚的谢意。同时,感谢同学对我的帮助,帮助我检查程序错误,调试程序,才有了今天我的成功。非常感谢大家。参考文献 visualC+项目案例设计 清华大学出版社.项目案例导航 科学出版社还有XX文库,XX知道。程序源代码:#include#include#include#include#include#define SIZE 100typedef

16、 struct long no; /*每一组输入的编号*/ long Number; /*家庭成员编号*/ char Name20; /*家庭成员姓名*/ float in; /*家庭成员收入*/ char intime10; /*收入时间*/ float out; /*家庭成员支出*/ char outtime10; /*支出时间*/ float sum; /*总计*/money;void tianjiashouzhi()/*添加财务收支信息记录*/ FILE *fp = NULL; /*定义指向文件的指针*/ money Tm,ch; /*定义进行操作时的临时结构体变量*/ char Da

17、40,next; /*存储财务收支信息的文件名*/ int count=1; /*计算可输入数据的最大范围*/ printf(n 请输入要添加财务收支信息的文件名:); gets(Da); begin:count=1; fp=fopen(Da,ab+); if (fp=NULL) /*判断文件是否成功打开*/ printf(n 打开文件 %s 失败!按任意键结束!n,Da); exit(0); while(fread(&ch,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据并判断是否成功*/ count+; fclose(fp); /*如果成功打开或创建文件

18、,则提示输入家庭成员序号、姓名、收入、支出等相关信息*/fp=fopen(Da,ab+);/*ab+:当文件存在时,追加,当文件不存在时,创建*/printf(输入编号,姓名,收入,收入时间,支出,支出时间,输入编号为0时结束!n); printf(编号不超过九位,姓名不超过二十个字符。n); while(countSIZE) printf(n对不起,输入的数据量超过最大允许的范围%dn,SIZE); fclose(fp); system(cls); printf(您输入的数据已成功存储在 %s 文件中。n,Da); printf(文件全部内容如下:n); fp=fopen(Da,rb); /

19、*只读方式打开二进制文件*/ if (fp=NULL) /*判断是否打开成功*/ printf(n打开文件%s失败!按任意键结束!n,Da); exit(0); while(fread(&Tm,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据,是否读取成功*/ printf(#n); printf(成员编号:%ldn,Tm.Number); printf(成员姓名:%sn,Tm.Name); printf(成员收入:%f元n,Tm.in); printf(收入时间:%sn,Tm.intime); printf(成员支出:%f元n,Tm.out); print

20、f(支出时间:%sn,Tm.outtime); printf(收支总和:%fn,Tm.sum); printf(#n); printf(nn); fclose(fp); /*询问是否继续*/ printf(n是否继续?(是:y/Y; 否:n/N); next=getche();system(cls); putchar(n); if ( next=y|next=Y) goto begin;void shanchushouzhi() /*删除家庭成员收支信息记录*/ int i,result=0; long delnum; /*存放要输入的要删除家庭成员序号*/ money Tm; /*定义进行操

21、作时的临时结构体变量*/ money sSIZE; int recNumber; /*原文件中的记录数*/ char Da40,next; FILE *fp; /*fp指针指向存储数据的文件名*/ printf(n请输入存储数据的文件名,按回车键结束!n); gets(Da); begin: /*以二进制读的方式打开文件*/ fp=fopen(Da,rb); if (fp=NULL) printf(n打开文件 %s 失败!按任意键结束!n,Da); exit(0); /*输入要删除的家庭成员序号*/ printf(请输入要删除的家庭成员编号:); scanf(%ld,&delnum); pri

22、ntf(您要删除的编号是:%ldn,delnum); while(fread(&Tm,sizeof(money),1,fp)!=(int)NULL) /*从文件中读取数据,是否读取成功*/ if(Tm.Number=delnum) printf(该项收支记录如下:n); printf(#n); printf(该项内容编号:%ldn,Tm.no); printf(成员编号:%ldn,Tm.Number); printf(成员姓名:%sn,Tm.Name); printf(成员收入:%f元n,Tm.in); printf(收入时间:%sn,Tm.intime); printf(成员支出:%f元n,

23、Tm.out); printf(支出时间:%sn,Tm.outtime); printf(收支总和:%fn,Tm.sum); printf(#n); result=1; rewind(fp); /*把文件指针重新指向文件的开头*/ if(result=0) printf(n你输入的编号不存在,请确认后重新输入n); printf(n是否继续删除?(是:y/Y;否:n/N); next=getche();system(cls); putchar(n); if ( next=y|next=Y) goto begin; /*询问是否删除*/ printf(n你确定要删除该记录吗?删除后不可恢复!(是

24、:y/Y;否:n/N); next=getche(); putchar(n); if ( next=y|next=Y) system(cls); printf(恭喜!该项纪录已成功删除。n); /*将文件中信息存入结构体数组*/ /*与要删除的家庭成员序号相匹配的项不写入数组, 循环后数组中即为去掉了要删除记录后的剩余记录*/ recNumber=0; while(fread(&Tm,sizeof(money),1,fp)!=(int)NULL)/*从文件中读取数据,是否读取成功*/ if(Tm.Number!=delnum) srecNumber.no=Tm.no; srecNumber.N

25、umber=Tm.Number; strcpy(srecNumber.Name, Tm.Name); srecNumber.in=Tm.in; strcpy(srecNumber.intime,Tm.intime); srecNumber.out=Tm.out; strcpy(srecNumber.outtime,Tm.outtime); srecNumber.sum=Tm.sum; recNumber+; fclose(fp); /*将删除后的剩余结构体记录写入文件*/ fp=fopen(Da,wb+); /*读写方式打开文件,原文件内容清空*/ if (fp=NULL) printf(n记

26、录文件 %s失败!按任意键结束!n,Da); exit(0); for(i=0;irecNumber;i+) /*用循环将数据写入文件*/ if(fwrite(&si,sizeof(money),1,fp)!=1) printf(n记录文件 %s 失败!按任意键结束!n,Da); exit(0); fclose(fp); /*显示删除财务信息记录后的文件*/ printf(是否查看删除后剩下的内容、n); printf(n是否?(是:y/Y;否:n/N); next=getche();system(cls); putchar(n); if ( next=y|next=Y) fp=fopen(Da,rb); /*只读方式打开文件*/ if (fp=NULL) printf(n打开文件%s失败!按任意键结束! n,Da); exit(0);printf(#n);printf(删除后剩余全部内容是:n);while(fread(&Tm,sizeof(money),1,fp)!=(int)NULL)

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

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