189 8069 5689

c语言atm机登录函数 c语言atm机输入密码c语言

编写一个C语言程序模拟银行ATM机的账户管理功能,系统主要实现以下功能

按照你的愿意把空都填好了,VC++ 6.0下编译能通过,有警告信息,运行基本上能用,不过个人认为这个系统有很大的不足,比如输入账号的时候没有输出反馈信息,以及没有对误操作的处理等等。需要的话可以帮你改改!

创新互联公司是专业的双塔网站建设公司,双塔接单;提供成都网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行双塔网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

#include stdio.h

#include conio.h

#include stdlib.h

#include string.h

#define AN 9 //表示账号8位

#define PN 7 //表示密码6位

#define ASN 3 //表示系统中共有3个账户信息

struct Account

{

char accountnumber[AN]; //表示账号信息

char password[PN]; //表示账户的密码信息

double balance; //表示账户的余额

};

struct Account ats[ASN]={{"00000001","123456",100},{"00000002","123456",200},{"00000003","123456",300}};

//ats数组用于存储系统中三个账户的信息

int isCorrect(char *an,char *psd)

{

int i;

for(i=0;iASN;i++)

if(strcmp(ats[i].accountnumber,an)==0 strcmp(psd,ats[i].password)==0)

return 1;

return 0;

}

double getBalance(char *an)

{

int i;

for(i=0;iASN;i++)

if(strcmp(an,ats[i].accountnumber)==0)

return ats[i].balance;

}

void deposit(char *an,int amount)

{

int i;

for(i=0;iASN;i++)

if(strcmp(an,ats[i].accountnumber)==0)

ats[i].balance+=amount;

}

int withdraw(char *an,int amount)

{

int i;

for(i=0;iASN;i++)

if(strcmp(an,ats[i].accountnumber)==0)

return ats[i].balance-=amount;

}

void main()

{

char AccountNumber[AN]={'\0'};

char psd[PN]={'\0'};

int i,errorcount=0;

while(1)

{

printf("\n请输入8位账号:");

for(i=0;i8;i++)

AccountNumber[i]=getch();

printf("\n请输入6为密码:");

for(i=0;i6;i++)

{

psd[i]=getch();

putchar('*');

}

if(isCorrect(AccountNumber,psd)==1)

{

int tag,amount;

while(1)

{

printf("\n欢迎登录银行账户管理系统,请选择您要的服务:1、查询余额;2、存款操作;3、取款操作;4、退出系统\n");

scanf("%d",tag);

switch(tag)

{

case 1:

printf("您现在的余额为%f元\n",getBalance(AccountNumber));

break;

case 2:

printf("请输入您的存款金额:");

scanf("%d",amount);

deposit(AccountNumber,amount);

printf("存款成功!您的当前余额为:%f元\n",getBalance(AccountNumber));

break;

case 3:

printf("请输入您的取款金额:");

scanf("%d",amount);

if(amount=getBalance(AccountNumber))

printf("取款成功!您的当前余额为:%f元\n",withdraw(AccountNumber,amount));

else

printf("取款失败!\n");

break;

case 4:

break;

}

if(tag==4)

break;

}

}

else

{

errorcount++;

if(errorcount==3)

{

printf("您已经连续三次输入错误,系统将自动关闭\n");

break;

}

}

}

}

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

#includestdio.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的程序,实现开户、存款、取款、查询余额、转账的业务逻辑。

#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;i100;i++)

{

printf("\t\t\t\t\t\t欢迎使用青软ATM系统\n");

printf("\t\t\t\t\t\t正在进入主界面,请稍等");

int j;

for(j=1;jt;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(i0){

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;q100;q++)

{

int w;

for(w=1;wr;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.moneyoutputsomemoney){

printf("您的余额已不足,请您注意!");

}else {

int q;

int r=1;

for(q=0;q100;q++)

{

int w;

for(w=1;wr;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 duifang;

int qian;

fflush(stdin);

printf("\n\n\n\t\t您现在使用的是转账功能");

printf("\n\t\t\t请输入您要转账的账户:");

scanf("%d",duifang);

int n=ftell(fp);

rewind(fp);

int flag=0;

struct bank temp;

while(fread(temp,sizeof(temp),1,fp)==1)

{

if(temp.account==duifang)

{

flag=1;

break;

}

}

if(flag==1)

{

printf("请输入转账金额:");

scanf("%d",qian);

if(one.money=qian)

{

int q;

int r=1;

for(q=0;q100;q++)

{

int w;

for(w=1;wr;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;i3;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(i3){

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;h3;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机输入密码c语言
URL网址:http://cdxtjz.cn/article/dojsico.html

其他资讯