菜鸡程序猿的开始:java基础知识之一个简单ATM机

import java.util.Scanner;

public class Atm{
static int allmoney=150000; //ATM现有余额
static int all=200000; // ATM最大量
static int money =10000; // 初始化用户的余额
public static void main(String[] args) {
System.out.print("*********************************");
System.out.println();
System.out.print("*********欢迎使用菜鸡版ATM机**********");
System.out.println();
System.out.print("****1.登陆***************2.退出****");
System.out.println();
Scanner s=new Scanner(System.in);
int i = s.nextInt();
if(i==1){ //选择1进入ATM机 对登陆功能进行构造
denglu();
gongneng();
}
else{
System.out.println("*******已退出系统*******");
System.exit(0); //直接退出程序
}
}

public static void denglu(){
for(int x =1;x<4;x++){
int j=3-x;
Scanner t = new Scanner(System.in);
System.out.println("请输入用户名:");
int yonghuming=t.nextInt();
System.out.println("请输入密码");
int mima=t.nextInt();

if(yonghuming==123&&mima==321){
System.out.println("登陆成功");
break;
}
else{
System.out.println("请重新输入,您还剩"+j+"机会");
if(j==0){
System.out.println("*******已退出系统*******");
System.exit(0); //直接退出程序
continue;
}
}
}return;
}
public static void gongneng(){
Scanner t=new Scanner(System.in);
System.out.println("请输入你想选择的功能:1.查询余额 2.取款 3.存款 4.退出");
int gongneng =t.nextInt();
switch(gongneng){ //对功能菜单进行构造
case 1:System.out.println("您的账户当前余额为"+money);break;
case 2:System.out.println("请输入要取出的金额");
for(int i=0;;i++){
int quqian = t.nextInt();
if(quqian==0&&quqian<0){
System.out.println("输入有误,请重新输入");
continue;
}
else if(quqian>money){
System.out.println("您的余额不足,请重新输入");
continue;
}

else if(quqian%100!=0){
System.out.println("必须是100的倍数,重新输入");
continue;
}
else{
System.out.println("请收好钱");
money-=quqian;
System.out.println("您的账户还剩"+money);
break;
}
}
break;
case 3:
for(int i =0;;i++){
System.out.print("请输入要存的金额");
Scanner q=new Scanner(System.in);
int cun = q.nextInt();
if(cun%100!=0){
System.out.println("存钱必须是100的倍数,请重新输入");
continue;
}
else if(cun+allmoney>all){
System.out.println("ATM放不下啦,请重新输入");
continue;
}
else if(cun<0&&cun==0){
System.out.println("金额有误,请重新输入");
continue;
}
else{
System.out.println("存钱成功,您的余额为"+(cun+money));break;
}
}
case 4:System.out.println("*******已退出系统*******");
System.exit(0);

}
return;
}

}

1 讲一下用到的知识点,从上到下来,首先用到的就是输入,怎么样才能输入变量,就用到Scanner,接下来就要用到for嵌套if语句,for循环来控制你输入的次数,当你输入用户名密码错误到3次时,给出提示并推出程序,当你输对用户名密码时,就进入下一个代码块,

2 这里用到了模块,调用模块是一个重点,因为以后写代码你不可能都写到main方法里面,这样可读性很差,这里我第二个gongneng模块写的有点繁琐。

3 gongneng模块里用到的是switch里面嵌套if循环, 因为之前在class 下面就定义了三个全局变量,所以这三个量在这里不管哪个模块里都可以直接用;这里本来是应该实现你取钱、存钱之后再去查询余额,余额会有相应的变化,可是如果你先查询余额,会发现余额没法和你上面定义的余额所对应。看来今天是实现不了了,后面有时间了再来完成这个小功能。

时间: 2024-10-25 07:25:27

菜鸡程序猿的开始:java基础知识之一个简单ATM机的相关文章

黑马程序员——Java基础知识之多线程协同

多线程协同 线程间的通讯:对资源的操作动作不同,比如说两个卡车一个拉煤一个装煤,但是他们共享了一个资源. 怎么样把这个资源拿出来?怎样把车装满?这个资源当然是一个类,他里面的组成元素就是对象!!现在我们就要有操作对象的思想了,用对象把这车装满,现在一车装一个对象. 等待唤醒机制: 用的不是sleep是wait.flag标记,这是两人沟通的方式.其实每个标记就要做一次等待或者notify,判断wait,改值notify.线程池.notify唤醒里面的线程,按顺序唤醒.wait和notify必须用在

java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)

 *java多线程--等待唤醒机制:经典的体现"生产者和消费者模型 *对于此模型,应该明确以下几点: *1.生产者仅仅在仓库未满的时候生产,仓库满了则停止生产. *2.消费者仅仅在有产品的时候才能消费,仓空则等待. *3.当消费者发现仓储没有产品可消费的时候,会唤醒等待生产者生产. *4.生产者在生产出可以消费的产品的时候,应该通知等待的消费者去消费. 下面先介绍个简单的生产者消费者例子:本例只适用于两个线程,一个线程生产,一个线程负责消费. 生产一个资源,就得消费一个资源. 代码如下: pub

黑马程序员——I/O流基础知识

I/O流 Io流 代表有能力产生数据的数据源对象或者有能力接收对象的数据接收端对象.字节流和字符流.中文字符也转编码表,jbk2万多中文字.unicode全世界的字符收录.乱码,两种不同形式的编码表.字符流里面的对象融合了编码表,以便别人使用的使用用你指定的编码方式. 基类:读和写~ 字节流 InputStream,OutputStream 字符流 Reader,Writer Writer 主力方法是writer().既然IO流是操作数据的,而数据的最常见体现形式是:文件. 需求:准备在硬盘上创

第1天:了解Java基础知识

Java的优势 1. 简单 不像C或者C++语言,Java中省去了对指针的操作.但是,Java中并没有省去指针,代替指针的是一种新的变量--引用,引用也是保存一个对象的内存地址. 2.方便 Java虚拟机自带垃圾回收器,能够自动回收内存资源.而C和C++语言,需要开发人员手动进行内存资源回收. 3.安全 不支持指针操作 4.平台无关性 Java语言是跨平台的,一次编译,到处运行. 而且,不同平台,C语言中数据类型所占的位数是不同的,而Java语言中,数据类型所占的位数是固定的. 5.面向对象 J

JAVA基础知识-java文化基础和运行环境

JAVA基础知识 1,java是95年sun公司推出的开发语言,发展很快,09年被oracle公司收购.至今分为SE.ME.EE三个发展方向和软件版本. 2,运行java的环境主要是通过JVM(java virtual machine)实现的.首先编写.java结尾的源文件,通过编译器编译成.class结尾的字节码文件,然后通过解释器实现在不同平台上一致运行的效果. 3,jvm,jre和jdk的区别:jvm,java虚拟机:jre,java运行环境,jdk:java开发工具包. 4,jdk的下载

Java基础知识梳理《一》

一.Java数据类型(简单称之为“四类八种”) java 基本的数据类型长度都是固定的,好处是在实现跨平台时就统一了. 1.整型 byte short int long (分别是1,2,4,8个字节) 类型 存储需求 位数 取值范围 byte 1字节 8位 -128~127 short 2字节 16位 -2^15 ~2^15-1 int 4字节 32位 -2^31~2^31-1 long 8字节 64位 -2^63~2^63-1 当超出int表示范围时,应该使用long型,添加后缀一大写的L 注

java基础知识回顾之关键字

其实java中的常用关键字并不多,总共加起来也没有多少个,具体见如下这张表: private,protect,public 在java中,在类,类的属性和累的方法前面加上一个修饰符来对其进行访问权限上的控制.除了使用private,protect,public之外, 还有一种是default情况,即使不加任何权限修饰符.关于这四中情况的权限差别见下表: 注意:default不是修饰符,他表示一种不加任何修饰符的情况. 这里,主要看一看static,instanceof,final关键字的含义和如

三、Java基础知识要点合集

1.数据类型 Java的数据类型分为基本数据类型和引用数据类型. a, 基本数据类型包括:byte, boolean, char, short, int, long, float, double; b, 每个基本数据类型都有相应的引用类型,比如int  ->  Integer,char -> character. c, 查询不同类型数据的范围,方法之一是可以用基本类型对应的引用类型.比如,"int i = Integer.Size; "(i表示int型数据所占的位(bit)

学习Spring必学的Java基础知识(1)----反射

引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www.iteye.com/topic/1123293 [3] 属性