当前位置:首页 » 编程语言 » c语言写atm
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言写atm

发布时间: 2023-02-27 14:59:27

⑴ 在c语言中ATM自动取款机的功能程序怎么写啊

#include<stdio.h>
void main()
{
char SelectKey,CreditMoney,DebitMoney;
while(1)
{
do{
clrscr();
puts("Please select key:");
puts("1.Quary");
puts("2.Credit");
puts("3.Debit");
puts("4.Return");
SelectKey=getch();
}while(SelectKey!='1'&&SelectKey!='2'&&SelectKey!='3'&&SelectKey!='4');
switch(SelectKey)
{
case'1':
clrscr();
puts("Your balance is $1000");
getch();
break;
case'2':
do{
clrscr();
puts("Please select Credit money:");
puts("1.$50");
puts("2.$100");
puts("3.Return");
CreditMoney=getch();
}while(CreditMoney!='1'&&CreditMoney!='2'&&CreditMoney!='3');
switch(CreditMoney)
{
case'1':
clrscr();
puts("Your Credit money is $50,Thank you!");
getch();
break;
case'2':
clrscr();
puts("Your Credit money is $100,Thank you!");
getch();
break;
case'3':
break;
}
break;
case'3':
do{
clrscr();
puts("Please select Debit money:");
puts("1.$50");
puts("2.$100");
puts("3.$500");
puts("4.$1000");
puts("5.Return");
DebitMoney=getch();
}while(DebitMoney!='1'&&DebitMoney!='2'&&DebitMoney!='3'&&DebitMoney!='4'&&DebitMoney!='5');
switch(DebitMoney)
{
case'1':
clrscr();
puts("Your Debit money is $50,Thank you!");
getch();
break;
case'2':
clrscr();
puts("Your Debit money is $100,Thank you!");
getch();
break;
case'3':
clrscr();
puts("Your Debit money is $500,Thank you!");
getch();
break;
case'4':
clrscr();
puts("Your Debit money is $1000,Thank you!");
getch();
break;
case'5':
break;
}
break;
case'4':
return;
}
}
}

几个小错误而已...比如忘了写双撇号,switch写错了...还有!= 忘了写! 等等.. 以上程序可以运行了

⑵ 用C语言编ATM

大体是这样的:
机器正常服务画面,
如果有个客户插卡进来后,读卡器传感器检测到了,就会通知sp(系统),有卡进来了。接着SP向读卡器发送一个关闭闸门命令,将闸门关掉,防止其他的卡再插进来。接着SP发送一个读卡的指令,读卡器硬件开始读卡,接着将读出的结果放在一串字节流中,返回给SP,SP会分析该返回字节流,因为其格式都是硬件手册里面定义好的,哪一位表示什么都是固定的。SP根据各个位的意思进行分析,从而知道是否成功,并且该字节流里面还包括1、2、3磁道的数据,SP根据字节流的位置可以将磁道依次取出,放到一个变量中存起来,以便ATMC中使用。(如果该卡的格式不符合硬件手册里面定义好的,则出现退卡“对不起,不支持贵卡”),读完卡后,读卡器就先停下来,出现“安全确认”或者“输入密码”的画面,卡保留在里面。接着,用户进入功能选择画面,“查询”、“转帐”和“改密”、“取款”.(进入此画面不进行密码校验)。当客户选择了“取款”后,客户输入取款金额,ATM会先向主机发送一个报文,确认密码是否正确,正确则将客户的钱扣掉,ATM等待主机返回报文,如果返回的信息是一切OK,则ATM开始出钞了。

⑶ 用C语言编程ATM的简单取款过程,越简单越好



#include<stdio.h>
intmain(void)
{
inti,g,q=10000,qq=0,z;
charmm[6];
constcharMM[6]="123456";
printf(" 请输入密码以登入账户:");
while(1)
{
for(i=0;i<6;i++)
{
mm[i]=getch();
if(mm[i]!='')
{
putchar('*');
}
else
{
printf("");
i--;
i--;
}
if(mm[i]==' ')
{
printf("");
break;
}
}
if(strcmp(mm,MM)==0)
{
printf(" 密码正确!登入银行账户! ");
printf(" [1]查询余额 [2]取钱 选项:");
scanf("%d",&g);
switch(g)
{
case1:printf(" 你的余额剩余%d元 ",q-qq);break;
case2:printf("请输入提取金额:");scanf("%d",&qq);printf(" 提取现金%d元 ",qq);break;
default:printf(" 选项错误! ");break;
}
break;
}
else
{
printf(" 密码错误! ");
printf("请重新输入密码:");
}
}
}

本来是想来个简单的结果看到楼下说要登入这些功能。。。

这是简单的

#include<stdio.h>
intmain(void)
{
doublea=10000;
inti;
printf("请输入你要提取的金额:");
scanf("%d",&i);
printf("您的账户余额:%g元",a-i);
return0;
}

再来个稍难得吧。。。

#include<stdio.h>
intmain(void)
{
charmm[6];
doublea=10000;
inti=0,g;
printf("[1]取款[2]查询余额:");
scanf("%d",&g);
switch(g)
{
case1:printf("请输入提取金额:");scanf("%d",&i);printf("账户余额%g",a-i);break;
case2:printf("账户余额%g",a-i);break;
default:printf("选项错误! ");break
}
return0;
}

从编译器复制下来的代码中文都要乱码。。。

⑷ 用c语言编写ATM的程序,实现开户、存款、取款、查询余额、转账的业务逻辑。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

void regist();
void login();
void quite();
void inputpassword(char mima[]);
void service();

struct bank
{
char name[20];
char password[7];
int account;
double money;
}kehu;

int find;
int a[10];
struct bank one;
FILE *fp;

void main()
{
int i;
int t=1;
for(i=0;i<100;i++)
{
printf("\t\t\t\t\t\t欢迎使用青软ATM系统\n");
printf("\t\t\t\t\t\t正在进入主界面,请稍等");
int j;
for(j=1;j<t;j++)
{
printf(".");
}
t++;
if(t==10)
{
t=1;
}
printf("\n\t\t\t\t\t\t%d%%",i);
system("cls");
}

while(1)
{

printf("\t\t\t\t\t\t服务类型: \n");
printf("\t\t\t\t\t\t[a]: 用户注册\n");
printf("\t\t\t\t\t\t[b]: 用户登录\n");
printf("\t\t\t\t\t\t[c]: 退出系统\n");
printf("\t\t\t\t\t\t请选择服务: ");

fflush(stdin);
char xz;
scanf("%c",&xz);
if(xz=='a'||xz=='A')
{
regist();
} else if (xz=='b'||xz=='B')
{
login();
} else if(xz=='c'||xz=='C')
{
quite();
} else
{
printf("输入有误,请重新输入");
}
getch();
system("cls");

}

}

void inputpassword(char mima[])
{
int i=0;
char ch;
while(1)
{
ch=getch();
if(ch!='\r')
{
if(ch!='\b'){
mima[i]=ch;
i++;
printf("*");
}else{
if(i>0){
i--;
printf("\b \b");
}
}
}else{
break;
}
}
mima[i]='\0';
printf("\n");

}

void regist()
{
fp=fopen("atm.txt","ab+");
if(fp==NULL)
{
printf("\n\t\t\t文件打开失败!");
return;
}

system("cls");
printf("\t\t\t现在执行的是注册函数的使用\n");
printf("\t\t请输入用户名: ");
fflush(stdin);
gets(kehu.name);
char password1[7];
while(1)
{
while(1)
{
printf("\n\n\t\t请输入密码:");
fflush(stdin);
inputpassword(kehu.password);
int n=strlen(kehu.password);
if(n==6)
{
break;
}else
{
printf("\n\t\t密码必须为6位!");
}

}
printf("\n\t\t请输入正确密码!: ");
fflush(stdin);
inputpassword(password1);
if(strcmp(kehu.password,password1)==0)
{
break;
}else{
printf("\n\n\t\t两次密码必须相同!");
}
}

rewind(fp);
struct bank k;
if(fread(&k,sizeof(struct bank),1,fp)==1)
{
fseek(fp,-sizeof(k),2);
fread(&k,sizeof(k),1,fp);
kehu.account=k.account+1;

}else{
kehu.account=20170001;
}

kehu.money=0;
fseek(fp,0,2);
fwrite(&kehu,sizeof(struct bank),1,fp);

fclose(fp);
printf("\n\n\t\t开户成功! ");
printf("\n\t\t您的账号为%d!",kehu.account);
printf("\n\t\t现在请您重新登录!");
}

void searchmoney()
{
system("cls");
printf("您现在使用的是查询余额功能: \n");
printf("\n\n\t\t您的余额是%0.2lf",one.money);

}

void savemoney()
{
system("cls");
double inmoney;
printf("请您选择您要存款的金额 \n");
scanf("%lf",&inmoney);

int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在存款%d%%",q);
system("cls");
}

one.money=one.money+inmoney;
fseek(fp,-sizeof(one),1);
fwrite(&one,sizeof(one),1,fp);
printf("\n\n\t\t\t\t\t\t您已存款成功!");
}

void withdrawalmoney()
{

system("cls");
double outputsomemoney;
printf("请您选择您要取款的金额 \n");
scanf("%lf",&outputsomemoney);
if(one.money<outputsomemoney){
printf("您的余额已不足,请您注意!");
}else {

int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在取款%d%%",q);
system("cls");
}
one.money=one.money-outputsomemoney;

fseek(fp,-sizeof(one),1);
fwrite(&one,sizeof(one),1,fp);

printf("\n\n\t\t\t\t\t\t您已取款成功!请点清钞票!");
printf("\n\n\t\t\t\t\t\t您现在的余额为%lf",one.money);
}
}

void transfermoney()
{
system("cls");
int ifang;
int qian;
fflush(stdin);
printf("\n\n\n\t\t您现在使用的是转账功能");
printf("\n\t\t\t请输入您要转账的账户:");
scanf("%d",&ifang);

int n=ftell(fp);
rewind(fp);

int flag=0;
struct bank temp;

while(fread(&temp,sizeof(temp),1,fp)==1)
{
if(temp.account==ifang)
{
flag=1;
break;
}
}

if(flag==1)
{
printf("请输入转账金额:");
scanf("%d",&qian);
if(one.money>=qian)
{
int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在转账,请稍后!%d%%",q);
system("cls");
}
temp.money=temp.money+qian;

fseek(fp,-sizeof(temp),1);
fwrite(&temp,sizeof(temp),1,fp);
one.money=one.money-qian;
fseek(fp,n-sizeof(one),0);
fwrite(&one,sizeof(one),1,fp);

printf("\n\t\t\t\t转账成功!");
}else{
printf("\n\t\t\t\t您的余额已不足!");
}
}

}

void xiugai(){
system("cls");
printf("\n\n\t\t 现在进行的是修改密码功能\n");
char oldpassword[7];
char newpassword[7];
char newpassword1[7];
int i;
for(i=0;i<3;i++){
printf("\n\t\t\t 请输入旧密码:\n");
inputpassword(oldpassword);
if(strcmp(oldpassword,one.password)==0){
printf("\n\t\t\t 输入成功!\n");
break;
}else{
printf("\n\t\t\t 密码输入有误,请重新输入!\n");
}
}
if(i<3){
while(1){
printf("\n\t\t\t 请输入您的新密码:\n");
inputpassword(newpassword);
printf("\n\t\t\t 请输入您的确认密码:\n ");
inputpassword(newpassword1);
if(strcmp(newpassword,newpassword1)==0){
strcpy(one.password,newpassword);

fseek(fp,-sizeof(one),1);
fwrite(&one,sizeof(one),1,fp);

printf("\n\t\t\t 密码修改成功!");
break;
}else{
printf("\n\t\t\t 两次密码输入不一致!");
}
}
}else{
printf("\n\t\t\t 密码输入错误!");
}
}

int zhuxiaozhanghao()
{
system("cls");
int zhuxiaoxitong;
char sf;
printf("你要注销的账号是%d",one.account);
printf("你是否要对此账号进行注销?\n\n\t\t请您选择:注销(Y)or不注销(N):");
fflush(stdin);
scanf("%c",&sf);
if(sf=='y'||sf=='Y')
{
printf("正在为您注销!\n",one.account);
zhuxiaoxitong=1;
}else{
printf("不注销系统!\n",one.account);
}
return zhuxiaoxitong;

}

void service()
{

while(1){
system("cls");

printf("\n\n\n\t\t\t\t\t\t现在是服务系统,本系统有以下服务");
printf("\n\t\t\t\t\t\t[a] 查询余额\n");
printf("\n\t\t\t\t\t\t[b] 存款服务\n");
printf("\n\t\t\t\t\t\t[c] 转账服务\n");
printf("\n\t\t\t\t\t\t[d] 取款服务\n");
printf("\n\t\t\t\t\t\t[e] 修改密码\n");
printf("\n\t\t\t\t\t\t[f] 注销 \n");
printf("\n\t\t\t\t\t\t[g] 退出系统\n");
char e;
printf("\n\t\t\t\t\t\t您要选择的服务是:");
fflush(stdin);
scanf("%c",&e);

switch(e)
{ case'A':
case'a': searchmoney() ;break;
case'B':
case'b': savemoney() ;break;
case'C':
case'c': transfermoney() ;break;
case'D':
case'd': withdrawalmoney() ;break;
case'E':
case'e': xiugai() ;break;
case'F':
case'f': {int zhuxiaoxitong=zhuxiaozhanghao();{if(zhuxiaoxitong==1) return;}break;}
case'G':
case'g': quite();break;
}
printf("\n\n\n\t\t\t\t按任意键继续......\n");
getch();
}
}

void login()
{
fp=fopen("atm.txt","rb+");
if(fp==NULL)
{
printf("\n\n\n\t\t\t\t文件打开失败!");
return;
}

system("cls");
printf("\n\t\t\t\t\t\t现在执行的是登录函数的使用\n");
int zhanghao;

printf("\n\t\t\t\t\t\t请输入账号:");
scanf("%d",&zhanghao);
int flag=0;

while(fread(&one,sizeof(one),1,fp)==1)
{
if(zhanghao==one.account){
flag=1;
break;
}
}
char password2[7];

if(flag==1){
int h;
for(h=0;h<3;h++){
printf("\n\t\t\t\t\t\t请输入密码:");
fflush(stdin);
inputpassword(password2);
if(strcmp(password2,one.password)==0)
{
printf("\n\t\t\t\t\t\t登陆成功!");
service();
break;
}else{
printf("密码不正确!");
}
}
if(h==3){
printf("\n\t\t\t您的密码三次输入有误,返回");
}
}else{
printf("无此账号!");
}
fclose(fp);
}

void quite()
{

system("cls");
printf("\t\t\t现在执行的是退出函数的使用\n");
exit(0);
}

⑸ c语言ATM取款机怎么做 ,得输入密码的那种

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<conio.h>
void
sys(const
char
*ex)
{
printf(ex);
fflush(stdin);
getch();
}
struct
atm
{
float
money;
char
card[20];
char
pass[20];
};
struct
atm
*creat()
{
struct
atm
*p;
p=(struct
atm
*)malloc(sizeof(struct
atm));
printf("请输入密码:");
gets(p->pass);getchar();
printf("请输入卡号:");
gets(p->card);getchar();
printf("卡号为=%s,密码为=%s\n",p->card,p->pass);
printf("请输入预存款金额:");
scanf("%f",&p->money);
return
p;
}
struct
atm
*qukuan(struct
atm
*p)
{
float
money;
printf("请输入取款金额:");
scanf("%f",&money);
if(money>p->money){printf("余额不足!\n");return
p;}
p->money-=money;
return
p;
}
void
print(struct
atm
*p)
{
printf("当前余额为%.2f,可取款金额为%d\n",p->money,floor(p->money)/100);
}
int
yanzheng(struct
atm
*p)
{
char
pass[20];
printf("你好,请输入密码:");
gets(pass);
if(strcmp(pass,p->pass)==0)
return
1;
return
0;
}
void
main()
{
struct
atm
*p;
int
t=0;
p=creat();
do
t++;
while(!yanzheng(p)&&t<3);
if(t==3){printf("密码连续三次输入错误,退出程序!\n");return
1;}
while(1)
{
system("cls");
printf("****欢迎您使用ATM取款机!****\n");
printf("1:\t取款\n");
printf("2:\t查看余额\n");
printf("0:\t退出\n");
printf("请选择:");
scanf("%d",&t);
fflush(stdin);
switch(t)
{
case
1:qukuan(p);break;
case
2:print(p);break;
}
if(!t)
{
sys("请按任意键退出...");
break;
}
sys("请按任意键返回...");
}
}