java面试题:酒店预订!

sumPrice += Hotel.getDayPrice(hotelName,isMember,isWeekend);}return sumPrice;}//依次输入"如家"、"七天"、"汉庭"的总价,选出最优的那家public static String chooseHotel(int rujiaSumPrice,int qitianSumPrice,int hantingSumPrice){if(rujiaSumPrice
java面试题:酒店预订!
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("是否是会员?y/n");
String H = input.next();
System.out.println("请输入入住日期:");
System.out.println("例如2009-03-16");
String in = input.next();
System.out.println("请输离开日期:");
System.out.println("例如2009-03-16");
String out = input.next();
//String in = s.substring(5,15);
//String out = s.substring(15,26);
//System.out.println(in+" "+out);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
try {
c1.setTime(sdf.parse(in));
c2.setTime(sdf.parse(out));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long time1 = c1.getTimeInMillis();
long time2 = c2.getTimeInMillis();
long tian = (time2-time1)/(1000*24*3600);
long tian1 = tian;
System.out.println("tian "+tian);
int week1 = c1.get(Calendar.DAY_OF_WEEK)-1;
//System.out.println(week1);
//int week2 = c2.get(Calendar.DAY_OF_WEEK)-1;
//System.out.println(week2);
int count = 0;
while(tian1>0){
if(week1 == 6 || week1==0){
count++;
}
if(week1==6){
week1 = 0;
week1--;
}
tian1--;
week1++;
}
System.out.println("count "+count);
long rujia;
long qitian;
long hanting;
if(H.equals("y")){
rujia = (tian-count)*80+count*80;
System.out.println("tian "+tian);
qitian = (tian-count)*110+count*50;
hanting = (tian-count)*100+count*40;
}else{
rujia = (tian-count)*110+count*90;
qitian = (tian-count)*160+count*60;
hanting = (tian-count)*220+count*150;
}
System.out.println("tian " + tian);
System.out.println("rujia "+rujia);
System.out.println("hanting "+hanting);
System.out.println("qitian "+qitian);
if(rujia<qitian && rujia<hanting){
System.out.println("如家");
}else if(qitian<rujia && qitian<hanting){
System.out.println("七天");
}else if(hanting<rujia && hanting<qitian){
System.out.println("汉庭");
}else if(hanting==rujia || hanting==qitian){
System.out.println("汉庭");
}else if(qitian==rujia && qitian<hanting){
System.out.println("七天");
}
}
我没怎么测试 自己测测吧 还有一些约束用户输入啥的 严谨性什么的2016-08-15
package chooseHotel;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
public class Hotel {
String hotelName;
boolean isMember;
boolean isWeekend;
static int[][][] prices = {{{110,90},{80,80}},{{160,60},{110,50}},{{220,150},{100,40}}};
public Hotel(String hotelName,boolean isMember,boolean isWeekend) {
this.hotelName = hotelName;
this.isMember = isMember;
this.isWeekend = isWeekend;
}
//输入定酒店的参数(酒店名,是否会员,是否周末),返回该天的价格。
public static int getDayPrice(String hotelName,boolean isMember,boolean isWeekend){
int x=0,y=0,z=0;
int price;
if(hotelName.equals("如家")){x=0;}
if(hotelName.equals("七天")){x=1;}
if(hotelName.equals("汉庭")){x=2;}
if(isMember)y=1;
if(isWeekend)z=1;
price = prices[x][y][z];
return price;
}
//判断某一天是否是周末
public static boolean isWeekend(String StrDate) throws ParseException{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = simpleDateFormat.parse(StrDate);
if(date.toString().contains("Sat")||date.toString().contains("Sun"))return true;
return false;
}
//输出两个指定日期之间的所有日期
public static List<String> getAllDate(String StrStartDate,String StrEndDate) throws ParseException{
List<String> allDate = new ArrayList<String>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = simpleDateFormat.parse(StrStartDate);
Date endDate = simpleDateFormat.parse(StrEndDate);

Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate);

Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
do{
allDate.add(simpleDateFormat.format(startCalendar.getTime()));
startCalendar.add(Calendar.DAY_OF_MONTH, 1);
}while(startCalendar.compareTo(endCalendar)<=0);
return allDate;
}

//输入定酒店的参数(酒店名,是否会员,起始日期,终止日期),返回总价格。
public static int getSumPrice(String hotelName,boolean isMember,String StrStartDate,String StrEndDate) throws ParseException{
int sumPrice = 0;
List<String> allDate = Hotel.getAllDate(StrStartDate, StrEndDate);
boolean isWeekend;
for(String strDate:allDate){
isWeekend = Hotel.isWeekend(strDate);
sumPrice += Hotel.getDayPrice(hotelName,isMember,isWeekend);
}
return sumPrice;
}

//依次输入"如家"、"七天"、"汉庭"的总价,选出最优的那家
public static String chooseHotel(int rujiaSumPrice,int qitianSumPrice,int hantingSumPrice){
if(rujiaSumPrice<qitianSumPrice && rujiaSumPrice<hantingSumPrice){
return "如家";
}else if(qitianSumPrice<=rujiaSumPrice && qitianSumPrice < hantingSumPrice){
return "七天";
}else {
return "汉庭";
}
}

//根据样例输入,找最适合的酒店,样例为:普通顾客 2018-1-1 2018-1-7
public static String chooseHotelByCustomerInput(String customerInput) throws ParseException {
String[] split = customerInput.split(" ");
boolean isMember = split[0].contains("会员")?true:false;
String StrStartDate = split[1].trim();
String StrEndDate = split[2].trim();
String hotelName;
hotelName = "如家";
int rujiaSumPrice = Hotel.getSumPrice(hotelName, isMember, StrStartDate, StrEndDate);
hotelName = "七天";
int qitianSumPrice = Hotel.getSumPrice(hotelName, isMember, StrStartDate, StrEndDate);
hotelName = "汉庭";
int hantingSumPrice = Hotel.getSumPrice(hotelName, isMember, StrStartDate, StrEndDate);
return chooseHotel(rujiaSumPrice, qitianSumPrice, hantingSumPrice);
}

public static void main(String[] args) throws ParseException, IOException {
String customerInput = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
customerInput = br.readLine();
while(!customerInput.equals("over")){
System.out.println(Hotel.chooseHotelByCustomerInput(customerInput));
customerInput = br.readLine();
}
}
}
本代码已经测试,准确可用!2018-01-03
mengvlog 阅读 385 次 更新于 2025-10-30 08:10:08 我来答关注问题0
  •  赛玖百科小窍门 酒店餐厅宴会厅,酒席预订预约APP小程序系统源码开发制作

    提供客户信息管理功能,记录客户的联系方式、预订记录等。支持员工对客户进行跟进和沟通,记录沟通内容和互动情况。五、技术实现与源码交付 技术选型 前端采用React Native或Flutter等跨平台框架,实现一次开发多平台运行。后端采用Spring Boot等Java框架,提供稳定可靠的API接口。数据库采用MySQL或MongoDB等,存储...

  •  文暄生活科普 如何开发一款酒店小程序?

    目标定位:首先明确小程序的目标用户群体,如商务出差人士、休闲旅游者等,以及他们的核心需求,如预订房间、查看酒店信息、享受优惠等。功能规划:根据目标用户群体的需求,规划小程序的主要功能,如酒店搜索、房间预订、在线支付、订单管理、用户评价等。二、技术选型与架构设计 技术选型:选择适合的技术栈进...

  •  誉祥祥知识 Java大牛给Java初学者的建议(三)

    了解硬件基础知识:虽然不必深入钻研硬件技术,但了解硬件的基础知识有助于更好地理解Java应用的运行环境。关注硬件发展趋势:了解硬件的发展趋势有助于预测未来Java企业级应用可能面临的硬件环境挑战和机遇。结合实际应用学习:在学习Java的过程中,尝试将理论知识与实际应用相结合,了解Java应用在不同硬件环境...

  •  誉祥祥知识 旅游信息管理系统|

    旅游信息管理系统是一个基于B/S架构和MVC模式的web网站,采用前后端分离的开发方式,旨在为用户提供便捷、高效的旅游信息服务。该系统结合了Java、Vue、SpringBoot等先进技术栈,实现了丰富的功能,包括用户登录注册、景点信息浏览与预约、旅游路线规划、酒店预订、旅游咨询等。一、技术栈与架构 架构:系统采...

  •  快乐生活 面试当中长相会不会被纳入评估?HR说出实际情况

    面试中的长相评估分两种情况:与岗位相关的合理考量 VS 与能力无关的相貌歧视。1. 显性门槛岗位空乘、奢侈品销售、酒店前台等直接服务型岗位,仪容仪表本身就是岗位能力指标。这类岗位招聘启事常明确写有「形象气质佳」,HR会根据行业服务标准进行评估,例如航空公司对空乘人员身高、体态、五官对称性有详细...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部