atm机c语言编译
#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语言或C++ 银行卡管理系统
#include<iostream>
#include<cstring>
using namespace std;
class count
{
public:
friend class ATM;
count (char Name[],char Num[],float Money,char Password[]); //初始化
protected:
char * get_name(); //返回姓名
char * get_num(); //返回卡号
char * get_password(); //返回密码
float get_money(); //返回金额
void set_password(char pwd[]); //设置密码
void set_money(float m); //取钱
private:
char password[6]; //用户密码
char name[20]; //用户姓名
char num[20];
float money;
};
class ATM
{
public:
ATM(count & cn):ctm(cn){}
void welcome(); //登陆界面
bool check_password(char p[],char pwd[]); //核对密码
void change_password(); //修改密码
void get_money(); //取钱
void get_information(); //查询信息
void exit_ATM(); //退出ATM
void show_function(); //功能界面
void push_card(); //吞卡
private:
int times; //记录输入密码的次数
count & ctm;
};
//构造ATM的函数
void ATM::welcome() //构造welcome
{
times=0;
cout<<"欢迎使用ATM模拟自动取款机"<<endl;
cout<<"-------------------------"<<endl;
cout<<"请选择:\n1.新开帐户\t2.客户服务\t3.退出系统"<<endl; //输出主菜单
char pwd[7],num[20]; //6位密码19位卡号
int i=0;
do
{
cout<<"请输入卡号";
cin>>num;
cout<<"请输入密码:";
cin>>pwd;
if(!check_password(num,pwd))
{
cout<<"你输入的密码有错误,请重新输入"<<endl;
times++;
}
else
{
show_function();
}
}while(times<3);
push_card();
}
bool ATM::check_password(char num[],char pwd[]) //构造核对密码
{
if(strcmp(num,ctm.get_num())==0&&strcmp(pwd,ctm.get_password())==0)
return true;
else
return false;
exit(0);
}
void ATM::show_function() //构造功能界面
{
int n;
do
{
cout<<"1)修改密码"<<endl;
cout<<"2)取款"<<endl;
cout<<"3)查询余额"<<endl;
cout<<"4)退出系统"<<endl;
cout<<"请选择相关功能的代号:";
cin>>n;
while(n<1&&n>>4)
{
cout<<"请输入正确的操作序号!"<<endl;
cout<<"请选择相关功能的代号:";
cin>>n;
}
switch(n)
{
case 1:change_password(); break;
case 2:get_money(); break;
case 3:get_information(); break;
case 4:exit_ATM(); break;
}
}while(true);
}
void ATM::change_password() //构造修改密码
{
char pwd[7],repwd[7];
times=0;
do
{
cout<<"请输入原密码:";
cin>>pwd;
//if(!check_password(ctm.get_password(),pwd))
if(!check_password(ctm.get_num(),pwd))
times++;
else
break;
}while(times<2);
if(times==2)
push_card();
int m=0;
do
{
cout<<"请输入新密码:";
cin>>pwd;
cout<<"请再输入一次新密码:";
cin>>repwd;
if((m=strcmp(pwd,repwd))!=0)
cout<<"你输入的两次密码不一样,请重新输入!";
}while(m!=0);
ctm.set_password(pwd);
cout<<"密码修改成功,请牢记新密码!"<<endl;
}
void ATM::get_money() //构造取钱
{
float m;
char ch;
do
{
cout<<"请输入所取金额:";
cin>>m;
while(m<=0)
{
cout<<"请输入正确的数字!"<<endl;
cin>>m;
}
if(ctm.get_money()-m<0)
{
cout<<"对不起,你的余额不足!"<<endl;
}
else
{
ctm.set_money(m);
cout<<"是否要继续(Y/N):";
cin>>ch;
while(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y')
{
cout<<"请根据提示输入正确命令!"<<endl;
cout<<"是否要取出所选金额(Y/N)";
cin>>ch;
}
}
}while(ch=='y'||ch=='Y');
}
void ATM::get_information() //构造查询信息
{
cout<<"********************"<<endl;
cout<<"用户姓名:"<<ctm.get_name()<<endl;
cout<<"卡号:"<<ctm.get_num()<<endl;
cout<<"余额:"<<ctm.get_money()<<endl;
cout<<"********************"<<endl;
}
void ATM::push_card() //构造吞卡
{
cout<<"由于你的不当操作,你的的卡已经被没收。"<<endl;
cout<<"请您持相关证件到当地营业厅办理相关手续。"<<endl;
exit(1);
}
void ATM::exit_ATM() //构造退出ATM
{
cout<<"欢迎下次光临!"<<endl;
cout<<"请取卡... ..."<<endl;
exit(0);
}
count ::count (char Name[],char Num[],float Money,char Password[]) //构造初始化
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(password,Password);
}
float count ::get_money() //构造返回金额
{
return money;
}
char *count ::get_name() //构造返回用户名
{
return name;
}
char *count ::get_num() //构造返回卡号
{
return num;
}
char *count ::get_password() //构造返密码
{
return password;
}
void count ::set_password(char pwd[]) //构造修改密码
{
strcpy(password,pwd);
}
void count ::set_money(float m)
{
money-=m;
}
int main() //主函数
{
count ctm("mianchuang","0001",1000000,"123"); //创建对象 调用初始化
ATM atm(ctm);
atm.welcome(); //主程序调用开始
}
不知道能不能满足你的要求
⑶ 用C语言一个ATM取款机的程序代码(用循环语句)
/*初始密码和账号都为:123456 */
#include<stdio.h>
int chaxun(int a3)
{
int b;
b=a3;
printf("你的余额为:%d\n",b) ;
}
int qukuan(int a3)
{
int a,b;
printf("请输入您要提取的现金:\n");
scanf("%d",&a);
b=a3-a;
if(b<0)
printf("对不起 ,你的余额不足\n");
else
{
printf("请收好您的%d元现金\n",a);
a3=a3-a;
}
return (a3);
}
int gaini(int a2)
{
int a,b,c=1,d,e=1;
while(e)
{
printf("请输入你的旧密码:\n");
scanf("%d",&d);
if(d==a2)
e=0;
else
{
e=1;
printf("你输入的密码错误,请重新输入:\n");
}
}
while(c)
{
printf("请输入您的六位数新密码\n");
scanf("%d",&a2);
printf("请确认您的六位数新密码\n");
scanf("%d",&b);
if(a2==b)
{
if(b>100000&&b<999999&&b/(b/100000)!=111111)
{
c=0;
printf("密码修改成功\n");
}
else
{
printf("您输入的密码不符合要求,请从新输入\n");
c=1;
}
}
else
{
c=1;
printf("您两次输入的密码不一致,请重新输宽首入:\n");
}
}
return a2;
}
int quka()
{
printf("\n 梦若保保提醒您\n");
printf("请收好您的卡片,谢谢,再见\n\n");
}
int cunkuan(int a3)
{
int i,j,k;
printf("请输入你要存的金额\n");
scanf("%d",&k);
if(k<0)
{
printf("对不起,没有负存款\n");
}
else
{
printf("\n您好,您已经存进去了%d元\n",k);
a3=a3+k;
}
return a3;
}
main()
{
int i,j,b=1,c,k,l,m,n;
int a1=123456,a2=123456,a3=1000;
printf("欢迎使用自动柜员机:\n\n");
while(b==1)
{
printf("请输入您的账号:\n");
scanf("%d",&k);
printf("请输入您的密码:\n");
scanf("%d",&l);
if(k==a1&&l==a2)
{
b=0;
printf("您的账户余额为:%d\n",a3);
}
else
{
b=1;
printf("对不起,您输入的账号或者密码有误,请重新输入:\n");
}
}
do
{
printf("\n请选择您要的服务项目:\n");
printf("1.查询余额\n");
printf("链银2.取款\n");
printf("3.修改密码\n");
printf("棚巧宴4.取卡\n");
printf("5.存款\n");
scanf("%d",&c);
switch(c)
{
case 1:
chaxun(a3);
break;
case 2:
a3=qukuan(a3);
break;
case 3:
a2=gaini(a2);
break;
case 4:
quka();
break;
case 5:
a3=cunkuan(a3);
break;
}
}while(c!=4);
}
⑷ 在C语言中ATM自动取款机的功能程序怎么写啊
这么难的一个程序才十分?
这是一个很系统的东西,机器那里只是读取相关信息,然后将交易信息发到联网系统里,按照返回的信息,显示相关内容。
⑸ 怎样用c语言编写ATM系统
#include<stdio.h>
#include<string.h>
void print_welcome();
int main()
{
print_welcome();
char c[11]="1234567890",d[7]="123456";
char a[20],b[20];
char p,q;
int h=0,i=0,j=0,k,l=0;
do
{
printf("请输入账号:\n");
gets(a);
printf("请输入密码:\n");
gets(b);
if(strcmp(c,a)==0&&strcmp(d,b)==0)
{
printf("账号正确 欢迎使用\n");
h++;
}
else
printf("账号或密码错误请重新输入\n");
}while(h!=1);
do
{
print_welcome();
retrn:
printf("请选择对应的字母\n");
printf(" a存款业务 \n");
printf(" b余额查询\n");
printf(" c资金转账\n");
printf(" d取款业务\n");
printf(" e退卡\n");
printf("请选择您要办理的业务\n");
scanf("%c",&p);
getchar();
switch(p)
{
case'a':printf(" 存款业务\n");
printf("**本服务暂停 请重新选择**\n");
break;
case'b':
printf(" 余额查询\n");
printf("**您的余额为 ¥9999999\n请重新选择**\n");
break;
case'c':
printf(" 资金转账\n");
printf("**您的银行卡不支持该业务 请重新选择**\n");
break;
case'd':
printf(" 取款业务\n");
do
{
printf("请选择您要取款的金额\n**请输入序号\n**请您注意每位用户每天只能去20000 每次最多取2500\n");
printf(" r 100\n");
printf(" s 200\n");
printf(" t 500\n");
printf(" u 1000\n");
printf(" v 2000\n");
printf(" w 其他\n");
printf(" x 返回\n");
printf("请选择要取的金额\n");
scanf("%c",&q);
getchar();
switch(q)
{
case'r':printf("**取款成功 金额为100元**");goto retrn;break;
case's':printf("**取款成功 金额为200元**");goto retrn;break;
case't':printf("**取款成功 金额为500元**");goto retrn;break;
case'u':printf("**取款成功 金额为1000元**");goto retrn;break;
case'v':printf("**取款成功 金额为2000元**");goto retrn;break;
case'w':printf("**请输入你想取出的金额**\n**并保证是100的倍数\n");
while(l!=1)
{
scanf("%d",&k);
getchar();
if(k%100==0&&k>=0&&k<=2500)
{
printf("您取出的金额%d元\n",k);
l++;
goto retrn;
}
else
{
printf("您输入的面额有误请重新输入\n");
printf("请您保证为100的倍数\n");
}
}
break;
case'x':goto retrn;break;
default:printf("**操作有误请从新输入**");
j++;
}
}while(j!=1);
break;
case'e':
printf("**欢迎您的使用 请勿忘取卡**\n");
i++;
break;
default:printf("**操作有误请从新输入**\n");
}
}while(i!=1);
print_welcome();
return 0;
}
void print_welcome()
{
printf(" **欢迎使用**\n");
}
⑹ 用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机程序
帮我用C语言编写一个ATM取款程序要求代码在300行以上
作为一个二十一世纪的大学生,要养成自己动手的习惯!不懂就去图书馆翻阅资料!虽然网上现在很