c++个人财务管理系统_第1页
c++个人财务管理系统_第2页
c++个人财务管理系统_第3页
c++个人财务管理系统_第4页
c++个人财务管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、个人财务管理系统/my#include<iostream>#include<fstream>#include<cstring>#include<string>#include<iomanip>using namespace std;struct recordstring time;string operate;int money;struct code string password; string acnumber;string person1;string person2;const record mark="notim

2、en","non",0; class accountpublic:struct record A;struct code B;int checkacnumber();int checkpassword();void oldrecord(const char *filetxt);void inquire(const char *filetxt);void del(const char *filetxt);void increase(const char *filetxt);void CreateTxt(const char *filetxt);void printa

3、ll(const char *filetxt);void printincome(const char *filetxt);void printpay(const char *filetxt);void Modifynumber();void CreateDat();void Initial(const char *filetxt);int endmark(record A);int findback();void recyclebin(const char *filetxt);#"const char *file="E:RecordFile.txt"int ma

4、in()cout<<" 欢送使用个人财务管理系统n"cout<<" -n"cout<<"| |n"cout<<"| 1.登陆 |n"cout<<"| 2.注册 |n"cout<<"| |n"cout<<" -n"int n,k,t;cin>>n;account X;if(n=2)();n=1;if(n=1) k=();if(k=0) exit(0);else t

5、=();if(t=0) exit(0);else while(1)cout<<"-请选择您要进行的操作-n"cout<<"| |n"cout<<"| 0.退出系统 |n"cout<<"| 1.查找记录 |n"cout<<"| 2.增加记录 |n"cout<<"| 3.删除记录 |n"cout<<"| 4.输出所有记录 |n"cout<<"| 5.输出所

6、有收入记录 |n"cout<<"| 6.输出所有支出记录 |n"cout<<"| 7.修改密码 |n"cout<<"| 8.初始化记录 |n"cout<<"| 9.回收站 |n"char choice;cin>>choice;switch(choice)case'0':cout<<"感谢您使用本系统!n"exit(0);(file);break;(file);break;(file);break;(

7、file);break;(file);break;(file);break;();break;(file);break;(file);break;cout<<endl<<endl;cout<<"-n"();#"int account:checkacnumber()string a;int j=3;ifstream fdat("E:accountFile.dat",ios:in);cout<<"请输入您的账号: "while(j-)cin>>a;(0,ios:beg)

8、;(char*)&B,sizeof(code);if(a=) ();return 1;else cout<<"此账号不存在,请重新输入!n"cout<<"n您的账号已输错三次!请退出系统!n"();return 0;#"int account:checkpassword()ifstream fdat("E:accountFile.dat",ios:in);string s;int j=3,x;cout<<"请输入密码:"while(j-)cin>>s

9、;(0,ios:beg);(char*)&B,sizeof(code);if(s=) ();return 1;else cout<<"密码错误,请重新输入!n"cout<<"n您输入的密码已错误三次,请问想找回密码吗? (Y/N)n"char answer;cin>>answer;if(answer='Y'|answer='y')x=account:findback();if(x=1) return 1;else return 0;else cout<<"感

10、谢您使用本系统,再见!n"return 0;#"void account:CreateDat()code B;string a,b;account:oldrecord("E:RecordFile.txt");fstream temp("E:lalala.txt",ios:out|ios:binary);fstream rub("E:RecycleBin.txt",ios:out|ios:binary);(0,ios:beg);(char*)&mark,sizeof(record);(0,ios:beg);(

11、char*)&mark,sizeof(record);while(1)cout<<"请输入您要注册的账号:"cin>>B.acnumber;cout<<endl;cout<<"请输入您的密码:"cin>>B.password;cout<<endl;cout<<"请重新输入账号:"cin>>b;cout<<endl;if(b=)cout<<"请重新输入密码:"cin>>a;cou

12、t<<endl;if(a=) cout<<"为了便于验证身份,请您填写以下信息作为验证方式n" cout<<"自己身高多少:"cin>>B.person1;cout<<"自己颜值多高:"cin>>B.person2;cout<<"(自己身高多少:"<<B.person1<<") "<<"(自己颜值多高:"<<B.person2<<&q

13、uot;)n"cout<<"以上将成为您找回密码的个人验证信息,请务必牢记!n"fstream fdat("E:accountFile.dat",ios:out|ios:binary);(char*)&B,sizeof(code);();cout<<"n请重新登陆n"cout<<"n_n"break;#"void account:del(const char* filetxt) fstream fdat(filetxt,ios:in|ios:out|i

14、os:binary); fstream ftxt("E:lalala.txt",ios:in|ios:out|ios:binary); fstream rub("E:RecycleBin.txt",ios:in|ios:out|ios:binary); while(1) string E;int n=0;char answer; cout<<"请输入您要删除的日期:"cin>>E;(0,ios:beg);do(char*)&A,sizeof(record);if(E=)n+;cout<<&q

15、uot;("<<<<","<<<<","<<<<")"<<endl;while(!endmark(A);if(n=0) cout<<"没有该日期的记录!n"<<"您还要继续删除记录吗? (Y/N)n"cin>>answer;if(answer='Y'|answer='y') cout<<endl;continue;else

16、();();();break;else cout<<"是否确定要删除以上日期记录? (Y/N)n"cin>>answer;if(answer='Y'|answer='y')(0,ios:beg);(0,ios:beg);(0,ios:beg);do(char*)&A,sizeof(record);while(!endmark(A);(-long(sizeof(record),ios:cur);do(char*)&A,sizeof(record);if(!=E&&!endmark(A) (

17、char*)&A,sizeof(record);if(=E&&!endmark(A) (char*)&A,sizeof(record);while(!endmark(A); (char*)&mark,sizeof(record);(char*)&mark,sizeof(record);(0,ios:beg);(0,ios:beg);do(char*)&A,sizeof(record);if(!endmark(A)(char*)&A,sizeof(record);while(!endmark(A);(char*)&mark,

18、sizeof(record);cout<<"成功删除记录!n"cout<<"您是否还要继续删除日期记录? (Y/N)n"cin>>answer;if(answer='Y'|answer='y') cout<<endl;continue;else ();();();break;else cout<<"取消操作!n"#"int account:findback()fstream fdat("E:accountFile.dat&q

19、uot;,ios:in|ios:out|ios:binary);(0,ios:beg);(char*)&B,sizeof(code);string a,b,c,d;cout<<"自己身高多少:"cin>>a;if(a!=B.person1) cout<<"n验证错误!请退出系统!n"return 0;else cout<<"自己颜值多高:"cin>>b;if(b!=B.person2) cout<<"n验证错误!请退出系统!n"retu

20、rn 0;else cout<<"n验证成功!请修改您的密码!n"account:Modifynumber();();return 1;#"void account:increase(const char* filetxt) fstream fdat(filetxt,ios:in|ios:out|ios:binary);while(1) record D;cout<<"请输入您要添加的日期:"cin>>cout<<"请输入所添加日期的操作:"cin>>cout<

21、;<"请输入所添加日期的支出或收入:"cin>>(ios:showpos);cout<<"("<<<<","<<<<","<<<<")"cout<<"n是否确定将该日期记录进行保存? (Y/N)n"char answer;cin>>answer;if(answer='Y'|answer='y')(0,ios:beg);d

22、o(char*)&A,sizeof(record);while(!endmark(A);(-long(sizeof(record),ios:cur);(char*)&D,sizeof(record);(char*)&mark,sizeof(record);cout<<"n您是否还要继续添加日期记录? (Y/N)n"cin>>answer;if(answer='Y'|answer='y') cout<<endl;continue;else cout<<"记录保存成

23、功!n"();break;else cout<<"取消操作!n"cout<<"您还要进行日期记录添加的操作吗? (Y/N)n"cin>>answer;if(answer='Y'|answer='y') continue;else ();break;#"extern const record mark;void account:Initial(const char *filetxt)fstream fdat(filetxt,ios:out|ios:binary);cou

24、t<<"假设账目文件存在,将删除所有数据,要进行文件初始化吗? (Y/N)n"char answer;cin>>answer;if(answer='Y'|answer='y')(0,ios:beg);(char*)&mark,sizeof(record);cout<<"文件已经初始化。n"else cout<<"取消操作n"();#"void account:inquire(const char* filetxt)cout<<

25、"请输入您要查询的日期:"string date;int sum=0,income=0,pay=0,n=0;cin>>date;fstream ftxt(filetxt,ios:in|ios:binary);(0,ios:beg);do(char*)&A,sizeof(record);if(date=&&!endmark(A)n+;if(n=1)cout<<"Time operate moneyn"cout<<<<" "<<<<"

26、 "<<<<endl;if(="in") sum=sum+A.money;income=;else sum=sum+A.money;pay=;while(!endmark(A);cout<<endl;if(n=0)cout<<"该日期无记录!n"cout<<endl;if(n!=0)cout<<"总金额为:"<<sum<<endl;cout<<"总收入为:"<<income<<

27、;endl;cout<<"总支出为:"<<pay<<endl;();#"void account:Modifynumber()string a,b;while(1)cout<<"请输入您要更改的新密码:"cin>>a;cout<<endl<<"请再次输入新密码:"cin>>b;if(a=b) cout<<endl<<"密码修改成功!n"break;else cout<<&qu

28、ot;两次密码不相同,请重新操作!n"fstream inf("E:accountFile.dat",ios:out|ios:in|ios:binary);(0,ios:beg);(char*)&B,sizeof(code);=a;(-long(sizeof(code),ios:cur);(char*)&B,sizeof(code);();#"extern const record mark;void account:oldrecord(const char *filetxt)record a20;record A;a0.time=&qu

29、ot;15-03-20"a0.operate="in"a0.money=+10;a1.time="14-05-20"a1.operate="out"a1.money=-20;a2.time="14-06-21"a2.operate="out" a2.money=-35;a3.time="14-05-21"a3.operate="out"a3.money=-40;a4.time="15-05-22"a4.operate=&quo

30、t;in"a4.money=+100;a5.time="15-05-25"a5.operate="out"a5.money=-25;a6.time="15-05-26"a6.operate="out"a6.money=-15;a7.time="14-11-26"a7.operate="out"a7.money=-70;a8.time="15-03-26"a8.operate="in"a8.money=+100;a9.time=

31、"15-02-27"a9.operate="out"a9.money=-40;a10.time="15-05-28"a10.operate="in"a10.money=+100;a11.time="15-05-28"a11.operate="out"a11.money=-20;a12.time="15-04-28"a12.operate="out"a12.money=-10;a13.time="15-05-29"a1

32、3.operate="in"a13.money=+88;a14.time="15-05-30"a14.operate="out"a14.money=-61;a15.time="15-06-01"a15.operate="out"a15.money=-18;a16.time="15-06-04"a16.operate="out"a16.money=-23;a17.time="15-06-05"a17.operate="in&qu

33、ot;a17.money=+11;a18.time="15-06-03"a18.operate="out"a18.money=-52;a19.time="15-06-08"a19.operate="in"a19.money=+50;fstream file(filetxt,ios:out|ios:binary);(0,ios:beg);for(int i=0;i<20;i+)(char*)&ai,sizeof(record);(char*)&mark,sizeof(record);(); #&

34、quot;void account:printall(const char* filetxt)int sum=0,income=0,pay=0,i=0,t;record q100;string s,x;fstream ftxt(filetxt,ios:in|ios:binary);(0,ios:beg);do (char*)&A,sizeof(record); if(!endmark(A) qi.time=A.time;qi.operate=A.operate;qi.money=A.money;i+; if(="in") sum=sum+A.money;income

35、=; else sum=sum+A.money;pay=;while(!endmark(A);if(i>1) for(int k=0;k<i-1;k+)for(int j=k+1;j<i;j+)if(qk.time>qj.time) s=qj.time;qj.time=qk.time;qk.time=s; x=qj.operate;qj.operate=qk.operate;qk.operate=x; t=qj.money;qj.money=qk.money;qk.money=t;cout<<"Time operate moneyn"fo

36、r(int k=0;k<i;k+)if(qk.operate="in")cout<<setiosflags(ios:showpos)<<qk.time<<" "<<qk.operate<<" "<<qk.money<<endl;else cout<<setiosflags(ios:showpos)<<qk.time<<" "<<qk.operate<<" &

37、quot;<<qk.money<<endl;cout<<"n总金额为:"<<resetiosflags(ios:showpos)<<sum<<endl;cout<<"总收入为:"<<setiosflags(ios:showpos)<<income<<endl;cout<<"总支出为:"<<pay<<endl;();else if(i=1)cout<<"Time

38、 operate moneyn" cout<<setiosflags(ios:showpos)<<q0.time<<" "<<q0.operate<<" "<<q0.money<<endl;cout<<"总金额为:"<<resetiosflags(ios:showpos)<<sum<<endl;cout<<"总收入为:"<<setiosflags(io

39、s:showpos)<<income<<endl;cout<<"总支出为:"<<resetiosflags(ios:showpos)<<pay<<endl;();else cout<<"n文件无日期记录!n"/printincome#"void account:printincome(const char* filetxt)int sum=0,n=0,i=0,t;record q100;string s,x;fstream ftxt(filetxt,ios:in

40、|ios:binary);(0,ios:beg);do(char*)&A,sizeof(record);if(!endmark(A)&&="in")n+;qi.time=A.time;qi.operate=A.operate;qi.money=;i+;sum=;while(!endmark(A);if(i>1)for(int k=0;k<i-1;k+)for(int j=k+1;j<i;j+)if(qk.time>qj.time) s=qj.time;qj.time=qk.time;qk.time=s; x=qj.operat

41、e;qj.operate=qk.operate;qk.operate=x; t=qj.money;qj.money=qk.money;qk.money=t;cout<<"Time operate moneyn"(ios:showpos);for(int k=0;k<i;k+)cout<<qk.time<<" "<<qk.operate<<" "<<qk.money<<endl;cout<<endl;if(n=0)cout<<

42、;"该日期无记录!n"cout<<endl;if(n!=0)cout<<"n总收入金额为:"<<sum<<endl;();else if(i=1)cout<<"Time operate moneyn"cout<<setiosflags(ios:showpos)<<q0.time<<" "<<q0.operate<<" "<<q0.money<<endl;

43、cout<<"n总收入金额为:"<<resetiosflags(ios:showpos)<<sum<<endl;();else cout<<"n文件无日期记录!n"#"void account:printpay(const char* filetxt)int sum=0,n=0,i=0,t;record q100;string s,x;fstream ftxt(filetxt,ios:in|ios:binary);(0,ios:beg);do(char*)&A,sizeof(r

44、ecord);if(!endmark(A)&&="out")n+;qi.time=A.time;qi.operate=A.operate;qi.money=;i+;sum=;while(!endmark(A);if(i>1)for(int k=0;k<i-1;k+)for(int j=k+1;j<i;j+)if(qk.time>qj.time) s=qj.time;qj.time=qk.time;qk.time=s; x=qj.operate;qj.operate=qk.operate;qk.operate=x; t=qj.money

45、;qj.money=qk.money;qk.money=t;cout<<"Time operate moneyn"for(int k=0;k<i;k+)cout<<qk.time<<" "<<qk.operate<<" "<<qk.money<<endl;cout<<endl;if(n=0)cout<<"该日期无记录!n"cout<<endl;if(n!=0)cout<<&quo

46、t;总支出金额为:"<<sum<<endl;();else if(i=1)cout<<"Time operate moneyn"if(q0.money) cout<<q0.time<<" "<<q0.operate<<" "<<q0.money<<endl;cout<<"n总支出金额为:"<<resetiosflags(ios:showpos)<<sum<&

47、lt;endl;();else cout<<"n文件无日期记录!n"#"void account:recyclebin(const char* filetxt)fstream rub("E:RecycleBin.txt",ios:in|ios:out|ios:binary);fstream fdat(filetxt,ios:in|ios:out|ios:binary);fstream ftxt("E:lalala.txt",ios:in|ios:out|ios:binary);string s;cout<<"n 请选择您要进行的操作n"cout<<"|-|n"cout<<"|-1.找回误删日期记录-|n"cout<<"|-2.清空回收站-|n"cout<<"|-3.取消操作-|n"cout<<"|-|n"strin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论