您的位置:首页 > 编程语言 > C语言/C++

C语言设计ATM存取款界面

2016-01-07 12:07 387 查看
这个虽然很简单,但是我还是弄了一会儿,可见有多菜。练习算。

主要考察switch开关语句、do...while语句,页面的跳转我用的是goto,虽然是弊端,可是还是用了,因为太菜啊。大家有好建议的欢迎提出。



好了不说了,贴源码,欢迎各位网友老师,提出批评改进意见。

/**
* Copyright (c) 1991 - 2016 Arvin Tang.
* All rights reserved.
*
* 文件名称:
* 简要描述:用C语言实现ATM界面,很丑的说
*
* 当前版本:1.0
* 作    者:
* 完成日期:2016-1-7
* 修订说明:
*
* 取代版本:
* 作    者:
* 完成日期:
* 修订说明:
*/
#include <stdio.h>
#include <stdlib.h>
//
//clrscr();函数不是标准的C函数,只存在Tuber C中且#include <conio.h>。
//但是可以用system("cls");代替,且#include <stdlib.h>。

void pw(void);
void qu(void);
void cun(void);
void cha(void);

int qianshu = 1000;//定义卡内钱数

int main(void)
{
int number;

pw();
system("cls");//清除屏幕上的密码

loop:do
{
printf("=========================\n");
printf("|\t请选择以下数字:\t|\n");
printf("|\t1、取款\t\t|\n");
printf("|\t2、存款\t\t|\n");
printf("|\t3、查询余额\t|\n");
printf("|\t4、退出\t\t|\n");
printf("=========================\n");

scanf("%d",&number);
}while(number != 1 && number != 2 && number != 3 && number != 4);

switch(number)
{
case 1:
qu();
system("cls");
goto loop;

case 2:
cun();
system("cls");
goto loop;

case 3:
cha();
system("cls");
goto loop;

case 4:
printf("谢谢使用!\n再见!\n");
system("pause");
break;

}

return 0;
}

/**
* 函数名称:密码输入判断函数
* 输入参数:
* 输出参数:
* 返 回 值:
*/
void pw(void)
{
int pw;//密码变量
int i=1;//密码次数累加量

printf("温馨提示密码:520,存款只能存整数!\n");
printf("请输入密码:\n");
scanf("%d",&pw);

while(pw != 520)
{
i++;
system("cls");
printf("请第%d次输入密码\n", i);
scanf("%d",&pw);
if(i==3)
{
printf("谢谢使用,密码错误次数过多,请明天再试。\n");
exit(0);//输入错误次数过多,系统退出。
}
}

}

/**
* 函数名称:取款
* 输入参数:
* 输出参数:
* 返 回 值:
*/
void qu(void)
{
int number;//菜单数

do
{
system("cls");//清屏

//取款菜单
printf("=========================\n");
printf("|\t请选择以下数字:\t|\n");
printf("|\t1、取100\t|\n");
printf("|\t2、取200\t|\n");
printf("|\t3、取300\t|\n");
printf("|\t4、返回\t\t|\n");
printf("=========================\n");

scanf("%d", &number);

}while(number != 1 && number != 2 && number != 3 && number != 4);

//三级菜单
do
{
switch(number)
{
case 1:
qianshu -= 100;
printf("请稍后!,正在吐钞...\n");
printf("目前余额:%d\n", qianshu);
break;

case 2:
qianshu -= 200;
printf("请稍后!,正在吐钞...\n");
printf("目前余额:%d\n", qianshu);
break;

case 3:
qianshu -= 300;
printf("请稍后!,正在吐钞...\n");
printf("目前余额:%d\n", qianshu);
break;

case 4:
return;
}

scanf("%d", &number);

}while(number != 4);
}

/**
* 函数名称:存款
* 输入参数:
* 输出参数:
* 返 回 值:
*/
void cun(void)
{
int number;

system("cls");

do
{
loop1:printf("请输入存款金额:\n");
scanf("%d", &number);
qianshu += number;

system("cls");
printf("本次存款:%d\n", number);
printf("你目前账号余额:%d\n", qianshu);

//菜单
printf("=========================\n");
printf("|\t请选择以下数字:\t|\n");
printf("|\t1、继续存款\t|\n");
printf("|\t2、返回\t\t|\n");
printf("=========================\n");

scanf("%d", &number);

if(number == 1)
goto loop1;

}while(number != 2);
}

/**
* 函数名称:查询
* 输入参数:
* 输出参数:
* 返 回 值:
*/
void cha(void)
{
int number;
do
{
system("cls");

printf("你目前账号余额:%d\n", qianshu);
printf("\n");
printf("=========================\n");
printf("|\t请选择以下数字:\t|\n");
printf("|\t1、继续查询\t|\n");
printf("|\t2、返回\t\t|\n");
printf("=========================\n");

scanf("%d", &number);
}while(number != 2);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: