zoukankan      html  css  js  c++  java
  • 编写一个程序的步骤

    在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="收支	 账户金额	 收支金额	 说  明
    ";
    13         //声明布尔值,用来做循环条件
    14         Boolean loopFlag=true;
    15         //1在循环中,打印主菜单
    16         while(loopFlag){
    17             System.out.println("
    *******************家庭收支记账软件******************
    ");
    18             System.out.println("");
    19             System.out.println("            1.收支明细");
    20             System.out.println("            2.登记收入");
    21             System.out.println("            3.等级支出");
    22             System.out.println("        4.退出
    ");
    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="收入"+"	"+balance+"	"+money+"	"+Info+"
    ";
    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="支出"+"	"+balance+"	"+money1+"	"+Info1+"
    ";
    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
  • 相关阅读:
    #pragma 预处理指令
    C++类继承中的构造函数和析构函数 调用顺序
    static_cast与dynamic_cast转换 最简单的理解
    std::map的insert和下标[]访问
    C++有没有string转化int的函数,怎样转换
    c++中在一个类中定义另一个只有带参数构造函数的类的对象
    c++二进制文件的读写
    C++ 包含头文件 和 宏的使用 和 条件编译
    C++ 前置声明 和 包含头文件 如何选择
    C语言 gets()和scanf()函数的区别
  • 原文地址:https://www.cnblogs.com/javastu/p/5506173.html
Copyright © 2011-2022 走看看