/*本軟件是完成日常收入與支出的記錄*/
#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*/
}
}