编写一个程序的步骤

在day04_javase的视频中,感觉这个老师讲的是超级详细,容易懂得怎么样做,简直是手把手写注释

先一个程序:

1先分析你这个程序流程

2.在写代码钱用注释写出每一个步骤执行什么(大体的框架)

3.安装注释在下面一行一行写代码,清晰明了无比

(由于那个需求分析的ppt插入不进来,所以一般人还是不太看得懂我说的)

1.先分析这个程序的流程

2.用文字注释写在编写的代码行,

3.根据注释写出代码

 1 package day04_javase;
 2 /**
 3  * 简单的家庭收支统计系统
 4  *
 5  */
 6 public class FamilyAccount {
 7 
 8     public static void main(String[] args) {
 9         //声明余额变量的初始值是10000
10         int balance=10000;
11         //声明记账本,初始值是表头
12         String detail="收支\t 账户金额\t 收支金额\t 说  明\n";
13         //声明布尔值,用来做循环条件
14         Boolean loopFlag=true;
15         //1在循环中,打印主菜单
16         while(loopFlag){
17             System.out.println("\n*******************家庭收支记账软件******************\n");
18             System.out.println("");
19             System.out.println("            1.收支明细");
20             System.out.println("            2.登记收入");
21             System.out.println("            3.等级支出");
22             System.out.println("        4.退出\n");
23             System.out.println("");
24             System.out.print("请输入您的选择(1-4):");
25         //2获取用户的键盘输入utility.readMenuSelection();
26             char userInput=Utility.readMenuSelection();
27         //3获取用户输入的分支
28             switch(userInput){
29             //用户输入1时,,打印记账本;
30             case '1':
31                 System.out.println("****************当前收支记录****************");
32                 System.out.println(detail);
33                 System.out.println("*******************************************");
34                 break;
35             //用户输入2时,登记收入
36             case'2':
37                 System.out.print("请输入您收入的金额:");
38                 //用户输入金额用int money保存
39                 int money=Utility.readNumber();
40                 System.out.print("请输入收入的来源:");
41                 String Info=Utility.readString();
42                 //余额的增加,本来的加上收入的等于最新的余额
43                 balance+=money;
44                 //声明一个字符串,把当前的的操作细节拼接成一个字符串
45                 String string="收入"+"\t"+balance+"\t"+money+"\t"+Info+"\n";
46                 //把这个string字符串拼接到detail上面去
47                 detail+=string;
48                 System.out.println("************************本次录入完成***************");
49                 break;
50             //用户输入3时,登记支出
51                 case'3':
52                         System.out.print("请输入您支出的金额:");
53                         //用户输入金额用int money保存
54                         int money1=Utility.readNumber();
55                         System.out.print("请输入支出的用途:");
56                         String Info1=Utility.readString();
57                         //余额的增加,本来的加上收入的等于最新的余额
58                         balance-=money1;
59                         //声明一个字符串,把当前的的操作细节拼接成一个字符串
60                         String string1="支出"+"\t"+balance+"\t"+money1+"\t"+Info1+"\n";
61                         //把这个string字符串拼接到detail上面去
62                         detail+=string1;
63                         System.out.println("************************本次录入完成***************");
64                         break;
65                 
66             //用户输入4时,设置布尔值变量为假,退出程序
67             case'4':
68                 System.out.print("是否要退出?请选择(Y/N)");
69                 char confirm=Utility.readConfirmSelection();
70                 if(confirm=='y'){
71                 loopFlag=false;
72                 }
73                 break;
74             }
75         
76         }
77     }
78 
79 }
 1 package day04_javase;
 2 import java.util.*;
 3 
 4 public class Utility {
 5     private static Scanner scanner = new Scanner(System.in);
 6     
 7     public static char readMenuSelection() {
 8         char c;
 9         for (; ; ) {
10             String str = readKeyBoard(1);
11             c = str.charAt(0);
12             if (c != '1' && c != '2' && c != '3' && c != '4') {
13                 System.out.print("选择错误,请重新输入:");
14             } else break;
15         }
16         return c;
17     }
18 
19     public static int readNumber() {
20         int n;
21         for (; ; ) {
22             String str = readKeyBoard(4);
23             try {
24                 n = Integer.parseInt(str);
25                 break;
26             } catch (NumberFormatException e) {
27                 System.out.print("数字输入错误,请重新输入:");
28             }
29         }
30         return n;
31     }
32 
33     public static String readString() {
34         String str = readKeyBoard(8);
35         return str;
36     }
37 
38     public static char readConfirmSelection() {
39         char c;
40         for (; ; ) {
41             String str = readKeyBoard(1).toUpperCase();
42             c = str.charAt(0);
43             if (c == 'Y' || c == 'N') {
44                 break;
45             } else {
46                 System.out.print("选择错误,请重新输入:");
47             }
48         }
49         return c;
50     }
51 
52     private static String readKeyBoard(int limit) {
53         String line = "";
54 
55         while (scanner.hasNext()) {
56             line = scanner.nextLine();
57             if (line.length() < 1 || line.length() > limit) {
58                 System.out.print("输入长度(不能大于" + limit + ")错误,请重新输入:");
59                 continue;
60             }
61             break;
62         }
63 
64         return line;
65     }
66 }
Utility

 

posted @ 2016-05-18 18:36  hello__java  阅读(7704)  评论(0编辑  收藏  举报