源代码

//20173626 信1705-2 郑锦
package ATM;
import java.io.IOException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
class Account {
private String accountID;
private String accountname;
private String operatedate;
private int operatetype;
private String accountpassword;
private int accountbalance;
private int amount;
public String getaccountID() {
return accountID;
}
public void setaccountID(String accountID) {
this.accountID=accountID;
}
public String getaccountname() {
return accountname;
}
public void setaccountname(String accountname) {
this.accountname=accountname;
}
public String getoperatedate() {
return operatedate;
}
public void setoperatedate(String operatedate) {
this.operatedate=operatedate;
}
public int getoperatetype() {
return operatetype;
}
public void setoperatedate(int operatetype) {
this.operatetype=operatetype;
}
public String getaccountpassword() {
return accountpassword;
}
public void setaccountpassword(String accountpassword) {
this.accountpassword=accountpassword;
}
public int getaccountbalance() {
return accountbalance;
}
public void setaccountbalance(int accountbalance) {
this.accountbalance=accountbalance;
}
public int getamount() {
return amount;
}
public void setamount(int amount) {
this.amount=amount;
}
class File01Demo {
public static void main(String[] args) throws IOException {
File file = new File("C:\\accounlist.txt");
FileWriter fw = new FileWriter(file,true); //设置成true就是追加
fw.write("asd");
fw.write("\r\n");
fw.write("ffd");
fw.close();
}
}
public void menu() throws IOException //将异常抛出,调用这个方法去处理异常,如果main方法也将异常抛出,则交给Java虚拟机来处理,下同.
{
int a;
Scanner in=new Scanner(System.in);
System.out.println("***************************************************************************");
System.out.println("*************欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统*************");
System.out.println("****************************************************************************");
System.out.println(" 1.存款 ");
System.out.println(" 2.取款 ");
System.out.println(" 3.转账汇款 ");
System.out.println(" 4.修改密码 ");
System.out.println(" 5.查询余额 ");
System.out.println("***************************************************************************");
System.out.print("请选择(0~5):");
a=in.nextInt();
while(a<0||a>5)
{
System.out.print("输入无效,请重新输入:");
a=in.nextInt();
}
switch(a)
{
case 1:this.add();break;
case 2:this.draw();break;
case 3:this.modif();break;
case 4:this.delete();break;
case 5:this.look();break;
}
}
//查询余额
public void look() throws Exception{
System.out.println(amount);
System.out.println("***************************************************************");
System.out.println(" 欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统" );
System.out.println("****************************************************************");
System.out.println(" 当前账户余额为:XXXX元 ");
menu();
}
//取款
public void draw() throws Exception{
int sum1 = 0;dd
int money=0;
TimerTask task = new TimerTask(){
public void run(){
}
};
Timer timer = new Timer();
long delay = 1000*60*60*24;
long period = 1000*60*60*24;
timer.scheduleAtFixedRate(task, delay, period);
menu();

System.out.println("***************************************************************");
System.out.println(" 欢迎XXXXXXXX(账户名称)使用中国工商银行自助柜员系统 ");
System.out.println("****************************************************************");
System.out.println(" 当前账户每日可以支取2万元 ");
System.out.println(" 1、100元 ");
System.out.println(" 2、500元 ");
System.out.println(" 3、1000元 ");
System.out.println(" 4、1500元 ");
System.out.println(" 5、2000元 ");
System.out.println(" 6、5000元 ");
System.out.println(" 7、其他金额 ");
System.out.println(" 8、退卡 ");
System.out.println(" 9、返回 ");
System.out.println("****************************************************************");
Scanner sc = null;
int dr=sc.nextInt();
switch(dr){
case 1:
amount=500;
//balance-=money;

break;
case 2:
amount=1000;
//balance-=money;

break;
case 3:
money=2000;
//balance-=money;

break;
case 4:
System.out.println("只能输入100的整数倍,并且要小于2000.");
System.out.println("请输入金额");
amount=sc.nextInt();
if (money % 100 != 0 || money > 2000) {
System.out.println("您输入的金额不是100的整数倍或者大于2000,请选择:");
other(amount);
}
break;
default:draw();
}
sum1=sum1+money;
if(money > amount) {
System.out.println("余额不足请重新输入");
draw();
} else if (sum1 > 5000) {
System.out.println("对不起,本次取钱后当天累计金额将超过5000,将跳转到取款界面,请重新取款:" + "\n");
draw();
} else {
amount-=money;

System.out.println("取款成功你的账户余额为" +amount);
// System.out.println(sum);
afterDraw();
}
}
private void afterDraw() {
// TODO 自动生成的方法存根

}
private void other(int amount2) {
// TODO 自动生成的方法存根

}
}

感悟:

今年开学之后先是连续一周紧张的小学期,在匆忙写完小学期作业之后又迎来了实习,坐了几天的车实地参观了几家公司,但是实话说真的没有学到什么东西,参观的时间没有写感想的时间长,有点小失望;其实也不能说什么也没有学到,毕竟长了见识,知道了人家软件公司的内部环境,和编程人员的工作环境,以及工资情况,小有收获;在这些之后迎来了真正的大头--java语言程序设计,第一节课考试有点小激动,老师给了我们题目后我们开始了长达一下午的变成拉锯战,因为老师说考试开卷可以上网找答案,刚开始很开心上网找答案感觉应该不会难,会用百度会打字不就行了,可是结果让我异常懵逼的是老师出的题是原创题,惊不惊喜意不意外,唉!没办法只能按照步骤一步一步来了,只是从网上寻找各种功能的原代码片段,然后进行拼接,最后也是没能全部完成,很是遗憾,二十分的题也是只拿到了九点五,奇低!

以前从未接触过java,也只是听说过而已,上来就做题真的是有点狗咬刺猬的感觉,不知道从哪下口,无奈之下只能按部就班的来,按照题目要求的功能一步一步的实现,先是类的声明,需要定义一个ATM类,然后定义私有变量,一共七个缺一不可,然后对每个变量定义get()(读取变量信息)和set()(设置变量信息)的方法。刚开始真的是在老老实实的一个get一个set的在写但是写了半天之后发现原来不用手写系统可以直接根据我们定义的变量生成我们要写的这些函数,虽然很失望但是还是通过这个明白了些东西,总体很开心,毕竟收获了知识,通过这个我们了解到当一个方法太过麻烦的时候,我们可以尝试其他的途径,也就是我们常说的不要再一个树上吊死,也就是当我们理解了这些东西的时候,我们就会理解“山重水复疑无路,柳暗花明又一村”的喜悦!

定义完变量和类之后,就开始各部分的功能实现,定义accountinformation.txt作为账户基本信息库,基本信息包括accountID,accountname,accountpassword, accountbalance,要求事先实现至少存储五个账户的信息,定义accountlist.txt作为账户操作流水信息数据库,操作流水信息包括(accountID,accountname,operatedate,operatetype, amount)。(要求将学号作为帐号,将考生信息作为第一条记录)。

完成这个功能之后,紧接着就是界面的设计,每一次进行完操作之后都会自动跳转页面执行新的命令。

几个变量的功能如下:

变量accountID为字符串类型String,用于存储学生的用户账号(由八位数字组成)。变量accountname为字符串类型String,用于存储账户的名称。变量operatedate为字符串类型String,用于存储操作的时间,由十位字符组成,显示格式为“2018-09-20”。   变量operatetype为int类型,用于存储操作账户的类型,具体描述为“1”表示存款,“2”表示取款,“3”表示转账汇款,“4”表示修改账户密码,“5”表示查询余额变量accountpassword为字符串类型String,用于用户密码,由六位数字组成。变量accountbalance为整数类型int,用于存储账户余额,缺省为0。变量amount为整数类型int,表示操作流水金额。感觉任重而道远,虽然压力不小但是我不会放弃,加油吧!!

JAVA实现ATM源代码及感想的更多相关文章

  1. java测试ATM自助操作系统

    开学第一周系主任安排了一项测试,测试要求:模拟ATM自助取款机用文件进行存储账户信息,密码等,并进行存款取款,转账,查询记录等操作,而且要进行文件的读取与录入. 这是一个ATM自助取款的操作系统,进行 ...

  2. Java To CSharp源代码转换

    前言 开发环境 客户端:Unity3D开发(C#) 服务器:Java (基于Java7) 日   期:2016年09月 需求说明 部分服务器的部分逻辑功能在客户端实现一遍,可以简单的理解为服务器的部分 ...

  3. [Java] LinkedList / Queue - 源代码学习笔记

    简单地画了下 LinkedList 的继承关系,如下图.只是画了关注的部分,并不是完整的关系图.本博文涉及的是 Queue, Deque, LinkedList 的源代码阅读笔记.关于 List 接口 ...

  4. 【Java收集的源代码分析】Hashtable源代码分析

    Hashtable简单介绍 Hashtable相同是基于哈希表实现的,相同每一个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时.相同会自己主动增长. Has ...

  5. java围棋游戏源代码

    //李雨泽源代码,不可随意修改.//时间:2017年9月22号.//地点:北京周末约科技有限公司.//package com.bao; /*围棋*/ /*import java.awt.*; impo ...

  6. Java Arrays.sort源代码解析

    前提: 当用到scala的sortWith,发现: def sortWith(lt: (A, A) ⇒ Boolean): List[A] // A为列表元素类型 根据指定比较函数lt进行排序,且排序 ...

  7. Java课堂测试01及感想

    上周进行了Java的开学第一次测验,按要求做一个模拟ATM机功能的程序,实现存取款.转账汇款.修改密码.查询余额的操作.这次测验和假期的试题最大的不同还是把数组存储改成的文件存储,在听到老师说要用文件 ...

  8. Java阶段性总结与获奖感想

    一.获奖感想 这次能获得小黄衫,可以说是对我自己这半学期以来努力学习的一种肯定,也是激励我继续努力的动力. 首先,我要感谢给予我们耳目一新的学习方式的娄老师.我曾在我期望的师生关系中提到,我的高中班主 ...

  9. [转载]查看JDK及Java框架的源代码

    1.点 "window"-> "Preferences" -> "Java" -> "Installed JRE ...

随机推荐

  1. Anfora 自动装载类

    1.目录结构 + Anfora | + Autoload | - ClassLoader.php | - Autoload.php - autoload.php 2.注册类加载器 src/Anfora ...

  2. Python mayavi库及mayavi管线

    Mayavi库的基本元素Mayavi库中主要有两大部分功能 一类是用于处理图形可视化和图形操作的mlab模块 一类是操作管线对象窗口对象的apimlab包含 绘图函数:实现已有的数据进行可视化显示,可 ...

  3. UWP关于图片缓存的那些破事儿

    看似简单的功能,实施起来却是有着一堆大坑. 按着基本功能来写吧 1.选择图片并显示到Image控件中 2.图片序列化为byte数组以及反序列化 3.本地存储与读取 1.选择图片: 逻辑就是使用File ...

  4. python猜数字游戏console版本

    加入python学习小组后的第一次作业,python GUI写猜数字游戏.由于加班比较多,第一步先实现console版本,下一步再实现GUI版本. 虽然猜数字游戏是个小游戏,但是涉及到的基础知识点还是 ...

  5. dubbo环境搭建

    主要是通过使用tomcat和使用main方法进行发布服务 参考文章: http://blog.csdn.net/aixiaoyang168/article/details/51362675 http: ...

  6. 深度学习Tensorflow生产环境部署(下·模型部署篇)

    前一篇讲过环境的部署篇,这一次就讲讲从代码角度如何导出pb模型,如何进行服务调用. 1 hello world篇 部署完docker后,如果是cpu环境,可以直接拉取tensorflow/servin ...

  7. 看我是如何利用升级系统一键GetShell

    i春秋作家:小猪 原文来自:看我是如何利用升级系统一键GetShell 漏洞名称:看我是如何利用升级系统一键GetShell 程序下载地址:https://pan.baidu.com/s/1VdoPL ...

  8. spring cloud 入门,看一个微服务框架的「五脏六腑」

    Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组 ...

  9. 线程池工厂Executors编程的艺术

    Executors是一个线程池的工厂类,提供各种有用的线程池的创建,使用得当,将会使我们并发编程变得简单!今天就来聊聊这个工厂类的艺术吧! Executors只是Executor框架的主要成员组件之一 ...

  10. python面试中被问的最多的10道题

    1 性能: 解析下面代码慢在哪里def strtest1(num):str='first'for i in range(num):str+="X"return str解析:pyth ...