Java實(shí)現(xiàn)電影院訂票系統(tǒng)代碼
程序是為了方便用戶(hù)使用的,因此實(shí)現(xiàn)圖形化界面的程序編寫(xiě)是所有編程語(yǔ)言發(fā)展的必然趨勢(shì)。。。但是由于時(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主界面類(lèi)
import java.util.Scanner; public class BookTicket { //主界面類(lèi) 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 = "東方快車(chē)謀殺案"; 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()// 登陸、注冊(cè) { System.out.println("1.登陸\t\t2.注冊(cè)"); 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("請(qǐng)輸入電影編號(hào)(注意字母大寫(xiě))"); 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)沒(méi)有可預(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(); // 用戶(hù)登陸、注冊(cè) booking(); // 訂票 } }
登陸,注冊(cè)類(lèi)
import java.util.Scanner; public class LoginReg { //登陸,注冊(cè)類(lèi) final int INIT = 1024; User[] user = new User[INIT]; Scanner input = new Scanner(System.in); void reg()//用戶(hù)注冊(cè) { int flag = 0; System.out.println("\t歡 迎 注 冊(cè)"); System.out.println("用戶(hù)名"); 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恭 喜 您!注 冊(cè) 成 功"); } int login()//用戶(hù)登陸 { int flag = 0; System.out.println("\t歡 迎 登 陸"); System.out.println("用戶(hù)名"); 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; } }
用戶(hù)類(lèi)
public class User { //用戶(hù)類(lèi) String name;// 用戶(hù)名 String password;//密碼 }
電影類(lèi)
public class Movie { //電影類(lèi) String number; String movieName; String movieTime; int moviePrice; }
結(jié)束。
以上就是本文關(guān)于Java實(shí)現(xiàn)電影院訂票系統(tǒng)代碼的全部?jī)?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利用Java手寫(xiě)一個(gè)簡(jiǎn)易的lombok的示例代碼
Lombok是一款Java開(kāi)發(fā)插件,使得Java開(kāi)發(fā)者可以通過(guò)其定義的一系列注解來(lái)消除業(yè)務(wù)工程中冗長(zhǎng)和繁瑣的代碼,尤其對(duì)于簡(jiǎn)單的Java模型對(duì)象。本文就來(lái)手寫(xiě)一個(gè)簡(jiǎn)易的lombok,需要的可以參考一下2022-10-10Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)
報(bào)警提醒功能是基于郵箱實(shí)現(xiàn)的,當(dāng)然也可以使用其他的提醒功能,如釘釘或飛書(shū)機(jī)器人提醒也是可以的,但郵箱報(bào)警功能的實(shí)現(xiàn)成本最低,所以本文我們就來(lái)看郵箱的報(bào)警提醒功能的具體實(shí)現(xiàn)2022-01-01SpringBoot項(xiàng)目解決跨域的四種方案分享
在用SpringBoot開(kāi)發(fā)后端服務(wù)時(shí),我們一般是提供接口給前端使用,但前端通過(guò)瀏覽器調(diào)我們接口時(shí),瀏覽器會(huì)有個(gè)同源策略的限制,即協(xié)議,域名,端口任一不一樣時(shí)都會(huì)導(dǎo)致跨域,這篇文章主要介紹跨域的幾種常用解決方案,希望對(duì)大家有所幫助2023-05-05

使用MyBatisPlus自動(dòng)生成代碼后tomcat運(yùn)行報(bào)錯(cuò)的問(wèn)題及解決方法

基于Java的guava開(kāi)源庫(kù)工具類(lèi)

深入淺析SPI機(jī)制在JDK與Spring?Boot中的應(yīng)用