| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
import java.util.Scanner; 
 
public class FamilyAccount { 
        //本金 
        private static int principal = 1000; 
        //记录语句 
        private static String record = "\n收支明细\t\t账户金额\t\t收支金额\t\t说    明\n----\t\t"+principal+"\t\t----\t\t本    金\n"; 
        //用于保存记录语句 
        private static StringBuffer sb = new StringBuffer(); 
        //创建输入对象 
        private static Scanner sc = new Scanner(System.in); 
         
        /** 
         *  主方法 
         * @param args 
         */ 
        public static void main(String[] args) { 
                // 将语句加到StringBuffer对象sb里 
                sb.append(record); 
                // 定义循环标志位,用于退出时跳出循环 
                boolean loopFlag = true; 
                do { 
                        // 显示菜单 
                        view(); 
                        // 接收菜单选项的编号 
                        int menuCode = getMenuCode(); 
                        // 选择菜单执行相应内容 
                        switch(menuCode) { 
                                case 1: 
                                        // 打印收支明细 
                                        System.out.println(sb); 
                                        break; 
                                case 2: 
                                        // 添加收入记录 
                                        selectSecond(); 
                                        break; 
                                case 3: 
                                        // 添加支出记录 
                                        selectThird(); 
                                        break; 
                                case 4: 
                                        // 退出系统 
                                        System.out.print("是否确认退出(Y/N):"); 
                                        // 接收字符Y或N 
                                        char c = getYesOrNo(); 
                                        // 接收到Y时给循环标志位赋值False跳出循环退出系统 
                                        if(c=='Y') loopFlag = false; 
                                        break; 
                        } 
                } while (loopFlag ); 
 
        } 
         
        /** 
         * 打印菜单信息 
         */ 
        public static void view() { 
                System.out.println("\n-------------------------------家庭收支记账软件-------------------------------\n"); 
                System.out.println("                                 1.收支明细"); 
                System.out.println("                                 2.收入金额"); 
                System.out.println("                                 3.支出金额"); 
                System.out.println("                                 4.退       出\n"); 
                System.out.print("请输入选择序号:"); 
        } 
         
        /** 
         * 获取数字 
         * @return 
         */ 
        public static int getNumber() { 
                int num = -1; 
                // 判断是否有输入 
                while(sc.hasNext()) { 
                        // 输入是否为int类型 
                        if (sc.hasNextInt()) { 
                                // 接收输入的数字 
                                num = sc.nextInt(); 
                                break; 
                        }else { 
                                System.out.print("没有所选项,请重新输入:"); 
                                // 输入 
                                sc.next(); 
                        } 
                } 
                return num; 
        } 
         
        /** 
         * 获取菜单选项序号 
         * @return 
         */ 
        public static int getMenuCode() { 
                int menuCode; 
                for(;;) { 
                        // 调用getNumber()方法接收数字 
                        menuCode = getNumber(); 
                        // 判断数字是否为1 2 3 4 
                        if (menuCode==1 || menuCode==2 || menuCode==3 || menuCode==4) { 
                                break; 
                        }else { 
                                System.out.print("没有所选项,请重新输入:"); 
                        } 
                } 
                return menuCode; 
        } 
         
        /** 
         * 获取字母Y  N 
         * @return 
         */ 
        public static char getYesOrNo() { 
                char c; 
                for(;;) { 
                        // sc.next() 接收字符串    toUpperCase() 字符串转大写  charAt(0) 截取第一个字符 
                        c = sc.next().toUpperCase().charAt(0); 
                        // 判断截取字符是否为Y  N 
                        if ('Y' == c || 'N' == c) { 
                                break; 
                        }else { 
                                System.out.print("没有所选项,请重新输入:"); 
                        } 
                } 
                return c; 
        } 
         
        /** 
         * 添加收入记录 
         */ 
        public static void selectSecond() { 
                System.out.print("收入金额:"); 
                // 收入金额 
                int income = getNumber();  
                // 本金 = 本金 + 支出金额 
                principal += income; 
                System.out.print("说       明:"); 
                // 说明文字 
                String des = sc.next();  
                String str = "  收入\t\t"+principal+"\t\t"+income+"\t\t"+des+"\n"; 
                sb.append(str); 
        } 
         
        /** 
         * 添加支出记录 
         */ 
        public static void selectThird() { 
                System.out.print("支出金额:"); 
                // 支出金额 
                int outlay = getNumber();  
                // 本金 = 本金 - 支出金额 
                principal -= outlay; 
                System.out.print("说       明:"); 
                // 说明文字 
                String des = sc.next();  
                String str = "  收入\t\t"+principal+"\t\t"+outlay+"\t\t"+des+"\n"; 
                sb.append(str); 
        } 
                 
} 
- public class FamilyAccount {
 
  复制代码
因为你的代码是公共类所以你写代码的文件名也应该是这个类的名称 
即下图所示
 
 
 
 
 
 |   
 
 
 
 |