《个人财务管理软件用户手册3888.docx》由会员分享,可在线阅读,更多相关《个人财务管理软件用户手册3888.docx(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Evaluation Warning: The document was created with Spire.Doc for .NET.个人财务管管理软件件报告目录一、需求分分析22388911一、 需求分析 1.首先个个人的财财务信息息里包括括收支日日期,收收入金额额、支出出金额还还有收入入和支出出的目的的,还有有账户余余额。因因为是包包括多个个信息所所以考虑虑到用结结构体数数组来储储存这些些信息,然然后再把把这些信信息一起起储存到到文件中中。2. 该软件需要要有六个个功能,首首先是登登录功能能,必须须输入正正确的用用户名和和密码才才能使用用软件。第第二是收收支记录录的管理理,该部部分包括
2、括添加功功能,删删除功能能和修改改功能。第第三是查查询某天天或某月月的收支支情况。第第四是统统计一段段时间的的信息。3. 后面的收支支功能,查查询功能能和统计计功能都都是从文文件中读读取,读读取后存存到结构构体数组组中,然然后再进进行操作作,操作作完后关关闭文件件,以免免信息丢丢失。4. 当用户名和和密码输输入错误误,会提提示你输输入错误误,请重重新输入入。5. 如果是操作作过程中中输入错错误,会会回到最最菜单重重新操作作。6. 运行时用户户可以根根据提示示进行操操作,每每进行一一步操作作,就会会有相应应的提示示。二 概要分析 1.程程序中存存储个人人每天的的财务信信息用的的是结构构体数组组,
3、其中中结构体体中包括括:日期期(年月月日),收收入金额额,支出出金额,收收入目的的。 struuct peoopleeint yeaar; /年年份int monnth; /月月份int dayy; /日期floaat gget; /收收入金额额floaat oout; /支出金金额charr mootivve1100; /支支出目的的charr soourcce1100;/收收入来源源floaat lleavve;/余余额 2.本程序序各函数数的结构构main函函数 将三三天的账账户信息息存储到到文件中中; 提示示用户输输入用户户名和密密码,输输入正确确; 进入入f7();/菜菜单选择择函数
4、 swwitcch() 1.修修改信息息; /f2()函数数2. 添加信息;/ff3()函数3. 删除信息;/ff4()函数4. 查询信息;/ff5()函数5. 统计信息;/ff6()函数 3.各各模块的的调用关关系 第一层层:maain 函数 第二二层:ff7(); 第三层层:f22() , f3(), f44(), ff5(), f6();调用时这些些函数都都可以通通过f77()函函数来互互相调用用。比如如运行完完f2()函函数后,可可以调用用f7(),然然后再调调用f33()函函数。 4.主主函数:添加信信息到文文件中和和执行登登录功能能。 其其他调用用函数分分别执行行其他五五大功能能。
5、三 详细设计1、 基本数据类类型操作作a) 存储每天账账户信息息的数组组结构体体strucct ppeoppleint yeaar;int monnth;int dayy;floaat gget;floaat oout;charr mootivve1100;charr soourcce1100;floaat lleavve; bb)控制制结构体体数目的的extternn N刚开始运行行该程序序时,NN的初始始值为33,后来来如果进进行添加加操作,则则N的值值就会加加1,反反之如果果进行删删除操作作,则NN的值就就会减11。 start2、 流程图 mmainn函数:int i,a,b i=0i
6、Nny将信息存到文件中 i+输入用户名和密码输入正确nF7()函数进入添加函数f4()进入删除函数f3()进入修改函数f2()菜单选择函数f7()y进入查询函数f5() end进入统计函数f6()3、基本操操作的算算法描述述 a)登录功功能:用用户只有有在输入入正确的的用户名名和密码码后才能能进入系系统进行行操作。 forr(;) priintff(=请请输入用用户名和和密码:=n);priintff(用用户名:); scaanf(%dd,&a); /a表表示用户户名priintff(n);priintff(密密码:); /b表示示密码scaanf(%dd,&b);priintff(n); i
7、f(a=1022013306&b=1) /输入和和条件一一致的情情况下进进入iff语句中中 prrinttf(=恭喜喜输入正正确,登登录成功功!=n);prrinttf(该软件件中已存存有20010年年1月11号到33号的信信息!n); elsse /输入入和条件件不一致致就进入入elsse语句句prrinttf(输入错错误,请请重新输输入!n); bb)主菜菜单功能能:用户户可以自自行选择择要进行行的操作作 prrinttf(=1:修改信信息=nn); prrinttf(=2:删除信信息=nn); prrinttf(=3:添加信信息=nn); prrinttf(=4:查询信信息=nn); p
8、rrinttf(=5:统计信信息=nn); prrinttf(请选择择:);/在在屏幕上上输出,指指示用户户操作 sccanff(%d,&fllag); /输输入用户户的选项项并存在在flaag中 whhilee( fflagg != 0) swiitchh(fllag) deefauult: prrinttf(此选项项不存在在,请重重新输入入:nn);breeak; caase 1: f2(x,yy,z); /进进入修改改函数 breeak; caase 2: f3(x,yy,z); /进入删删除函数数 breeak; caase 3: f4();/进进入添加加函数 brreakk; caa
9、se 4: f5(x,yy,z);/进进入查询询函数 breeak; caase 5: f6(x,yy,z,x1,y1,z1);/进进入统计计函数 breeak; c)修改功功能:用用户如果果觉得存存储的信信息有问问题,可可以在此此进行修修改fp=foopenn(ff:pann.txxt,w+);for(ii=0;iNN;i+)freead(&peeoii,ssizeeof(strructt peeoplle),1,ffp);if(x=peooi.yeear&y=peeoii.mmontth&z=peooi.daay) nn=i; /查看是是否有该该天的信信息存在在 breeak;if(ii=
10、NN)priintff(没没有该天天信息!n);priintff(请请重新选选择!n);f7();freadd(&ppeoi,sizzeoff(sttrucct ppeopple),1,fp);/先从文文件中读读出printtf(请输入入新的收收入来源源n); sccanff(%s,peoon.soourcce); pprinntf(请输输入新的的收入金金额nn); sscannf(%f,&ppeon.gett); pprinntf(请输输入新的的支出目目的nn); sscannf(%s,peeonn.mmotiive); priintff(请请输入新新的支出出金额n); scaanf(%ff
11、,&peoon.ouut);peoon.leeavee=peeonn.gget-peoon.ouut;/输入入新的信信息 ffor(i=00;iN;ii+)if(fwrritee(&ppeoi,sizzeoff(sttrucct ppeopple),1,fp)!=11)priintff(无无法打开开!nn);exiit(00);fcclosse(ffp);/把把新的信信息存储储到文件件当中,并并关闭文文件 dd) 删删除功能能:用户户可以在在此删除除不需要要的信息息 ffp=ffopeen(f:paan.ttxt,ww+);/打开文文件 for(i=00;iN;ii+)freead(&peeo
12、ii,ssizeeof(strructt peeoplle),1,ffp);if(x=peooi.yeear&y=peeoii.mmontth&z=peooi.daay) nn=i; /查看是是否有该该天的信信息存在在 breeak;if(ii=NN)priintff(没没有该天天信息!n);priintff(请请重新选选择!n);for(ii=n;iNN;i+)fscaanf(fp,%ss,&peooi);/将文文件中的的信息存存到数组组结构体体里strcppy(ppeoi.souurcee,peeoii+1.soourcce);peooi.yeear=peooi+1.yeaar;peeoi
13、i.mmontth=ppeoi+11.mmontth;peeoii.dday=peooi+1.dayy; peooi.geet=ppeoi+11.gget;peoii.oout=peooi+1.outt;strcppy(ppeoi.mottivee,peeoii+1.mootivve); peeoii.lleavve=ppeoi+11.lleavve;/用后后面的信信息覆盖盖前面的的信息N=N-11;/删除后后信息减减少一组组,所以以N要减减1for(ii=0;iNN;i+)if(fwwritte(&peooi,siizeoof(sstruuct peooplee),11,fpp)!=1)pp
14、rinntf(无法法打开!n);eexitt(0); fcllosee(fpp);/将现现有信息息重新存存回到文文件中 e)添添加功能能:用户户可以在在此添加加新的账账户信息息fp=foopenn(ff:pann.txxt,rbb);/先先打开文文件freadd(&ppeoi,sizzeoff(sttrucct ppeopple),1,fp);/将文件件信息存存到结构构体数组组里n=N; /添加到到结构体体数组的的末尾printtf(请输入入新的信信息日期期:nn);scanff(%d %d %d,&peeonn.yyearr,&ppeon.monnth,&peeonn.dday); prin
15、ntf(请输输入新的的信息收收入金额额和收入入来源:n); scannf(%f %s,&ppeon.gett,peeonn.ssourrce); prinntf(请输输入新的的信息支支出金额额和支出出目的:n); scannf(%f %s,&ppeon.outt,peeonn.mmotiive); peon.leaave=peoon.geet-ppeon.outt; /输输入新的的信息到到结构体体中 N=N+11; /添添加了新新的数据据所以NN的值加加1 fpp=foopenn(ff:pann.txxt,wbb); foor(ii=0;iNN;i+)fwwitee(&ppeoi,sizzeo
16、ff(sttrucct ppeopple),1,fp);fcllosee(fpp);/将新新的一组组结构体体信息写写到文件件里 f) 查查询功能能:用户户可以在在此查询询以前存存有的账账户信息息fopenn(ff:pann.txxt,r); for(i=00;iN;ii+)frreadd(&ppeoi,sizzeoff(sttrucct ppeopple),1,fp);iff(x=peeoii.yyearr&yy=ppeoi.monnth&z=peeoii.dday) n=ii; /查看看是否有有该天的的信息存存在 brreakk;if(i=N)prrinttf(没有该该天信息息!nn);pr
17、rinttf(请重新新选择!n);f77();freadd(&ppeon,sizzeoff(sttrucct ppeopple),1,fp);/将数据据存到结结构体数数组中printtf(收入来来源 收收入金额额 支出出目的 支出金金额 余额额n);printtf(%5ss ,ppeon.souurcee);printtf(%3ff ,peeonn.gget);printtf(%5ss ,peoon.mootivve);printtf(%5ff ,peeonn.oout);printtf(%3ff ,peeonn.lleavve);/输输出您要要查询的的该天信信息 fcclosse(ffp);
18、 /关关闭文件件防止信信息丢失失 gg)统计计功能:用户可可以在此此统计一一段时间间内的收收入金额额和支出出金额 foor(ii=0;iNN;i+)freead(&peeoii,ssizeeof(strructt peeoplle),1,ffp);if(x=peooi.yeear&y=peeoii.mmontth&z=peooi.daay) nn=i; /查看是是否有该该天的信信息存在在 breeak;if(ii=NN)priintff(没没有该天天信息!n);priintff(请请重新选选择!n); ffor(i=00;iN;ii+)freead(&peeoii,ssizeeof(strru
19、ctt peeoplle),1,ffp);if(x1=peeoii.yyearr&yy1=peooi.moonthh&zz1=peooi.daay) mm=i; /查看是是否有该该天的信信息存在在 breeak;if(ii=NN)priintff(没没有该天天信息!n);priintff(请请重新选选择!n); 如果存在该该段时间间信息,那那么统计计收入金金额:if(nm) ffor(i=nn,suum=00;i=m;i+) summ+=ppeoi.gett; priintff(%f,summ);fcclosse(ffp); breeak;elsee ffor(i=mm,suum=00;i=n
20、;i+)ssum+=peeoii.gget; priintff(%f,summ);fcclosse(ffp);brreakk;如果统计支支出金额额,只需需将peeoii.gget改改为peeoii.oout就就行。 33、各函函数的调调用关系系图 maiin函数数 f7()函函数 f22()函函数 ff3()函数 f44()函函数 f5()函数数 f6()函数数 f7()函函数 四 调试分析1. 开始时没有有将N定定义为全全局变量量,导致致在添加加函数中中N+11后,其其他函数数中的NN却没有有改变,导导致最后后查询的的信息不不完整。2. 开始时没有有将主菜菜单单独独存到一一个函数数里面,这这
21、样就无无法一次次运行多多个功能能,最后后将主菜菜单单独独存到一一个函数数里以后后,就可可以在运运行完一一个功能能之后,重重新选择择,这样样就可以以在一次次调试中中,运行行所有的的功能模模块,减减少了很很多麻烦烦。3. 第一次调试试运行时时,文件件中没有有存储任任何的信信息,所所以每次次进入都都必须先先要输入入一定量量的数据据,然后后才能进进行下面面的操作作,后来来加以改改善,先先在文件件中存储储几天的的账户信信息,这这样在运运行时就就可以直直接进行行查询,修修改,删删除等操操作了。4. 第一次检查查时,由由于对文文件的操操作不是是很熟练练,发现现了添加加的数据据并没有有存储到到文件之之中,最最
22、后经过过修正,加加入了一一个fwwritte将信信息写到到了文件件里。五用户手手册 1、本程程序的运运行环境境为DOOS操作作系统,执执行文件件为f11.dssw; 2、 进进入演示示程序后后,即显显示对话话形式的的提示操操作过程程, 如:请输输入用户户名和密密码,输输入正确确后便进进入菜单单选择 请输入入你的选选项, 输入选选项后,如如果选项项不存在在,会提提示你选选项不存存在,请请重新选选择。 输入正正确选项项后,便便会提示示你输入入日期。如如果进入入的是修修改函数数,就会会继续提提示你输输入新的的信息;如果进进入的时时添加函函数,会会让你输输入新的的账户信信息;如如果进入入的是删删除函数
23、数,再删删除完后后会提示示你删除除成功;如果进进入的时时查询函函数,会会输出你你要查询询的当天天账户信信息;如如果进入入的统计计函数,会会提示你你选择将将要统计计的信息息。3、 如果果用户不不小心进进错了功功能,可可以输入入0来返返回主菜菜单,重重新选择择。4、进行完完上面的的操作之之后,会会提示用用户是否否继续运运行该程程序来进进行其他他的功能能操作 按n或或N键键 sttop或或其它键键继续六测试数数据 =请请输入用用户名和和密码:= 用户户名:11020013006密码:1恭喜输入正正确,登登录成功功!1:修改信信息 22:删除除信息33:添加加信息 4:查查询信息息 5:统计信信息 a
24、a)请选选择:11 请请输入您您要修改改得日期期:20010 1 11 00.返回回主菜单单 11.修改改该天信信息 请请选择 1 旧的信信息为:20110 11 1 10000.00000000 收入11 1000.00000000 支出11 请请输入新新的信息息:收入入金额 11000 收收入来源源 aaaa 支支出金额额 2000 支支出目的的 bbbb。修改成功!新的信息为为 20010 1 11 11100.00000000 aaaa 2200.000000000 bbbb bb)请选选择:22 请请输入您您要删除除的日期期:20010 1 11 00.返回回主菜单单 1.删除除该天
25、信信息请选择:11 旧的信信息为: 20110 11 1 10000.00000000 收入11 1000.00000000 支出11 220100 1 2 220000.00000000 收收入2 2000.00000000 支支出2 20110 11 3 30000.00000000 收入33 3000.00000000 支出33 删除成功!新的信息为为: 20010 1 22 20000.00000000 收入入2 2200.00000000 支出出2 20110 11 3 30000.00000000 收入33 3000.00000000 支出33 是否否继续 y/nn n ppres
26、ss aany keyy too coontiinuee c)请请选择:3 0.返返回主菜菜单 1.添添加一天天的账户户信息请选择:11旧的信息为为: 20010 1 11 10000.00000000 收入入1 1100.00000000 支出出1 220100 1 2 220000.00000000 收收入2 2000.00000000 支支出2 20110 11 3 30000.00000000 收入33 3000.00000000 支出33 请输入新的的信息:20110 11 4 40000 收入44 4000 支支出4添加成功!新的信息为为:20010 1 11 10000.0000
27、0000 收入入1 1100.00000000 支出出1 220100 1 2 220000.00000000 收收入2 2000.00000000 支支出2 20110 11 3 30000.00000000 收入33 3000.00000000 支出33 20110 11 4 40000.00000000 收入44 4000.00000000 支出44 是是否继续续 y/n n ppresss aany keyy too coontiinueed)请选择择:4 请输入入您要查查询得日日期:220100 1 1 00.返回回主菜单单 11.查询询该天信信息 请请选择 12010 1 11 1
28、0000.00000000 收入入1 1100.00000000 支出出1 是否否继续 y/nn n ppresss aany keyy too coontiinuee e)请选择择: 55 请输入你要要统计的的两个日日期:220100 1 1 220100 1 3 00.返回回主菜单单 11.统计计该段时时间的收收入金额额2. 统计该段时时间的支支出金额额3. 统计该段时时间的余余额 请请选择 1. 660000.00000000 2. 6600.00000000 3. 54400.00000000是否继续 y/nn nn prresss anny kkey to conntinnue七附录
29、 1、源源程序函函数清单单 主函数数:f11() 修改函函数:ff2()删除函数:f3()添加函数:f4()查询函数:f5()统计函数:f6()主菜单函数数:f77() 2、源源程序代代码 ff1.ccpp: #inccluddesstdiio.hh#inclludeesttdliib.hh#inclludeesttrinng.hh#inclludeef22.h#inclludeef33.h#inclludeef44.h#inclludeef55.h#inclludeef66.h#inclludeef77.hstrucct ppeopple peooSIIZE;int NN=3;void ma
30、iin() int i,aa,b; chaar dd1110=收入入1,d210=收收入2,d33100=收入33,ee1110=支出出1,e210=支支出2,e33100=支出33; FILLE *fp; /*输输入三天天的账户户信息*/ peeo00.yyearr=20010;peoo0.moonthh=1;peoo0.daay=11; strrcpyy(peeo00.ssourrce,d1);ppeo0.gett=10000; strrcpyy(peeo00.mmotiive,e1);peeo00.oout=1000; peoo0.leeavee=peeo00.gget-peoo0.ou
31、ut; peoo1.yeear=20110;ppeo1.monnth=1;ppeo1.dayy=2; strrcpyy(peeo11.ssourrce,d2);peeo11.gget=20000;strcppy(ppeo1.mottivee,e22);ppeo1.outt=2000;peo11.lleavve=ppeo1.gett-peeo11.oout; peoo2.yeear=20110;ppeo2.monnth=1;ppeo2.dayy=3; strrcpyy(peeo22.ssourrce,d3);peeo22.gget=30000; strrcpyy(peeo22.mmotiive,
32、e3);peeo22.oout=3000; peoo2.leeavee=peeo22.gget-peoo2.ouut;/*把数据据写入文文件*/ ffp=ffopeen(f:paan.ttxt,ww);for(i=00;iN;ii+)iff(fwwritte(&peooi,siizeoof(sstruuct peooplee),11,fpp)!=1)pprinntf(无法法打开!n);eexitt(0); fcclosse(ffp);/*菜单选选择功能能*/ priintff(=个个人账户户管理软软件=n); priintff(=设设计人:潘君宇宇=n); priintff(n); priin
33、tff(n); priintff(请请登录:n); foor(;) priintff(=请请输入用用户名和和密码:=n);prrinttf(用户名名:); scaanf(%dd,&a);prrinttf(n);prrinttf(密码:);sccanff(%d,&b);prrinttf(n); if(a=1022013306&b=1) prrinttf(=恭喜喜输入正正确,登登录成功功!=nn);prrinttf(=该软件件中已存存有20010年年1月11号到33号的信信息!=nn); f77(); ellsepprinntf(输入入错误,请请重新输输入!n); f2.cppp:#inclludeesttdi