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

小项目集合

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

小项目集合

1.零钱通:
需求说明:
public class SmallChangeSys { public static void main(String[] args) { //思路化繁为简 //定义两个变量,收益金额和余额。 boolean loop = true; Scanner myScanner = new Scanner(System.in); String key = ""; //1.先打印显示菜单,根据用户输入提示信息 String detail = "--------零钱通明细--------"; //2.完成零钱通明细具体(包含入账和消费两部分,是一个记录,可以用下列三个方法保存:1.数组,2.对象,3.字符串) double money = 0; double balance = 0; //date是java.util.Date类对象,表示日期。 Date date = null; //YYYY代表年,mm代表月,dd代表日,HH代表时,mm代表分,对日期进行格式化。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //3.完成消费 //定义一个变量,消费原因 String sake = ""; //4.退出系统优化 //定义变量保存输入 String choice = ""; do { System.out.println("n------零钱菜单------"); System.out.println("t1 零钱通明细"); System.out.println("t2 收益入账"); System.out.println("t3 消费"); System.out.println("t4 退 出"); System.out.println("请选择(1-4):"); key = myScanner.next(); switch (key) { case "1": System.out.println(detail); break; case "2": money = myScanner.nextDouble(); //先判断不正确的输入,直接退出switch //否则正常执行。 if(money<=0){ System.out.println("收益入账金额 需要 大于0"); break; } balance += money; date = new Date();//获取当前日期。 //输出后发现日期格式和想要的不一样(Sat Oct 23 07:03:21 CST 2021) 故需要对date进行格式化。 // System.out.println(date); detail += "n收益入账" + "t+" + money + "t" + sdf.format(date) + " 余额:" + balance; break; case "3": System.out.print("消费金额:"); money = myScanner.nextDouble(); if(money<=0||money>balance){ System.out.println("消费金额 需要在0-"+balance); break; } balance -= money; System.out.print("消费原因:"); sake = myScanner.next(); detail += "n" + sake + "t-" + money + "t" + sdf.format(date) + " 余额" + balance; break; case "4": //给出提示,你真要退出吗? //先用while判断用户输入是否在y/n中,若不在则一直循环给出你真的退出吗? //退出while后,根据choice值设置loop。 while (true) { System.out.println("你真的要退出吗? y/n"); choice = myScanner.next(); if (choice.equals("y") || choice.equals("n")) { break; } } if (choice.equals("y")) { loop = false; } break; default: System.out.println("你的选择有误 请重新输入"); break; } } while (loop); System.out.println("退出了零钱通"); } }

面向对象(OOP):

package project._1.oop;

public class SmallChangeSysApp {
    public static void main(String[] args){
        new SmallChangeSysOOP().mainMenu();
    }
}



package project._1.oop;

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

public class SmallChangeSysOOP {

    boolean loop = true;
    Scanner myScanner = new Scanner(System.in);
    String key = "";
    //1.先打印显示菜单,根据用户输入提示信息
    String detail = "--------零钱通明细--------";
    //2.完成零钱通明细具体(包含入账和消费两部分,是一个记录,可以用下列三个方法保存:1.数组,2.对象,3.字符串)
    double money = 0;
    double balance = 0;
    //date是java.util.Date类对象,表示日期。
    Date date = null;
    //YYYY代表年,mm代表月,dd代表日,HH代表时,mm代表分,对日期进行格式化。
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    //3.完成消费
    //定义一个变量,消费原因
    String sake = "";
    //4.退出系统优化
    //定义变量保存输入
    String choice = "";
    public void mainMenu(){
        do {
            System.out.println("n------零钱通菜单OOP------");
            System.out.println("t1 零钱通明细");
            System.out.println("t2  收益入账");
            System.out.println("t3  消费");
            System.out.println("t4  退    出");
            System.out.println("请选择(1-4):");
            key = myScanner.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("你的选择有误 请重新输入");
                    break;
            }
        } while (loop);
    }

    public void detail(){
        System.out.println(detail);
    }

    public void income(){
        money = myScanner.nextDouble();
        //先判断不正确的输入,直接退出switch
        //否则正常执行。
        if(money<=0){
            System.out.println("收益入账金额 需要 大于0");
           return;
        }
        balance += money;
        date = new Date();//获取当前日期。
        //输出后发现日期格式和想要的不一样(Sat Oct 23 07:03:21 CST 2021) 故需要对date进行格式化。
        // System.out.println(date);
        detail += "n收益入账" + "t+" + money + "t" + sdf.format(date) + " 余额:" + balance;
      return;
    }

    public void pay(){
        System.out.print("消费金额:");
        money = myScanner.nextDouble();
                        
        if(money<=0||money>balance){
            System.out.println("消费金额 需要在0-"+balance);
            return ;
        }
        balance -= money;
        System.out.print("消费原因:");
        sake = myScanner.next();
        detail += "n" + sake + "t-" + money + "t" + sdf.format(date) + " 余额" + balance;
     return ;
    }
    public void exit(){
        //给出提示,你真要退出吗?

        //先用while判断用户输入是否在y/n中,若不在则一直循环给出你真的退出吗?
        //退出while后,根据choice值设置loop。
        while (true) {
            System.out.println("你真的要退出吗? y/n");
            choice = myScanner.next();
            if (choice.equals("y") || choice.equals("n")) {
                break;
            }
        }
        if (choice.equals("y")) {
            loop = false;
            System.out.println("------退出了零钱通------");
            return ;
        }

    return;
    }
}

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

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

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