用Properties类创建对象读取文档*txt格式书写ATM简单版本,看大神们有什么改进的,欢迎交流

先创建了一个ATM.txt格式的的文档,将卡的账号、密码、内存金额放在此文档

password=123
money=5000
userName=123



然后用类Properties创建一个对象,将银行卡的属性放进对象中,书写一个简单的ATM机实现简单的登录、存款、取款、查看、修改密码、退出程序等功能具体代码示例如下:package unit331;

import java.io.FileReader;
import java.io.FileWriter;
import java.util.Properties;

import javax.swing.JOptionPane;

public class ATM {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "***欢迎光临***");
        boolean item = login();
        if (item == false) {
            JOptionPane.showMessageDialog(null, "你已经输入三次,超次,将退出程序");
            System.exit(0);
        }
        while (true) {
            String number = JOptionPane.showInputDialog(null, "1、存款 \n2、取款\n3、查询\n4、改密\n5、退出");
            switch (number) {
            case "1":
                add();
                break;
            case "2":
                setout();
                break;
            case "3":
                find();
                break;
            case "4":
                change();
                break;
            case "5":
                System.exit(0);
            default:
                JOptionPane.showMessageDialog(null, "请再选项里面选择");
            }
        }

    }// 主方法

    // 修改密码
    public static int change() {
        Properties pro = new Properties();
        try {
            pro.load(new FileReader("src/unit331/ATM.txt"));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "查无此文件");
        }
        String password = pro.getProperty("password");
        String code = JOptionPane.showInputDialog(null, "请输入原密码");
        if (password.equals(code) == false) {
            JOptionPane.showMessageDialog(null, "密码不正确");
            return 0;
        }
        int newpassword=Integer.parseInt(JOptionPane.showInputDialog(null, "请输入新密码")) ;
        int newpassword1=Integer.parseInt(JOptionPane.showInputDialog(null, "请确认新密码")) ;
        if (newpassword!=newpassword1) {
            JOptionPane.showConfirmDialog(null, "两次密码不一致");
            return 0;
        }
        pro.setProperty("password", newpassword+"");
        try {
            pro.store(new FileWriter("src/unit331/ATM.txt"), null);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "查无此文件");
        }
        return 0;
    }

    // 查询页面
    public static void find() {
        Properties p = new Properties();
        try {
            p.load(new FileReader("src/unit331/ATM.txt"));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "查无此文件");
        }
        int money = Integer.parseInt(p.getProperty("money"));
        JOptionPane.showMessageDialog(null, "账号余额为:" + money);
    }

    // 取款页面
    public static int setout() {
        int money = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入取款金额"));
        Properties pro = new Properties();
        try {
            pro.load(new FileReader("src/unit331/ATM.txt"));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "查无此文件");
        }
        int AtmMoney = Integer.parseInt(pro.getProperty("money"));
        if (money != AtmMoney) {
            JOptionPane.showMessageDialog(null, "账户余额不足");
            return 0;
        }
        int AllMoney = AtmMoney - money;
        pro.setProperty("money", AllMoney + "");
        try {
            pro.store(new FileWriter("src/unit331/ATM.txt"), null);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "查无此文件");
        }
        JOptionPane.showMessageDialog(null, "请从取款口取出现金");
        return 0;
    }

    // 存款页面
    public static void add() {
        int money = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入存款金额"));
        Properties pro = new Properties();
        try {
            pro.load(new FileReader("src/unit331/ATM.txt"));
        } catch (Exception e) {
            System.out.println("查无此文件");
        }
        String atmmoney = pro.getProperty("money");
        int Atmmoney = Integer.parseInt(atmmoney);
        int allmoney = Atmmoney + money;
        pro.setProperty("money", allmoney + "");
        try {
            pro.store(new FileWriter("src/unit331/ATM.txt"), null);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "查无此文件");
        }
    }

    // 登录页面
    public static boolean login() {
        Properties pro = new Properties();
        try {
            pro.load(new FileReader("src/unit331/ATM.txt"));
        } catch (Exception e) {
            System.out.println("查无此文件");
        }
        String userName = pro.getProperty("userName");
        String password = pro.getProperty("password");
        for (int i = 0; i < 3; i++) {

            String name = JOptionPane.showInputDialog(null, "请输入用户名");
            String pwd = JOptionPane.showInputDialog(null, "请输入密码");
            if (userName.equals(name) && password.equals(pwd)) {
                return true;
            } else {
                JOptionPane.showMessageDialog(null, "用户名和密码错误,请重新输入");
            }
        }
        return false;
    }

}欢迎广大朋友指正,共同交流

原文地址:https://www.cnblogs.com/xiyuanxiaorenwu/p/8684855.html

时间: 2024-11-05 19:27:40

用Properties类创建对象读取文档*txt格式书写ATM简单版本,看大神们有什么改进的,欢迎交流的相关文章

C++中string类及文件流类(ofstream,ifstream)的基本操作---按行读取文档

先说明一个问题:java构建对象只能使用new的方法,而C++则不然. 下面代码实现读取test.txt文件中的内容并显示,同时将某一个字符串输入到文件test1.txt中. 函数getline(ifstream& param1, string& param2);按行读取文档,若处于文件尾部,返回false. 函数object.c_str();将字符串转换成字符数组,返回指针. 其它函数的使用请参照程序. // test_max.cpp : 定义控制台应用程序的入口点. // #inclu

Winform读取文档。然后创建,奇数行保存一个文档,偶数行保存一个文档

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Text.RegularExpressions; namespace TextModify

读取文档数据的各列的每行中

读取文档数据的各列的每行中 1.该文件的内容被读 [[email protected] leekwen]# cat userpwd 1412230101 ty001 1412230102 ty002 1512430102 ty003 1511230102 ty004 1411230102 ty002 1411240102 yt005 1412290102 yt012 1510230102 yt022 1512231212 yt032 2.脚本命令 [[email protected] leekw

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报 文档sharepointurl测试stringforms 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 1.在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试 2.在VS2010中新建空

一个导入到本地读取文档的方法

一个导入到本地读取文档的方法 在网页上看到, 发现了一个比较好的插件 简悦 , 可以通过其中的一个功能, 下载为 markdown 文件. 发现是一个很不错的功能. 本来想去找一下, 有没有类似的 书签记录, 类似vim中的mark功能 但 vim 插件感觉有些重, 并且影响好多的快捷键操作. 原文地址:https://www.cnblogs.com/asdfq/p/10994197.html

HTML文档基本格式

一.HTML文档基本格式: <!DOCTYPE html>  //文档类型声明 <html lang='zh-cn'>                  //表示HTML文档开始 <head>              //包含文档元数据开始 <meta charset='utf8'>           //声明字符编码 <title>基本</title>     //设置文档标题 </head>     //包含文档元

Atitit.复合文档的格式&#160;标准化格式

Atitit.复合文档的格式 标准化格式 1. Docfile1 2. Iso   Cdf  cd file1 3. Zip1 4. Ooxml1 5. Odf  :OpenDocument Format2 5.1.1. 本质2 6. 参考3 1. Docfile paip.docfile二进制复合文档 前言Docfile Docfile是二进制复合文档,打开文件可看到文件头签名..类似于文件夹存储的方式来存储文档…如以前的DOC文件夹,OLE文档等.. 2. Iso   Cdf  cd fil

Properties类与读取properties文件

Properties类 在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释. 这个类的几个常用的方法: 1.getProperty ( String key),用指定的键在此属性列表中搜索属性.也就是通过参数 key ,得到 key 所对应的 value. 举个例子,比如要搜索"PORT"对应的值,getProperty ("PORT") 返回的值就是prop

python实用小技巧自问自答系列(一):查看类中函数文档doc的方法

问题:如何查看某个类的方法文档说明或者是函数的参数列表情况? 答: 方法一:直接在需要查询的方法后面加上".__doc__"即可以打印出该方法的文档说明(需要先导入该方法所属模块) 如: 方法二:在windows的命令行模式下还可以输入:"python -m pydoc 方法名"获取该方法的文档说明 如: 方法三:在ipython的命令行解释器模式下可以通过方法名+问号的方式来查看该方法的文档说明(需要先导入该方法所属模块)      如: 方法四:通过help函数