ATM函数实现
#include <stdio.h> #include <stdlib.h> #define kSuccess 1 #define kWrong 0 int password=123456; float balance = 1000; //输入密码操作 int inputpassword(void); //退出程序操作 void shut(void); //提示用户操作 void show(char *a[],int n);//指针数组 数组中的每一个元素均为指针 这里元素均为字符串 所以用到指针数组 //用户选择 int choice(int max); //修改密码操作 void revise(void); //取款操作 void draw(void); //是否继续 void continuation(void); int main(int argc, const char * argv[]) { // inputpassword();不需要 下面又调用了一次 int receive = inputpassword(); if (receive == kWrong) { shut(); } while(1){ char *a[4]={"修改密码","取款","查询","退出"}; show(a, 4); int op=choice(4); switch (op) { case 1: revise(); continuation(); break; case 2: draw(); continuation(); break; case 3: printf("您的余额的为:%f\n",balance); continuation(); break; case 4: shut(); break; default: break; } } return 0; } int inputpassword(void) { int wrongtime = 0; int inputpwd = 0; while(1){ printf("请输入密码:"); scanf("%d",&inputpwd); if (inputpwd == password) { return kSuccess; }else{ wrongtime++; if (wrongtime == 4) { printf("抱歉,您的密码输入错误次数过多,您的银行卡将被锁定\n"); return kWrong; }else{ printf("密码错误 "); } } } } void shut(void) { printf("感谢您的使用 再见!"); exit(EXIT_SUCCESS); } void show(char *a[],int n) { printf("****************\n"); for (int i=0; i<n;i++ ) { printf("%d.%s\n",i+1,a[ i ]); } printf("****************\n"); } int choice(int max) { int op = 0; while(1){ printf("请按提示选择操作:"); scanf("%d",&op); if (op>0&&op<=max) { return op; }else{ printf("输入有误"); } } } void revise(void) { int inputpwd = 0; while(1){ printf("请输入原密码:"); scanf("%d",&inputpwd); if (inputpwd ==password) { printf("请输入新密码:"); scanf("%d",&password); while(1){ printf("请再次输入新密码:"); scanf("%d",&inputpwd); if (inputpwd == password) { printf("密码修改成功 !"); break; }else{ printf("您两次输入的密码不一致:"); } } break; }else{ printf("密码错误 "); } } } void draw(void) { int money = 0; char *a[5]={"100","200","500","1000","其他"}; show(a, 5); int op=choice(5); switch (op) { case 1: money =100; break; case 2: money =200; break; case 3: money = 500; break; case 4: money = 1000; break; case 5: printf("请输入您的取款金额:"); scanf("%d",&money); break; default: break; } if (money<balance) { balance-=money; printf("取款成功"); }else{ printf("余额不足!"); } } void continuation(void) { printf("是否继续:‘y'/'n'\n"); char op; getchar(); op=getchar(); if (op=='n') { shut(); } }