收藏 分销(赏)

家庭支出管理系统—c语言程序设计.doc

上传人:二*** 文档编号:4540874 上传时间:2024-09-27 格式:DOC 页数:40 大小:2.85MB
下载 相关 举报
家庭支出管理系统—c语言程序设计.doc_第1页
第1页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、. .程序设计报告2021 / 2021学年 第 二 学期题 目:家庭支出管理系统专 业 微电子科学与工程组长学号XX 组员学号XX 指 导 教 师 棣华指 导 单 位 日 期 2021年 6月 3日 成员分工组长组员组员评分细那么评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度容详实程度文字表达熟练程度答复以下问题准确度简短评语教师签名:年月日评分等级备注评分等级共五种:优秀、良好、中等、及格、不及格家庭支出管理系统一、 课题容和要求1、 该系统要求对一个家庭某月的支出情况进展统计和分析。通

2、过此课题,熟练掌握数组、指针的各种操作,以及一些算法思想的应用。2、 功能要求:(1) 支出信息包括:支出类型主要可以分为饮食,服饰装扮,礼金,教育培训,电器,健身,通讯,子女培养,旅游,文化娱乐,医疗,交通,聚会,居住等小项,金额,消费地点,消费时间等。(2) 需要实现的功能:1) 用户根据口令进入系统2) 输入某一月份,完成该月份的支出管理3) 输入并统计该月的支出情况4) 显示该月支出信息表,容应包括日期,金额等5) 按支出类型进展分类统计和排序6) 进展本月消费分析,即分析每项支出所占总支出的百分比,并显示分析结果7) 显示按支出类型排序后的支出信息8) 将排序后的容存为文件。(3)

3、界面友好,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等。二、 需求分析家庭支出管理系统的功能框架图如图1所示。家庭支出管理系统登陆界面主界面功能选择函数输入函数输出函数类别排序函数保存函数分析函数图1 功能框架图1功能选择函数:此函数是为了让用户根据主界面选择功能并根据提示来进展操作。2输入函数:为了实现将各个支出工程的类别,支出的金额以及消费的时间,地点等存入需要的文件里,所以必须先要存在存储器里。3输出函数:即通过行列表来直观对应存储文件中的工程的类别,金额,消费时间及地点。4分析函数:读取本月的存储文档中的信息,对本月的消费进展分析,求出本月的消费总和,分析出每项支出所占总

4、支出的百分比,通过他们各自的工程金额所占的百分比来直观显示那个指出比较重要。随后与本月收入进展比较,求出收支比。5类别排序函数:就是将输入的信息进展按类别排序。6保存函数:将本次添加的信息进展保存到相应月份的支出信息文档中。7登录界面:因为家庭支出管理系统涉及到私人财务,所以需要利用密码函数对程序进展XX。因此只有在输入正确的口令后才能进入该系统。同时添加了一个随机验证码的验证过程。全文中的1、2、3等格式必须统一为中文括号或者英文括号。中文字体:宋体,英文字体:Times New Roman,小四号,不加粗,两端对齐,1.5倍行距,首行缩进2字符,段前段后距为0三、概要设计1 主要构造体二级

5、标题格式:宋体,小四号,不加粗,两端对齐,不缩进,下同typedef struct/ 定义构造体char type20;/ 消费类型float Getsum;/ 消费金额char place20;/ 消费地点int time;/ 消费时间family;family fam80;2 主要函数流程图(1) 登录界面:包括密码函数,采用数组赋值并与预设值逐字比较的法进展密码验证。以及验证码函数,验证码采用srand(time(NULL)与p0=rand()%1000产生一个0-1000的随机数作为验证码。如图1所示图12主函数:包括菜单显示函数以及功能选择函数,菜单显示函数在屏幕上输出选择界面,功能

6、选择函数利用选择构造进入不同的功能函数模块,模块如以下所示。在十二个月份存储文件齐全的情况下,各功能可随意使用,无使用上的顺序要求。如图二所示;图2图33功能模块一信息添加函数:利用输入函数将支出信息赋值给fam,然后利用类别整理函数进展类别整理,最后利用选择构造选择某一月份,翻开该月份的信息存储文档,进展信息的写入,最后关闭文件。如图3,图4所示。图4图54功能模块二信息显示函数:利用选择构造翻开某一月份的信息存储文档,然后读取其中的信息并逐行显示在屏幕上然后关闭文件。如图5,图6所示。图65功能模块三信息分析函数:利用选择构造翻开某一月份的存储文件,读取该月信息,求消费总和并求出各项支出占

7、总支出比,随后可以输入本月的收入以求出本月的收支比。如图7所示。 图76功能模块四退出函数:关闭程序。四、源程序代码#include #include #include #include #include #include #include #include typedef struct/定义构造体char type20;/消费类型float Getsum;/消费金额char place20;/消费地点int time;/消费时间family;family fam80;int menu_select() /显示该系统所具备的功能 int c;dosystem(cls);/清屏printf(tt

8、欢迎来到家庭支出管理系统勤俭节约,防止破产,肃脸.jpg n);printf(tt* * * * * *极端简朴的菜单系统* * * *n);printf(tt|1.输入消费信息|n);printf(tt|2.显示消费情况|n);printf(tt|3.消费情况分析|n);printf(tt|4.退出系统|n);printf(tt* * * * * * * * * * * *n);printf(tt* * * * * * * * * * * *n);printf(ttt请对应选择所需选项(1-4):);scanf(%d,&c);while(c8);return c;void password(

9、) /密码登录局部char d6;char m6;m0=1,m1=2,m2=3,m3=4,m4=5,m5=6; /数组比较printf(请输入六位数密码:); /输入密码for (int n=0;)printf(请输入密码:n);for(int i=0;i=0|di=a|di=A|di3)printf(系统即将关闭,88!n);system(pause); exit (0);n+;void verification_code() /验证码局部 int p1=0; int q1=0;for(int k=0;)srand(time(NULL);printf(验证码为:n);p0=rand()%10

10、00; /产生0-1000的随机数printf(%d,p0);printf(请输入验证码:);scanf(%d,&q0);“if(q0!=p0)printf(验证码错误,请重新输入。);elseprintf(n欢迎使用!n);system(pause); break;if(k3)printf(系统即将关闭,88!n);system(pause); exit (0);k+;int Inputitems(family sum,int n)/输入消费信息 int i=0; char sign=y,x10; while(sign!=n&sign!=N) printf(ttt种类:); scanf(tt

11、t%s,sumn+i.type); printf(ttt支出(大于0):); scanf(ttt%f,&sumn+i.Getsum);printf(ttt地点:); scanf(ttt%s,sumn+i.place); printf(ttt时间(0-31):); scanf(ttt%d,&sumn+i.time); if(sumn+i.time31) return false; gets(x); printf(ttt需要再次输入吗?(y/n); scanf(ttt%c,&sign); i+; return(n+i); void Showitems(family sum,int n)/输出某月份

12、的消费信息 int i=0,month;FILE *fp;printf(请选择月份;);scanf(%d,&month);printf(ttt-n); printf(ttt种类 支出 地点 时间n); printf(ttt-n); switch(month)case 1:fp=fopen(D:一月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s

13、%-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 2:fp=fopen(D:二月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f

14、%-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 3:fp=fopen(D:三月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %

15、-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 4:fp=fopen(D:四月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%

16、-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 5:fp=fopen(D:五月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)pri

17、ntf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 6:fp=fopen(D:六月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(f

18、p)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 7:fp=fopen(D:七月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!f

19、eof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 8:fp=fopen(D:八月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);whi

20、le(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 9:fp=fopen(D:九月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time

21、);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 10:fp=fopen(D:十月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sum

22、i.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 11:fp=fopen(D:十一月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.plac

23、e,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;case 12:fp=fopen(D:十二月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,su

24、mi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);break;printf(ttt); system(pause); void paixu(family sum,int n) /类别显示函数int i,j;family temp; for(i=0;in-1;i+) for(j

25、=i+1;jsumj.Getsum) temp=sumj; sumj=sumi; sumi=temp; for(i=1;i1&i%10=0)printf(ttt-n);printf(ttt);system(pause);printf(ttt-n);printf(ttt);system(pause);void Analyseitems(family sum,int n) /求各种消费类型的金额占总金额的百分比并求收支比例 float total=0,a=0,ine; int i=0,j=0,month;FILE *fp;printf(请选择月份;);scanf(%d,&month);switch

26、(month)case 1:fp=fopen(D:一月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); total+=sumi.Getsum;fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.plac

27、e,&sumi.time);fclose(fp);fp=fopen(D:一月支出信息.txt,r);while(!feof(fp)fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);i=i+1;n=i;for(i=0;in-1;i+)printf(ttt工程%-8s占总比%-10f%n,sumi.type,sumi.Getsum/total);printf(消费总额为%f,total);fclose(fp);printf(请输入本月收入:);scanf(ttt%f,&ine);printf(ttt本月收支比为%-10

28、fn,total/ine);break;case 2:fp=fopen(D:二月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); total+=sumi.Getsum;fscanf(fp,%s%f%s%d,sumi.type,&sumi.Get

29、sum,sumi.place,&sumi.time);fclose(fp);fp=fopen(D:二月支出信息.txt,r);while(!feof(fp)fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);i+;n=i;for(i=0;in-1;i+)printf(ttt%-8s%-10f%n,sumi.type,sumi.Getsum/total);printf(消费总额为%f,total);fclose(fp);printf(请输入本月收入:);scanf(ttt%f,&ine);printf(ttt本月收支比

30、为%-10fn,total/ine);break;case 3:fp=fopen(D:三月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); total+=sumi.Getsum;fscanf(fp,%s%f%s%d,sumi.type,&sum

31、i.Getsum,sumi.place,&sumi.time);fclose(fp);fp=fopen(D:三月支出信息.txt,r);while(!feof(fp)fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);i+;n=i;for(i=0;in-1;i+)printf(ttt%-8s%-10f%n,sumi.type,sumi.Getsum/total);printf(消费总额为%f,total);fclose(fp);printf(请输入本月收入:);scanf(ttt%f,&ine);printf(ttt

32、本月收支比为%-10fn,total/ine);break;case 4:fp=fopen(D:四月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); total+=sumi.Getsum;fscanf(fp,%s%f%s%d,sumi.type

33、,&sumi.Getsum,sumi.place,&sumi.time);fclose(fp);fp=fopen(D:四月支出信息.txt,r);while(!feof(fp)fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);i+;n=i;for(i=0;in-1;i+)printf(ttt%-8s%-10f%n,sumi.type,sumi.Getsum/total);printf(消费总额为%f,total);fclose(fp);printf(请输入本月收入:);scanf(ttt%f,&ine);printf(ttt本月收支比为%-10fn,total/ine);break;case 5:fp=fopen(D:五月支出信息.txt,r);if(fp=0)printf(file errorn);exit(1);fscanf(fp,%s%f%s%d,sumi.type,&sumi.Getsum,sumi.place,&sumi.time);while(!feof(fp)printf(%-8s %-12f %-8s %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); total+=sumi.Getsum;fsca

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服