




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计报告( 2015 / 2016 学年 第 二 学期)题 目:家庭支出管理系统 专 业 微电子科学与工程 组长 学号姓名 组员 学号姓名 指 导 教 师 许棣华 指 导 单 位 日 期 2016年 6 月 3日 成员分工组长()组员()组员()评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语 教师签名: 年 月 日评分等级备注评分等级共五种:优秀、良好、中等、及格、不及格家庭支出管理系统一、 课题内容和要求1、 该系统要求对一个家庭某月的支出情况进行统计和分析。通过此课题,熟练掌握数组、指针的各种操作,以及一些算法思想的应用。2、 功能要求:(1) 支出信息包括:支出类型(主要可以分为饮食,服饰装扮,礼金,教育培训,电器,健身,通讯,子女培养,旅游,文化娱乐,医疗,交通,聚会,居住等小项),金额,消费地点,消费时间等。(2) 需要实现的功能:1) 用户根据口令进入系统2) 输入某一月份,完成该月份的支出管理3) 输入并统计该月的支出情况4) 显示该月支出信息表,内容应包括日期,金额等5) 按支出类型进行分类统计和排序6) 进行本月消费分析,即分析每项支出所占总支出的百分比,并显示分析结果7) 显示按支出类型排序后的支出信息8) 将排序后的内容存为文件。(3) 界面友好,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等。二、 需求分析家庭支出管理系统的功能框架图如图1所示。家庭支出管理系统登陆界面主界面功能选择函数输入函数输出函数类别排序函数保存函数分析函数图1 功能框架图(1)功能选择函数:此函数是为了让用户根据主界面选择功能并根据提示来进行操作。(2)输入函数:为了实现将各个支出项目的类别,支出的金额以及消费的时间,地点等存入需要的文件里,所以必须先要存在存储器里。(3)输出函数:即通过行列表来直观对应存储文件中的项目的类别,金额,消费时间及地点。 (4)分析函数:读取本月的存储文档中的信息,对本月的消费进行分析,求出本月的消费总和,分析出每项支出所占总支出的百分比,通过他们各自的项目金额所占的百分比来直观显示那个指出比较重要。随后与本月收入进行比较,求出收支比。(5)类别排序函数:就是将输入的信息进行按类别排序。(6)保存函数:将本次添加的信息进行保存到相应月份的支出信息文档中。(7)登录界面:因为家庭支出管理系统涉及到私人财务,所以需要利用密码函数对程序进行保密。因此只有在输入正确的口令后才能进入该系统。同时添加了一个随机验证码的验证过程。(全文中的(1)、(2)、(3)等格式必须统一为中文括号或者英文括号。)(中文字体:宋体,英文字体:Times New Roman,小四号,不加粗,两端对齐,1.5倍行距,首行缩进2字符,段前段后距为0)三、概要设计 1 主要结构体(二级标题格式:宋体,小四号,不加粗,两端对齐,不缩进,下同)typedef struct/ 定义结构体char type20;/ 消费类型float Getsum;/ 消费金额char place20;/ 消费地点int time;/ 消费时间family;family fam80;2 主要函数流程图(1) 登录界面:包括密码函数,采用数组赋值并与预设值逐字比较的方法进行密码验证。以及验证码函数,验证码采用srand(time(NULL)与p0=rand()%1000产生一个0-1000的随机数作为验证码。如图1所示图1(2)主函数:包括菜单显示函数以及功能选择函数,菜单显示函数在屏幕上输出选择界面,功能选择函数利用选择结构进入不同的功能函数模块,模块如下列所示。在十二个月份存储文件齐全的情况下,各功能可随意使用,无使用上的顺序要求。如图二所示; 图2 图3(3)功能模块一信息添加函数:利用输入函数将支出信息赋值给fam,然后利用类别整理函数进行类别整理,最后利用选择结构选择某一月份,打开该月份的信息存储文档,进行信息的写入,最后关闭文件。如图3,图4所示。 图4 图5(4)功能模块二信息显示函数:利用选择结构打开某一月份的信息存储文档,然后读取其中的信息并逐行显示在屏幕上然后关闭文件。如图5,图6所示。 图6(5)功能模块三信息分析函数:利用选择结构打开某一月份的存储文件,读取该月信息,求消费总和并求出各项支出占总支出比,随后可以输入本月的收入以求出本月的收支比。如图7所示。 图7(6)功能模块四退出函数:关闭程序。四、源程序代码 #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欢迎来到家庭支出管理系统(勤俭节约,避免破产,严肃脸.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() /密码登录部分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()%1000; /产生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(ttt%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)/输出某月份的消费信息 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 %-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 %-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 %-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(%-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)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 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(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 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(!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 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);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 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);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,&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 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.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;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,sumi.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=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,income; int i=0,j=0,month;FILE *fp;printf(请选择月份;);scanf(%d,&month);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 %-10dn,sumi.type,sumi.Getsum,sumi.place,sumi.time); total+=sumi.Getsum;fscanf(fp,%s%f%s%d,sumi.type,&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=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,&income);printf(ttt本月收支比为%-10fn,total/income);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.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,&income);printf(ttt本月收支比为%-10fn,total/income);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,&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,&income);printf(ttt本月收支比为%-10fn,total/income);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,&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,&income);printf(ttt本月收支比为%-10fn,total/income);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;fscanf(fp,%s%f%s%d,sumi.type,&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,&income);printf(ttt本月收支比为%-10fn,total/income);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(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.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,&income);printf(ttt本月收支比为%-10fn,total/income);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(!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.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,&income);printf(ttt本月收支比为%-10fn,total/income);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);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.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,&income);printf(ttt本月收支比为%-10fn,total/income);break;case 9:fp=fopen(D:九月支出信息.txt,r);if(fp=0)printf(file
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输液反应处理及护理措施
- 健康饮料线上挑战赛与实施创新创业项目商业计划书
- 2025年广安安农发展集团有限公司招聘考试笔试试题(含答案)
- 编程小达人乐园创新创业项目商业计划书
- 保温杯套装创新创业项目商业计划书
- 含油果环保包装材料创新创业项目商业计划书
- 汽车车载导航精准设计创新创业项目商业计划书
- 虚拟现实艺术创作工具创新创业项目商业计划书
- 2025年电商平台售后服务创新模式与客户体验提升研究
- 2025年汽车轻量化材料在汽车轻量化车身制造中的创新应用报告
- 循证医学中常用的统计指标演示
- 生物化学英文版教学课件:Biochemistry-chapter 1(英文1)
- 2023年版企业投资项目可行性研究报告编写参考大纲
- 陕西省中考数学历年(2016-2022年)真题分类汇编专题8四边形及答案
- 沈阳市双倍德化学厂锅炉改造项目环评报告
- GB/T 923-2009六角盖形螺母
- GB/T 35690-2017弱磁材料相对磁导率的测量方法
- JB∕T 13977-2020 液化天然气(LNG)低温潜液泵
- 口咽通气道的使用方法
- 消防火灾自动报警主机更换(增加)施工方案
- 山西省太原市小升初语文试卷(含答案)
评论
0/150
提交评论