期末java考查,麻烦各位高手帮帮忙,小弟感激不尽

aa707492054 2010-06-25 01:54:14
麻烦在编程时加入每步注释,发到707492054@qq.com





有一个名叫HappyCinema的程序,这是一个卖电影票的程序,以下表格是它卖的票的价格:
Ticket Pricing
Day of Week Adult Child
Monday, Tuesday, Wednesday, Thursday $9.00 $5.00
Friday, Saturday, Sunday $12.00 $10.00

用户买了票之后,程序会再次问用户是否还要继续买,程序的输出可参考下图:
红色表示的是用户的输入,如:
用户先输入买哪天的票,然后用户再输入要买的成人票的数目,接着用户再输入要买的儿童票的数目,这时系统会告诉用户需要付多少钱,接着系统会问用户是否还要买票,如果用户输入的是“Y”,则系统又会问用户买哪天的票,买成人票多少张、儿童票多少张,算出总价格,再一次问用户要不要接着买,如果用户又回答“Y”,则系统又会像刚才那样要求用户输入数据;如果用户最后输入的是“n”,则系统输出最后一句:“Have a good day”


你在编写该程序时,要用到以下知识点:
 要用switch语句来判断用户买的是哪天的票,因为日子不同,票价不同
 要用while循环来提示用户是否还要再买
 要用DecimalFormat这个类来显示最后的价格,即利用这个类来最后的价格加上美元符号“$”

(b)(30分)
按下面要求修改HappyCinema程序:
i. 添加一个getDay()的方法,该方法用来验证用户输入的天数是不是合法,(如用户可能会买“星期-9”那天的票),如果不合法则输出:“Invalid valu!!Enter day of week again:”,要求用户重新输入;如果合法,接下来就问用户买成人票多少张,儿童票多少张,最后得出价格,接着再问用户是否还要继续购买,如此运行下去,如下图所示:
红色椭圆部分是用户输入错误数值显示的结果:“Invalid valu!!Enter day of week again:”意思是:“无效的数值!!请再次输入天数:”




...全文
113 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wj63558595 2010-06-26
  • 打赏
  • 举报
回复
将注释补全了下

public class Ticket {

/**
* @Enclosing_Method : main
* @Written by : username
* @Creation Date : Jun 26, 2010 9:29:08 AM
* @version : v1.00
* @Description :
*
* @param args
**/

public static void main(String[] args) {
int count = 0; //总额
int day = 0; //星期几
int adultNum = 0; //成人数目
int childNum = 0; //小孩数目

Scanner scanner = new Scanner(System.in); //获取键盘输入流
boolean conBuyTi = true; //标志位,来判断是否继续和星期几输入错误
while(conBuyTi) { //用while循环来控制重复购买
System.out.println("请问买星期几的票:");
System.out.println("[1]星期一:");
System.out.println("[2]星期二:");
System.out.println("[3]星期三:");
System.out.println("[4]星期四:");
System.out.println("[5]星期五:");
System.out.println("[6]星期六:");
System.out.println("[7]星期天:");
int weekTemp = scanner.nextInt(); //获取星期几
switch(weekTemp) { //对星期几进行判断
case 1:
day = 1;
conBuyTi = false;
break;
case 2:
day = 2;
conBuyTi = false;
break;
case 3:
day = 3;
conBuyTi = false;
break;
case 4:
day = 4;
conBuyTi = false;
break;
case 5:
day = 5;
conBuyTi = false;
break;
case 6:
day = 6;
conBuyTi = false;
break;
case 7:
day = 7;
conBuyTi = false;
break;
default:
day = 0;
conBuyTi = getDay();
break;
}
if(conBuyTi) { //如果星期几输入错误,则退出循环,重新开始
continue;
}
System.out.println("请输入买成人票的数目:");
adultNum = scanner.nextInt();
System.out.println("请输入买小孩票的数目:");
childNum = scanner.nextInt();
System.out.println();

if(day == 5 || day == 6 || day == 7) { //5、6、7的话票价
count += 12 * adultNum + 10 * childNum; //用+= 来统计总额
} else {
count += 9 * adultNum + 5 * childNum;
}
System.out.println("您应付:$" + count );

System.out.println("您是否还需要买票(Y/N):");
String temp = scanner.next();

if("Y".equals(temp)) { //继续买票的控制
conBuyTi = true;
} else if("N".equals(temp)) {
conBuyTi = false;
}
}
}

public static boolean getDay() { //getDay方法
System.out.println("Invalid valu!!Enter day of week again!");
return true;
}

}
wj63558595 2010-06-26
  • 打赏
  • 举报
回复
楼主来100分啦!!

import java.util.Scanner;

public class Ticket {

/**
* @Enclosing_Method : main
* @Written by : username
* @Creation Date : Jun 26, 2010 9:29:08 AM
* @version : v1.00
* @Description :
*
* @param args
**/

public static int count = 0; //总额
public static void main(String[] args) {
int day = 0; //星期几
int adultNum = 0; //成人数目
int childNum = 0; //小孩数目

Scanner scanner = new Scanner(System.in);
boolean conBuyTi = true;
while(conBuyTi) {
System.out.println("请问买星期几的票:");
System.out.println("[1]星期一:");
System.out.println("[2]星期二:");
System.out.println("[3]星期三:");
System.out.println("[4]星期四:");
System.out.println("[5]星期五:");
System.out.println("[6]星期六:");
System.out.println("[7]星期天:");
int weekTemp = scanner.nextInt();
switch(weekTemp) {
case 1:
day = 1;
conBuyTi = false;
break;
case 2:
day = 2;
conBuyTi = false;
break;
case 3:
day = 3;
conBuyTi = false;
break;
case 4:
day = 4;
conBuyTi = false;
break;
case 5:
day = 5;
conBuyTi = false;
break;
case 6:
day = 6;
conBuyTi = false;
break;
case 7:
day = 7;
conBuyTi = false;
break;
default:
day = 0;
conBuyTi = getDay();
break;
}
if(conBuyTi) {
continue;
}
System.out.println("请输入买成人票的数目:");
adultNum = scanner.nextInt();
System.out.println("请输入买小孩票的数目:");
childNum = scanner.nextInt();
System.out.println();

if(day == 5 || day == 6 || day == 7) {
count += 12 * adultNum + 10 * childNum;
} else {
count += 9 * adultNum + 5 * childNum;
}
System.out.println("您应付:$" + count );

System.out.println("您是否还需要买票(Y/N):");
String temp = scanner.next();

if("Y".equals(temp)) {
conBuyTi = true;
} else if("N".equals(temp)) {
conBuyTi = false;
}
}
}

public static boolean getDay() {
System.out.println("Invalid valu!!Enter day of week again!");
return true;
}

}
cantalou 2010-06-26
  • 打赏
  • 举报
回复
public Class HappyCinema{
....
}
cantalou 2010-06-26
  • 打赏
  • 举报
回复
做作业 有报酬的话 ,再联系
cantalou 2010-06-26
  • 打赏
  • 举报
回复
继续等楼下的
wu_hong_min 2010-06-26
  • 打赏
  • 举报
回复
有思考 才会有进步
aa707492054 2010-06-26
  • 打赏
  • 举报
回复
7楼和11楼的谢谢你们的帮忙,由于我预计的分数太少,所以不能给你们100分,真的不好意思,真的谢谢你们。
董小尾 2010-06-26
  • 打赏
  • 举报
回复
写的不错,高手呢

不知道你花了几分钟呢?

====================================================
少了一个需求:
要用DecimalFormat这个类来显示最后的价格,即利用这个类来最后的价格加上美元符号“$”
====================================================


[Quote=引用 8 楼 wj63558595 的回复:]
将注释补全了下

Java code

public class Ticket {

/**
* @Enclosing_Method : main
* @Written by : username
* @Creation Date : Jun 26, 2010 9:29:08 AM
* @vers……
[/Quote]
wu_hong_min 2010-06-26
  • 打赏
  • 举报
回复
已发送邮箱,你可以看看
lxy15329 2010-06-26
  • 打赏
  • 举报
回复
我们学Java的时候,流程控制这里根本就不讲,因为这个没有什么可讲的
crui 2010-06-25
  • 打赏
  • 举报
回复
作业要自己做,不然学习的意义何在?
  • 打赏
  • 举报
回复
做作业耶……

--

恩,楼下有空的没?

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧