源代码

//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. pm2模块编写入门

    PM2 模块 PM2模块是通过PM2来安装和管理,代码可以托管在NPM中.任何人都可以创建和发布一个PM2模块,可以是日志模块.http代理模块.负载均衡模块.DNS服务器模块或任何类型的实用程序. ...

  2. H3C 路由策略(人为打环)

    拓扑如上 任务1:去除环路双ospf 引入 造成路由环路一边是 1             一边是10关掉任意lo口都会生成新的路由表 但是路由表指向不对 变成了一个圆 我们可以采用引入路由打上tag ...

  3. OpenXml修改word特定内容

    采用OpenXml来修改word特定内容,如下: word: OpenXml修改word之前: OpenXml修改word之后: 代码: string path = @"C:\Users\A ...

  4. CentOS7 openssh7.9p1安装

    先安装telnet,以防安装ssh出现问题,无法远程登录设备. 最新版openssh下载地址:http://www.openssh.com/ftp.html 一.安装telnet和xinetd: 1. ...

  5. L'opzione di luce del puntatore laser

    Prima di tutto, sono di buone dimensioni, non i 'mini' puntatori laser che altri stanno vendendo. È ...

  6. JavaScript工作体系中不可或缺的函数

    一.函数的概念 日常生活中,我们要完成一件事,总是习惯先有一个计划,后期按照计划,一步一步执行,则能够完成,并且达到一定效果实现一定的功能.在编程的世界里,“功能”可称呼为“函数”,因此“函数”即一段 ...

  7. 站点的rel="alternate"属性

    概述 今天看决战平安京官网源码,突然看到了rel的alternate属性,百度了一下,记录下来,供以后开发时参考,相信对其他人也有用. PC端rel 在pc版网页上,添加指向对应移动版网址的特殊链接r ...

  8. Linux rpm包安装不了

    有时候会发现安装rpm包时会报错,解决办法: 到rpm包所在目录执行 createrepo -v ./   这个命令 然后会生成一个repodate这个目录,然后在进行安装rpm就可以了!

  9. Python-OpenCV 图像叠加加权实现

    函数说明 cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) → dst 1 参数说明 src1 – first input ...

  10. VS Code 快捷键大全

    前言 VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影..简言之,内置快捷键玩熟了,效率提高不是一点两点. VsCode 快捷键有五种组合方式(科普) 通用快捷键 基础编辑 ...