c语言编写个人收支管理系统,个人收支管理系统

《个人收支管理系统》由会员分享,可在线阅读,更多相关《个人收支管理系统(40页珍藏版)》请在人人文库网上搜索。

1、计算机科学与信息工程学院课程设计报告2011-2012 第二学期课程设计名称 C语言课程设计设计题目个人收支管理系统学生姓名学号专业班级指导教师2012年7月4日个人收支管理一、设计目的一些比较发达国家人的生活中对理财有着很严格的计划 ,因此国外的理财系统总体来 说比较普遍 ,做的也比较完善 .国内的理财系统主要偏重于办公财务软件 ,而个人理财和家庭 理财方面的比较少 ,因此需要开发相关的系统软件, 从而达到引导理性消费, 合理安排收支。进行账目的统计,如果是手动统计的话,首先,如果每天统计的话,用于统计的账本 和记录会越来越多,不利于保管,容易造成丢失;其次,随着纪录的增多,如果要查找以 前。

2、的记录,会变的越来越困难。因此 ,需要一个功能比较完善的记账系统来代替传统的手工 统计。个人收支管理系统可以方便地记录您家庭的每日收支情况。二、功能描述如图 1所示,本系统主要有 8个板块构成:1. 个人收支管理系统显示界面。个人收支管理系统必须在系统运行后第一时间显示出 来。此界面显示了一个收入模式、一个支出模式、一个明细表、一个查询与统计、一个记 录数据写入文件、一个读取文件的功能。2. 收入模式。 用户可以在收入模式中输入以下数据: 顺序号、日期、摘要、金额、余额、 币种,收入或支出标志。默认币种为人民币,也可以是美圆、欧元、日币或英镑。3. 支出模式。 用户可以在支出模式中输入以下数据。

3、: 顺序号、日期、摘要、金额、余额、币种,收入或支出标志。默认币种为人民币,也可以是美圆、欧元、日币或英镑。4. 明细表。用户可以根据需要输入起止时间来查询一段时间内的收入支出情况,系统会通过列表的形式把内容展示出来5. 查询与统计。在此功能模式下,用户可以对一段时间的收入支出情况进行查询, 可以 得到总收入、总支出和余额。此数据是按月或按年份统计计算的。6. 此板块属于拓展功能1-写入文件,记录数据。在此模块下,用户可以根据需要爆当 前输入的数据保存下来,以备后用。7. 此板块属于拓展功能2读取文件,读取数据。在此模块下,用户可以读取以前所记 录的数据并进行查看。8. 退出系统二、总体设计1。

4、 .系统执行主程序本系统执行主程序如图2所示。首先,调用main函数,是系统进入主显示面。然后由用 户选择所需要的功能,并进入相应功能程序,按照用户需求进行相应操作后回到主显示界 面,等待用户继续按键选择功能进行操作。2. 系统显示界面此系统界面主要由可供选择的功能组成:收入、支出、明细表、查询与统计、写入文四、数据结构设计data结构体struct dataint n;顺序int y,m,d;char zy100; / 摘要float money,rmoney;/ 金额,余额char biz5; / 币种int x; / 收支类型(标记 ,明细表或查询统计用)p100;本程序中主要数据都需要。

5、显示顺序、日期、摘要、金额、余额、币种和收支类型,所 以需要定义 data 结构体。Int n :表示顺序。Int y, m, d:用来定义日期。Char zy: 摘要。Float money rmoney 金额、余额。Char biz5:币种。Int x: 定义收支类型。五、函数功能描述1ch eck() : 函数原型: int check() check函数主要用于检查输入日期的合法性、日期的先后顺序是否正确,并查找符合日期要求的数据。2fflush() 函数原型: fflush( stdin) 主要用于清除缓存,方便用户接下来的操作。3. gets()函数原型: gets() 函数主要用。

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

7、开的文件。9. Main()函数原型: void main()Main ()为主函数。四、程序实现1 .源码分析(1) 程序预处理#include / 标准输入输出函数库#include / 标准函数库#include / 字符串操作函数库int income()/ 收入模式int expend()/ 支出模式int list()/ 明细表int destat ()/ 查询与统计void write()/ 写入文件void read ()/ 读取文件(2) 主函数main()它主要的工作Mai n()函数主要实现了对整个程序的调用,以及相关功能模块的调用 是初始化程序。void main()i。

8、nt n; / 确定用户需要进入的功能模块doprintf(+n);printf( 个人收支管理 n); / 用户可以进行的功能操作选项printf(1. 收入n);printf(2. 支出n);printf(3. 明细表n);printf(4. 查询与统计n);printf(5. 写入文件n);printf(6. 读取文件n);printf(0. 退出系统n);printf(+n);printf( 请输入你要进行操作: );scanf(%d,&n); / 捕获用户要进行的操作switch (n)case 1:income(p); system(cls);break; /进入收入模块,结束后返。

9、回case 2:expend(p); system(cls);break; /进入指出模块,结束后返回case 3:list(p); system(cls);break; /进入明细表,结束后返回case adesQre)八 sys(Dm(=c-s=)?eak-、律 14山渎斗M可岚回case 5wme(p)八 sys(Dm(=c-s=)八 break 二律 呦洱丰可岚回case 6ead(p)八 sys(Dm(=c-s=)?eak-1ffi*HM可岚回Thi-e(nHo)圧洲渎斉萍男t a- f t t #!* #-t A於柬Lxf 环,呦7|阿cji-t3 BJtd 5cti-in3A 统。

10、#址r占./亏 表up文亲:你杳予 :个岀列响人卷:入U询菰 十收畜S1与寺EI_#include #include struct dataint n;int y,m,d;char zy100; / 摘要float money,rmoney;/ 金额,余额char biz5; / 币种int x; / 收支类型(标记 ,明细表或查询统计用)p100;int k=1;int check1(int y, int m, int d)/ 检测日期合法性int a12=31,28,31,30,31,30,31,31,30,31,30,31;if(y0)if(m0&m0&dy1) return 1;if(。

11、y2=y1&m2m1) return 1;if(y2=y1&m2=m1&d2d1) return 1;if(y2=y1&m2=m1&d2=d1) return 1;elsereturn 0;int check3(int y1,int m1,int d1,int y2,int m2,int d2) /查找符合要求的日期 int i,k=0;for(i=0;i12);for(i=0;i100;i+)if (pi.y=y)&(pi.x=1)&(pi.m=m)sum1=sum1+pi.rmoney;if (pi.y=y)&(pi.x=0)&(pi.m=m)sum2=sum2+pi.rmoney;rmo。

12、ney=sum1-sum2;printf( 总收入: %gn,sum1);printf(总支出:gn,sum2);printf(请按 En ter 继续:);fflush(stdin);gets(q);return 0;void write(struct data p) 写入文件int i;FILE *fp;char q20,t100;if(k-1=0)printf(请先输入数据!);elseprintf( 请输入文件名 : );fflush(stdin);gets(q);if(strlen(q)=0)strcpy(q,record.dat);printf( 已保存为默认文件 data.dat。

13、n) ;fp=fopen(q,w);for(i=0;ik;i+)fwrite(&pi,sizeof(struct data),1,fp);printf ( 记录已存储! n);printf (n 请按 Enter键继续:);fflush(stdin);gets(t);void read (struct data p)/读取文件FILE *fp;char q20,t100;k=0;printf( 输入文件名 :);fflush(stdin);gets (q);if(strlen(q)=0) strcpy(q,record.dat);printf( 已打开默认文件 data.datn);if(fp。

14、=fopen(q,rb)=NULL)printf(文件不存在!n);elsefp=fopen(q,r);while(!feof(fp)fread(&pk+,sizeof(struct data),1,fp);fclose(fp);k=k-1;printf ( 文件已读取! n);printf (n 请按 Enter键继续:);fflush(stdin);gets(t);void main()int n;doprintf(+n);printf( 个人收支管理 n);printf(1. 收入n);printf(2. 支出n);printf(3. 明细表n);printf(4. 查询与统计n);pr。

15、intf(5. 写入文件n);printf(6. 读取文件n);printf(0. 退出系统n);printf(+n);printf( 请输入你要进行操作: );scanf(%d,&n);switch (n)case 1:income(p); system(cls);break;case 2:expend(p); system(cls);break;case 3:list(p); system(cls);break;case 4:destat(p); system(cls);break;case 5:write(p); system(cls);break;case 6:read(p); system(cls);break;while(n!=0。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值