java实现电影购票项目(简单代码实现)

1.电影购票项目

代码:

package java项目.电影购票项目;
import java.awt.print.Book;
import java.util.Arrays;
import java.util.Scanner;
public class Test {
    public static void main(String[] args){
        BookTicket bookTicket=new BookTicket();
        bookTicket.init();
    }
}
class BookTicket{//主界面类
    Movie[] movie=new Movie[2];
    LoginReg loginReg= new LoginReg();
    void movieInformation(){//内部电影信息
        movie[0]=new Movie();
        movie[0].number="S1124";
        movie[0].movieName="雷神";
        movie[0].movieTime="20180101";
        movie[0].moviePrice=80;
        movie[1]=new Movie();
        movie[1].number="S1125";
        movie[1].movieName="狗狗";
        movie[1].movieTime="20190101";
        movie[1].moviePrice=80;
    }
    void interFace(){//订票界面
        System.out.println("************************************");
        System.out.println("            订票系统                  ");
        System.out.println("************************************");
        System.out.println("电影编号\\t\\t电影名\\t\\t上映时间\\t\\t电影票价");
        System.out.println("___________________________________________________________________________________________");
        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("___________________________________________________________________________________________");
    }
    void login(){//登录、注册
        System.out.println("请选择:1.登录 2.注册");
        Scanner input=new Scanner(System.in);
        int log=input.nextByte();
        switch (log){
            case 1:
                if(loginReg.login()==0){
                    login();
                }
                break;
            case 2:
                loginReg.reg();
                login();
                break;
            default:
                System.out.println("输入错误");
                System.out.println("是否重新登录");
                login();
        }
    }
    void booking(){//订票
        Scanner input = new Scanner(System.in);
        Boolean con = true;
        int index = 0;
        int[] flag={-1,-1};
        do {
            System.out.println("----------欢迎丁订票----------");
            System.out.println("请输入电影编号");
            String odd= input.next();
            for(int i=0;i<movie.length;i++){
                if(movie[i].number.equals(odd)){
                    flag[index]=i;
                }
            }
            if(flag[index]==-1){
                System.out.println("编号输入错误");
            }else {
                System.out.println("订票成功");
                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("是否需要继续订票 Y/N");
            String yesNo=input.next();
            if(yesNo.equals("N")){
                con=false;
            }
            if(index>=2){
                System.out.println("已经没有可预订的票");
                con=false;
            }

        }while (con);
        int add=0;
        int sign=0;
        for(index=0;index<2;index++){
            if(flag[index]!=-1){
            add+=movie[flag[index]].moviePrice;
            sign++;}
        }
        System.out.println("你一共预订了"+sign+"张票"+"一共"+add+"元");
    }
    void init(){
        movieInformation();
        interFace();
        login();
        booking();
    }

}
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("------------欢迎注册--------------");
        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("----------------恭喜你!注册成功---------------");
        System.out.println("请记住你的用户名和密码");
        System.out.println("用户名:"+user[flag].name+"密码:"+user[flag].password);
    }
    int login(){//用户登录
        //未登录时,状态flag为0,登录后,状态变为1
        int flag=0;
        System.out.println("----------------欢迎登录----------------");
        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;
                }
                else {
                    System.out.println("用户名或密码错误");
                }
            }
        }
        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;
    }
}
class Movie{//电影类
    String number;//电影序号
    String movieName;//电影名称
    String movieTime;//电影播放时间
    int moviePrice;//电影价格
}
class User{//用户类
    String name;//用户名
    String password;//密码
}

相关知识点
(1)final变量:final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值,通常,由final定义的变量为常量。
(2)\t 补按tab键的空格
(3)next()和nextLine()的区别:next()方法读取到空白符就结束,而nextLine()读取到回车就结束
(4)void和int long等的区别。主要用于区分main()函数是否有返回值,void定义的函数某有返回值,int、long定义的函数有返回值,返回类型为int型值、long型值。
(5)自定义类数组的创建
首先,定义一个类,类里面存放了一些变量

class User{//用户类
    String name;//用户名
    String password;//密码
}

类数组的创建

User[] user=new User[10];//初始化顶点,建立顶点表 ,定义类数组的长度为10
User[0]=new User();//初始化数组中的第一个元素
User[0].name="zhang";//给类数组赋值
User[0].password="122345";
System.out.println(User[0].name)//查看类数组第一个元素的name属性的值

(6)类的定义、方法的调用。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目功能简介如下: 浏览上映影片: 按照图1所示的格式将数据库中的上映影片数据展示出来,并显示“订票”链接。上映影片信息包括:影片名称、上映日期、上映时间、上映影厅。 选择座位: 首先根据选择的上映影片信息中的“上映影厅”显示该影厅的座位情况。未订出的显示为黄色,已订出的显示为红色。可以通过单击座位进行选择。单击黄色座位则座位颜色变成绿色,表示是您选定的座位;单击绿色座位则座位颜色变为黄色,表示取消了选定;可同时选择多个座位;红色座位不能被选定。 影票种类有三种:普通票、团体票和学生票,票价各不同。如果选择团体票则必须同时选定6个(含)以上的座位。 选择好座位和影票种类后点“确定订票”进入“确定订票”页面。 确认订票: 首先根据用户已经选定的上映信息、座位和影票类型显示影票预览。 用户确认无误后,填入会员卡号和会员卡密码,完成结算。用户的会员卡卡号、密码、剩余金额保存在数据库中。如果会员卡号或密码不正确、会员卡余额不足或者选定影票已经被订出,则给出用户明确提示;如果结算成功,则从会员卡中扣除相应金额,重定向到“浏览已订影票”页面。 浏览已订影票: 可以根据会员卡号和会员卡密码查询出该会员订过的所有影票。如果当前时间到影片的开场时间超过2小时,则显示“取消”链接。 取消订票:如果当前时间到影片开场时间超过2小时,则可以取消订票。取消后对应的座位重新变成“未订出”,返还票面金额到会员卡中。该条订票信息状态变成“已取消”。 查看影票: 在“浏览已订影票”页面,点“影票”链接则对应影票。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值