今日完成简易零钱通

以及课后习题一:对对象数组的冒泡排序
面向过程版本
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class SmallChangeSys { public static void main(String[] args) { //定义相关变量 boolean loop = true; String key = ""; Scanner sc = new Scanner(System.in); //1.完成零钱通明细 使用String拼接 String details = "------零钱通明细------"; //2.完成收益入账 // 定义新的变量 double money = 0; double balance = 0; //date 是 java.util.Dte类型 表示日期 Date date = null; //可以用于日期格式化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //3.完成消费 // 定义新的变量 String note = ""; //4.完成退出 String choice = ""; do{ System.out.println("--------零钱通菜单--------"); System.out.println(" 1 零钱通明细"); System.out.println(" 2 收益入账"); System.out.println(" 3 消费"); System.out.println(" 4 退出"); System.out.println("请选择(1-4):"); key = sc.next(); switch (key){ case "1"://零钱通明细 System.out.println(details); break; case "2"://收益入账 System.out.println("收益入账金额:"); money = sc.nextDouble(); //money 的值范围应该校验 //找出不正确的金额条件 ,然后给出提示 ,就直接break if(money <= 0){ System.out.println("收益入账金额 需要 大于0"); break; } balance += money; //拼接收益入账信息到details date = new Date();//获取当前日期 details += " 收益入账 " + "+" + money + " " + sdf.format(date) + " " + balance; break; case "3"://消费 System.out.println("消费金额为:"); money = sc.nextDouble(); //money 的值范围应该校验 if(money <= 0 || money > balance){ System.out.println("你的消费金额应该在 0-"+ balance); break; } System.out.println("消费说明:"); note = sc.next(); balance -= money; details += " "+note + " -" + money + " " + sdf.format(date) + " " + balance; break; case "4"://退出 //要求用户必须输入y/n ,否则就一直循环 while(true){ System.out.println("你确定要退出吗? y/n"); choice = sc.next(); if("y".equals(choice) || "n".equals(choice)){ break; } } //当用户退出while ,进行判断 if("y".equals(choice)){ loop = false; } break; default: System.out.println("选择有误,请重新选择"); } }while(loop); System.out.println("------退出零钱通项目------4"); sc.close(); } }
讯享网
面向对象版
讯享网import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; / * 该类是完成零钱通的各个功能的类 * 将各个功能对应一个方法 */ public class SmallChangeSysOOP { //定义相关变量 boolean loop = true; String key = ""; Scanner sc = new Scanner(System.in); //1.完成零钱通明细 使用String拼接 String details = "------零钱通明细------"; //2.完成收益入账 // 定义新的变量 double money = 0; double balance = 0; //date 是 java.util.Dte类型 表示日期 Date date = null; //可以用于日期格式化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //3.完成消费 // 定义新的变量 String note = ""; //4.完成退出 String choice = ""; //显示零钱通菜单 public void mainMenu(){ do{ System.out.println("--------选择零钱通菜单--------"); System.out.println(" 1 零钱通明细"); System.out.println(" 2 收益入账"); System.out.println(" 3 消费"); System.out.println(" 4 退出"); System.out.println("请选择(1-4):"); key = sc.next(); switch (key){ case "1"://零钱通明细 this.detail(); break; case "2"://收益入账 拓薪java基础 this.income(); break; case "3"://消费 this.pay(); break; case "4"://退出 this.exit(); break; default: System.out.println("选择有误,请重新选择"); } }while(loop); } //完成零钱通明细 public void detail(){ System.out.println(details); } //完成收益入账 public void income(){ System.out.println("收益入账金额:"); money = sc.nextDouble(); //money 的值范围应该校验 //找出不正确的金额条件 ,然后给出提示 ,就直接break if(money <= 0){ System.out.println("收益入账金额 需要 大于0"); return; } balance += money; //拼接收益入账信息到details date = new Date();//获取当前日期 details += " 收益入账 " + "+" + money + " " + sdf.format(date) + " " + balance; } //消费 public void pay(){ System.out.println("消费金额为:"); money = sc.nextDouble(); //money 的值范围应该校验 if(money <= 0 || money > balance){ System.out.println("你的消费金额应该在 0-"+ balance); return; } System.out.println("消费说明:"); note = sc.next(); balance -= money; details += " "+note + " -" + money + " " + sdf.format(date) + " " + balance; } //退出 public void exit(){ //要求用户必须输入y/n ,否则就一直循环 while(true){ System.out.println("你确定要退出吗? y/n"); choice = sc.next(); if("y".equals(choice) || "n".equals(choice)){ break; } } //当用户退出while ,进行判断 if("y".equals(choice)){ loop = false; } } } //调用SmallChangeSysOOP 对象显示主菜单 public class SmallChangeSysAPP { public static void main(String[] args) { new SmallChangeSysOOP().mainMenu(); } }
课后习题1
定义一个person类{name,age,job},初始化Person对象数组,有3个person对象 并按照age从大到小进行排序,使用冒泡排序
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/3915.html