零钱通项目
一 , 零钱通明细
思路 : 1. 先完成显示菜单,并且可以选择菜单,给出对应提示
2.完成零钱通明细
3. 完成收益入账
4. 消费
5. 退出
6. 用户输入4退出时。给出提示” 你确定要退出吗? y/n ,必须输入正确的 y /n ,否则循环输入指令
7,在收益入账和消费时,判断金额是否合理
面向过程进行编程:
1 public class SmallChangeSys { 2 public static void main(String[] args) { 3 //定义相关变量 4 boolean loop = true; 5 Scanner scanner = new Scanner(System.in); 6 String key = ""; 7 //1.完成零钱通明细 8 // 1》可以把零钱通收益入账和消费保存到数组2》可以使用对象 3> String拼接 9 String details = "--------------零钱通明细---------------"; 10 // 2. 收益入账 11 double money = 0; //定义收益入账 12 double balance = 0; //余额 13 Date date =null; 14 SimpleDateFormat sid = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 15 // 3 消费 16 // 定义变量 消费的理由 17 String note = ""; 18 // 4 定义一个变量 使用while + break 完成判断 19 String choice= ""; 20 //菜单显示 21 do { 22 System.out.println("\n==================零钱通菜单================="); 23 System.out.println("\t\t\t\t1. 零钱通明细"); 24 System.out.println("\t\t\t\t2. 收益入账"); 25 System.out.println("\t\t\t\t3. 消费"); 26 System.out.println("\t\t\t\t4. 退 出"); 27 System.out.println("请选择(1——4):"); 28 key = scanner.next(); 29 switch (key){ 30 case "1": 31 System.out.println(details); 32 break; 33 case "2": 34 System.out.println("收益入账金额:"); 35 money = scanner.nextDouble(); 36 //money进行校验 编程思想 找出不正确的金额条件 然后给出提示,就直接给出break 37 if (money < 0 ){ 38 System.out.println("请输入正确的金额 >0"); 39 break; 40 } 41 balance += money; 42 date = new Date(); 43 details += "\n收益入\t +" + money + "\t" + sid.format(date) + "\t" + balance; 44 break; 45 case "3": 46 System.out.println("请输入消费金额:"); 47 money = scanner.nextDouble(); 48 //money校验 49 if (money < 0 || money > balance){ 50 System.out.println("你的消费金额应该在 0 ~" + balance); 51 break; 52 } 53 System.out.println("请输入消费去向"); 54 note = scanner.next(); 55 balance -= money; //在余额中减去消费的金额 56 date = new Date(); //获取当前的日期 57 details += "\n" + note + "\t-" + money + "\t" + sid.format(date) + "\t" + balance; 58 break; 59 case "4": 60 while (true) { //直到输出y/n位为止 61 System.out.println("你确定要退出吗?y/n"); 62 choice = scanner.next(); 63 if ("y".equals(choice) || "n".equals(choice)){ 64 break; 65 } 66 } 67 if (choice.equals("y")){ //当输入的是y时 68 loop = false; 69 } 70 break; 71 default: 72 System.out.println("你输入的不对"); 73 } 74 }while (loop); 75 System.out.println("退出了零钱通系统"); 76 } 77 }
知识点:1》 do ...whie 的使用 2》字符串的拼接保存数据 3》金额的校验 4》Switch 的使用
5》 while...true 和 if 的综合使用判断结束 6》日期的应用 7 》变量的定义及设计
面向oop思想进行编程
public class SmallChangeOop { //定义相关变量 boolean loop = true; Scanner scanner = new Scanner(System.in); String key = ""; //1.完成零钱通明细 // 1》可以把零钱通收益入账和消费保存到数组2》可以使用对象 3> String拼接 String details = "--------------零钱通明细---------------"; // 2. 收益入账 double money = 0; //定义收益入账 double balance = 0; //余额 Date date =null; SimpleDateFormat sid = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 3 消费 // 定义变量 消费的理由 String note = ""; // 4 定义一个变量 使用while + break 完成判断 String choice= ""; public void menuTest(){ do { System.out.println("\n==================oop零钱通菜单================="); System.out.println("\t\t\t\t1. 零钱通明细"); System.out.println("\t\t\t\t2. 收益入账"); System.out.println("\t\t\t\t3. 消费"); System.out.println("\t\t\t\t4. 退 出"); System.out.println("请选择(1——4):"); key = scanner.next(); switch (key){ case "1": details(); break; case "2": shouYi(); break; case "3": pay(); break; case "4": exit(); break; default: System.out.println("你输入的不对"); } }while (loop); System.out.println("退出了零钱通系统"); } public void details(){ System.out.println(details); return; } public void shouYi(){ System.out.println("收益入账金额:"); money = scanner.nextDouble(); //money进行校验 编程思想 找出不正确的金额条件 然后给出提示,就直接给出break if (money < 0 ){ System.out.println("请输入正确的金额 >0"); return; } balance += money; date = new Date(); details += "\n收益入\t +" + money + "\t" + sid.format(date) + "\t" + balance; } public void pay(){ System.out.println("请输入消费金额:"); money = scanner.nextDouble(); //money校验 if (money < 0 || money > balance){ System.out.println("你的消费金额应该在 0 ~" + balance); return; } System.out.println("请输入消费去向"); note = scanner.next(); balance -= money; //在余额中减去消费的金额 date = new Date(); //获取当前的日期 details += "\n" + note + "\t-" + money + "\t" + sid.format(date) + "\t" + balance; } public void exit(){ while (true) { //直到输出y/n位为止 System.out.println("你确定要退出吗?y/n"); choice = scanner.next(); if ("y".equals(choice) || "n".equals(choice)){ break; } } if (choice.equals("y")){ //当输入的是y时 loop = false; } } } //====================================================================================================================================================================== public class SmallChangeApp { public static void main(String[] args) { new SmallChangeOop().menuTest(); } }
面向oop思想总结 : 把变量全部封装成属性 ,把功能全部封装成一个方法,外部类随时可以调用,更加简单方便

浙公网安备 33010602011771号