Java 学习
第一章 Java项目一 家庭收支系统详解
前言
一点简单的Java学习记录,包括遇到的项目和一些注意事项。
提示:一个很简单的收支系统,经验者可以跳过,但包含的语法很多很全,适合初学者练手用。
一、收支系统的结构
1.按功能模块划分
收支系统应该包括的模块:
1.列出所有的收支明细
2.增加收入记录
3.增加支出记录
4.退出系统
2.按实现模块划分
输入:
1.输入选择的功能
2.输入金额
3.输入收支项目
4.输入退出系统选项
输出
1.输出系统功能页面
2.输出收入支明细
3.输出支出明细
4.输出退出页面
3.将2中的模块进行组合,完成1中的功能
功能1 :输出1+输入1+输出2
功能2 :输出1+输入1+输入2+输入3
功能3 :输出1+输入1+输入2+输入3
功能4 :输出1+输入1+输入4+输出4
二、使用步骤
1.引入库
引用库函数:
import java.util.Scanner;
2.读入数据
0.从键盘读取函数
public static char readMenuSelection() {
char c;
for (; ; ) {
String str = readKeyBoard(1);
c = str.charAt(0);
if (c != '1' && c != '2' && c != '3' && c != '4') {
System.out.print("选择错误,请重新输入:");
} else break;
}
return c;
}
1.输入选择的功能
public static char readMenuSelection(){
char c;
for(;;){
String str = readkeyBoard(1);
c = str.charAt(0);
if (c != '1' && c != '2' && c!='3' && c!='4'){
System.out.print("选择错误,请重新输入:");
}else break;
}
return c;
}
2.输入金额
public static int readNumber(){
int n;
for(; ; ){
String str = readkeyBoard(4);
try {
n = Integer.parseInt(str);
break;
}catch (NumberFormatException e){
System.out.print("数字输入错误,请重新输入:");
}
}
return 0;
}
3.输入收支项目
public static String readString(){
String str = readkeyBoard(8);//这个值可以自己赋值,这里长度不超过8.
return str;
}
4.输出退出页面
public static char readConfirmSelection(){
char c;
for (;;){
String str = readkeyBoard(1).toUpperCase();
c = str.charAt(0);
if(c == 'Y' || c == 'N'){
break;
}else {
System.out.print("选择错误,请重新输入:");
}
}
return c;
}
3.系统实现
public class FamilyAccount {
public static void main(String[] args){
String details = "收支\\t账户金额\\t收支金额\\t说 明\\n"; //用来存储文本
int balance = 0;
boolean loopFlag = true;
while (loopFlag)
{
//系统显示界面
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(" 请选择(1-4):");
char key = Utility.readMenuSelection();
System.out.println();
switch (key){
//功能1:显示收支明细
case '1':
System.out.println("-----------------当前收支明细记录-----------------");
System.out.println(details);
System.out.println("--------------------------------------------------");
break;
//功能2:输入收入明细
case '2':
System.out.print("本次收入金额:");
int amount1 = Utility.readNumber();
System.out.print("本次收入说明:");
String desc1 = Utility.readString();
balance += amount1;
details += "收入\t" + balance + "\t\t" +
amount1 + "\t\t" + desc1 + "\n";
System.out.println("---------------------登记完成---------------------");
break;
//功能3:输入支出明细
case '3':
System.out.print("本次支出金额:");
int amount2 = Utility.readNumber();
System.out.print("本次支出说明:");
String desc2 = Utility.readString();
balance -= amount2;
details += "支出\t" + balance + "\t\t" +
amount2 + "\t\t" + desc2 + "\n";
System.out.println("---------------------登记完成---------------------");
break;
//功能4:退出系统
case '4':
System.out.print("确认是否退出(Y/N):");
char yn = Utility.readConfirmSelection();
if (yn == 'Y') loopFlag = false;
break;
}
}
}
}
总结
就一个很简单的家庭收支系统,网上应该有大量类似的东西,有问题的请底下留言。