虽然是满屏的printf、printf、printf、printf、、、、、、尴尬

但是一个小项目做下来还是能学习到很多的,有很多小的问题,不是亲自来敲一遍代码,是不会发现的。他的框架,每一个小函数功能的实现,

很多函数之间的关系,之间参数的传递等等。都是需要考虑的问题。

记得某位C 大神说过,只有在亲身实践中才能学习到真正的东西。另有古人云:键盘不敲烂,月薪不过万。。。。。

凡事从小处着手,慢慢的接近大项目,才是正道。好了废话不多说

先看头文件吧,

#ifndef MAIN_H
#define MAIN_H #include "stdio.h"
#include "math.h" int check_balance(int);
int drewmoney(int);
int reset_password(int);
void take_card();
int save_money(int ); #endif

主函数:

#include "main.h"

int main()
{
int account_temp,password_temp,slect_temp;
int account = ;//账户
int password = ;//密码
int balance = ;//余额
printf("welcome to use the ATM !\n\n");
while()
{
printf("please input your account number :");
scanf("%d",&account_temp);
printf("please input your password :");
scanf("%d",&password_temp); if (account_temp==account&&password_temp==password)
{
printf("your account balance is : %d\n\n",balance);
break;
}
else
{
printf("account or password error!!\n");
continue;
}
} do
{
printf("**************\n");
printf("1.check the balance.\n");
printf("2.withdrew money.\n");
printf("3.reset password.\n");
printf("4.take card.\n");
printf("5.save money.\n");
printf("**************\n");
printf("\n\t\t please Select the project you want to serve:\n");
scanf("%d",&slect_temp); switch(slect_temp)
{
case :
check_balance(balance);
break;
case :
balance = drewmoney(balance);
break;
case :
password = reset_password(password);
break;
case :
take_card();
break;
case :
balance = save_money(balance);
break;
}
}while(slect_temp!=);
return ;
}

小函数的实现:

#include"main.h"

//查询账户余额
int check_balance(int balance)
{
int b;
b = balance;
printf("your account balance is :%d $\n\n",b);
} //取钱,输入要取金额,金额不足,更新余额。
int drewmoney(int balance)
{
int drew_account,deviation;
printf("please input the account you want to drew :");
scanf("%d",&drew_account);
deviation = balance - drew_account;
if(deviation < )
printf("your account balance is not enough!\n");
else printf("please keep your cash: %d $\n",drew_account); return deviation; //返回余额
} //重置密码,返回新密码
int reset_password(int password)
{
int original,new_pass;
while()
{
printf("please input the original password:\n");
scanf("%d",&original);
if(original==password)
break;
else
{
printf("input error!!\n");
continue;
}
} while()
{
printf("please input your new password with Six digit number:\n");
scanf("%d",&password);
printf("please input again:\n");
scanf("%d",&new_pass);
if(password == new_pass)
{
if(new_pass>&&new_pass<)
{
printf("reset success!!\n\n");
break;
}
else
{
printf("input error!!\n");
continue;
} }
else
{
printf("input error --> not same!!\n");
continue;
} }
return password;
} void take_card()
{
printf("please take your card!!\n\n");
} //存钱,返回新的余额
int save_money(int balance)
{
int save_account;
printf("please input the save account:\n");
scanf("%d",&save_account);
if(save_account<)
printf("sorry,no negative account!!\n");
else
printf("you have saved money %d $\n",save_account);
return balance+save_account;
}

运行效果

C语言模拟ATM机界面的更多相关文章

  1. 01、模拟ATM机界面程序

    一.概述 设计一个简单的模拟自动取款机ATM界面的程序,实现用户登录及取款等功能. 二.需求分析 (1)模拟自动取款机ATM界面,有常用功能. (2)主要功能包括;用户输入密码登录主界面.取款功能.取 ...

  2. 语言模拟ATM自动取款机系统

    C语言实验报告       题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...

  3. 模拟ATM机银行系统

    淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处 ...

  4. 连接数据库——模拟ATM机查、存、取、开户功能

    1.界面:包含开户.查询.存款.取款.功能 package com.bank.test; /** * * @author Administrator *界面类 */ public class Jiem ...

  5. emWin实现ATM机界面设计,含uCOS-III和FreeRTOS两个版本

    第1期:ATM机配套例子:V6-900_STemWin提高篇实验_ATM机(uCOS-III)V6-901_STemWin提高篇实验_ATM机(FreeRTOS) 例程下载地址:http://foru ...

  6. C 语言之银行ATM机界面

    其实就是简单地对switch的用法,希望能给广大读者一些思路,写出自己的创意界面. #include <stdio.h> void main() { char SelectKey,Cred ...

  7. 序列化,反序列化,模拟ATM机

    package com.bank.unionpay; //银行卡的接口 public interface I_yinhangka { //抽象方法 //public abstract默认修饰抽象的 p ...

  8. 模拟ATM机将输入的数据插入数据库

    ATM抽象类 public abstract class ATM { private double balance; private String idcard; private String pas ...

  9. 简单的小程序实现ATM机操作

    简单的小程序实现ATM机操作 代码如下: package Day06; import java.util.Scanner; public class TestAccount { public stat ...

随机推荐

  1. 【R】提升R代码运算效率的11个实用方法

    低.有许多种方法可以提升你的代码运算效率,但或许你更想了解运算效率能得到多大的提升.本文将介绍几种适用于大数据领域的方法,包括简单的逻辑调整设计.并行处理和Rcpp的运用,利用这些方法你可以轻松地处理 ...

  2. 基于Dedup的数据打包技术

    基于Dedup的数据打包技术 0.引言    Tar, winrar, winzip是最为常见的数据打包工具软件,它们把文件集体封装成一个单独的数据包,从而方便数据的分布.传输.归档以及持久保存等目的 ...

  3. Spring in Action 4th 学习笔记 之 AOP

    前提:本文中的AOP仅限于Spring AOP. 先说说为什么需要AOP 最简单的一个例子就是日志记录,如果想记录一些方法的执行情况,最笨的办法就是修改每一个需要记录的方法.但这,真的很笨... 好的 ...

  4. 下面关于XML叙述不正确的是( )

    A.XML标记必须关闭 B.XML是大小写敏感的 C.XML文件只能跟DTD文件一块使用 D.XML和XSL结合可以在浏览器上显示 解答:C

  5. e645. 处理键盘事件

    You can get the key that was pressed either as a key character (which is a Unicode character) or as ...

  6. 【Java面试题】18 java中数组有没有length()方法?string没有lenght()方法?下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d";

    数组没有length()这个方法,有length的属性.String有有length()这个方法. int a[]; a.length;//返回a的长度 String s; s.length();// ...

  7. 【Java NIO的深入研究6】JAVA NIO之Scatter/Gather

    Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作. 分散(s ...

  8. C#中汉字轻松得到拼音全文类

    public class chs2py { ,-,-,-,-,-,-,-,-,-,-,-,-,-, -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-, -,-,-,-,-,-,-,-,- ...

  9. HEVC有损优化二

    1 .  HEVC有很些设置对速度的提升有很大的帮助,比如m_bUseEarlyCU,m_useEarlySkipDetection等. 把它们设置成true,会有意想不到的效果. 比如对于不同分辨率 ...

  10. js中如何跳出循环

    1.for循环中我们使用continue:终止本次循环计入下一个循环,使用break终止整个循环. 2.而在jquery中 $.each使用return true 终止本次循环计入下一个循环,retu ...