java - 票价计算
问题描述
使用以下私有变量创建一个类 Ticket
int ticketid;
int price;
static int `availableTickets`;
在 Ticket 类中包含 getter 和 setter 方法。可用门票应仅持有正值。不允许零值和负值。(这个逻辑应该在对应的setter方法里面检查)在Ticket类中写如下方法:
public int calculateTicketCost(int no_of_tickets)
— 此方法应检查票的可用性,如果票可用,则减少no_of_tickets
从available_Tickets
并计算总金额为nooftickets*price
并返回总金额。如果票不可用,此方法应返回 -1。在 Main 类中编写一个 main 方法来测试应用程序。
样本输入和输出
Enter no of bookings:
2
Enter the available tickets:
25
Enter the ticket id:
123
Enter the price:
100
Enter the no of tickets:
5
Available tickets: 25
Total amount:500
Available ticket after booking:20
Enter the ticket id:
124
Enter the price:
100
Enter the no of tickets:
2
Available tickets: 20
Total amount:200
Available ticket after booking:18
解决方案
票务.java
public class Ticket{
private int ticketid;
private int price;
private static int availableTickets;
public void setTicketid(int ticket) //setter
{
ticketid = ticket;
}
public int getTicketid() //getter
{
return ticketid;
}
public int getPrice() //getter
{
return price;
}
public void setPrice(int prc) //setter
{
price = prc;
}
public static int getAvailableTickets() //getter
{
return availableTickets;
}
public static void setAvailableTickets(int availTicket) //setter
{
if(availTicket > 0)
availableTickets = availTicket;
}
public int calculateTicketCost(int nooftickets)//Check ticket availability
{
int tik = getAvailableTickets();
if(nooftickets > tik)
return -1;
tik -= nooftickets;
setAvailableTickets(tik);
return price * nooftickets;
}
}
主.java
import java.util.*;
公共类主{
public static void main (String[] args) {
Scanner s = new Scanner(System.in);
Ticket t = new Ticket();
System.out.println("Enter no of bookings:\n");
int no = s.nextInt();
System.out.println("\nEnter the available tickets:\n");
int availableTicket = s.nextInt();
t.setAvailableTickets(availableTicket);
do{
System.out.println("\nEnter the ticketid:\n");
int tickedId = s.nextInt();
t.setTicketid(tickedId);
System.out.println("\nEnter the price:\n");
int price = s.nextInt();
t.setPrice(price);
System.out.println("\nEnter the no of tickets:\n");
int bookTickets = s.nextInt();
System.out.println("\nAvailable tickets:"+t.getAvailableTickets());
System.out.println("\nTotal amount:"+t.calculateTicketCost(bookTickets));
System.out.println("\nAvailable ticket after booking:"+t.getAvailableTickets());
no--;
}while(no>0);
}
}
推荐阅读
- python - NameError:名称“disney_total_revenue”未定义
- javascript - 如何为 Javascript 变量分配颜色并在整个 Javascript 代码中使用它
- python - 监控python中函数的进度
- azure-active-directory - 使用 Azure AD Graph 为用户更新“AdditionalValues”字典中的值
- php - 只返回符合时间要求的对象 AWS S3
- python - psycopg2.errors.UndefinedTable:表“live”不存在将大数据帧推送到 postgres 数据库
- javascript - 如何删除渲染阻塞样式错误(灯塔插件)
- python - Python - 为什么 iSlice 和 OrderedDict 不将 MS Excel 的所有内容写入 JSON?
- python - 在 python 中仅打印/列出 OS.Walk 中的 5 个条目
- server - 家庭服务器、NAS、隐私和网络托管