个人财务管理软件用户手册.docx
《个人财务管理软件用户手册.docx》由会员分享,可在线阅读,更多相关《个人财务管理软件用户手册.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第28页 共28页个人财务管理软件报告目录一、需求分析22388911一、 需求分析 1.首先个人的财务信息里包括收支日期,收入金额、支出金额还有收入和支出的目的,还有账户余额。因为是包括多个信息所以考虑到用结构体数组来储存这些信息,然后再把这些信息一起储存到文件中。2. 该软件需要有六个功能,首先是登录功能,必须输入正确的用户名和密码才能使用软件。第二是收支记录的管理,该部分包括添加功能,删除功能和修改功能。第三是查询某天或某月的收支情况。第四是统计一段时间的信息。3. 后面的收支功能,查询功能和统计功能都是从文件中读取,读取
2、后存到结构体数组中,然后再进行操作,操作完后关闭文件,以免信息丢失。4. 当用户名和密码输入错误,会提示你输入错误,请重新输入。5. 如果是操作过程中输入错误,会回到最菜单重新操作。6. 运行时用户可以根据提示进行操作,每进行一步操作,就会有相应的提示。二 概要分析 1.程序中存储个人每天的财务信息用的是结构体数组,其中结构体中包括:日期(年月日),收入金额,支出金额,收入目的。 struct peopleint year; /年份int month; /月份int day; /日期float get; /收入金额float out; /支出金额char motive100; /支出目的cha
3、r source100;/收入来源float leave;/余额 2.本程序各函数的结构main函数 将三天的账户信息存储到文件中; 提示用户输入用户名和密码,输入正确; 进入f7();/菜单选择函数 switch() 1.修改信息; /f2()函数2. 添加信息;/f3()函数3. 删除信息;/f4()函数4. 查询信息;/f5()函数5. 统计信息;/f6()函数 3.各模块的调用关系 第一层:main 函数 第二层:f7(); 第三层:f2() , f3(), f4(), f5(), f6();调用时这些函数都可以通过f7()函数来互相调用。比如运行完f2()函数后,可以调用f7(),然
4、后再调用f3()函数。 4.主函数:添加信息到文件中和执行登录功能。 其他调用函数分别执行其他五大功能。三 详细设计1、 基本数据类型操作a) 存储每天账户信息的数组结构体struct peopleint year;int month;int day;float get;float out;char motive100;char source100;float leave; b)控制结构体数目的extern N刚开始运行该程序时,N的初始值为3,后来如果进行添加操作,则N的值就会加1,反之如果进行删除操作,则N的值就会减1。 start2、 流程图 main函数:int i,a,b i=0iN
5、ny将信息存到文件中 i+输入用户名和密码输入正确nF7()函数进入添加函数f4()进入删除函数f3()进入修改函数f2()菜单选择函数f7()y进入查询函数f5() end进入统计函数f6()3、基本操作的算法描述 a)登录功能:用户只有在输入正确的用户名和密码后才能进入系统进行操作。 for(;) printf(=请输入用户名和密码:=n);printf(用户名:); scanf(%d,&a); /a表示用户名printf(n);printf(密码:); /b表示密码scanf(%d,&b);printf(n); if(a=10201306&b=1) /输入和条件一致的情况下进入if语句中
6、 printf(=恭喜输入正确,登录成功!=n);printf(该软件中已存有2010年1月1号到3号的信息!n); else /输入和条件不一致就进入else语句printf(输入错误,请重新输入!n); b)主菜单功能:用户可以自行选择要进行的操作 printf(=1:修改信息=n); printf(=2:删除信息=n); printf(=3:添加信息=n); printf(=4:查询信息=n); printf(=5:统计信息=n); printf(请选择:);/在屏幕上输出,指示用户操作 scanf(%d,&flag); /输入用户的选项并存在flag中 while( flag != 0
7、) switch(flag) default: printf(此选项不存在,请重新输入:n);break; case 1: f2(x,y,z); /进入修改函数 break; case 2: f3(x,y,z); /进入删除函数 break; case 3: f4();/进入添加函数 break; case 4: f5(x,y,z);/进入查询函数 break; case 5: f6(x,y,z,x1,y1,z1);/进入统计函数 break; c)修改功能:用户如果觉得存储的信息有问题,可以在此进行修改fp=fopen(f:pan.txt,w+);for(i=0;iN;i+)fread(&p
8、eoi,sizeof(struct people),1,fp);if(x=peoi.year&y=peoi.month&z=peoi.day) n=i; /查看是否有该天的信息存在 break;if(i=N)printf(没有该天信息!n);printf(请重新选择!n);f7();fread(&peoi,sizeof(struct people),1,fp);/先从文件中读出printf(请输入新的收入来源n); scanf(%s,peon.source); printf(请输入新的收入金额n); scanf(%f,&peon.get); printf(请输入新的支出目的n); scanf(
9、%s,peon.motive); printf(请输入新的支出金额n); scanf(%f,&peon.out);peon.leave=peon.get-peon.out;/输入新的信息 for(i=0;iN;i+)if(fwrite(&peoi,sizeof(struct people),1,fp)!=1)printf(无法打开!n);exit(0);fclose(fp);/把新的信息存储到文件当中,并关闭文件 d) 删除功能:用户可以在此删除不需要的信息 fp=fopen(f:pan.txt,w+);/打开文件 for(i=0;iN;i+)fread(&peoi,sizeof(struct
10、 people),1,fp);if(x=peoi.year&y=peoi.month&z=peoi.day) n=i; /查看是否有该天的信息存在 break;if(i=N)printf(没有该天信息!n);printf(请重新选择!n);for(i=n;iN;i+)fscanf(fp,%s,&peoi);/将文件中的信息存到数组结构体里strcpy(peoi.source,peoi+1.source);peoi.year=peoi+1.year;peoi.month=peoi+1.month;peoi.day=peoi+1.day; peoi.get=peoi+1.get;peoi.out=
11、peoi+1.out;strcpy(peoi.motive,peoi+1.motive); peoi.leave=peoi+1.leave;/用后面的信息覆盖前面的信息N=N-1;/删除后信息减少一组,所以N要减1for(i=0;iN;i+)if(fwrite(&peoi,sizeof(struct people),1,fp)!=1)printf(无法打开!n);exit(0); fclose(fp);/将现有信息重新存回到文件中 e)添加功能:用户可以在此添加新的账户信息fp=fopen(f:pan.txt,rb);/先打开文件fread(&peoi,sizeof(struct people
12、),1,fp);/将文件信息存到结构体数组里n=N; /添加到结构体数组的末尾printf(请输入新的信息日期:n);scanf(%d %d %d,&peon.year,&peon.month,&peon.day); printf(请输入新的信息收入金额和收入来源:n); scanf(%f %s,&peon.get,peon.source); printf(请输入新的信息支出金额和支出目的:n); scanf(%f %s,&peon.out,peon.motive); peon.leave=peon.get-peon.out; /输入新的信息到结构体中 N=N+1; /添加了新的数据所以N的值
13、加1 fp=fopen(f:pan.txt,wb); for(i=0;iN;i+)fwite(&peoi,sizeof(struct people),1,fp);fclose(fp);/将新的一组结构体信息写到文件里 f) 查询功能:用户可以在此查询以前存有的账户信息fopen(f:pan.txt,r); for(i=0;iN;i+)fread(&peoi,sizeof(struct people),1,fp);if(x=peoi.year&y=peoi.month&z=peoi.day) n=i; /查看是否有该天的信息存在 break;if(i=N)printf(没有该天信息!n);pri
14、ntf(请重新选择!n);f7();fread(&peon,sizeof(struct people),1,fp);/将数据存到结构体数组中printf(收入来源 收入金额 支出目的 支出金额 余额n);printf(%5s ,peon.source);printf(%3f ,peon.get);printf(%5s ,peon.motive);printf(%5f ,peon.out);printf(%3f ,peon.leave);/输出您要查询的该天信息 fclose(fp); /关闭文件防止信息丢失 g)统计功能:用户可以在此统计一段时间内的收入金额和支出金额 for(i=0;iN;i
15、+)fread(&peoi,sizeof(struct people),1,fp);if(x=peoi.year&y=peoi.month&z=peoi.day) n=i; /查看是否有该天的信息存在 break;if(i=N)printf(没有该天信息!n);printf(请重新选择!n); for(i=0;iN;i+)fread(&peoi,sizeof(struct people),1,fp);if(x1=peoi.year&y1=peoi.month&z1=peoi.day) m=i; /查看是否有该天的信息存在 break;if(i=N)printf(没有该天信息!n);printf
16、(请重新选择!n); 如果存在该段时间信息,那么统计收入金额:if(nm) for(i=n,sum=0;i=m;i+) sum+=peoi.get; printf(%f,sum);fclose(fp); break;else for(i=m,sum=0;i=n;i+)sum+=peoi.get; printf(%f,sum);fclose(fp);break;如果统计支出金额,只需将peoi.get改为peoi.out就行。 3、各函数的调用关系图 main函数 f7()函数 f2()函数 f3()函数 f4()函数 f5()函数 f6()函数 f7()函数 四 调试分析1. 开始时没有将N定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 财务管理 软件 用户手册
限制150内