如何用java计算手机话费,计算问题
我的任务是用java计算每月的手机账单,我是java新手,还在学习。我似乎不明白计算方法以及如何到达那里。我已经命名了所有变量和常量并初始化了它们,现在我只需要进行计算,以找到总账单的成本。我试图达到的输出是:run:minutes used=675条短信sent/received=1031条data used=605兆字节。你们有数据播放吗?是/否:你有短信计划吗 手机月费:月费计划=39.99短信计划=15.00数据计划=20.00额外计费分钟数=79.85数据超期费=40.00如何用java计算手机话费,计算问题,java,Java,我的任务是用java计算每月的手机账单,我是java新手,还在学习。我似乎不明白计算方法以及如何到达那里。我已经命名了所有变量和常量并初始化了它们,现在我只需要进行计算,以找到总账单的成本。我试图达到的输出是:run:minutes used=675条短信sent/received=1031条data used=605兆字节。你们有数据播放吗?是/否:你有短信计划吗 手机月费:月费计划=39.99短信计划=15.00数据计划=20.00额外计费分钟数=79.85数据超期费=40.00 publi
public static void main(String[] args) {
// TODO code application logic here
Scanner user_input = new Scanner(System.in);
final double MONTHLY_PLAN_VOICE;
final int ALLOWABLE_MINUTES;
final double ADDITIONAL_MINUTE_RATE;
final double TEXT_MSG_PLAN;
final double TEXT_MSG_RATE;
final double DATA_PLAN_RATE;
final int ALLOWABLE_DATA_INCR;
MONTHLY_PLAN_VOICE = 39.99; //double cause of decimal
ALLOWABLE_MINUTES = 500; // int because no need for decimal
ADDITIONAL_MINUTE_RATE = 0.45; // has decimal
TEXT_MSG_PLAN = 15.00; // rate could very depending on user input(double)
TEXT_MSG_RATE = 0.12; // rate could very depending on user input (double)
DATA_PLAN_RATE = 20.00; // double cause of decimal
ALLOWABLE_DATA_INCR = 300; //int cause its an increment
String minutes;
System.out.print("Enter the number of minutes used this month: ");
minutes = user_input.next();
String texts;
System.out.print("Do you have a text message plan? (Y/N): ");
texts = user_input.next();
System.out.print("Enter the number of sent and recieved texts: ");
texts = user_input.next();
String data;
System.out.print("Do you have a Data plan? (Y/N): ");
data = user_input.next();
System.out.print("Enter the amount of Data used: ");
data = user_input.next();
if (ALLOWABLE_DATA_INCR < 300)
{
System.out.print("The Cost of data is 20.00$ ");
}
else
{
System.out.println("The cost of data is 40.00$" );
}
if (ALLOWABLE_MINUTES > 500)
{
System.out.print("");
}
首先,我个人的选择是保持代码干净,一步到位:
final double MONTHLY_PLAN_VOICE = 39.99; //double cause of decimal
其次,美元符号$应始终用作数字的前缀。ex$5.99
您的打印声明如下:
System.out.print("The Cost of data is 20.00$ ");
我建议你把每一件衣服都改得更专业一点
System.out.print("The cost of data is $20.00.");
现在回答你的问题。
要查找总数,请创建一个类型为double的新变量:
double totalMonthlyBill = 0;
现在,在每个if-else语句中,将账单每个部分的成本添加到此总变量中
例如:
if (ALLOWABLE_DATA_INCR < 300)
{
System.out.print("The Cost of data is 20.00$ ");
totalMonthlyBill += 20;
}
else
{
System.out.println("The cost of data is 40.00$" );
totalMonthlyBill += 40;
}
这与:
Variable1 = Variable1 + Variable2;
Variable1 = Variable1 + 2;
但在您的情况下,由于您有一个运行总计,并且将根据每个步骤定义成本,因此可以通过定义一个总计变量,然后在每个if/else语句中使用+=将值添加到总计中来轻松实现,您可以稍后调用该值以获得最终价格
System.out.println("Total monthly bill: " + totalMonthlyBill);
希望这能解决问题 为了提交所有代码,我必须创建一个新的答案,因为它太长了,无法发表评论。但是,如果您对它的工作原理有任何疑问,请查看并发表评论,但我认为这是您想要的
boolean textPlan;
double numTexts = 0;
String texts;
System.out.print("Do you have a text message plan? (Y/N): ");
texts = user_input.next();
if (texts.equalsIgnoreCase("y")){
textPlan = true;
}
else{
textPlan = false;
}
System.out.print("Enter the number of sent and recieved texts: ");
numTexts = user_input.next();
if (textPlan && numTexts <= 500){
totalMonthlyBill += TEXT_MSG_PLAN;
}
else if (textPlan && numTexts > 500){
numTexts -= 500;
totalMonthlyBill += (numTexts * TEXT_MSG_RATE);
}
else{
totalMonthlyBill += (numTexts * TEXT_MSG_RATE);
}
上面的代码是我尝试过的,我不明白如果用户有或没有文本计划/数据计划/分钟或超过了这一限制,如何有不同的总成本@Shiven@Shiven我不知道接下来该怎么办,我想我的想法是对的,但我不知道下一步该怎么办。如果这解决了你的问题,请给我这个向上箭头作为答案,如果不让我知道在这项任务中给你带来麻烦的任何其他事情,我将很乐意提供帮助。我还有一个问题,我必须做与处理短信和分钟数据相同的事情。。但棘手的是,如果用户没有文本计划或超过了它在总账单中增加的最长500分钟。例如,超过500分钟的每分钟收费0.45美元,如果你没有短信计划,每段短信收费0.12美元。我怎么把它写进代码@lenc95你知道如何使用布尔值吗?让我给你一个例子来解决这个方法。我不这么认为,但我想我明白了这个想法,我只是不知道如何将它添加到我的代码中,我想我在向你解释这个问题时做得很糟糕,我希望我能向你展示硬件问题:它说不能将字符串转换为双精度:/
boolean textPlan;
double numTexts = 0;
String texts;
System.out.print("Do you have a text message plan? (Y/N): ");
texts = user_input.next();
if (texts.equalsIgnoreCase("y")){
textPlan = true;
}
else{
textPlan = false;
}
System.out.print("Enter the number of sent and recieved texts: ");
numTexts = user_input.next();
if (textPlan && numTexts <= 500){
totalMonthlyBill += TEXT_MSG_PLAN;
}
else if (textPlan && numTexts > 500){
numTexts -= 500;
totalMonthlyBill += (numTexts * TEXT_MSG_RATE);
}
else{
totalMonthlyBill += (numTexts * TEXT_MSG_RATE);
}