栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java零钱通项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java零钱通项目

面向过程版本 

package com.hansp.project.SmallChange.tradition;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class menu {
    public static void main(String[] args) {
        boolean loop = true;
        Scanner scanner = new Scanner(System.in);
         String key="";

         //先完成显示菜单
        //完成零钱通明细的功能
        //完成收益入账的功能
        //改进功能,一般都是找不正确的功能
        String note="";
        double money = 0;
        double balance= 0;
        char x='x';

        Date date = null;
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm");

        String details="----------零钱通明细----------";
        do{
            System.out.println("n==========零钱通菜单==========");
            System.out.println("tt1.零钱通明细");
            System.out.println("tt2.收益入账");
            System.out.println("tt3.消费情况 ");
            System.out.println("tt4.退   出");
            System.out.println("请输入1-4");
    key=scanner.next();
                    switch (key){
                        case "1":
                            System.out.println(details);
                            break;
                        case  "2":
                            System.out.println("收益入账金额");
                            money=scanner.nextDouble();
                            //校验收益
                            if(money<=0)
                            {
                                System.out.println("你输入了错误的收益");
                                break;
                            }
                            balance+=money;
                            //拼接收益入账信息

                            date=new Date();//获取到当前日期

                            details +="n收益入账t+"+money+"t"+sdf.format(date )+"t"+balance;
                            break;
                        case  "3" :
                            System.out.println("输入消费金额");
                            money=scanner.nextInt();
                            if(money>balance||money<=0)
                            {
                                System.out.println("不能花费大于你,并且应该是正数");
                            }

                            //范围校验,一会实现细节
                            System.out.println("消费说明");
                            note=scanner.next();


                            date=new Date();

                            balance-=money;
                            //开始拼接
                            details +="n"+note+"t-"+money+"t"+sdf.format(date )+"t"+balance;

                               break;
                        case  "4":
                            System.out.println("你确定退出吗,确定的话输入y,不想退出的话输入n");
                            x=scanner.next().charAt(0);
            while(true){
                if(x=='y' || x=='n'){
                    break;

                }
                else System.out.println("请输入y或者n");
                x=scanner.next().charAt(0);
            }
                            if(x=='y')
                                loop=false;

                            //退出零钱通项目
                            break;
                        default:
                            System.out.println("请选择1-4中的一个数");
                    }


        }while(loop);

    }

}

OOP(面向对象)版本 

package com.hansp.project.SmallChange.OOP;
//app类
import java.util.Date;

public class App {
    public static void main(String[] args) {
        function f = new function();
        f.mainMenu();
    }
}

 功能类

package com.hansp.project.SmallChange.OOP;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;



public class function {

    boolean loop = true;
    Scanner scanner = new Scanner(System.in);
    String key="";
    String note="";
    double money = 0;
    double balance= 0;
    char x='x';

    Date date = null;
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm");

    String details="----------零钱通明细----------";

    public void mainMenu(){
        do{
            System.out.println("n==========零钱通菜单==========");
            System.out.println("tt1.零钱通明细");
            System.out.println("tt2.收益入账");
            System.out.println("tt3.消费情况 ");
            System.out.println("tt4.退   出");
            System.out.println("请输入1-4");
            key=scanner.next();
            switch (key){
                case "1":
                    this.detail();
                    break;
                case  "2":
                    this.income();
                    break;
                case  "3" :
                    this.pay();

                    break;
                case  "4":
                   this.exit();
                    break;
                default:
                    System.out.println("请选择1-4中的一个数");
            }


        }while(loop);
    }
    public void detail(){
        System.out.println(details);
    }
    public void income(){
        System.out.println("收益入账金额");
        money=scanner.nextDouble();
        //校验收益
        if(money<=0)
        {
            System.out.println("你输入了错误的收益");
        return;//退出方法不再执行后面的代码
        }
        balance+=money;
        //拼接收益入账信息

        date=new Date();//获取到当前日期

        details +="n收益入账t+"+money+"t"+sdf.format(date )+"t"+balance;
    }
    public void pay(){ System.out.println("输入消费金额");
        money=scanner.nextInt();
        if(money>balance||money<=0)
        {
            System.out.println("不能花费大于你,并且应该是正数");
            return;
        }

        //范围校验,一会实现细节
        System.out.println("消费说明");
        note=scanner.next();


        date=new Date();

        balance-=money;
        //开始拼接
        details +="n"+note+"t-"+money+"t"+sdf.format(date )+"t"+balance;
    }
    public void exit(){
        System.out.println("你确定退出吗,确定的话输入y,不想退出的话输入n");
        x=scanner.next().charAt(0);
        while(true){
            if(x=='y' || x=='n'){
                break;

            }
            else System.out.println("请输入y或者n");
            x=scanner.next().charAt(0);
        }
        if(x=='y')
            loop=false;
    }
}

积累经验:

1.当我们想杜宇某一个值进项判断从而约束时,可以想想他不正确的情况(比较好想)

if(条件){报错提示 break;}

if(另一个条件) {报错提示 break;}

这样的代码可读性会大大增强

2.OOP的特性的封装在这里体现出来了

功能类写方法再通过功能类的主菜单调用各种方法

最后应用,而不是在应用再写代码了

而且修改比较方便,新增功能也比较方便

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999993.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号