实例介绍
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;
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论