《家庭财务管理c-free成品》由会员分享,可在线阅读,更多相关《家庭财务管理c-free成品(9页珍藏版)》请在金锄头文库上搜索。
1、#include#include#include#include#include#include#define len sizeof(struct manage)struct massage int year;int month;int day;int type;/1表示收入,-1 表示支出 char name20;float money;char beizhu100;struct manage struct massage info;struct manage*next;int n,a=0,j;/计算结点数struct manage*head=NULL;/使首结点为空,全局变量 struct
2、 manage*load()/初始化 struct manage*q=NULL;struct manage*p;FILE*fp;fp=fopen(data11.txt,rb);/读取文件if(fp!=NULL)struct massage lishi;/将读取的资料先存放在lishi中 while(fread(&lishi,sizeof(struct massage),1,fp)=1)p=(struct manage*)malloc(len);p-info=lishi;p-next=NULL;if(head=NULL)head=p;q=p;else q-next=p;q=p;n+;fclose
3、(fp);return(head);void cover()/封面 system(cls);system(color 3b);system(mode con cols=70);system(title 家庭财务管理系统);printf(n);printf(n);printf(n);printf(n);printf(tt (info.year=local-tm_year+1900;p0-info.month=local-tm_mon+1;p0-info.day=local-tm_mday;else printf(日期:n);printf(年:);scanf(%d,&p0-info.year);p
4、rintf(月:);scanf(%d,&p0-info.month);printf(日:);scanf(%d,&p0-info.day);printf(姓名:);scanf(%s,p0-info.name);printf(金额:);scanf(%f,&p0-info.money);printf(备注:);scanf(%s,p0-info.beizhu);p0-info.type=type;if(head=NULL)/*原来的链表是空表*/head=p0;p0-next=NULL;/*使 p0 指向的结点作为头结点*/else for(p1=head;p1-next!=NULL;p1=p1-ne
5、xt);p1-next=p0;p0-next=NULL;/*插到最后的结点之后*/n+;return(head);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -int date(int type)struct manage*p;int nian,yue,ri;printf(请输入要查询的日期:n);printf(年:);scanf(%d,&nian);printf(月:);scanf(%d,&yue);printf(日:);scanf(%d,&ri);for(p=head;p!=NULL;p=p-next)if(p-info.type=type&p-info.year
6、=nian&p-info.month=yue&p-info.day=ri)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,p-info.money);printf(备注:%sn,p-info.beizhu);printf(*n);void mingzi(int type)struct manage*p;char mingz20;printf(请输入要查询的姓名:);scanf(%s,mingz);for(p=head;p!=NULL;p=p-nex
7、t)if(p-info.type=type&strcmp(p-info.name,mingz)=0)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,p-info.money);printf(备注:%sn,p-info.beizhu);printf(*n);int jine(int type)struct manage*p;float mone;printf(请输入要查询的金额;);scanf(%f,&mone);for(p=head;p!=NULL
8、;p=p-next)if(p-info.type=type&p-info.money=mone)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,p-info.money);printf(备注:%sn,p-info.beizhu);printf(*n);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -void search(int type)/查询功能 system(color 78);int choice;printf(请输
9、入要查询的依据:n);printf(tt1.日期:n);printf(tt2.姓名:n);printf(tt3.金额:n);scanf(%d,&choice);switch(choice)case 1:date(type);break;/根据日期查询 case 2:mingzi(type);break;/根据姓名查询 case 3:jine(type);break;/根据金额查询default:printf(n);printf(n);printf(n);printf(选择错误,请重新输入n);printf(n);printf(n);int tongyue(int type)struct man
10、age*p;int n,y;printf(请输入要显示的年月:n);printf(年:);scanf(%d,&n);printf(月:);scanf(%d,&y);printf(所有的记录是:n,n);for(p=head;p!=NULL;p=p-next)if(p-info.type=type&p-info.year=n&p-info.month=y)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,p-info.money);printf(备注:
11、%sn,p-info.beizhu);printf(n);int tongxingming(int type)struct manage*p;char c20;printf(请输入要显示的姓名:);scanf(%s,c);printf(所有的记录是:n,n);for(p=head;p!=NULL;p=p-next)if(p-info.type=type&strcmp(p-info.name,c)=0)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,
12、p-info.money);printf(备注:%sn,p-info.beizhu);printf(n);int tongri(int type)struct manage*p;int n,y,r;printf(请输入要显示的年月:n);printf(年:);scanf(%d,&n);printf(月:);scanf(%d,&y);printf(日:);scanf(%d,&r);printf(所有的记录是:n,n);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -for(p=head;p!=NULL;p=p-next)if(p-info.type=type&p-info
13、.year=n&p-info.month=y&p-info.day=r)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,p-info.money);printf(备注:%sn,p-info.beizhu);printf(n);struct manage *del(int type)system(color 78);struct manage *p1,*p2;char c20;int n,a=0;char mingz20;printf(请输入姓名:)
14、;scanf(%s,mingz);for(p1=head;p1!=NULL;p1=p1-next)if(p1-info.type=type&strcmp(p1-info.name,mingz)=0)printf(第%d条信息 n,a+1);printf(日期:%d.%d.%dn,p1-info.year,p1-info.month,p1-info.day);printf(姓名:%sn,p1-info.name);printf(金额:%fn,p1-info.money);printf(备注:%sn,p1-info.beizhu);printf(*n);a+;j=a;if(a=0)printf(家
15、庭财务管理内无任何信息!n);else printf(要删除第几条信息n);scanf(%d,&n);a=0;for(p1=head;p1!=NULL;p1=p1-next)if(p1-info.type=type&strcmp(p1-info.name,mingz)=0)a+;if(a=n)break;p2=p1;if(p1=head)head=p1-next;printf(删除成功 n);/删除头结点 else p2-next=p1-next;printf(删除成功 n);/删除一个结点 void show1(int type)float all=0;struct manage*p;int
16、 nian;printf(请输入要查询的日期:n);printf(年:);scanf(%d,&nian);printf(所有的记录是:n);for(p=head;p!=NULL;p=p-next)if(p-info.type=type&p-info.year=nian)printf(日期:%d.%d.%dn,p-info.year,p-info.month,p-info.day);printf(姓名:%sn,p-info.name);printf(金额:%fn,p-info.money);名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -printf(备注:%sn,p-info.beizhu);printf(n);all=all+(p-info.money)*(p-info.type);printf(所有收支统计为:%fn,all);void show2(int type)float all=0;struct manage*p;int nian,yue;printf(请输入要查询的日期:n);printf(年:);scanf(%d,&nian);printf(月: