📄 keshe.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <ctype.h>
#include <string.h>
#define NULL 0
struct person
{
int accounts; //开户帐号
char name[10]; //姓名
float money; //开户的金额
};
struct tran
{
int number;
char trantype;
float money1;
};
void Addperson(); //=====函数声明============
void Exchange();
void Dispaly();
void Collect();
void Delperson();
void main() //=====main()函数==========
{
int choose;
while(choose!=6)
{
printf("\t\t==============================================\n");
printf("\t\t* 银 行 活 期 帐 户 储 蓄 管 理 *\n");
printf("\t\t==============================================\n");
printf("\t\t* 1、追 加 新 帐 户 *\n");
printf("\t\t* 2、存 款 / 取 款 *\n");
printf("\t\t* 3 汇 总 *\n");
printf("\t\t* 4、注 销 老 帐 户 *\n");
printf("\t\t* 5、清 屏 *\n");
printf("\t\t* 6、退 出 *\n");
printf("\t\t==============================================\n");
printf("请选择您要进行的操作:");
scanf(" %d",&choose);
switch(choose)
{
case 1:
Addperson();break;
case 2:
Exchange(); break;
case 3:
Collect();break;
case 4:
Delperson(); break;
case 5:
system("cls");break;
default:
exit(0);
}
}
}
void Addperson()
{
FILE *fp;
char flag='y';
struct person people[10];
int i,n;
if((fp=fopen("file1.txt","w"))==NULL)
{
printf("\n======= 您的操作有误,请重新输入! =======\n");
getchar();
return;
}
while(flag=='y')
{
printf("请您输入您要新开帐户数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
system("cls");
printf("\n 输入帐号:");
scanf("%d",&people[i].accounts);
printf("\n 请输入户主姓名:");
scanf("%s",&people[i].name);
printf("\n 请输入开户的金额:");
scanf("%f",&people[i].money);
fwrite(&people[i],sizeof(struct person),1,fp);
getchar();
printf("\n 是否继续(y/n)?:");
scanf(" %c",&flag);
}
}
fclose(fp);
}
void Exchange()
{
FILE *fp1,*fp2;
char flag='y',letter,flag1;
struct person people;
struct tran people2;
int size=sizeof(struct person);
if((fp1=fopen("file1.txt","a+f"))==NULL)
{
printf("\n======= 您的操作有误,请重新输入! =======\n");
getchar();
exit(0);
}
if((fp2=fopen("trans.dat","a+f"))==NULL)
{
printf("\n======= 您的操作有误,请重新输入! =======\n");
getchar();
return;
}
while(flag=='y')
{
system("cls");
printf("\n请输入您的帐号:");
scanf("%d",&people2.number);
letter='n';
flag1='n';
rewind(fp1);
while((fread(&people,size,1,fp1))==1 && letter=='n')
{
if(people.accounts==people2.number)
{
letter='y';
break;
}
}
if(letter=='y')
{
while(flag1=='n')
{
printf("\n 请选择您的交易方式 存款/取款(D/W)?:");
scanf(" %c",&people2.trantype);
if(people2.trantype!='D'&&people2.trantype!='d'&&people2.trantype!='w'&&people2.trantype!='W')
{
printf("\n======= 您的操作有误,请重新输入! =======\n");
}
else
{
flag1='y';
}
}
flag1='n';
while(flag1=='n')
{
printf("\n 请输入您要存款/支取的金额:");
scanf("%f",&people2.money1);
if(people2.trantype=='w'||people2.trantype=='W')
{
if(people2.money1>people.money)
{
printf("\n *** 您的余额为:%.2f. \n***金额不足!重新输入 ***",people.money);
}
else
{
people.money-=people2.money1;
flag1='y';
}
}
else
{
people.money+=people2.money1;
flag1='y';
}
}
fwrite(&people,sizeof(struct tran),1,fp2);
fseek(fp1,(long)(-size),1);
fwrite(&people,size,1,fp1);
}
else
{
printf("\n **** 该帐号不存在! ****\n");
}
printf("\n 是否继续交易?y/n:");
scanf(" %c",&flag);
}
fclose(fp1);
fclose(fp2);
getchar();
}
void Collect()
{
struct person people2[10];
int i;
FILE *fp;
fp=fopen("file1.txt","r");
if(fp!=NULL)
{
printf("%-15s%-15s%-15s\n","帐号","姓名","金额");
for(i=0;i<10;i++)
while(fread(&people2[i],sizeof(struct person),1,fp)) //fread(buffer,size,count,fp);
{
printf("\n%-15d",people2[i].accounts);
printf("%-15s",people2[i].name);
printf("%-15.2f\n",people2[i].money);
}
}
fclose(fp);
}
void Delperson()
{
FILE *fp;
char flag='y';int number;
while(flag=='y')
{
int i,j;
if((fp=fopen("file1.txt","r"))==NULL)
{
printf("\n======= 您的操作有误,请重新输入! =======\n");
getchar();
return;
}
struct person people3[20];
system("cls");
printf("\t请输入要注销的帐户号:");
scanf("%d",&number);
for(j=0,i=0;!feof(fp);i++,j++)
{
fseek(fp,i*sizeof(struct person),0);
fread(&(people3[j]),sizeof(struct person),1,fp);
if(people3[j].accounts==number)
{
j--;
printf("\n\t该帐户已经成功注销!\n");
}
}
if(i==j)
printf("\n\t 对不起!您的帐号输入错误或不存在该帐户!\n");
fclose(fp);
fp=fopen("file1.txt","w");
for(j=j-1,i=0;j>=0;i++,j--)
fwrite(&(people3[j]),sizeof(struct person),1,fp);
fclose(fp);
printf("\n 是否继续注销帐户(y/n)?:");
scanf(" %c",&flag);
getchar();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -