程序代码:
#include <stdio.h> #include <stdlib.h> #include <conio.h> void display(int allmoney, int number); void xuanze(int allmoney, int number); void sys(int a, int allmoney, int number); void data(); void password(int allmoney, int number); void qk(int allmoney, int number); void ye(int allmoney, int number); void number_func(int allmoney, int numbe); void display(int allmoney, int number) { system("cls"); printf("=================================\n"); printf("=========取款机==================\n"); printf("=================================\n"); printf(" 1:取款\n"); printf("\n"); printf(" 2:查询余额\n"); printf("\n"); printf(" 3:修改密码\n"); printf("\n"); printf(" 4:退卡\n"); printf("=================================\n"); xuanze(allmoney, number); } void xuanze(int allmoney, int number) { int a = 0;//init a = 0 printf("请输入选择的操作数\n"); scanf("%d",&a);//添加 if (a == 1 || a == 2 || a == 3 || a == 4) { sys(a, allmoney, number); } else { printf("错误的操作数,请按任意键继续'''\n"); getchar(); getchar(); display(allmoney, number); } } void sys(int a, int allmoney, int number) { switch (a) { case 1:qk(allmoney, number);break; case 2:ye(allmoney, number);break; case 3:number_func(allmoney, number);break; case 4:exit(0);break; } } void qk(int allmoney, int number) { int money; printf("请输入你的取款数(只能是100的整数倍):\n");//记得提示只能是100的整数倍 A:scanf("%d", &money); if ((money < 0) || (money > 3000) || (money%100 != 0)) { printf("错误\n"); goto A;//goto 由于程序的局部性原理,使用goto会使程序运行出现错误。 } else { printf("请稍等\n"); if (allmoney < money) { printf("你的余额不足\n"); getchar();//等待用户确认 } else { printf("你已取出%d元\n", money); getchar();//等待用户确认 } allmoney = allmoney - money; getchar(); display(allmoney, number); } } void ye(int allmoney, int number) { fflush(stdin);//将标准输入缓冲区清空,避免getchar读到旧数据使得程序一跳而过 printf("你的账户余额是%d元\n", allmoney); getchar(); display(allmoney, number); } void number_func(int allmoney, int numbe) { int d, j; printf("请输入新的密码\n"); B:scanf("%d", &d); system("cls"); printf("确认密码\n"); scanf("%d", &j); system("cls");// " if (d != j) { printf("错误\n"); goto B; } else { numbe = j; } display(allmoney, numbe); } void data() { int number, allmoney; printf("请设置初始密码:\n"); scanf("%d", &number); system("cls"); printf("请设置初始金额:\n"); scanf("%d", &allmoney); system("cls"); printf("请输入任意键继续\n"); getchar(); getchar(); display(allmoney, number); } void password(int number, int allmoney) { int i, m = 0; printf("请输入密码\n");//\n scanf("%d", &i); system("cls"); if (i != number) do { printf("你输入的密码错误\n"); m++; scanf("%d", &i); } while (i != number && m < 2); if (m > 1) { display(allmoney, number); } } void main() { data();//datd 改为data }已帮你改好,还有模块间耦合度太高了,