📄 bank.cpp.txt
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct cust
{
int zhanghao; //帐号
char mingzi[20]; //名字
float bal; //开户的金额
};
struct tran
{
int acc_no;
char trantype;
float amt;
};
void addcust();
void rectran();
void prnlowbal();
void huizong();
void main()
{
int choice;
while(choice!=5)
{
system("cls");
printf("\n****************************************\n");
printf("\n* 银行交易系统 *\n");
printf("\n* -1- 创建新用户信息 *\n");
printf("\n* -2- 银行业务办理 *\n");
printf("\n* -3- 显示低存款用户信息 *\n");
printf("\n* -4- 汇总 *\n");
printf("\n* -5- 退出 *\n");
printf("\n****************************************\n");
printf("请选择:");
scanf(" %d",&choice);
switch(choice)
{
case 1:
addcust();
break;
case 2:
rectran();
break;
case 3:
prnlowbal();
break;
case 4:
huizong();
break;
default:
exit(0);
}
}
}
void addcust()
{
FILE *fp;
char flag='y'
struct cust people;
if((fp=fopen("sql.txt","w"))==NULL)
{
printf("\n **** 操作错误,重新输入 ****\n");
getchar();
return;
}
while(flag=='y')
{
system("cls");
printf("\n 帐号:");
scanf("%d",&people.zhanghao);
printf("\n 姓名:");
scanf("%s",&people.mingzi);
printf("\n 金额:");
scanf("%f",&people.bal);
fwrite(&people,sizeof(struct cust),1,fp);
getchar();
printf("\n 是否继续(y/n)?:");
scanf(" %c",&flag);
}
fclose(fp);
}
void rectran()
{
FILE *fp1,*fp2;
char flag='y',found,val_flag;
struct cust people;
struct tran people2;
int size=sizeof(struct cust);
if((fp1=fopen("sql.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.acc_no);
found='n'
val_flag='n'
rewind(fp1);
while((fread(&people,size,1,fp1))==1 && found=='n')
{
if(people.zhanghao==people2.acc_no)
{
found='y'
break;
}
}
if(found=='y')
{
while(val_flag=='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
{
val_flag='y'
}
}
val_flag='n'
while(val_flag=='n')
{
printf("\n 金额:");
scanf("%f",&people2.amt);
if(people2.trantype=='w'||people2.trantype=='W')
{
if(people2.amt>people.bal)
{
printf("\n *** 余额:%.2f不足.重新输入。 ***",people.bal);
}
else
{
people.bal-=people2.amt;
val_flag='y'
}
}
else
{
people.bal+=people2.amt;
val_flag='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();
getchar();
}
void prnlowbal()
{
FILE *fp;
struct cust people;
char flag='n'
getchar();
if((fp=fopen("sql.txt","r"))==NULL)
{
printf("\n **** 操作错误,重新操作 ****");
getchar();
return;
}
printf("\n 显示帐户余额低于250元的帐号\n");
while((fread(&people,sizeof(struct cust),1,fp))==1)
{
if(people.bal<250)
{
flag='y'
printf("\n %d\t%s\t%.2f",people.zhanghao,people.mingzi,people.bal);
}
}
if(flag=='n')
{
printf("\n **Sorry!未找到低于250的帐户 **");
}
getchar();
fclose(fp);
}
void huizong()
{
struct cust people;
FILE *fp;
fp=fopen("sql.txt","r");
if(fp!=NULL)
{
system("cls");
printf("%-15s%-15s%-15s\n","帐号","姓名","余额");
while(fread(&people,sizeof(struct cust),1,fp))
{
printf("\n%-15d",people.zhanghao);
printf("%-15s",people.mingzi);
printf("%-15.2f\n",people.bal);
}
}
fclose(fp);
printf("\n **** 按任意键返回! ****\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -