Java實(shí)現(xiàn)電影院訂票系統(tǒng)代碼
程序是為了方便用戶使用的,因此實(shí)現(xiàn)圖形化界面的程序編寫是所有編程語言發(fā)展的必然趨勢。。。但是由于時(shí)間原因,小編并未在代碼中添加可視化圖形界面,有興趣的朋友可自行添加。
可參閱:Java圖形化界面設(shè)計(jì)之容器(JFrame)詳解
演示結(jié)果:

下面是具體實(shí)現(xiàn)代碼:
public class Test {
public static void main(String[] args) {
BookTicket bookTicket = new BookTicket();
bookTicket.init();
}
}
BookTicket主界面類
import java.util.Scanner;
public class BookTicket {
//主界面類
Movie[] movie = new Movie[3];
LoginReg loginReg = new LoginReg();
Scanner input = new Scanner(System.in);
void movieInformation()// 內(nèi)部電影信息
{
movie[0] = new Movie();
movie[0].number = "S1124";
movie[0].movieName = "雷神3:諸神黃昏";
movie[0].movieTime = "2017-11-03大陸上映";
movie[0].moviePrice = 70;
movie[1] = new Movie();
movie[1].number = "S1125";
movie[1].movieName = "全球風(fēng)暴";
movie[1].movieTime = "2017-10-27大陸上映";
movie[1].moviePrice = 80;
movie[2] = new Movie();
movie[2].number = "S1126";
movie[2].movieName = "東方快車謀殺案";
movie[2].movieTime = "2017-11-10大陸上映";
movie[2].moviePrice = 90;
}
void interFace()// 訂票界面
{
System.out.println("\t\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞");
System.out.println("\t\t\t 訂 票 系 統(tǒng)");
System.out.println("\t\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞");
System.out
.println("------------------------------------------------------------------------------");
System.out.println("電影編號(hào)\t\t電影名\t\t上映時(shí)間\t\t電影票價(jià)");
System.out.println(movie[0].number + "\t\t" + movie[0].movieName + "\t\t"+ movie[0].movieTime + "\t" + "$" + movie[0].moviePrice);
System.out.println(movie[1].number + "\t\t" + movie[1].movieName + "\t\t"+ movie[1].movieTime + "\t" + "$" + movie[1].moviePrice);
System.out.println(movie[2].number + "\t\t" + movie[2].movieName + "\t\t"+ movie[2].movieTime + "\t" + "$" + movie[2].moviePrice);
System.out
.println("------------------------------------------------------------------------------");
}
void login()// 登陸、注冊
{
System.out.println("1.登陸\t\t2.注冊");
Scanner input = new Scanner(System.in);
int logReg = input.nextint();
switch (logReg) {
case 1:
if (loginReg.login() == 0)
login();
break;
case 2:
loginReg.reg();
login();
break;
default:
System.out.println("輸入錯(cuò)誤");
login();
}
}
void booking()// 訂票
{
Boolean con = true;
int index = 0;
int[] flag = { -1, -1, -1 };
do {
System.out.println("\t\t歡迎訂票");
System.out.println("請輸入電影編號(hào)(注意字母大寫)");
String odd = input.next();
for (int i = 0; i < movie.length; i++) {
if (movie[i].number.equals(odd)) {
flag[index] = i;
break;
}
}
if (flag[index] == -1) {
System.out.println("\t\t編號(hào)輸入錯(cuò)誤(找不到您要的電影)");
} else {
System.out.println("\t\t訂票成功");
System.out.println("電影編號(hào)\t電影名\t\t上映時(shí)間\t\t電影票價(jià)");
System.out.println(movie[flag[index]].number + "\t\t"
+ movie[flag[index]].movieName + "\t"
+ movie[flag[index]].movieTime + "\t\t" + "$"
+ movie[flag[index]].moviePrice);
index++;
}
System.out.println("是否需要繼續(xù)訂票(Y/N)");
String yesNo = input.next();
if (yesNo.equals("N"))
con = false;
if (index >= 3) {
System.out.println("已經(jīng)沒有可預(yù)訂的票");
con = false;
}
}
while (con);
int add = 0;
int sign = 0;
for (index = 0; index < 3; index++) {
if (flag[index] != -1) {
add += movie[flag[index]].moviePrice;
sign++;
}
}
System.out.println("你一共訂了" + sign + "張票" + "一共¥" + add + "元");
}
void init() {
movieInformation();
// 電影信息錄入
interFace();
// 界面
login();
// 用戶登陸、注冊
booking();
// 訂票
}
}
登陸,注冊類
import java.util.Scanner;
public class LoginReg {
//登陸,注冊類
final int INIT = 1024;
User[] user = new User[INIT];
Scanner input = new Scanner(System.in);
void reg()//用戶注冊
{
int flag = 0;
System.out.println("\t歡 迎 注 冊");
System.out.println("用戶名");
for (int i = 0;i < INIT;i++)
{
if(user[i]==null)
{
user[i] = new User();
user[i].name = input.next();
flag = i;
break;
}
}
System.out.println("密碼");
user[flag].password = input.next();
System.out.println("\t恭 喜 您!注 冊 成 功");
}
int login()//用戶登陸
{
int flag = 0;
System.out.println("\t歡 迎 登 陸");
System.out.println("用戶名");
String n1 = input.next();
System.out.println("密碼");
String n2 = input.next();
for (int i = 0;i < INIT;i++)
{
if(user[i]!=null)
{
if(user[i].name.equals(n1) && user[i].password.equals(n2))
{
flag = 1;
break;
}
}
}
switch(flag)
{
case 0:
System.out.println("登陸失敗");
System.out.println("是否重新登錄(Y/N)");
String instr = input.next();
if(instr.equals("Y"))
login();
break;
case 1:
System.out.println("登陸成功");
break;
}
return flag;
}
}
用戶類
public class User { //用戶類
String name;// 用戶名
String password;//密碼
}
電影類
public class Movie { //電影類
String number;
String movieName;
String movieTime;
int moviePrice;
}
結(jié)束。
以上就是本文關(guān)于Java實(shí)現(xiàn)電影院訂票系統(tǒng)代碼的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
Java常用面板之JScrollPane滾動(dòng)面板實(shí)例詳解
如有不足之處,歡迎留言指出。
相關(guān)文章
詳解JDK自帶javap命令反編譯class文件和Jad反編譯class文件(推薦使用jad)
這篇文章主要介紹了JDK自帶javap命令反編譯class文件和Jad反編譯class文件(推薦使用jad),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)
報(bào)警提醒功能是基于郵箱實(shí)現(xiàn)的,當(dāng)然也可以使用其他的提醒功能,如釘釘或飛書機(jī)器人提醒也是可以的,但郵箱報(bào)警功能的實(shí)現(xiàn)成本最低,所以本文我們就來看郵箱的報(bào)警提醒功能的具體實(shí)現(xiàn)2022-01-01
SpringBoot項(xiàng)目解決跨域的四種方案分享
在用SpringBoot開發(fā)后端服務(wù)時(shí),我們一般是提供接口給前端使用,但前端通過瀏覽器調(diào)我們接口時(shí),瀏覽器會(huì)有個(gè)同源策略的限制,即協(xié)議,域名,端口任一不一樣時(shí)都會(huì)導(dǎo)致跨域,這篇文章主要介紹跨域的幾種常用解決方案,希望對(duì)大家有所幫助2023-05-05
使用MyBatisPlus自動(dòng)生成代碼后tomcat運(yùn)行報(bào)錯(cuò)的問題及解決方法
深入淺析SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用

