个人收支管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机科学与信息工程学院

课程设计报告

2011-2012第二学期

课程设计名称C语言课程设计

设计题目个人收支管理系统

学生姓名

学号

专业班级

指导教师

2012年7月4日

个人收支管理

一、设计目的

一些比较发达国家人的生活中对理财有着很严格的计划,因此国外的理财系统总体来说比较普遍,做的也比较完善.国内的理财系统主要偏重于办公财务软件,而个人理财和家庭理财方面的比较少,因此需要开发相关的系统软件,从而达到引导理性消费,合理安排收支。

进行账目的统计,如果是手动统计的话,首先,如果每天统计的话,用于统计的账本和记录会越来越多,不利于保管,容易造成丢失;其次,随着纪录的增多,如果要查找以前的记录,会变的越来越困难。因此,需要一个功能比较完善的记账系统来代替传统的手工统计。

个人收支管理系统可以方便地记录您家庭的每日收支情况。

二、功能描述

如图1所示,本系统主要有8个板块构成:

1.个人收支管理系统显示界面。个人收支管理系统必须在系统运行后第一时间显示出来。此界面显示了一个收入模式、一个支出模式、一个明细表、一个查询与统计、一个记录数据写入文件、一个读取文件的功能。

2.收入模式。用户可以在收入模式中输入以下数据:顺序号、日期、摘要、金额、余额、币种,收入或支出标志。默认币种为人民币,也可以是美圆、欧元、日币或英镑。

3.支出模式。用户可以在支出模式中输入以下数据:顺序号、日期、摘要、金额、余额、币种,收入或支出标志。默认币种为人民币,也可以是美圆、欧元、日币或英镑。

4.明细表。用户可以根据需要输入起止时间来查询一段时间内的收入支出情况,系统会通过列表的形式把内容展示出来。

5.查询与统计。在此功能模式下,用户可以对一段时间的收入支出情况进行查询,可以得到总收入、总支出和余额。此数据是按月或按年份统计计算的。

6.此板块属于拓展功能1---写入文件,记录数据。在此模块下,用户可以根据需要爆当前输入的数据保存下来,以备后用。

7.此板块属于拓展功能2—读取文件,读取数据。在此模块下,用户可以读取以前所记录的数据并进行查看。

8.退出系统。

1.本系统执行主程序如图2所示。首先,调用main 函数,是系统进入主显示面。然后由用户选择所需要的功能,并进入相应功能程序,按照用户需求进行相应操作后回到主显示界面,等待用户继续按键选择功能进行操作。

2.系统显示界面

此系统界面主要由可供选择的功能组成:收入、支出、明细表、查询与统计、写入文件、读取文件。用户在进行选择后可通过switch 语句进行跳转进入相应分程序。

data 结构体

struct data{

int n;strlen()

函数原型:size_t strlen(const char *s)

该函数是用来计算字符串的长度,用于用户接下来的操作。

5. strcpy()

函数原型:char *strcpy(char *s1,const char *s2)

该函数用于把字符串s2复制给字符串s1。

*()

函数原型:file *fp1;

通过文件指针便于对流的访问。

7.Fopen()

函数原型:fopen (FILE_NAME,”r或w”) 该函数用于打开文件,进行读取或写入。8.Fclose ()

函数原型:fclose()

该函数主要用来关闭用户打开的文件。9.Main()

函数原型:void main()

Main()为主函数。

四、程序实现

1.源码分析

(1)程序预处理

#include <>入\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);

,p[i].m,p[i].d)) &&(check2(p[i].y,p[i].m,p[i].d,y2,m2,d2)))

k=k+1;

}

if (k=1)

return 1;

else

return 0;

}

int income(struct data p[])

{

int i;char q[100];

for(i=k-1;;i++){

do{

printf("请输入日期(例:2012-7-1):");

scanf("%d-%d-%d",&p[i].y,&p[i].m,&p[i].d);

}

while(!check1(p[i].y,p[i].m,p[i].d));

fflush(stdin);

printf("请输入摘要(默认:无):");

gets(p[i].zy) ;

if(strlen(p[i].zy)==0)strcpy(p[i].zy,"无");

fflush(stdin);

printf("请输入金额:");

scanf("%f",&p[i].money);

fflush(stdin);

printf ("请输入币种(默认RMB):");

gets (p[i].biz);

if(strlen(p[i].biz)==0) strcpy(p[i].biz,"RMB");

p[i].x=1;

p[i].rmoney=p[i-1].rmoney+p[i].money;

p[i].n=k;

k=k+1;;

printf("请输入Enter继续:");

fflush(stdin);

gets(q);

return 0;

}

}

int expend(struct data p[]),&p[i].m,&p[i].d);

}

while(!check1(p[i].y,p[i].m,p[i].d));

fflush(stdin);

printf("请输入摘要(默认:无):");

gets(p[i].zy) ;

if(strlen(p[i].zy)==0)strcpy(p[i].zy,"无");

fflush(stdin);

printf("请输入金额:");

scanf("%f",&p[i].money);

相关文档
最新文档