《2022年个人财务管理软件用户手册.docx》由会员分享,可在线阅读,更多相关《2022年个人财务管理软件用户手册.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源个人财务治理软件报告目录一、需求分析 .22388911欢迎下载精品学习资源一、需求分析1. 第一个人的财务信息里包括收支日期,收入金额、支出金额仍有收入和支出的目的, 仍有账户余额; 由于是包括多个信息所以考虑到用结构体数组来储存这些信息,然后再把这些信息一起储存到文件中;2. 该软件需要有六个功能,第一是登录功能,必需输入正确的用户名和密码才能使用软件; 其次是收支记录的治理, 该部分包括添加功能, 删除功能和修改功能;第三是查询某天或某月的收支情形;第四是统计一段时间的信息;3. 后面的收支功能,查询功能和统计功能都是从文件中读取,读取后存到结构体数组中,然后再进行操作,操作
2、完后关闭文件,以免信息丢失;4. 当用户名和密码输入错误,会提示你输入错误,请重新输入;5. 假如是操作过程中输入错误,会回到最菜单重新操作;6. 运行时用户可以依据提示进行操作, 每进行一步操作, 就会有相应的提示;二概要分析1. 程序中储备个人每天的财务信息用的是结构体数组,其中结构体中包括: 日期(年月日),收入金额,支出金额,收入目的;struct peopleint year;/ 年份int month;/ 月份int day;/日期float get;/ 收入金额float out;/支出金额char motive100;/ 支出目的char source100;/ 收入来源flo
3、at 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 (),然后再调用f3 ()函数;4. 主函数:添加信息到文件
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;函数:startint i,a,bi=0iNny将信息存到文件中i+输入用户名和密码2、流程图main欢
5、迎下载精品学习资源进入修改函数 f2输 入 正确n进入删除函数 f3y菜单挑选函数 f7进入添加函数f4F7 函数进入查询函数 f5end进入统计函数 f63、基本操作的算法描述a) 登录功能:用户只有在输入正确的用户名和密码后才能进入系统进行欢迎下载精品学习资源操作;for;欢迎下载精品学习资源printf=请输入用户名和密码: =n; printf用户名 :;scanf%d,&a;/a表示用户名printfn;printf密码 :; /b表示密码scanf%d,&b;printfn;ifa=10202106&b=1 /输入和条件一样的情形下进入if语句中printf=恭喜输入正确,登录胜利
6、.=n; printf该软件中已存有 2021 年 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 .= 0switchflagdefault: p
7、rintf此选项不存在,请重新输入:n;break; case 1:f2x,y,z;/进入修改函数break; case 2:f3x,y,z;/进入删除函数break; case 3:f4;/ 进入添加函数break; case 4:f5x,y,z;/进入查询函数break; case 5:f6x,y,z,x1,y1,z1;/进入统计函数break;c) 修改功能:用户假如觉得储备的信息有问题,可以在此进行修改fp=fopenf:pan.txt,w+; fori=0;iN;i+fread&peoi,sizeofstruct people,1,fp; ifx=peoi.year&y=peoi.m
8、onth&z=peoi.dayn=i;/查看是否有该天的信息存在break;ifi=Nprintf没有该天信息 .n; printf请重新挑选 .n; f7;fread&peoi,sizeofstruct people,1,fp;/先从文件中读出printf 请输入新的收入来源 n; scanf%s,peon.source; printf请输入新的收入金额 n ) ; scanf%f,&peon.get; printf请输入新的支出目的 n; scanf%s,peon.motive;欢迎下载精品学习资源printf请输入新的支出金额 n; scanf%f,&peon.out; peon.lea
9、ve=peon.get-peon.out;/输入新的信息fori=0;iN;i+iffwrite&peoi,sizeofstruct people,1,fp.=1printf无法打开 .n; exit0;fclosefp;/把新的信息储备到文件当中,并关闭文件d) 删除功能:用户可以在此删除不需要的信息fp=fopenf:pan.txt,w+;/打开文件fori=0;iN;i+fread&peoi,sizeofstruct people,1,fp; ifx=peoi.year&y=peoi.month&z=peoi.dayn=i;/查看是否有该天的信息存在break;ifi=Nprintf没有
10、该天信息 .n; printf请重新挑选 .n;fori=n;iN;i+)fscanffp,%s,&peoi;/将文件中的信息存到数组结构体里strcpypeoi.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=peoi+1.out; strcpypeoi.motive,peoi+1.motive;peoi.leave=peoi+1.leave;/ 用后面的信息掩盖前面的信息N=N-1;/删除后信息削减
11、一组,所以N要减 1 fori=0;iN;i+iffwrite&peoi,sizeofstruct people,1,fp.=1欢迎下载精品学习资源printf无法打开 .n; exit0;fclosefp;/将现有信息重新存回到文件中e) 添加功能:用户可以在此添加新的账户信息fp=fopenf:pan.txt,rb;/先打开文件fread&peoi,sizeofstruct people,1,fp;/将文件信息存到结构体数组里n=N;/添加到结构体数组的末尾printf请输入新的信息日期: n;scanf%d %d %d,&peon.year,&peon.month,&peon.day;
12、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的值加 1 fp=fopenf:pan.txt,wb;fori=0;iN;i+fwite&peoi,sizeofstruct people,1,fp;fclosefp;/将新的一组结构体信息写到文件里f) 查询功能:用户可以在此查询以前存有的账户
13、信息fopenf:pan.txt,r; fori=0;iN;i+fread&peoi,sizeofstruct people,1,fp; ifx=peoi.year&y=peoi.month&z=peoi.dayn=i;/查看是否有该天的信息存在break;ifi=Nprintf没有该天信息 .n; printf请重新挑选 .n; f7;fread&peon,sizeofstruct people,1,fp;/将数据存到结构体数组中printf收入来源收入金额支出目的支出金额余额n; printf%5s,peon.source;printf%3f,peon.get;欢迎下载精品学习资源prin
14、tf%5s,peon.motive;printf%5f ,peon.out;printf%3f ,peon.leave;/输出您要查询的该天信息fclosefp;/关闭文件防止信息丢失g) 统计功能:用户可以在此统计一段时间内的收入金额和支出金额fori=0;iN;i+fread&peoi,sizeofstruct people,1,fp; ifx=peoi.year&y=peoi.month&z=peoi.dayn=i;/查看是否有该天的信息存在break;ifi=Nprintf没有该天信息 .n; printf请重新挑选 .n;fori=0;iN;i+fread&peoi,sizeofst
15、ruct people,1,fp; ifx1=peoi.year&y1=peoi.month&z1=peoi.daym=i;/查看是否有该天的信息存在break;ifi=Nprintf没有该天信息 .n; printf请重新挑选 .n;假如存在该段时间信息,那么统计收入金额:ifnmfori=n,sum=0;i=m;i+sum+=peoi.get;printf%f,sum; fclosefp; break;欢迎下载精品学习资源elsefori=m,sum=0;i=n;i+sum+=peoi.get;printf%f,sum; fclosefp; break;假如统计支出金额,只需将peoi.g
16、et改为 peoi.out就行;3、各函数的调用关系图main函数f7()函数f2 函数f3 函数f4 函数f5 函数f6 函数欢迎下载精品学习资源四调试分析f7()函数欢迎下载精品学习资源1. 开头时没有将 N 定义为全局变量, 导致在添加函数中 N+1 后,其他函数中的 N 却没有转变,导致最终查询的信息不完整;2. 开头时没有将主菜单单独存到一个函数里面,这样就无法一次运行多个功能,最终将主菜单单独存到一个函数里以后, 就可以在运行完一个功能之后, 重新挑选,这样就可以在一次调试中,运行全部的功能模块,削减了许多麻烦;3. 第一次调试运行时,文件中没有储备任何的信息,所以每次进入都必需先
17、要输入肯定量的数据, 然后才能进行下面的操作, 后来加以改善, 先在文件中储备几天的账户信息,这样在运行时就可以直接进行查询,修改,删除等操作了;4. 第一次检查时,由于对文件的操作不是很娴熟,发觉了添加的数据并没有储备到文件之中,最终经过修正,加入了一个fwrite 将信息写到了文件里;五用户手册1 、本程序的运行环境为 DOS 操作系统,执行文件为 f1.dsw;2、 进入演示程序后,即显示对话形式的提示操作过程, 如:请输入用户名和密码,输入正确后便进入菜单挑选请输入你的选项,输入选项后,假如选项不存在,会提示你选项不存在,请重新挑选; 输入正确选项后,便会提示你输入日期;假如进入的是修
18、改函数,就会继续提示你输入新的信息; 假如进入的时添加函数, 会让你输入新的账户信息; 如欢迎下载精品学习资源果进入的是删除函数,再删除完后会提示你删除胜利;假如进入的时查询函数, 会输出你要查询的当天账户信息; 假如进入的统计函数, 会提示你挑选将要统计的信息;3、 假如用户不当心进错了功能,可以输入0 来返回主菜单,重新挑选;4、进行完上面的操作之后,会提示用户是否连续运行该程序来进行其他的功能操作按n 或 N键 stop 或其它键连续六测试数据= 请输入用户名和密码: =用户名: 10202106密码: 1恭喜输入正确,登录胜利!1: 修改信息 2: 删除信息 3: 添加信息 4: 查询
19、信息 5: 统计信息a) 请挑选: 1请输入您要修改得日期: 2021 1 10. 返回主菜单1. 修改该天信息请挑选 1旧的信息为: 2021 1 1 1000.000000收入 1 100.000000支出 1请输入新的信息:收入金额 1100收入来源 aaa支出金额 200支出目的 bbb ;修改胜利!新的信息为 2021 1 1 1100.000000 aaa 200.0000000 bbbb) 请挑选: 2请输入您要删除的日期: 2021 1 10. 返回主菜单1. 删除该天信息请挑选: 1旧的信息为: 2021 1 1 1000.000000收入 1 100.000000支出 12
20、021 1 2 2000.000000收入 2 200.000000支出 2欢迎下载精品学习资源2021 1 3 3000.000000删除胜利!收入3 300.000000支出3新的信息为:2021 1 2 2000.000000收入2 200.000000支出22021 1 3 3000.000000是否连续 y/n收入3 300.000000支出3npress any key to continuec请挑选: 30. 返回主菜单1. 添加一天的账户信息请挑选: 1旧的信息为 :2021 1 1 1000.000000收入 1 100.000000支出12021 1 2 2000.0000
21、00收入 2 200.000000支出22021 1 3 3000.000000收入 3 300.000000支出3请输入新的信息: 2021 1 4 4000收入 4 400支出 4添加胜利!新的信息为: 2021 1 1 1000.000000收入 1 100.000000支出12021 1 2 2000.000000收入 2 200.000000支出22021 1 3 3000.000000收入 3 300.000000支出32021 1 4 4000.000000收入 4 400.000000支出4是否连续 y/nnpress any key to continued) 请挑选: 4请
22、输入您要查询得日期: 2021 1 10. 返回主菜单1. 查询该天信息请挑选 12021 1 1 1000.000000收入 1 100.000000支出 1是否连续 y/nnpress any key to continue欢迎下载精品学习资源e) 请挑选: 5请输入你要统计的两个日期: 2021 1 1 2021 1 30. 返回主菜单1. 统计该段时间的收入金额2. 统计该段时间的支出金额3. 统计该段时间的余额 请挑选 1.6000.0000002.600.0000003.5400.000000是否连续 y/nnpress any key to continue七附录1、源程序函数清
23、单主函数: f1 修改函数: f2 删除函数: f3 添加函数: f4 查询函数: f5 统计函数: f6主菜单函数: f7 2、源程序代码f1.cpp: #includestdio.h #includestdlib.h #includestring.h#includef2.h #includef3.h #includef4.h #includef5.h #includef6.h #includef7.hstruct people peoSIZE;int N=3; void mainint i,a,b;char d110=收入 1,d210=收入 2,d310=收入 3,e110=支出 1,e
24、210=支出 2,e310=支出 3;欢迎下载精品学习资源FILE *fp;/* 输入三天的账户信息 */ peo0.year=2021;peo0.month=1;peo0.day=1; strcpypeo0.source,d1;peo0.get=1000; strcpypeo0.motive,e1;peo0.out=100; peo0.leave=peo0.get-peo0.out; peo1.year=2021;peo1.month=1;peo1.day=2; strcpypeo1.source,d2;peo1.get=2000; strcpypeo1.motive,e2;peo1.out
25、=200; peo1.leave=peo1.get-peo1.out; peo2.year=2021;peo2.month=1;peo2.day=3; strcpypeo2.source,d3;peo2.get=3000; strcpypeo2.motive,e3;peo2.out=300;peo2.leave=peo2.get-peo2.out;/* 把数据写入文件 */ fp=fopenf:pan.txt,w;fori=0;iN;i+iffwrite&peoi,sizeofstruct people,1,fp.=1printf无法打开 .n; exit0;fclosefp;/* 菜单挑选功
26、能 */printf=个人账户治理软件 =n; printf=设计人:潘君宇 =n;printfn;printfn;printf请登录: n; for;printf=请输入用户名和密码: =n; printf用户名 :;scanf%d,&a;printfn;printf密码 :;scanf%d,&b;printfn; ifa=10202106&b=1printf=恭喜输入正确,登录胜利.=n; printf=该软件中已存有2021 年 1 月 1 号到 3 号的信息 .=n;欢迎下载精品学习资源f7;elseprintf输入错误,请重新输入.n;欢迎下载精品学习资源f2.cpp: #inclu
27、destdio.h #includestdlib.h#includestring.h #includef2.h #includef3.h #includef4.h #includef5.h #includef6.h #includef7.hextern struct people peoSIZE; extern N;void f2int x,int y,int zint b,i,n,flag=1; char c;FILE *fp;/* 检查信息 */ iffp=fopenf:pan.txt,r=NULLprintf无法找到该文件 .n; exit0;/* 检查是否有该信息*/ fori=0;i
28、N;i+fread&peoi,sizeofstruct people,1,fp; ifx=peoi.year&y=peoi.month&z=peoi.dayn=i;break;ifi=Nprintf没有该天信息 .n; printf请重新挑选 .n; f7;欢迎下载精品学习资源/*进入修改程序 */欢迎下载精品学习资源for;printf=请挑选: =n; printf=0.返回主菜单 =n; printf=1.修改该天信息 =n; printf= n;scanf%d,&b; switchb欢迎下载精品学习资源default:printf无此选项,请重新输入:n; break;case 0:f
29、7;欢迎下载精品学习资源额n;case 1:/ 修改收入来源fp=fopenf:pan.txt,w+; fread&peoi,sizeofstruct people,1,fp; printf旧的信息为: n;printf收入来源收入金额支出目的支出金额余printf%5s,peon.source;printf%3f,peon.get;printf%5s,peon.motive;printf%5f ,peon.out;printf%3f n,peon.leave;fscanffp,%s,&peon;printf请输入新的收入来源 n; scanf%s,peon.source;printfn;/修
30、改收入金额printf请输入新的收入金额 n; scanf%f,&peon.get;printfn;/ 修改支出目的printf请输入新的支出目的 n; scanf%s,peon.motive;printfn;/ 修改支出金额printf请输入新的支出金额 n; scanf%f,&peon.out;printfn;欢迎下载精品学习资源额n;peon.leave=peon.get-peon.out; printf新的的信息为: n;printf收入来源收入金额支出目的支出金额余printf%5s,peon.source;printf%3f,peon.get;printf%5s,peon.moti
31、ve;printf%5f,peon.out;printf%3fn,peon.leave; fori=0;iN;i+欢迎下载精品学习资源iffwrite&peoi,sizeofstruct people,1,fp.=1欢迎下载精品学习资源fclosefp; break;printf无法打开 .n; exit0;欢迎下载精品学习资源printf是否连续? y/nn; scanf%s,&c;ifc=n|c=Nexit0;F3.cpp: #includestdio.h #includestdlib.h#includestring.h #includef2.h #includef3.h #include
32、f4.h #includef5.h #includef6.h #includef7.hextern struct people peoSIZE; void f3int x,int y,int zint b,i,n,flag=1; extern N;char c;欢迎下载精品学习资源FILE *fp; iffp=fopenf:pan.txt,r=NULLprintf无法找到该文件 .n; exit0;/* 检查是否有该信息*/ fori=0;iN;i+ifx=peoi.year&y=peoi.month&z=peoi.dayn=i; break;ifi=Nprintf没有该天信息 .n; pri
33、ntf请重新挑选 .n; f7;/*进入删除程序 */ for;printf=请挑选: =n; printf=0.返回主菜单 =n; printf=1.删除该天信息 =n;printf=n;scanf%d,&b; switchbdefault:printf无此选项,请重新输入:n;break; case 0:f7;case 1:fp=fopenf:pan.txt,w+; printf旧的信息为: n;fori=0;iN;i+printf日期收入来源收入金额支出目的支出金额余额 n;printf%d %d %d ,peoi.year,peoi.month,peoi.day; printf%5s,
34、peoi.source;printf%3f,peoi.get;printf%5s,peoi.motive;欢迎下载精品学习资源printf%5f ,peoi.out;printf%3f n,peoi.leave;fori=n;iN;i+fscanffp,%s,&peoi; strcpypeoi.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=peoi+1.out; strcpypeoi.motive,pe
35、oi+1.motive; peoi.leave=peoi+1.leave;printf删除胜利 .n;N=N-1;fori=0;iN;i+printf日期 收入来源 收入金额 支出目的 支出金额余额n printf%2d %2d %2d ,peoi.year,peoi.month,peoi.day;printf%5s,peoi.source;printf%3f,peoi.get;printf%5s,peoi.motive;printf%5f,peoi.out;printf%3fn,peoi.leave;fori=0;iN;i+iffwrite&peoi,sizeofstruct people,1,fp.=1printf无法打开 .n; exit0;fclosefp; break;printf是否连续? y/nn; scanf%s,&c;ifc=n|c=N exit0;欢迎下载精品学习资源f4.cpp:#includestdio.h #includestdlib.h #includestring.h #includef2.h #includef3.h #includef4.h #include
限制150内