java 火车票销售 购票 系统 完整源码,具有购票、退票、改签等功能436

前段时间公司的事情太忙,CSDN博客停止更新快两个月。今天为大家分享一个java火车票预定系统436,目前系统功能已经很全面,具有购票、退票、改签等功能,和实际购买火车票功能非常接近。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步.

开发环境

开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。

系统框架

利用JDK自带的SWING框架开发,不需要安装第三方JAR包。MySQL数据库,纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。运行方法直接可以run as appliaiton或者JAR --.jar

主要功能

火车票售票系统用Java语言编写,是一个典型的窗体程序,采用swing框架编写,系统涉及到文件、UI、数据库操作、事件等操作。系统分系统管理员和普通用户:

1 系统管理员的主要功能有以下一些功能:

用户管理:对系统中的用户进行日常的维护。包括增加用户、删除用户、修改用户

火车管理:对系统中的火车信息进行日常的维护。包括增加编号、容量

票价管理:对火车类型进行日常维护,包括增加、删除、修改操作。包括高铁、快速、普通车

 票价管理:对火车的硬座、卧铺、一等座、商务座等价格进行设置

2 普通用户的主要功能有以下一些功能

用户登陆:输入用户名和密码,登陆到系统中

火车票购买:根据条件查询出符合条件的城市,然后点击预定。火车票分:硬件票、卧铺票、无座票

订单查询:查询用户所订购的火车票信息

退票和改签:对已经购买的火车票进行改签和退票操作,这是常用功能,也是系统中的主要特色之一。

联系人:对自己的主要联系人进行管理,包括联系人的增加、删除、修改。联系人需要输入:姓名,身份证、电话等信息。

运行效果

1 用户登录

2 用户注册

3 线路维护管理

4 价格管理维护

5 用户管理

 6 用户购票

 

7 订单查看

 8 联系人管理

关键代码

 public LoginWindow(String title) {
        //设置登录界面题头和符号
        setTitle(title);
        String iconSrc = "picture/logo1.jpg";
        ImageIcon icon = new ImageIcon(iconSrc);
        setIconImage(icon.getImage());

        //自定义设置主界面主面板的背景
        String bgdSrc = "picture/rail5.jpg";
        ImageIcon background = new ImageIcon(bgdSrc);
        Background.setBackgroundPicture(this, background);

        //界面显示信息面板
        JLabel lbl_show = new JLabel("售票登陆系统");
        lbl_show.setForeground(Color.WHITE);
        lbl_show.setFont(new Font("楷体", Font.PLAIN, 65));
        lbl_show.setHorizontalAlignment(JLabel.CENTER);
        JPanel jp_show = new JPanel();
        jp_show.setOpaque(false);
        jp_show.add(lbl_show);

        //用户信息模块
        //1.手机号
        JLabel lbl_tel;
        lbl_tel = new JLabel("手机号:");
        lbl_tel.setForeground(Color.WHITE);
        lbl_tel.setFont(new Font("楷体", Font.BOLD, 30));
        lbl_tel.setHorizontalAlignment(SwingConstants.CENTER);
        //2.密码
        JLabel lbl_password = new JLabel("密  码:");
        lbl_password.setForeground(Color.WHITE);
        lbl_password.setFont(new Font("楷体", Font.BOLD, 30));
        lbl_password.setHorizontalAlignment(SwingConstants.CENTER);
        //3.身份选择
        JLabel lbl_role = new JLabel("身  份:");
        lbl_role.setForeground(Color.WHITE);
        lbl_role.setFont(new Font("楷体", Font.BOLD, 30));
        lbl_role.setHorizontalAlignment(SwingConstants.CENTER);
        //4.信息输入框
        txt_tel = new JTextField(15);
        txt_password = new JPasswordField(20);
        com_role = new JComboBox<>(new String[]{"乘客", "管理员"});
        //5.用户信息面板(排版)
        JPanel jp_userInfo = new JPanel();
        jp_userInfo.setOpaque(false);//将面板背景设计为透明,因为要显示自定义的背景图片
        jp_userInfo.setLayout(new GridLayout(7, 2));
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(lbl_tel);
        jp_userInfo.add(txt_tel);
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(lbl_password);
        jp_userInfo.add(txt_password);
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(lbl_role);
        jp_userInfo.add(com_role);
        jp_userInfo.add(new JLabel());
        jp_userInfo.add(new JLabel());

        // 登录界面功能按钮模块
        //1.登录按钮
        btn_login = new JButton("登录");
        btn_login.setFont(new Font("楷体", Font.PLAIN, 20));
        btn_login.addActionListener(this);
        //2.注册按钮
        btn_register = new JButton("注册");
        btn_register.setFont(new Font("楷体", Font.PLAIN, 20));
        btn_register.addActionListener(this);
        //3.取消按钮
        btn_cancel = new JButton("取消");
        btn_cancel.setFont(new Font("楷体", Font.PLAIN, 20));
        btn_cancel.addActionListener(this);
        //4.功能按钮面板
        JPanel jp_functionBtn = new JPanel();
        jp_functionBtn.setOpaque(false);
        jp_functionBtn.add(btn_login);
        jp_functionBtn.add(btn_register);
        jp_functionBtn.add(btn_cancel);

        //设置主面板布局,并添加上面自定义的面板
        this.setLayout(new BorderLayout());
        this.add(jp_show, BorderLayout.NORTH);
        this.add(jp_userInfo, BorderLayout.CENTER);
        this.add(jp_functionBtn, BorderLayout.SOUTH);
        this.validate();
        this.setVisible(true);
        this.setSize(background.getIconWidth(), background.getIconHeight());
        this.setResizable(false);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

项目总结

(1)在写代码之前,在大脑里一定要把思路理清楚,不能模模糊糊,一定要把功能图和流程图画出来,然后根据它去实现每一个功能块,要多分析,培养一种良好的逻辑思维能力。

(2)在写代码的过程中,一定要采取就近原则,同一个功能,或者对同一个组件的设置一般要写在一块,这样写的程序比较清晰,不容易出错,也便于查找。

(3)要养成良好的注释习惯,一是有利于别人阅读你的程序,同时也有利于自己以后再看,就能很快的读懂程序,提高效率。

(4)把功能模块化,即把实现相同功能的代码段封装成一到一个类或者一个方法中,实现的时候调用即可,这样能提高代码的可读性

(5)养成创建包来存放不同功能的类,使系统的结构更加模块化和规范化。

(6)在编写代码的时候,一定要边写边调试,要适时的设置断点,或者把某些变量的值输出到控制台,通过观察和分析变量的值,便于判断问题所在,同时,需要捕获异常的一定要把异常信息打印出来,便于分析问题。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值