额度计算器(Credit Limit Calculator)"/>
信用卡剩余额度计算器(Credit Limit Calculator)
编写加调试,1个小时搞定,感觉编码的速度有所提高啊,不错不错!
业务逻辑:
1. 信用卡本期账单金额=期初账单金额+本期消费金额-本期还款金额
2.信用卡剩余信用额度=该客户信用额度总额-本期账单金额(小于0时,提示“该客户信用额度已超限”)
声明:此业务逻辑适用于本练习,与现实情况可能有所出入。
代码如下:
//Java how to program, 10th edition, Exercise 4.18:Credit Limit Calculator
//by Pandenghuang@163
/**
*问题陈述:
*(Credit Limit Calculator) Develop a Java application that determines whether any of several
*department-store customers has exceeded the credit limit on a charge account. For each customer,
*the following facts are available:
*a) account number
*b) balance at the beginning of the month
*c) total of all items charged by the customer this month
*d) total of all credits applied to the customer’s account this month
*e) allowed credit limit.
*The program should input all these facts as integers, calculate the new balance (= beginning balance
*+ charges – credits), display the new balance and determine whether the new balance exceeds the
*customer’s credit limit. For those customers whose credit limit is exceeded, the program should display
*the message "Credit limit exceeded".
*/
import java.util.*;public class CreditLimitCal
{public static void main(String[] args) {Scanner input=new Scanner(System.in);int accountNo=0;int balanceBegin=0;int balanceNew=0;int charges=0;int creditsApplied=0;int creditLimit=0;int creditLeft=0;int inputTimes=1;int validInputTimes=0;System.out.printf("开始输入第%d位客户\n",inputTimes);//录入客户号System.out.print("请输入客户号(输入-1结束输入):");accountNo=input.nextInt();if (accountNo==-1){System.out.println("您没有输入足够的有效数据。");return;}//录入期初账单金额System.out.print("请输入该客户的期初账单金额(输入-1结束输入):");balanceBegin=input.nextInt();if (balanceBegin==-1){System.out.println("您没有输入足够的有效数据。");return;}//录入还款总额System.out.print("请输入该客户的还款总额(输入-1结束输入):");charges=input.nextInt();if (charges==-1){System.out.println("您没有输入足够的有效数据。");return;}//录入消费总额System.out.print("请输入该客户的消费总额(输入-1结束输入):");creditsApplied=input.nextInt();if (creditsApplied==-1){System.out.println("您没有输入足够的有效数据。");return;}//录入客户信用总额度System.out.print("请输入该客户的信用总额度(输入-1结束输入):");creditLimit=input.nextInt();if (creditLimit==-1){System.out.println("您没有输入足够的有效数据。");return;}++inputTimes;++validInputTimes;balanceNew=balanceBegin+creditsApplied-charges;creditLeft=creditLimit-balanceNew;if(balanceNew>creditLimit)System.out.printf("客户%d的信用额度已超限!!!\n",accountNo);elseSystem.out.printf("客户%d的最新账单金额为:%d RMB,剩余信用额度为%d RMB\n\n",accountNo,balanceNew,creditLeft);while (accountNo!=-1 && balanceBegin!=-1 && charges!=-1 && creditsApplied!=-1 && creditLimit!=-1 ){System.out.printf("\n开始输入第%d位客户\n",inputTimes);//录入客户号System.out.print("请输入客户号(输入-1结束输入):");accountNo=input.nextInt();if (accountNo!=-1){//录入期初账单余额System.out.print("请输入该客户的期初账单金额余额(输入-1结束输入):");balanceBegin=input.nextInt();if (balanceBegin!=-1){//录入还款总额System.out.print("请输入该客户的还款总额(输入-1结束输入):");charges=input.nextInt();if (charges!=-1){//录入消费总额System.out.print("请输入该客户的消费总额(输入-1结束输入):");creditsApplied=input.nextInt();if (creditsApplied!=-1){//录入信用总额度System.out.print("请输入该客户的信用总额度(输入-1结束输入):");creditLimit=input.nextInt();if (creditLimit!=-1){//最新账单金额计算++inputTimes;++validInputTimes;balanceNew=balanceBegin+creditsApplied-charges;creditLeft=creditLimit-balanceNew;if(balanceNew>creditLimit)System.out.printf("客户%d的信用额度已超限!!!\n",accountNo);elseSystem.out.printf("客户%d的最新账单金额为:%d RMB,剩余信用额度为%d RMB\n\n",accountNo,balanceNew,creditLeft);}else{System.out.println("\n\n您已结束数据输入。");break;} }else{System.out.println("\n\n您已结束数据输入。");break;} } else{System.out.println("\n\n您已结束数据输入。");break;}}else{System.out.println("\n\n您已结束数据输入。");break;}}else{ System.out.println("\n\n您已结束数据输入。");break;}}System.out.print("\n*******************************************************************\n");System.out.printf("您总共输入了%d组有效数据。程序结束。\n",validInputTimes);System.out.print("*******************************************************************\n\n\n");}
}
运行截屏如下:
更多推荐
信用卡剩余额度计算器(Credit Limit Calculator)
发布评论