Java入门小编程

Java基础学习编写基础项目:

需求文档提减版:

一、 ATM项目介绍
该项目主要为用户提供对自身资产的管理
二、 功能介绍
a) 登录:用户通过输入用户名、密码进行匹配,匹配成功,方可进入系统
b) 查询余额:显示用户的余额
c) 存款:输入存款金额,将输入金额存入当前用户余额
i. 输入金额规则:输入金额须为100的倍数,须大于0,金额小于1000
d) 修改密码:提示用户输入原密码
i. 当原密码输入正确时,提示输入修改的密码
ii. 重复输入修改的密码,判定两次密码是否输入正确
e) 退出:结束系统

易错点犯错
工具包的字母大小写注意java.text.SimpleDateFormat写成ava.text.SimpleDateformat
嵌套语句中的初始化命名不可重复for(int i=0;😉{ int i =9}
循环语句之间的内部关系for循环的嵌套

解读如下:
项目说明书
逻辑:
使用二维数组存储账户,密码,金额…
在登录的前题下进行其他功能的操作判断.,某些命名属于java小白,知道就可以了!

import java.text.DateFormat;
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Dome {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
        //登录AMD系统
        //设置数组存储输入的账号、密码
        boolean flag = false;

        String[][] accounts = new String[][]{
                {"yi", "123456", "300"},
                {"er", "123456", "300"},
                {"san", "123456", "300"},
                {"si", "123456", "300"},
        };
            /*
		   ============第一部分=================
		   ============登录验证=================
		 */
        System.out.print("请输入账号:");
        String name = sc.next();

        System.out.print("请输入密码:");
        String password = sc.next();
        //登录设置权限
        //定义维度行数

        for (int i = 0; i < accounts[0].length; i++) {
            //判断用户名,
            if (name.equals(accounts[i][0])) {
                //判断密码

                if (password.equals(accounts[i][1])) {
                    flag = true;
                }else {/*
                    for(int m=0,m>3,m++)
                    {
                        password = sc.next();
                        System.out.println("输入错误,重新输入");
                    }
                    */
                }
            }
            System.out.println(flag);

//

            //判断姓名是否匹配

            /*
             * 	================第二部分==============================
             * 	==登录成功后,提示登录成功,并显示登录时间=============
             * */
            //声明当前日期
            DateFormat dateFormat = new SimpleDateFormat("yyyy/d/d hh:mm:ss");
            Date date = new Date();
            System.out.println(dateFormat.format(date));
            System.out.println("-----------------菜单栏--------------------");
            System.out.println("--------欢迎来到实训银行-----------");
            System.out.println("----------请按照功能菜单进行操作-----------");
            //
            System.out.println("1:余额查询\", \"2:存款\", \"3:取款\", \"4:修改密码\", \"5:退出\"");

            //菜单设置功能键
            //bar =new JMenuBar();
            if (flag) {
            /*
		 * ================第三部分==============================
		 * ================显示菜单并实现相应功能==============================
		 *
		 */
                while (true) {
                    System.out.println("请输入功能:");
                    int func = sc.nextInt();

                    switch (func) {
                        case 1:
                            System.out.println("用户:"+name+"余额查询:" + accounts[i][2]);
                            break;
                        case 2:
                            //System.out.print("存款");
                            System.out.print("输入存取金额:");
                            double price = sc.nextInt();
                            //将数组的金额转换成int ,加上存入金额
                            int sum = Integer.parseInt(accounts[i][2]);
                            if (price % 100 == 0 && price < 1000) {
                                sum += price;
                                System.out.println("本次用户存款" + sum + "元成功!");

                            } else {
                                System.out.println("输入的金额ATM不识别!");
                            }
                            break;
                        case 3:
                            System.out.print("取款");
                            //取款功能代码
                            //pos为登录账户的数组下标
                            int money = Integer.parseInt(accounts[i][2]);
                            System.out.println("请输入取款金额:");
                            int cost = sc.nextInt();
                            if (cost % 100 != 0 || cost <= 0) {
                                System.out.println("金额必须为100的整数且不能小于0");
                            } else if (cost > money) {
                                System.out.println("你的余额不足");
                            } else {
                                money -= cost;
                                accounts[i][2] = money + "";
                                System.out.println("你的余额为:" + money);
                            }
                            break;
                        case 4:
                            String password_next = sc.next();
                            System.out.print("再输入一次密码:"+password_next);


                             if (password_next.equals(accounts[i][1])){
                                 System.out.print("输入新密码");
                                 String new_password = sc.next();
                                 //判定俩次密码是否一致
                                 //注意数据类型是否一致,否则equals报错,
                                 if (new_password.equals(password_next)) {

                                 }else{
                                     System.out.print("两次密码输入不相同");
                                 }

                                 System.out.print("修改成功!"+name+new_password);

                             }

                            break;
                        case 5:
                            System.out.print("退出");
                            System.exit(0);
                            break;
                        case 6:
                            //一定循环遍历,匹配元素是否一致。
                            System.out.print("输入新账号:");
                            String new_name = sc.next();
                            for(int j =0;j<accounts[0].length;j++){
                                if (new_name.equals(accounts[j][0])){
                                System.out.print("输入转账金额:");
                                int new_price = sc.nextInt();
                                int money1 = Integer.parseInt(accounts[i][2]);
                                //确认转账后的金额:
                                    //转账的本人
                                    //待转账的
                                int sum1,sum2;
                                sum1 = money1-new_price;
                                System.out.println(name+"用户剩余" + sum1 + "元成功!");
                                int money2 = Integer.parseInt(accounts[j][2]);
                                sum2 = money2+new_price;
                                System.out.println(new_name+"本次转账用户共" + sum2 + "元成功!");

                            }
                            }
                            break;
                        default:
                            System.out.println("非法操作");
                            break;
                    }
                }
            } else {
                System.out.println("登录失败");

            }
            //元素赋值
            //登陆后的账号存款:
            //存款

        }



        if (!flag) {
            System.out.println("登录失败,请重新登陆");
        }
       



    }

}

运行结果:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值