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

下面是具體實現(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("電影編號\t\t電影名\t\t上映時間\t\t電影票價");
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("輸入錯誤");
login();
}
}
void booking()// 訂票
{
Boolean con = true;
int index = 0;
int[] flag = { -1, -1, -1 };
do {
System.out.println("\t\t歡迎訂票");
System.out.println("請輸入電影編號(注意字母大寫)");
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編號輸入錯誤(找不到您要的電影)");
} else {
System.out.println("\t\t訂票成功");
System.out.println("電影編號\t電影名\t\t上映時間\t\t電影票價");
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實現(xiàn)電影院訂票系統(tǒng)代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
如有不足之處,歡迎留言指出。
相關(guān)文章
El表達式使用問題javax.el.ELException:Failed to parse the expression
今天小編就為大家分享一篇關(guān)于Jsp El表達式使用問題javax.el.ELException:Failed to parse the expression的解決方式,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
SpringBoot?Web請求響應(yīng)詳細代碼示例
在Web開發(fā)中請求和響應(yīng)是必不可少的環(huán)節(jié),Spring Boot Web應(yīng)用中請求響應(yīng)的分層解耦是構(gòu)建高效、可維護系統(tǒng)的關(guān)鍵實踐,下面這篇文章主要介紹了SpringBoot?Web請求響應(yīng)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-09-09
java關(guān)于String.split("|")的使用方式
這篇文章主要介紹了java關(guān)于String.split("|")的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
SpringBoot ThreadLocal 簡單介紹及使用詳解
ThreadLocal 叫做線程變量,意思是 ThreadLocal 中填充的變量屬于當(dāng)前線程,該變量對其他線程而言是隔離的,也就是說該變量是當(dāng)前線程獨有的變量,這篇文章主要介紹了SpringBoot ThreadLocal 的詳解,需要的朋友可以參考下2024-01-01
關(guān)于訪問后端接口報404錯誤問題的解決方法(全網(wǎng)最細!)
404頁面的出現(xiàn)會降低用戶體驗,那么導(dǎo)致404頁面出現(xiàn)的原因是什么呢?這篇文章主要給大家介紹了關(guān)于訪問后端接口報404錯誤問題的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-04-04

