admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:stackbug)

#include /*引用库函数*/

#include

#include

#include

#include

#define ZHANGHUSHU 10

#define JIAOYISHU 20

int caidan();/*登录注册菜单*/

void zhuce();

void denglu();

void baocunshuju();

int menu();/*主菜单*/

void cunkuan();

void qukuan();

void zhuanzhang();

void chaxun();

void xiugaimima();

struct JiaoYi /*定义交易结构体*/

{

char shijian[50];/*时间*/

char leixing[3];/*类型*/

float jine; /*金额*/

float yue;/*余额*/

};

struct ZhangHu /*定义账户结构体*/

{

char xingming[17];/*姓名*/

char zhanghao[12];/*账号*/

char shenfenzheng[19]; /*身份证*/

char mima[7]; /*密码*/

float yue; /*余额*/

struct JiaoYi jiaoyi[JIAOYISHU]; /*在账户的结构体中在定义交易的结构体*/

int jiaoyishu;

};

struct ZhangHu zhanghu[ZHANGHUSHU]; /*定义账户数来确定账户这一结构体中

有多少个体*/

int j; /*当前账户*/

int zhanghushu;

int k;/*交易帐号*/

int jiaoyishu;

void xianshizhanghu();

int caidan()/*菜单函数*/

{

char c;

do

{

system("cls"); /*每次选择运行前清屏*/

printf("tt =================

); /*菜单选择*/

printf("tt * 1. 注册*

printf("tt * 2. 登录

printf("tt * 3. 保存数据

printf("tt * 0. 退出

printf("tt

欢迎

使用ATM

*n");

*n");

*n");

*n");

系统

===============nn"

===============================================n");

printf("ttt请作出选择(0-3):");

c=getchar(); /*读入选择*/

}

while(c<'0'||c>'3');

return(c-'0'); /*c变为空后返回重新选择*/

}/*根据主菜单的返回值来确定主函数的值*/

void zhuce()

{

printf("ntt请输入姓名:");

scanf("%s",zhanghu[zhanghushu].xingming);

printf("ntt请输入帐号:");

scanf("%s",zhanghu[zhanghushu].zhanghao);

do

{

printf("ntt请输入身份证:");

scanf("%s",zhanghu[zhanghushu].shenfenzheng);

if(strlen(zhanghu[zhanghushu].shenfenzheng)==18)

break;

else

printf("ntt身份证必须是18,请重新输入!");

}

while(1);

do

{ printf("ntt请输入密码:");

scanf("%s",zhanghu[zhanghushu].mima);

if(strlen(zhanghu[zhanghushu].mima)==6)

break;

else

printf("ntt密码必须是6位,请重新输入!");

}

while(1);

zhanghu[zhanghushu].yue=0;

zhanghu[zhanghushu].jiaoyishu=0;

zhanghushu++;

xianshizhanghu();

}

void xianshizhanghu() /*显示账户函数来显示所输入的账户*/

{

int i;

for(i=0;i

{

printf("nnt帐号t姓名t身份证tt密码t余额n");

printf("t%st%st%st%st%.2fn",zhanghu[i].zhanghao,zhanghu[i].xingming,

zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue);

system("pause");

}

}

void denglu() /*登录函数*/

{

char zhanghao[12],mima[7];

int i=0;

int mimacishu=1;

printf("ntt请输入帐号:");

scanf("%s",zhanghao);

while(strcmp(zhanghao,zhanghu[i].zhanghao)!=0&&i

i++; /**/

if(i==zhanghushu)

return;

do

{

printf("ntt请输入密码:");

scanf("%s",mima);

if(strcmp(mima,zhanghu[i].mima)!=0)

{

if(mimacishu==3)

{

printf("你已输入错误三次,你不能在输.");

system("pause");

return;

}

else

{

printf("密码错误请重新输入:");

mimacishu++;

}

}

else

break;

}

while(1);

for(;;)

{

switch(menu()) /*选择判断*/

{

case 1:

cunkuan();

break;

case 2:

qukuan();

break;

case 3:

zhuanzhang();

break;

case 4:

chaxun();

break;

case 5:

xiugaimima();

break;

case 0:

return;

}

}

}

void baocunshuju()/*保存数据*/

{

int i,j;

FILE *fp;

char filename[20];

printf("ttt将数据保存到一个文本文件中n");/*输入文件名*/

printf("ttt请输入文件名");

fflush(stdin);

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)/*打开文件*/

{

printf("无法创建此文件n");

system("pause");

return;

}

fprintf(fp,"%dn",zhanghushu);/*循环写入数据*/

printf("t帐号tt姓名tt身份证tt密码t余额t交易数");

for(i=0;i

{

fprintf(fp,"t%15s%10s%20s%10st%10.2ft%5dn",zhanghu[i].zhanghao,zhan

ghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue,zhangh

u[i].jiaoyishu);

for(j=0;j

fprintf(fp,"%30s%10s%10.2f%10.2fn",zhanghu[i].jiaoyi[j].shijian,zhanghu[i].jiaoyi[j

].leixing,zhanghu[i].jiaoyi[j].jine,zhanghu[i].jiaoyi[j].yue);

}

fclose(fp);

}

void duqushuju()

{

int i,j;

FILE *fp;

char filename[20];

printf("nnnt请输入欲读入数据的文件名:n");

fflush(stdin);

gets(filename);

if(strlen(filename)==0)

return;

else

if((fp=fopen(filename,"r"))==NULL)/*打开文件*/

{

printf("无法打开此文件n");

system("pause");

return;

}

else

{

printf("tt成功打开文件.n");

getch();

}

fscanf(fp,"%dn",zhanghushu);

for(i=0;i

{

fscanf(fp,"%15s%10s%20s%10ft%10f%5dn",

zhanghu[i].zhanghao,

zhanghu[i].xingming,

zhanghu[i].shenfenzheng,

zhanghu[i].mima,

&zhanghu[i].yue,

&zhanghu[i].jiaoyishu);

for(j=0;j

{

fgets(zhanghu[i].jiaoyi[j].shijian,30,fp);

fscanf(fp,"%5s%10ft%10fn",zhanghu[i].jiaoyi[j].leixing,

&(zhanghu[i].jiaoyi[j].jine),

&(zhanghu[i].jiaoyi[j].yue));

}

}

fclose(fp);

}

int menu()

{

char c;

do

{

system("cls");

printf("nnt================= 欢迎使用 XXX银行ATM

==================nn");

printf("t=====================

=====================n");

请选择服务

printf("t* *n");

printf("t* 1 实时存款 2 取款服务 *n");

printf("t* *n");

printf("t* 3 转账服务 4 查询 *n");

printf("t* *n");

printf("t* 5 修改密码 6 退出 *n");

printf("t* *n");

printf("t============================================

========n");

printf("ttt请作出选择(1-7):");

c=getchar(); /*读入选择*/

system("pause");

}

while(c<'1'||c>'7');

return(c-'0'); /*c变为空后返回重新选择*/

}

void cunkuan() /*存款函数*/

{

float cunkuanjine;/*输入的存款金额*/

int k;

int i;

char t[30];

time_t rawtime;

struct tm *timeinfo;

time(&rawtime);

timeinfo=localtime(&rawtime);

strcpy(t,asctime(timeinfo));

for(i=0;t[i]!='0';i++)

if(t[i]=='n')

{

t[i]='0';

break;

}

printf("请输入存款金额(存款金额必须大于0,不超过10000,必须是100元的面额n");

scanf("%f",&cunkuanjine);

if(cunkuanjine<=0||cunkuanjine>1000||(int)cunkuanjine%100!=0)

{

printf("金额不符合要求,请重新选择");

return;

}

else

{

k=zhanghu[j].jiaoyishu;

strcpy(zhanghu[j].jiaoyi[k].shijian,t);

strcpy(zhanghu[j].jiaoyi[k].leixing,"存");

zhanghu[j].jiaoyi[k].jine=cunkuanjine;

zhanghu[j].yue+=cunkuanjine;

zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue;

zhanghu[j].jiaoyishu++;

printf("nttt您本次存了%.2f元n",cunkuanjine);

printf("nttt您的余额为%.2f元n",zhanghu[j].yue);

printf("n时间为:%sn",zhanghu[j].jiaoyi[k].shijian);

printf("n类型为:%sn",zhanghu[j].jiaoyi[k].leixing);

system("pause");

}

}

void qukuan() /*取款函数*/

{

int k;/*交易下标*/

float qukuanjine;

int i;

char t[30];

time_t rawtime;

struct tm *timeinfo;

time(&rawtime);

timeinfo=localtime(&rawtime);

strcpy(t,asctime(timeinfo));

for(i=0;t[i]!='0';i++)

if(t[i]=='n')

{

t[i]='0';

break;

}

printf(" 取款服务 n");

printf("t=====================

);

请选择服务

=====================n"

printf("t* *n");

printf("t* 1 100 2 200 *n");

printf("t* *n");

printf("t* 3 500 4 1000 *n");

printf("t* *n");

printf("t* 5 其他金额 6 返回主菜单 *n");

printf("t* *n");

printf("t============================================

========n");

scanf("%f",&qukuanjine);

if(qukuanjine<=0||qukuanjine>10000||(int)qukuanjine%100!=0)

{

printf("金额不符合要求,请重新选择");

return;

}

else

if(zhanghu[j].yue

{

printf("你的账户余额不足,不能完成这项操作。

return;

}

{

k=zhanghu[j].jiaoyishu;

strcpy(zhanghu[j].jiaoyi[k].shijian,t);

strcpy(zhanghu[j].jiaoyi[k].leixing,"取");

zhanghu[j].jiaoyi[k].jine=qukuanjine;

); "

zhanghu[j].yue-=qukuanjine;

zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue;

zhanghu[j].jiaoyishu++;

printf("nttt您本次取款%.2f元n",qukuanjine);

printf("nttt您的余额为%.2f元n",zhanghu[j].yue);

printf("n时间为:%sn",zhanghu[j].jiaoyi[k].shijian);

printf("n类型为:%sn",zhanghu[j].jiaoyi[k].leixing);

system("pause");

}

}

void zhuanzhang()

{

float zhuanzhangjine;

int i;

int l=0;

char t[30],zhuanzhangzhanghao[12];

char sign='n';

time_t rawtime;

struct tm *timeinfo;

time(&rawtime);

timeinfo=localtime(&rawtime);

strcpy(t,asctime(timeinfo));

for(i=0;t[i]!='0';i++)

if(t[i]=='n')

{

t[i]='0';

}

printf("请输入你要转入的帐号:");

scanf("%s",zhuanzhangzhanghao);

while(strcmp(zhanghu[l].zhanghao,zhuanzhangzhanghao)!=0&&l

l++;

if(l==zhanghushu)

{

printf("你输入的用户不存在!n");

system("pause");

return;

}

printf("n该账户户主姓名为%sn,是否确认转账Y/N?",zhanghu[j].xingming);

scanf("tt%c",&sign); /*输入判断*/

if(sign!='y'&&sign!='Y') /*判断*/

return;

else

{

do

{

printf("n请输入转账金额(大于100不超过5000):");

scanf("%f",&zhuanzhangjine);

if(zhuanzhangjine<100||zhuanzhangjine>5000)

{

printf("输入金额不对,请重新输入!");

system("pause");

return;

}

if(zhanghu[j].yue<=0||zhanghu[j].yue

{

printf("账户余额不足n");

system("pause");

return;

}

else

{

k=zhanghu[j].jiaoyishu;

strcpy(zhanghu[j].jiaoyi[k].shijian,t);

strcpy(zhanghu[j].jiaoyi[k].leixing,"转账");

zhanghu[j].jiaoyi[k].jine=zhuanzhangjine;

zhanghu[j].yue-=zhuanzhangjine;

zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue;

}

}while(0);

}

zhanghu[j].jiaoyishu++;

printf("ntt你本次转了%0.2f元n",zhuanzhangjine);

printf("ntt你的余额为%0.2f元n",zhanghu[j].yue);

printf("ntt时间为:%sn",zhanghu[j].jiaoyi[k].shijian);

printf("ntt类型为:%sn",zhanghu[j].jiaoyi[k].leixing);

system("pause");

printf("nntt转账成功nn");

system("pause");

}

void xiugaimima() /*修改密码函数*/

{

char mima1[7],mima2[7];

do

{

do

{

printf("nnntt请输入密码:");

scanf("%s",mima1);

if(strlen(mima1)==6)

break;

else

printf("nntt密码必须是6位,请重新输入!");

}while(1);

do

{

printf("nnntt请确认密码:");

scanf("%s",mima2);

if(strlen(mima2)==6)

break;

else

printf("输入密码必须是6位请输入密码:");

} while(1);

if(strcmp(mima1,mima2)==0 ) /*判断第二次输入的密码是否与第一次的一致*/

break;

else

printf("nntt*|两次密码不相等请重新输入:nn");

} while(1);

strcpy(zhanghu[j].mima,mima1);

printf("nntt修改密码成功nn");

getch();

system("pause");

}

int chaxuncaidan();/*查询菜单*/

void chaxunyue();

void chaxuncunkun();

void chaxunqukun();

void chaxunzhuangzhan();

void chaxunjiaoyi();

void duqushuju();

void chaxun() /*查询函数*/

{

for(;;)

{

switch(chaxuncaidan()) /*选择判断*/

{

case 1:

chaxunyue();

break;

case 2:

chaxuncunkun();

break;

case 3:

chaxunqukun();

break;

case 4:

chaxunzhuangzhan();

break;

case 5:

chaxunjiaoyi();

break;

case 0:

return;

}

}

}

int chaxuncaidan()/*菜单函数*/

{

char c;

do

{

system("cls"); /*每次选择运行前清屏*/

printf("tt *********************查询菜单*******************nn"); /*菜单选

择*/

printf("tt *| 1. 查询余额|n");

printf("tt *| 2. 查询存款记录|n");

printf("tt *| 3. 查询取款记录|n");

printf("tt *| 4. 查询转账记录|n");

printf("tt *| 5. 查询交易情况|n");

printf("tt *| 0. 退出 |n");

printf("tt ************************************************n");

printf("ttt请作出选择(0-5):");

c=getchar(); /*读入选择*/

}

while(c<'0'||c>'5');

return(c-'0'); /*c变为空后返回重新选择*/

}

void chaxunyue()/*查询余额函数*/

{

printf("nt您的余额为%.2f元n",zhanghu[j].yue);

system("pause");

}

void chaxuncunkun() /*查询存款函数*/

{

int i;

printf("tt *************存款查询记录****************nn");

printf("t帐号t姓名t交易类型t交易时间tt金额t余额n");

for(i=0;i

{

if(strcmp(zhanghu[j].jiaoyi[i].leixing,"存")==0)

printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao,

zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing,

zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine,

zhanghu[j].jiaoyi[i].yue);

else;

}

system("pause");

}

void chaxunqukun() /*查询取款函数*/

{

int i;

printf("tt *************取款查询记录****************nn");

printf("t帐号t姓名t交易类型t交易时间tt金额t余额n");

for(i=0;i

{

if(strcmp(zhanghu[j].jiaoyi[i].leixing,"取")==0)

printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao,

zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing,

zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine,

zhanghu[j].jiaoyi[i].yue);

else;

}

system("pause");

}

void chaxunzhuangzhan()/*查询转账函数*/

{

int i;

printf("tt *************取款查询记录****************nn");

printf("t帐号t姓名t交易类型t交易时间tt金额t余额n");

for(i=0;i

{

if(strcmp(zhanghu[j].jiaoyi[i].leixing,"转")==0)

printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao,

zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing,

zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine,

zhanghu[j].jiaoyi[i].yue);

else;

}

system("pause");

}

void chaxunjiaoyi() /*查询交易函数*/

{

int i;

printf("tt *************取款查询记录****************nn");

printf("t帐号t姓名t交易类型t交易时间tt金额t余额n");

for(i=0;i

{

printf("t%st%st%st%st%.2ft%.2fnn",zhanghu[j].zhanghao,

zhanghu[j].xingming,zhanghu[j].jiaoyi[i].leixing,

zhanghu[j].jiaoyi[i].shijian,zhanghu[j].jiaoyi[i].jine,

zhanghu[j].jiaoyi[i].yue);

}

system("pause");

}

void main() /*主函数*/

{

duqushuju();

for(;;)

{

switch(caidan()) /*调用主菜单根据主菜单的返回值来做选择*/

{

case 1:

zhuce();

break;

case 2:

denglu();

break;

case 3:

baocunshuju();

break;

case 0:

printf("ttt欢迎使用ATM!n"); /*结束程序*/

printf("ttt");

system("pause"); /*使程序暂停*/

exit(0);

}

}

}


本文标签: 输入 选择 密码 查询