嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
1.该演出大厅舞台在正中央,四面为观众席,演出前售票
2.设观众席为东南西北四面,每面10排,每排20个座位,共计800个座位,系统要求针对该800个座位提供订票功能
3.关于价格(元):前三排票价为1680,中间三排票价为1280,后三排的票价为980,最后一排价格为680
4.该系统需提供注册和登录功能
4.1注册时需提交姓名、年龄、性别、手机号码、登录密码等信息,注册成功后即可使用手机号码作为登录号--手机号唯一
4.2登录提供管理员登录、注册用户登录和游客登录三种方式,注册用户登录后可进行座位查询操作、座位预定操作
4.3游客没有用户名,只能进行座位查询操作,不能够订票
4.4管理员为系统内置账号,用户名为admin,密码为admin888,管理员登录后可以对指定的座位设为不可购买--“封票”等同于已销售,作为赠送票、工作票、媒体票、置换票
5.系统提供座位查询功能
5.1精确查询:输入指定区域(东南西北)、指定排、指定作为号(1-20),查询该座位是否已被预订
5.2根据票价查询:输入指定票价、指定区域,查询满足条件的未被预订的座位
private static ArrayList<Ticket> tickets = new ArrayList<>();
/**
* 初始化: init , 构造800张票的过程
*/
public static void init(){
String array[] = {"东","南","西","北"};
for (int i = 0; i < 4; i ) {//四个区域
for (int y = 1; y <11; y ) {//10排
for (int z = 1; z < 21; z ) {//每排20个座位
Ticket ticket = new Ticket(array[i], y, z, y>=1 && y<=3?1680:y<=6? 1280: y<=9? 980:680);
tickets.add(ticket);
}
}
}
}
/**
* 观众订票操作
* @param v 观众
* @param c 订票信息
* @return 成功与否
*/
public static boolean booking(Viewer v,Ticket c){
//第一步:在票的集合中找票
for (Ticket ticket : tickets) {
//成立则代表找到了观众要买的票
if (c.getRegion().equals(ticket.getRegion()) && c.getRow() == ticket.getRow() && c.getColumn() == ticket.getColumn()) {
//成立则代表票还未被出售,则购买票
if (ticket.getReserve()) {
ticket.setReserve(false);//票购买了,把票的状态改成已售
ticket.setPhone(v.getPhone());//把票里的电话号码改成购买票的观众的电话号码
v.getTickets().add(ticket);//把票加入到观众的集合中
return true;
}
}
}
return false;
}
/**
* 管理员封票
*
* @param c
* @return
*/
public static boolean systemBooking(Ticket c){
//第一步:在票的集合中找票
for (Ticket ticket : tickets) {
//成立则代表找到了观众要买的票
if (c.getRegion().equals(ticket.getRegion()) && c.getRow() == ticket.getRow() && c.getColumn() == ticket.getColumn()) {
//成立则代表票还未被出售,则购买票
if (ticket.getReserve()) {
ticket.setReserve(false);//票购买了,把票的状态改成已售
return true;
}
}
}
return false;
}
/**
* 查询票
*/
public static void selectAll(){
int count = 0;
for (Ticket ticket : tickets) {
count ;
System.out.print(ticket.getRegion() "-" ticket.getRow() "-" ticket.getColumn() "-" (ticket.getReserve() ? "√ ":"×"));
if (count % 20 == 0) {
System.out.println();
}
}
}
/**
* 根据位置寻找票
* @return 如果为true,表示还未出售
*/
public static boolean select(Ticket c){
for (Ticket t : tickets) {
if (c.getRegion().equals(t.getRegion()) && c.getRow() == t.getRow() && c.getColumn() == t.getColumn()) {
if (t.getReserve()) {
return true;
}
}
}
return false;