用c语言写这个题,各位大佬帮一下菜鸟
答案:1 悬赏:20 手机版
解决时间 2021-11-15 03:45
- 提问者网友:無理詩人
- 2021-11-14 16:17
用c语言写这个题,各位大佬帮一下菜鸟
最佳答案
- 五星知识达人网友:十鸦
- 2021-11-14 17:38
分都不舍得出点啊 毕竟浪费时间又没技术含量的活 哎
//主要功能:
// 1.模拟ATM(自动柜员机)主界面。
// 2.模拟ATM(自动柜员机)查询功能(Quary)。
// 3.模拟ATM(自动柜员机)存款功能(Credit)。
// 4.模拟ATM(自动柜员机)取款功能(Debit)。
// 5.退出功能(即返回主界面)。
//要求:
// 1.用文件保存用户卡号和密码,用以进行身份验证。
// 2.完成打印凭条功能。
//****************************************
#include
#include
#include
#define N 200
void enterATM(); //ATM账号输入函数
void inputMima(); //密码输入函数
void menu(); //基本操作界面
void Debit(); //取款函数
void success(); //操作成功函数
void delay(); //延时函数
void Quary(); //余额查询函数
void Credit(); //存款函数
void panDuan(double z); //判断取款是否合法函数
void exit(); //退出界面函数
void miMa(); //密码修改
void read(); //文件写入函数
void write(); //文件读取函数
typedef struct
{
int zhanghao;
int mima;
double yu_e;
}atm;
atm ATM[N];
int k;
//ATM账号输入函数
void enterATM()
{
delay();
system("cls");
read();
printf("*******************************
");
printf("* 欢迎使用 ATM 柜台机 *
");
printf("* 请输入卡号 *
");
int user;
scanf("%d",&user);
if(user==0)
{
printf("* 账号错误 *
");
enterATM();
}
else if(user!=(ATM[k].zhanghao))
{
for(k=1;k {
if(user==(ATM[k].zhanghao))
inputMima( );
}
system("cls");
printf("* 账户不存在,请从新输入 *
");
enterATM();
}
else
inputMima( );
}
//密码输入函数
void inputMima( )
{
int code;
int temp=3;
read();
system("cls");
printf("* 请输入密码 *
");
scanf("%d",&code);
while(code!=ATM[k].mima)
{
temp--;
system("cls");
printf("* 密码错误,请重新输入 *
");
printf("* 您还有 ");
printf("%d",temp);
printf(" 次机会 *
");
scanf("%d",&code);
if(temp==1)
{
system("cls");
printf("* 您已经 3 次输入密码 *
");
printf("* 系统将退出操作 *
");
delay();
enterATM();
}
}
menu();
}
//取款函数
void Debit()
{
double temp;
system("cls");
printf(" 请选择您要取款的金额
");
printf(" 1.100 2.200
");
printf(" 3.500 4.800
");
printf(" 5.1000 6.其它
");
printf(" 7.返回 8.退出
");
switch(getch())
{
case '1': panDuan(100);
break;
case '2': panDuan(200);
break;
case '3': panDuan(500);
break;
case '4': panDuan(800);
break;
case '5': panDuan(1000);
break;
case '6':
system("cls");
printf("请输入您要取款的金额:");
scanf("%lf",&temp);
panDuan(temp);
break;
case '7':menu();
break;
case '8':exit();
break;
}
}
//余额查询函数
void Quary()
{
read();
system("cls");
printf("你的余额为:%lf
",(ATM[k].yu_e));
printf("1.返回 2.退出
");
switch(getch())
{
case '1': menu();
break;
case '2': exit();
break;
}
}
//判断取款是否合法函数
void panDuan(double z)
{
int beishu;
if(z>(ATM[k].yu_e))
{
system("cls");
printf(" 余额不足!
");
printf(" 请重新操作
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
beishu=(int)z%100;
if(beishu!=0)
{
system("cls");
delay( );
printf(" 本ATM机只支持 100 的人民币
");
printf(" 请重新操作
");
printf("
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
if(z==5000.00||z>5000.00)
{
system("cls");
printf(" 每次取款不能超过 5000 元
");
printf(" 请重新操作
");
printf("
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
(ATM[k].yu_e)-=z;
write();
success();
}
//存款函数
void Credit( )
{
double cun;
system("cls");
printf(" 请放入人民币:");
scanf("%lf",&cun);
while(cun<0)
{
system("cls");
printf(" 非法存款
");
printf(" 请重新放入人民币
");
scanf("%lf",&cun);
}
(ATM[k].yu_e)+=cun;
write();
success();
}
//密码修改函数
void miMa()
{
int mm1,mm2,mm3;
int temp;
system("cls");
printf("旧密码:");
scanf("%d",&mm1);
printf("
");
if(mm1!=ATM[k].mima)
{
system("cls");
printf("旧密码错误,请重新输入
");
delay();
miMa();
}
printf("新密码:");
scanf("%d",&mm2);
if(mm2<100000||mm2>999999)
{
system("cls");
printf(" 密码必须等于6位数
");
printf(" 请重新输入!
");
delay();
miMa();
}
temp=mm2%111111;
if(temp==0)
{
system("cls");
printf(" 密码过于简单
");
printf(" 请重新输入!
");
delay( );
miMa( );
}
printf("
");
printf("确认新密码:");
scanf("%d",&mm3);
if(mm2!=mm3)
{
system("cls");
printf("确认密码不一致,请重新输入
");
delay( );
miMa();
}
if(mm3=mm2)
{
ATM[k].mima=mm3;
write();
success();
}
}
//延时函数
void delay( )
{
long int bl1;
int bl2;
for(bl1=600000;bl1>0;bl1--)
{
for(bl2=300;bl2>0;bl2--);
}
}
//操作成功函数
void success( )
{
system("cls");
printf(" 操作已成功
");
printf("
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1':menu();
break;
case '2':exit();
break;
}
}
//系统退出函数
void exit()
{
system("cls");
printf("* 欢迎您的再次使用 *
");
printf("* 系统正在退出... *
");
delay();
enterATM();
}
//文件读取函数
void read()
{
int i;
FILE *fp;
fp=fopen("xinxi.txt","r");
if(fp==NULL)
{
printf("打开文件失败
");
return;
}
for(i=0;i {
fscanf(fp,"%d",&(ATM[i].zhanghao));
fscanf(fp,"%d",&(ATM[i].mima));
fscanf(fp,"%lf
",&(ATM[i].yu_e));
}
fclose(fp);
}
//文件写入函数
void write()
{
int i;
FILE *fp;
fp=fopen("xinxi.txt","w");
if(fp==NULL)
{
printf("打开文件失败
");
return;
}
for(i=0;i {
fprintf(fp,"%d",ATM[i].zhanghao);
fprintf(fp,"%d",ATM[i].mima);
fprintf(fp,"%lf
",ATM[i].yu_e);
}
fclose(fp);
}
//主操作界面函数
void menu( )
{
system("cls");
printf("********************************
");
printf("* 请选择一下业务 *
");
printf("* 1.修改密码 *
");
printf("* 2.余额查询 *
");
printf("* 3.取款 *
");
printf("* 4.存款 *
");
printf("* 5.退出 *
");
printf("********************************
");
switch(getch())
{
case '1': miMa();
break;
case '2': Quary();
break;
case '3': Debit();
break;
case '4': Credit();
break;
case '5': exit();
break;
default:
{
printf("a非法操作
");
menu();
};
}
}
//主函数
void main()
{
enterATM();
}追问你这个完全就是复制人家博客上面来的,能不能自己写,不然老师会发现的!
//主要功能:
// 1.模拟ATM(自动柜员机)主界面。
// 2.模拟ATM(自动柜员机)查询功能(Quary)。
// 3.模拟ATM(自动柜员机)存款功能(Credit)。
// 4.模拟ATM(自动柜员机)取款功能(Debit)。
// 5.退出功能(即返回主界面)。
//要求:
// 1.用文件保存用户卡号和密码,用以进行身份验证。
// 2.完成打印凭条功能。
//****************************************
#include
#include
#include
#define N 200
void enterATM(); //ATM账号输入函数
void inputMima(); //密码输入函数
void menu(); //基本操作界面
void Debit(); //取款函数
void success(); //操作成功函数
void delay(); //延时函数
void Quary(); //余额查询函数
void Credit(); //存款函数
void panDuan(double z); //判断取款是否合法函数
void exit(); //退出界面函数
void miMa(); //密码修改
void read(); //文件写入函数
void write(); //文件读取函数
typedef struct
{
int zhanghao;
int mima;
double yu_e;
}atm;
atm ATM[N];
int k;
//ATM账号输入函数
void enterATM()
{
delay();
system("cls");
read();
printf("*******************************
");
printf("* 欢迎使用 ATM 柜台机 *
");
printf("* 请输入卡号 *
");
int user;
scanf("%d",&user);
if(user==0)
{
printf("* 账号错误 *
");
enterATM();
}
else if(user!=(ATM[k].zhanghao))
{
for(k=1;k
if(user==(ATM[k].zhanghao))
inputMima( );
}
system("cls");
printf("* 账户不存在,请从新输入 *
");
enterATM();
}
else
inputMima( );
}
//密码输入函数
void inputMima( )
{
int code;
int temp=3;
read();
system("cls");
printf("* 请输入密码 *
");
scanf("%d",&code);
while(code!=ATM[k].mima)
{
temp--;
system("cls");
printf("* 密码错误,请重新输入 *
");
printf("* 您还有 ");
printf("%d",temp);
printf(" 次机会 *
");
scanf("%d",&code);
if(temp==1)
{
system("cls");
printf("* 您已经 3 次输入密码 *
");
printf("* 系统将退出操作 *
");
delay();
enterATM();
}
}
menu();
}
//取款函数
void Debit()
{
double temp;
system("cls");
printf(" 请选择您要取款的金额
");
printf(" 1.100 2.200
");
printf(" 3.500 4.800
");
printf(" 5.1000 6.其它
");
printf(" 7.返回 8.退出
");
switch(getch())
{
case '1': panDuan(100);
break;
case '2': panDuan(200);
break;
case '3': panDuan(500);
break;
case '4': panDuan(800);
break;
case '5': panDuan(1000);
break;
case '6':
system("cls");
printf("请输入您要取款的金额:");
scanf("%lf",&temp);
panDuan(temp);
break;
case '7':menu();
break;
case '8':exit();
break;
}
}
//余额查询函数
void Quary()
{
read();
system("cls");
printf("你的余额为:%lf
",(ATM[k].yu_e));
printf("1.返回 2.退出
");
switch(getch())
{
case '1': menu();
break;
case '2': exit();
break;
}
}
//判断取款是否合法函数
void panDuan(double z)
{
int beishu;
if(z>(ATM[k].yu_e))
{
system("cls");
printf(" 余额不足!
");
printf(" 请重新操作
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
beishu=(int)z%100;
if(beishu!=0)
{
system("cls");
delay( );
printf(" 本ATM机只支持 100 的人民币
");
printf(" 请重新操作
");
printf("
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
if(z==5000.00||z>5000.00)
{
system("cls");
printf(" 每次取款不能超过 5000 元
");
printf(" 请重新操作
");
printf("
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
(ATM[k].yu_e)-=z;
write();
success();
}
//存款函数
void Credit( )
{
double cun;
system("cls");
printf(" 请放入人民币:");
scanf("%lf",&cun);
while(cun<0)
{
system("cls");
printf(" 非法存款
");
printf(" 请重新放入人民币
");
scanf("%lf",&cun);
}
(ATM[k].yu_e)+=cun;
write();
success();
}
//密码修改函数
void miMa()
{
int mm1,mm2,mm3;
int temp;
system("cls");
printf("旧密码:");
scanf("%d",&mm1);
printf("
");
if(mm1!=ATM[k].mima)
{
system("cls");
printf("旧密码错误,请重新输入
");
delay();
miMa();
}
printf("新密码:");
scanf("%d",&mm2);
if(mm2<100000||mm2>999999)
{
system("cls");
printf(" 密码必须等于6位数
");
printf(" 请重新输入!
");
delay();
miMa();
}
temp=mm2%111111;
if(temp==0)
{
system("cls");
printf(" 密码过于简单
");
printf(" 请重新输入!
");
delay( );
miMa( );
}
printf("
");
printf("确认新密码:");
scanf("%d",&mm3);
if(mm2!=mm3)
{
system("cls");
printf("确认密码不一致,请重新输入
");
delay( );
miMa();
}
if(mm3=mm2)
{
ATM[k].mima=mm3;
write();
success();
}
}
//延时函数
void delay( )
{
long int bl1;
int bl2;
for(bl1=600000;bl1>0;bl1--)
{
for(bl2=300;bl2>0;bl2--);
}
}
//操作成功函数
void success( )
{
system("cls");
printf(" 操作已成功
");
printf("
");
printf(" 1.返回 2.退出
");
switch(getch())
{
case '1':menu();
break;
case '2':exit();
break;
}
}
//系统退出函数
void exit()
{
system("cls");
printf("* 欢迎您的再次使用 *
");
printf("* 系统正在退出... *
");
delay();
enterATM();
}
//文件读取函数
void read()
{
int i;
FILE *fp;
fp=fopen("xinxi.txt","r");
if(fp==NULL)
{
printf("打开文件失败
");
return;
}
for(i=0;i
fscanf(fp,"%d",&(ATM[i].zhanghao));
fscanf(fp,"%d",&(ATM[i].mima));
fscanf(fp,"%lf
",&(ATM[i].yu_e));
}
fclose(fp);
}
//文件写入函数
void write()
{
int i;
FILE *fp;
fp=fopen("xinxi.txt","w");
if(fp==NULL)
{
printf("打开文件失败
");
return;
}
for(i=0;i
fprintf(fp,"%d",ATM[i].zhanghao);
fprintf(fp,"%d",ATM[i].mima);
fprintf(fp,"%lf
",ATM[i].yu_e);
}
fclose(fp);
}
//主操作界面函数
void menu( )
{
system("cls");
printf("********************************
");
printf("* 请选择一下业务 *
");
printf("* 1.修改密码 *
");
printf("* 2.余额查询 *
");
printf("* 3.取款 *
");
printf("* 4.存款 *
");
printf("* 5.退出 *
");
printf("********************************
");
switch(getch())
{
case '1': miMa();
break;
case '2': Quary();
break;
case '3': Debit();
break;
case '4': Credit();
break;
case '5': exit();
break;
default:
{
printf("a非法操作
");
menu();
};
}
}
//主函数
void main()
{
enterATM();
}追问你这个完全就是复制人家博客上面来的,能不能自己写,不然老师会发现的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯