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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

个人收支管理系统文档格式.docx

1、三、总体设计1.系统执行主程序本系统执行主程序如图2所示。首先,调用main函数,是系统进入主显示面。然后由用户选择所需要的功能,并进入相应功能程序,按照用户需求进行相应操作后回到主显示界面,等待用户继续按键选择功能进行操作。2.系统显示界面此系统界面主要由可供选择的功能组成:收入、支出、明细表、查询与统计、写入文件、读取文件。用户在进行选择后可通过switch语句进行跳转进入相应分程序。主显示界面开始退出系统摘要写入文件查询与统计币种金额日期明细表支出收入图2 系统执行主流程图四、数据结构设计 data 结构体struct data int n;/顺序 int y,m,d; char zy1

2、00; /摘要 float money,rmoney;/金额,余额 char biz5; /币种 int x; /收支类型(标记,明细表或查询统计用) p100;本程序中主要数据都需要显示顺序、日期、摘要、金额、余额、币种和收支类型,所以需要定义data 结构体。Int n:表示顺序。Int y,m,d:用来定义日期。Char zy: 摘要。Float money、rmoney:金额、余额。Char biz5:币种。Int x: 定义收支类型。五、函数功能描述1check():函数原型:int check()check函数主要用于检查输入日期的合法性、日期的先后顺序是否正确,并查找符合日期要求

3、的数据。2fflush()fflush(stdin)主要用于清除缓存,方便用户接下来的操作。3.gets()gets()函数主要用于把用户输入的数据保存到指定数据中。4. strlen()size_t strlen(const char *s)该函数是用来计算字符串的长度,用于用户接下来的操作。5. strcpy()char *strcpy(char *s1,const char *s2)该函数用于把字符串s2复制给字符串s1。6.file *()file *fp1;通过文件指针便于对流的访问。Fopen()fopen (FILE_NAME,”r或”)该函数用于打开文件,进行读取或写入。Fcl

4、ose ()fclose()该函数主要用来关闭用户打开的文件。Main()void main()Main()为主函数。四、程序实现源码分析()程序预处理#include /标准输入输出函数库stdlib.h /标准函数库string.h /字符串操作函数库int income()/收入模式int expend()/支出模式int list()/明细表int destat () /查询与统计void write()/写入文件void read ()/读取文件()主函数main()Main()函数主要实现了对整个程序的调用,以及相关功能模块的调用。它主要的工作是初始化程序。 /确定用户需要进入的功

5、能模块 do printf(+n); 个人收支管理 n /用户可以进行的功能操作选项1.收入 n2.支出 n3.明细表 n4.查询与统计 n5.写入文件 n6.读取文件 n0.退出系统 n请输入你要进行操作: scanf(%d,&n); /捕获用户要进行的操作 switch (n) case 1:income(p); system(clsbreak; /进入收入模块,结束后返回case 2:expend(p); /进入指出模块,结束后返回case 3:list(p); /进入明细表,结束后返回case 4:destat(p); /进入查询与统计,结束后返回case 5:write(p); /进

6、入写入文件,结束后返回case 6:read(p); /进入读取文件,结束后返回 while(n!=0); /退出系统程序运行结果显示(1)初始化界面(2)进入收入模式结束时按Enter返回主界面(3)进入支出模式()明细表()查询与统计按年查询按月查询()写入文件()读取文件在这我们主要显示退出系统后读取文件操作显示:之后用户可以根据需要进行相应操作查看数据。()退出系统六、课程设计总结经过个星期的努力,终于完成了个人收支管理系统的设计。本来,在开始上课之前,我们都以为这是很简单的东西,毕竟我们都学习了这么时间,并且也在课上进行了一次次的实战训练。可是,没想到,别看平时比较容易,在这一刻,要

7、把课上学到的知识融会贯通,要想设计出自己心满意足的东西是多么的困难。不过,还好,总算完成了,也感受到了成功的喜悦。努力奋斗,并不是没有回报的!当然,在这个星期的过程中,我们也发现了许多问题并克服了它们。这些问题或许是上课时没注意到的细节问题,或是自己之前一直没能搞懂的知识点,但不论如何,它都让我们学会了好多新的东西,有了新的感悟。在此,感谢老师们的辛勤工作,无私贡献,感谢老师们的指导。七、源代码 struct data p100;int k=1;int check1(int y, int m, int d)/检测日期合法性 int a12=31,28,31,30,31,30,31,31,30,

8、31,30,31; if(y0) if(m0&mdy1) return 1; if(y2=y1&m2m1) return 1;m2=m1&d2d1) return 1;d2=d1) return 1; elseint check3(int y1,int m1,int d1,int y2,int m2,int d2) /查找符合要求的日期 int i,k=0; for(i=0;i100;i+) if(check2(y1,m1,d1,pi.y,pi.m,pi.d) &(check2(pi.y,pi.m,pi.d,y2,m2,d2) k=k+1; if (k=1) return 1;int inco

9、me(struct data p) int i;char q100; for(i=k-1;i+) do请输入日期(例:2012-7-1):%d-%d-%dpi.y,&pi.m,&pi.d); while(!check1(pi.y,pi.m,pi.d); fflush(stdin);请输入摘要(默认:无): gets(pi.zy) ; if(strlen(pi.zy)=0)strcpy(pi.zy,无请输入金额:%fpi.money); printf (请输入币种(默认RMB): gets (pi.biz); if(strlen(pi.biz)=0) strcpy(pi.biz,RMB pi.x

10、=1; pi.rmoney=pi-1.rmoney+pi.money; pi.n=k;请输入Enter继续: gets(q); int expend(struct data p)/支出 for (i=k-1;请输入日期(例: pi.x=0; int list(struct data p) char q100; int i,y1,m1,d1,y2,m2,d2; do printf(输入时请注意日期的先后顺序!n请输入起始时间(例2000-1-1):y1,&m1,&d1);check1(y1,m1,d1);请输入截至时间(例2000-1-1):y2,&m2,&d2);check1(y2,m2,d2

11、);check2(y1,m1,d1,y2,m2,d2); if(check3(y1,m1,d1,y2,m2,d2)=0) printf (此时间段内没有收支记录! else顺序号t日期tt摘要t金额t余额t币种t标志nk;%dt%d-%d-%dt%st%gt%gt%st%dn,pi.n,pi.y,pi.m,pi.d, pi.zy,pi.money,pi.rmoney,pi.biz,pi.x);注意:标志1为收入,标志0为支出!请按Enter继续! int destat (struct data p) /查询与统计 int y,m,z,i; char q100; float sum1=0,sum

12、2=0,rmoney; printf(请选择查询方式:1.查询年份:2.查询月份:z); if(z=1) 请输入要查询的年份:y); if(y=pi.y)&(pi.x=1) sum1=sum1+pi.rmoney;(pi.x=0) sum2=sum2+pi.rmoney; if(z=2) 请输入年份: scanf ( do 请输入月份:m); while (m12); if (pi.y=y)&(pi.x=1)&(pi.m=m)(pi.x=0)& rmoney=sum1-sum2;总收入: %gn,sum1);总支出:,sum2);余额:,rmoney);请按Enter继续: void writ

13、e(struct data p)/写入文件 int i; FILE *fp; char q20,t100;if(k-1=0)printf(请先输入数据!else 请输入文件名:fflush(stdin);gets(q);if(strlen(q)=0)strcpy(q,record.dat已保存为默认文件data.datn) ;fp=fopen(q,wfor(i=0; fwrite(&pi,sizeof(struct data),1,fp);记录已存储!n请按Enter键继续: gets(t);void read (struct data p)/读取文件 FILE *fp; char q20,t100; k=0;输入文件名: gets (q); if(strlen(q)=0) strcpy(q,已打开默认文件data.datn if(fp=fopen(q,rb)=NULL)文件不存在! fp=fopen(q,rfeof(fp) fread(&pk+,sizeof(struct data),1,fp); fclose(fp); k=k-1;文件已读取! case 1: case 2: case 3: case 4: case 5: case 6:

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

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