Java课程设计报告

您所在的位置:网站首页 java学生管理系统课程设计报告 Java课程设计报告

Java课程设计报告

#Java课程设计报告| 来源: 网络整理| 查看: 265

一、设计时间 2020-2021学年第二学期第17-18周 二、设计地点 三、设计目的 1.复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 2.课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高学生适应实际,实践编程的能力; 3.培养学生查阅资料、独立思考、创新意识及能力。 四、设计小组成员 五、指导老师 六、设计课题 选取选题(1)车票信息查询和购买系统的设计与实现。 理由: 1、整个系统适合程序练习增强自己的实力,运用多个系统进行操作。 2、代码编写涉及面广,利于提高综合应用能力。 3、设计页面并且做出每一个菜单的功能要用到很多知识,利于熟悉JAVA。 七、基本思路及关键问题的解决方法 基本思路: 先制作登录界面,对MySQL进行连接,默认布局,进行界面布局,将窗口中添加文本区域,各式的按钮添加上去,对登录按钮进行监控,然后跳转车票信息查询系统,中间添加列车的信息标签,加入查询按钮和下拉框进行查询,对照数据库中表的数据,正确就进行跳转列车运行信息,并且可以进行发票售票 关键问题的解决方法: 1、数据库的连接。对connection、statement和resultset进行对象创建,用statement对象执行SQL语句,将执行的语句返回resultset结果集,对这些语句进行try、catch最后关闭反顺序关闭resultset,statement,connection。 2、信息的对比和列车信息的输出。将数据库的返回值类型改成ArrayList并对对比语句进行限制,只有值配对才能执行以下语句,利用封箱和拆箱将返回的信息值利用图形用户界面展现出来 3、利用for循环对比信息。将获取resultset结果集的值与下拉框进行对比,要将装箱的for循环写到其中。 八、算法及流程图 在这里插入图片描述

九、调试过程中出现的问题及相应解决办法 1、出现的问题:

下拉框信息无法与数据库进行对比多线程无法停止并输出图形用户界面无法取到数据库中的信息系统自动修改从数据库中取出的信息 2、解决办法:将数据库的方法返回值换成ArrayList在执行多线程的类中添加图形用户界面,并在最后加入break;使用封箱和拆箱的方法将信息进行对比后取出所需要的值在数据库中将封箱代码放入获取结果集数值的for循环中

十、课程设计心得体会 1、完成这次程序设计以后,对多个项目的层层叠加,我的代码量比原来多了不少,一些不理解的概念就会慢慢理解,自己的认知会有一定的提升。 2、从面向过程到面向对象的转变。以前学习面向过程的编程语言时,总是一步一步分析问题,然后按步骤逐渐完成整个程序;现在学习面向对象的编程语言是,我们编程是利用类和对象的机制将数据和方法封装在一起,通过统一的接口与外界交互;通过类的继承机制实现代码重用。 3、面向对象的编程需要长期的练习以及熟悉设计模式的。学习编程语言,还是要多实践,多敲代码,在实践中发现问题,解决问题。

十一、源程序 int i = 0; for (HashMap train : trains) { //拆箱从train中拿出信息 String loc = train.get(“loc”); //获取train集合中的本地信息 String arv = train.get(“arv”); //获取train集合中的目的地信息 String time = train.get(“time”); //获取train集合中的时间信息 String trinf = train.get(“trinf”); //获取train集合中的列车信息 //创建售票按钮 JButton jbu = new JButton(“开放售票”); jbu.setBounds(160, 50+60*i, 90, 20); //设置按钮位置 //对文本域进行监听 jbu.addActionListener(new ActionListener() { //创建售票监听 public void actionPerformed(ActionEvent e) { //调用售票线程 TicketSold tic = new TicketSold(); tic.addWindow();}}); dia.add(jbu); // 创建装载列车信息的文本域 JTextArea jta = new JTextArea();//创建与信息数量相同的文本域 jta.setLayout(new FlowLayout()); //设置文本域为流体布局 jta.setEditable(false); //设置文本域不可编辑 jta.setBounds(250, 50 + i * 60, 300, 20); // 文本域中的信息摆放 String white = " 列车编号:"+trinf+" 发车时间:" + time + “”; jta.append(loc); //文本域加入loc信息 jta.append(white); //文本域加入列车时间和编号 jta.append(arv); //文本域加入目的地 i++; dia.add(jta); System.out.println(loc + “” + arv); //输出本地和目的地 class MyThread implements Runnable { private int tick = TicketSystem.ticket; //获取售票系统的票数 Object obj = new Object(); public void run() { while (true) { //进行循环 synchronized (obj) { if (tick > 0) { String name = Thread.currentThread().getName(); //获取线程名字 int windows = Integer.parseInt(name.substring(7, name.length())); //获取窗口名字 try {Thread.sleep(100); //设置线程休眠时间 } catch (Exception e) {} System.out.println(“第” + (windows+ 1) + “窗口卖出了第” + tick-- + “张票”); } else if (tick == 0) { JFrame jframe = new JFrame(); jframe.setLayout(null); jframe.setLocation(600, 300); jframe.setSize(200,180); //设置窗口位置 jframe.setVisible(true); //设置窗口可视化 JLabel jlabel = new JLabel(“票已经售完”); jlabel.setBounds(58, 40, 100, 50); //设置跳出标签的位置 jframe.add(jlabel); //窗口加入标签 break;}}}}} //创建多个窗口售票 public class TicketSold { public void addWindow() { MyThread mt = new MyThread(); Thread t1 = new Thread(mt); t1.start(); //线程开始运行}} // 登录按钮的监控 logining.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String qq = number.getText(); //获取qq账号 String pwd = password.getText(); //获取密码 DBS dao = new DBS(); //创建数据库对象 ArrayList counts; try { counts = dao.method(qq, pwd); //调用数据库中的method方法 if (counts == null) { throw new RegisterException(); //抛出自定义异常 } else { for (HashMap count : counts) { String qqnum = count.get(“qq”); //将qq中的数据放入qqnum中 String pwdnum = count.get(“pwd”); //将pwd中的数据放在pwdnum中 if (qq.equals(qqnum) && pwd.equals(pwdnum)) { TicketSystem ts = new TicketSystem(); //创建售票查询对象 ts.sst(); //调用查询对象的sst方法 }}}} catch (SQLException e1) {e1.printStackTrace();}}}); 参考文献 [1] 温昱. 软件架构设计[M]. 北京:电子工业出版社,2007:157-177. [2] 叶核亚. Java程序设计实用教程(第3版)[M]. 北京:电子工业出版社, 2010. [3] 霍斯特曼. Java核心技术[M]. 北京: 机械工业出版社, 2008. [4] Bruce Eckel. Java编程思想[M]. 北京: 机械工业出版社, 2009. [5] 刘欣怡. 软件工程[M]. 北京: 清华大学出版社, 2007. [6] 传智播客高教产品研发部. Java基础入门[M]. 北京: 清华大学出版社, 2017.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3