可按Ctrl+D收藏 蚂蚁资源网

蚂蚁资源网

c语言atm机系统(atm取款机的简单程序代码)

  • 全部评论(3)
  • 亦心
  • 以下是我自己的写作之一,在许多细节中没有细致的待遇,只是一个粗略的基本功能实现了我的测试数据,我希望帮助#include #include #include typedef struct _account {char * uid; char * pwd;平衡; char * uname;}帐户,* paccount; void initaccount; //初始化帐户void showaccount(帐户a,bool标志); //显示帐户信息,标志表示是否显示所有信息。如果是真的,则需要输入用户密码Bool存款(PACCOUNT PA); //保存金额,需要密码来验证并输入BOOL退出的金额(PACCOUNT PA); //拿钱内部需要密码验证,并输入BOOL TRANSECT(PACCOUNT PA,PACCOUNT PB); // 转移,您需要密码验证,并输入金额BOOL行为(PACCOUNT PA,INT选择,PACCOUNT PB); //进程,基于菜单项处理用户动作选择void modifypwd(paccount pa); //更改用户密码Bool身份验证(PACCOUNT PA); //密码身份验证,3个机会输入密码void memfree(paccount pa,paccount pb); //在reaote int main(void){//创建两个帐户的堆内存上分配,每个帐户转移和接收Paccount Pmainacc =(Paccount)Malloc(sizeof(帐户)); paccount passistacc =(paccount)malloc(sizeof(帐户)); //初始化两个帐户init(pmainacc)的信息; Intaccount(passistacc); //菜单控制,提供用户操作INT CHOSe = -1;虽然(选择了!= 0){printf(“\ n1。保存钱\ t3。传输\ t4。更改密码\ t5。显示帐户信息\ t0.退出\ n”); SCANF(“%D”和选择);行为pmainacc,选择,passistacc);}返回0; Bool行为(PACCount PA,INT选择,PACCOUNT PB){BOOL RTNFLAG = TRUE;切换(选择){案例1:if(!存款(PA))Printf(“操作失败!”);否则打印机(“成功运营!”);休息;案例2:如果(!撤回(PA))Printf(“操作失败!”);否则打印机(“成功!”);休息;案例3:如果(!转移(pa,pb))printf(“失败!”);否则打印机(“成功运营!”);休息;案例4:modifypwd(pa);休息;案例5:showaccount(* pa,true);休息;案例0:RTNFLAG = false; MEMFREE(PA,PB);休息;}返回rtnflag; void initaccount(paccount pa){printf(“请initIalize帐户名称,密码,姓名,帐户余额。 \ n“); pa-> uid =(char *)malloc(sizeof(char)* 20); pa-> pwd =(char *)malloc(sizeof(char)* 20); pa-> uname =(char *)malloc(sizeof(char)* 20); get(pa-> uid); get(pa-> pwd); get(pa-> uname); scanf(“%d”,&pa->余额); getchar();返回;} void showacocount(帐户a,bool标志){if(标志){int i = 0; getchar(); char * tmpwd =(char *)malloc(sizeof(char)* 20);虽然(strcmpwwd,a .pwd){printf(“请输入帐户%s:\ n”,a.uid); get(tmpwd);如果(++ i> 3){printf(“抱歉,密码输入错误!!部分信息\ n“); showaccount(a,false);免费(tmppwd); return;}} printf(”帐户信息如下:\ n帐户名称\ t密码\ t帐户余额\ t名称\ n“); prinTF(“%6s \ t%8s%8d \ t%8 \ ts \ n”,a.uid,a.pwd,a.balance,a.uname);免费(TMPPWD);}否则{printf“帐户信息如下:\ n帐户名称\ t帐户余额\ t name \ n”); printf(“%6s \ t%8d \ t%4s \ n”,a.uid,a.balance,a.uname)} return; bool存款(paccount pa){if(!身份验证(pa))返回false ; int val = 0; printf(“请输入金额:\ n”); Scanf(“%d”,&val); PA->平衡+ = val;返回true; bool撤回(paccount pa){if(!身份验证(pa))返回false; printf(“请输入金额”); int val = 0; Scanf(“%d”,&val); if(pa-> balance> = val){pa-> balance - = val;} else {printf(“抱歉,平衡!”);返回false;} relurn true; bool transfer(paccount pa,paccount pb){if(!身份验证(pa))返回false; printf(“恳求SE输入量“); int val = 0; scanf(”%d“,&val); if(pa-> balance> = val){pa-> balanal - = val; pb-> balance + = val;}否则{printf(“抱歉,平衡!”);返回false;返回true; void modifypwd(paccount pa){if(authentication(pa)){printf(“请enternew密码!”);免费(PA-> PWD); pa-> pwd =(char *)malloc(sizeof(char)* 20); get(pa-> pwd);否则{printf(“抱歉,您没有权限进行密码修改!” ); bool身份验证(paccount pa){getchar(); int i = 0; char * tmpwd =(char *)malloc(sizeof(char)* 20);而(strcmp tmppwd,pa-> pwd){printf (“请输入%s的密码,3个机会:\ n”,pa-> uid); get(tmppwd);如果(++ i == 3){return false}}}返回true;} void memfree( paccount pa,paccount pb){免费(PA);免费(PB);} / *操作环境:VC6.0请初始化帐户名称,密码,名称,帐户余额。 Wedqweasdwednesday800请初始化帐户名称,密码,姓名,帐户余额。 Husadhuni2001。重新定位2.拿钱3.转移4.更改密码5.显示帐户信息0.退出1请输入WED密码,3个机会:QWE请输入WED密码,3机会:QWEASD请输入金额:54成功! 1.省钱2.拿钱3.转让4.更改密码5.显示帐户信息0.退出5请输入帐户周期密码:QWE请输入帐户周期密码:QWEASD帐户信息如下:帐户名称帐户密码帐户余额名称WED QWEASD 854 S1。 Reposit Money 2.拿钱3.转移4.更改密码5.显示帐户信息0.退出4请输入WED密码,3中频:123请输入WED密码,3机场:QWEASD请输入新密码! 123qwe1。重新发布200.拿钱3.传输4.更改密码5.显示帐户信息0.退出1进入WED密码,3个机会:QWEEASD请输入WED密码,3个机会:123QWE请输入金额:43运行成功! 1.省钱2.拿钱3.转移4.更改密码5.显示帐户信息0.退出5请输入帐户周期:123QWE帐户信息如下:帐户名称帐户密码帐户余额名称WED 123QWE 897 S1。重新定位2.拿钱3.传输4.更改密码5.显示帐户信息0.退出0按继续关键s * /
  • 2021-06-24 20:33:28
  • 网站快速搭建
  • 这是我曾经写过C ++的东西。你可以参考它。您可以询问注册帐户的功能并不完美。我没有时间帮助您修改它。我没有时间拯救,我很抱歉。 #include #include使用命名空间std; int mima = 123,mima1 = 0; int kaishi(); int shurumima(); INT RT Quqian(); INT商品(); int main(){whis(1){switch(kaishi()){casse a':{shurumima();突破;}案例'b':{quqian();休息;}} c':{goodbye(); break;}}}}返回0; int kaishi(){int键do {system(“cls”); cout > mima1; if(mima!= mima1){if(i> 3){cout <<“密码错误超过三次,请退出”<< endl;退出)0);} else {cout <<“密码错误,请重新输入”<< endl; getch();}} else {cout <<“密码是正确的,按任意输入“<< endl; getch(); break; break;}}}(mima!= mima1 && i <= 3);返回0; int money1(int a,int b){system(”cls“) ; COUT <<“=========== ================= << ENDL; cout <<“你把它从¥”a << endl; cout <<“仍然¥”<< b <
  • 2021-06-24 20:32:07
  • Lu珊Han
  • C语言编程银行ATM自动取款机功能(急),#include <stdio.h>#include <string.h>#include <conio.h>struct _Account_Info{ int iAccountNum; //帐号 char szAccountName[10]; //户名 char szAccountPassword[10]; //密码 float fTotalMoney; //余额}; typedef struct _Account_Info Account_Info; typedef struct _node{ Account_Info AccountInf; _node* pNext;}AccountNode;int number=1;int iAccountNum = 0;AccountNode* pHead = NULL;void GetPassword(char* pPassword); //获取密码,并以'*'显示void ShowAccount(int iAccountNum); //显示帐户余额AccountNode* FindAccountByNumber(int iAccontNum); //根据帐号查找帐户bool GetUserAccountInf(); //校验拥护输入帐号和密码是否匹配bool WriteAllAccount(); //将所有的帐户信息写文件bool ReadAllAccount(); //读取所有的帐户的信息bool ShowAllAccount(); //显示当前所有帐户信息,测试用AccountNode* NewAccount() //生成一个新的帐号结点{ AccountNode* pNode = new AccountNode; if (pNode == NULL) return NULL; memset(pNode,0,sizeof(AccountNode)); //输入帐号名称 printf("请输入帐号名称:"); scanf("%s",pNode->AccountInf.szAccountName); //输入帐号密码 printf("请输入帐号密码:"); GetPassword(pNode->AccountInf.szAccountPassword); //设置帐号其他信息 pNode->AccountInf.iAccountNum = number++; //系统自动产生帐号Id pNode->AccountInf.fTotalMoney = 0; //初始余额为0 return pNode;}void InsertAccount(AccountNode* pNode){ if (pNode == NULL) return; //first node if(pHead == NULL) pHead = pNode; else { AccountNode* pTmp = pHead; while(pTmp->pNext) { pTmp = pTmp->pNext; } pTmp->pNext = pNode; }}bool OpenAccount(){ AccountNode* pAccount = NewAccount(); if (pAccount == NULL) return false; InsertAccount(pAccount); printf("开户成功,欢迎使用招商银行自动取款机服务!\n"); ShowAccount(pAccount->AccountInf.iAccountNum); return true;}void ShowAccount(int iAccountNum){ AccountNode* pCurAccount = FindAccountByNumber(iAccountNum); if (pCurAccount) { printf("账号:%-4d ",pCurAccount->AccountInf.iAccountNum); printf("姓名:%-10s ",pCurAccount->AccountInf.szAccountName); printf("密码:%-10s",pCurAccount->AccountInf.szAccountPassword); printf("余额:%.2f\n",pCurAccount->AccountInf.fTotalMoney); }}void ShowAccountMoney(int iAccountNum){ AccountNode* pCurAccount = FindAccountByNumber(iAccountNum); if (pCurAccount) { printf("您目前的帐户余额为%.2f元.\n",pCurAccount->AccountInf.fTotalMoney); }}AccountNode* FindAccountByNumber(int iAccontNum){ AccountNode* pNode = pHead; while (pNode) { if (pNode->AccountInf.iAccountNum == iAccontNum) break; else pNode = pNode->pNext; } return pNode;}bool SaveMoney(){ AccountNode* pAccount = FindAccountByNumber(iAccountNum); if (pAccount == NULL) return false; float fValue = 0; printf("请输入存款金额:"); scanf("%f",&fValue); if (fValue < 0) { printf("存款金额输入有误!\n"); return false; } pAccount->AccountInf.fTotalMoney += fValue; printf("存钱成功,您的当前余额为%.2f\n",pAccount->AccountInf.fTotalMoney); return true;}bool FetchMoney(){ float fValue = 0; AccountNode* pAccount = FindAccountByNumber(iAccountNum); if (pAccount == NULL) return false; printf("请输入取款金额:"); scanf("%f",&fValue); if (fValue < 0) { printf("取款金额输入有误!\n"); return false; } if (int(pAccount->AccountInf.fTotalMoney - fValue) < 0) { if (int(pAccount->AccountInf.fTotalMoney - fValue) < -2000) { printf("您的余额不足,操作失败%d\n",pAccount->AccountInf.fTotalMoney - fValue); } else { pAccount->AccountInf.fTotalMoney -= fValue; printf("操作成功,您目前透支%.2f元!\n",pAccount->AccountInf.fTotalMoney); } } else { pAccount->AccountInf.fTotalMoney -= fValue; printf("取钱成功,您的当前余额为%.2f!\n",pAccount->AccountInf.fTotalMoney); } return true;}void PrintfMenuOption(){ printf("*****************************按键使用功能说明*************************\n"); printf("*************按1存钱 || 按2取钱 || 按3查看余额 || 按4退出*************\n"); printf("**********************************************************************\n");}void ReleaseNode(){ if (pHead == NULL) return; AccountNode* pNode = pHead; AccountNode* pTmp = pHead; while(pNode->pNext) { pTmp = pNode; pNode = pNode->pNext; delete pTmp; } delete pNode;}bool GetUserAccountInf(){ int iAccountNo = 0; char szSceret[10] = {0}; int iCounter = 0; bool bOk = false; while(iCounter < 3) { memset(szSceret,0,sizeof(char)*10); iCounter++; printf("请输入你的帐号:"); scanf("%d",&iAccountNo); AccountNode* pAccountOut = FindAccountByNumber(iAccountNo); if (pAccountOut == NULL) { printf("没有此帐号,请先开户!\n"); continue; } printf("请输入帐号密码:"); GetPassword(szSceret); if (strcmp(szSceret,pAccountOut->AccountInf.szAccountPassword) != 0) { printf("密码有误!\n"); continue; } bOk = true; iAccountNum = iAccountNo; break; } return bOk;}bool AskForContinue(){ printf("继续其他操作还是退出?(按0退出/其它键继续)\n"); int iOperation = 0; scanf("%d",&iOperation); return iOperation != 0;}void main(){ bool bContinue = true; ReadAllAccount();// ShowAllAccount(); //打开此函数,可以查看初始从文件读入的信息 OpenAccount(); if (GetUserAccountInf()) PrintfMenuOption(); else bContinue = false; while (bContinue) { int iOperation = 0; scanf("%d",&iOperation); switch(iOperation) { case 1: SaveMoney(); bContinue = AskForContinue(); break; case 2: FetchMoney(); bContinue = AskForContinue(); break; case 3: ShowAccountMoney(iAccountNum); bContinue = AskForContinue(); break; case 4: bContinue = false; break; default: printf("无效操作!\n"); break; } if (bContinue) PrintfMenuOption(); } WriteAllAccount(); ReleaseNode();}void GetPassword(char* pPassword) { int i; for (i=0; i<10; i++) { char tmp = getch(); if (tmp == '\x0d' || tmp == '\n') { printf("\n"); break; } else { pPassword[i] = tmp; } printf("*"); }}bool WriteAllAccount(){ FILE *fp; if((fp = fopen("c:\\outData.txt","w")) == NULL) { printf("文件打开错误!\n"); return false; } if (pHead == NULL) return true; AccountNode* pCurAccount = pHead; while(pCurAccount) { fprintf(fp,"%d %s %s %.2f\n",pCurAccount->AccountInf.iAccountNum,pCurAccount->AccountInf.szAccountName,pCurAccount->AccountInf.szAccountPassword,pCurAccount->AccountInf.fTotalMoney); pCurAccount = pCurAccount->pNext; } fclose(fp); return true;}bool ReadAllAccount(){ FILE *fp; if((fp = fopen("c:\\outData.txt","r")) == NULL) { fp = fopen("c:\\outData.txt","w"); fclose(fp); fp = fopen("c:\\outData.txt","r"); } while(!feof(fp)) { AccountNode* pCurAccount = new AccountNode; memset(pCurAccount,0,sizeof(AccountNode)); if (pCurAccount) { fscanf(fp,"%d %s %s %f\n",&(pCurAccount->AccountInf.iAccountNum),pCurAccount->AccountInf.szAccountName,pCurAccount->AccountInf.szAccountPassword,&(pCurAccount->AccountInf.fTotalMoney)); if (pCurAccount->AccountInf.iAccountNum == 0) { fclose(fp); delete pCurAccount; return true; } InsertAccount(pCurAccount); } number++; } fclose(fp); return true;}bool ShowAllAccount(){ if (pHead == NULL) return true; AccountNode* pCurAccount = pHead; while(pCurAccount) { printf("账号:%-4d ",pCurAccount->AccountInf.iAccountNum); printf("姓名:%-10s ",pCurAccount->AccountInf.szAccountName); printf("密码:%-10s",pCurAccount->AccountInf.szAccountPassword); printf("余额:%.2f\n",pCurAccount->AccountInf.fTotalMoney); pCurAccount = pCurAccount->pNext; } return true;}
  • 2021-06-24 20:32:07
  • 商品推荐