/*本软件是完成日常收入与支出的记录*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE *fp;
int k=0;//初始化输入个数为0
int b=1;//主函数只读取密码验证
struct money
{
char name[201];
char day[201];
char livetishi[201];
int takemoney,costmoney,allmoney,num;
}s[1000];
char str2[6]="000000";
void biaotou()
{
printf(" ◤顺序 ┃ 进账┃ 花销日期 ┃ 出账 ┃出账情况 ┃ 剩余money┃ 生活提示 ◥\n");
printf("════════════════════════════════════\n");
}
void menu()
{
system("color 5e");
system("cls");
printf(" ╭*******************************************╮\n");
printf(" | ★个人理财信息 ★ |\n");
printf(" |=============================================|\n");
printf(" | 1.个人理财信息 |\n");
printf(" |=============================================|\n");
printf(" | 2.显示账户信息 |\n");
printf(" |=============================================|\n");
printf(" | 3.删除账户信息 |\n");
printf(" |=============================================|\n");
printf(" | 4.查询账户信息 |\n");
printf(" |=============================================|\n");
printf(" | 5.修改账户信息 |\n");
printf(" |=============================================|\n");
printf(" | 6.保存账户信息 |\n");
printf(" |=============================================|\n");
printf(" | 7.登录密码修改 |\n");
printf(" |=============================================|\n");
printf(" | 0.退出系统 |\n");
printf(" |=============================================|\n");
printf(" | ★o(≧v≦)o~~~(@^_^@)~~~o(≧v≦)o★ |\n");
printf(" ╰ ※※※※※※※※☆☆☆☆※※※※※※※※※╯\n");
}
//理财信息
void huaxiao()
{
int i;
char strd;
char m[50];
for(i=0;i<1001;i++)
{
printf(" 请输入编号(输入编号为0时结束):");scanf("%d",&s[i].num);
if(s[i].num==0)
{
fflush(stdin); //清空缓存
printf("是否退出y/n? ");
scanf("%c",&strd);
if(strd=='y')
break;
else
continue;
}
printf("请输入进账数目:");scanf("%d",&(s[i].takemoney));
printf("请输入花销时间:");scanf("%s",m);strcpy(s[i].day,m);
printf("请输入花销数目:");scanf("%d",&s[i].costmoney);
printf("请输入花销情况:");scanf("%s",m);strcpy(s[i].name,m);
printf("请输入生活提示:");scanf("%s",m);strcpy(s[i].livetishi,m);
s[i].allmoney=s[i].takemoney-s[i].costmoney;
k++;
}
}
int xianshi()//显示文件
{
int i;
biaotou();
if((fp=fopen("huaxiao","rb"))==NULL)
{
printf(" Can't Open!\n");
exit(0);
}
for(i=0;i<=k;i++)
{
fread(&s[i],sizeof(struct money),1,fp);
printf("%4d %8d %12s %8d %10s %8d %16s \n",s[i].num,s[i].takemoney,s[i].day,s[i].costmoney,s[i].name,s[i].allmoney,s[i].livetishi);
}
fclose(fp);
return 0;
}
void save(int m) //保存文件
{
FILE *fp;
int j;
if((fp=fopen("C:huaxiao","wb"))==NULL)
{
printf("can't open!");
exit(0);
}
for(j=0;j<=m;j++)
if(fwrite(&s[j],sizeof(struct money),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf("\n\n");
printf(" 保存成功!!!!");
}
//删除文件
void shanchu()
{
int i,j,num,m;
printf("请输入你要删除的编号:");
scanf("%d",&num);
if((fp=fopen("huaxiao","rb"))==NULL)
{
printf("Can't Open!!!");
exit(0);
}
for(i=0;i<=k;i++)
{
fread(&s[i],sizeof(struct money),1,fp);
if(s[i].num==num)
m=i;
}
fclose(fp);
if((fp=fopen("huaxiao","rb"))==NULL)
{
printf("Can't Open!!!");
exit(0);
}
for(i=m;i<=k;i++)
{
j=i+1;
s[i].num=s[j].num;
s[i].takemoney=s[j].takemoney;
strcpy(s[i].day,s[j].day);
s[i].costmoney=s[j].costmoney;
strcpy(s[i].name,s[j].name);
s[i].allmoney=s[j].allmoney;
strcpy(s[i].livetishi,s[j].livetishi);
}
printf("\n\n");
printf(" 删除成功!!!!!!!!! \n");
fclose(fp);
save(k-1);
}
void chaxun() //以编号查询
{
FILE* fp;
int num;
int i,m;
printf(" 请输入编号:");
scanf("%d",&num);
if((fp=fopen("huaxiao","rb"))==NULL)
{
printf(" Can't Open!\n");
exit(0);
}
for(i=0;i<=k;i++)
{
if(s[i].num==num)
{
printf(" ◆■查询到结果◆■\n\n");
m=i;
biaotou();
for(i=0;i<=k;i++)
{
fread(&s[m],sizeof(struct money),1,fp);
printf("%4d %8d %12s %8d %10s %16d %s \n",s[i].num,s[i].takemoney,s[i].day,s[i].costmoney,s[i].name,s[i].allmoney,s[i].livetishi);
}
}
else
printf("Not Find!!!!");
}
}
//密码登陆
void mima()
{
char str1[6];
system("color e4");
if((fp=fopen("mima","wb"))==NULL)
{
printf("can't open this file!!");
exit(0);
}
printf("请设定新密码(6个字符),以回车键结束:");
scanf("%s",str1);
strcpy(str2,str1);
fwrite(str2,sizeof(str2),1,fp);
fclose(fp);
}
//保存
//tui出显示
void tuichu()
{
system("color e9");
printf("\n\n\n");
printf(" *******************~(@^_^@)~★谢谢你的使用★~(@^_^@)~**************************\n");
printf(" ******************* (*^◎^*)☆作者:飞向太阳☆(*^◎^*)*************************\n");
printf(" *************************★★版本号:zhyg-1.0 ★★*****************************\n");
}
//主函数
void main()
{
FILE *fp;
int i;
int select,m;
char str[7];
int c=2;
system("color 5e");
if(b==1)
{
printf(" .你仅有3次机会·\n");
if((fp=fopen("mima","wb"))==NULL)
{
printf("can't open this file!!");
exit(0);
}
fread(str2,sizeof(str2),1,fp);
for(i=0;i<3;i++,c--)
{
printf("请输入密码:");
scanf("%s",str);
if(strcmp(str2,str)==0)
break;
else if(c>0)
printf("还有%d次机会!!!\n",c);
else if(c==0)
{
printf(" 谢谢使用!!\n\n");
exit(0);
}
}
b--;
}
//fclose(fp);
menu();
printf(" ▼温馨提示▼‥★☆输入完数据请按6进行保存☆★\n");
printf(" 请选择所需的项目(以ENTER结束): ");
scanf("%d",&select);
switch(select)
{
case 1:printf(" ***增加账户信息** \n");system("cls");huaxiao();
printf("输入0返回主菜单:");scanf("%d",&m);if(m==0);main();break;
case 2:printf(" ***显示账户信息** \n");system("cls");xianshi();
printf("输入0返回主菜单:");scanf("%d",&m);if(m==0)main();break;
case 3:printf(" ***删除账户信息** \n");system("cls");shanchu();
printf("输入0返回主菜单:");scanf("%d",&m);if(m==0)main();break;
case 4:printf(" ***查询账户信息** \n");system("cls");chaxun();
printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;
case 5:printf(" ***修改账户信息** \n");system("cls");printf(" ⊙﹏⊙不好意思,出错了⊙﹏⊙!\n\n\n\n\n");
printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;
case 6:printf(" ***保存账户信息** \n");system("cls");save(k);
printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;
case 7:printf(" ***登录密码修改** \n");system("cls");mima();
printf("输入0返回主菜单: ");scanf("%d",&m);if(m==0)main();break;
case 0:printf(" *** 退出系统 ** \n");system("cls");tuichu(); break;
default: break; /*按键有误,必须为数值0-9*/
}
}