1、 计算机科学与技术系 课程设计报告 20122013 学年第一学期 课程课程 JAVA 语言 课 程 设 计 名 称课 程 设 计 名 称 JAVA 语言课程设计 学生姓名学生姓名 学号学号 专业班级专业班级 指导教师指导教师 2013 年 1 月 一、一、 课程设计目的课程设计目的 通过课程设计,学生在下述各方面的能力应该得到锻炼: (1)进一步巩固、加深学生所学专业课程JAVA 语言教程的基本理论知 识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 (2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提 高学生素质的最终目的。 (3)利用所学知识,开发小型应用系统
2、,掌握运用 JAVA 语言编写调试应 用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 (4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学 模型。 (5)熟练掌握 JAVA 语言的 GUI 设计、多线程技术,灵活运用各种类库。 二、二、 课程设计名称及内容课程设计名称及内容 名称:交通灯模拟程序 内容:设计一个交通灯管理的模拟程序,实现在一个十字路口的交通管理 三、三、 任务和要求任务和要求 1设计程序界面,画出十字路口和交通灯。 2可以手工设置红、绿等的时间间隔,程序按设定值自动变换每个路口的 交通灯颜色。 3随机产生一些车辆,这些车辆遵守红灯停、绿灯行的交通规则。
3、 四、四、 设计方案提示设计方案提示 分别设置两个线程代表东西和南北方向的交通灯, 根据设定值变换交通灯颜 色 每个车辆对应一个线程,利用线程技术实现车辆的红灯停、绿灯行的行为 五、五、 总体设计思路总体设计思路 从实验的要求上看,要实现交通灯的管理,需要解决的问题有两大部分: (一)绘制出交通灯及路口上的线路,以界面的形式展现出来。以此作为程 序运行的一个进程。 (二)程序对交通灯时间按计数器进行监听,倒计时时间为 0 的时候就进行 切换。同时设置文本框,当操作员将时间写入文本框当中之后,点击确定按 钮就将程序中的红绿灯的时间重置。以此作为一个线程。 (三)随机在各个路口产生车辆,符合条件则
4、通过,不符合条件则暂停。以 此作为程序运行的另一个进程。 程序中用到的 6 个类,介绍如下: 1主类:TrafficLight 该类是从 Jframe 类中继承过来的,该类当中定义了文本框、文本区、按钮这些 对象成员变量。然后,在主类的构造方法中,设置窗口的大小并将这些组添加到 窗口容器当中。这些组建是采用默认的顺序布局,根据设定的大小和其实位置添 加到容器中。 为“确定”按钮注册监听器,对其动作进行监听。在 try-catch 中处理的是:从 文本框中获取数据并将其转换成整型作为红绿灯的时间, 在对设置的红绿灯时间 进行修改。异常处理的方式是输出当前异常所产生的位置。 在主方法当中,是创建一
5、个 TrafficLight 类的对象,通过构造方法来实现所需 的功能。 2绘制窗口的类 Luche 该类是 JPanel 类的子类,该类当中含有的方法及其作用如下: (1)该类当中的一个构造方法 Luche() 该方法的功能是将被十字路分割成的四块区域的背景设置为绿色。 (2)绘制界面的方法(即该类中程序的执行入口): public void paint(Graphics g1) 设置十字路口,即根据具体的坐标绘制两个构成“十”字的道路。再根据车子的 位置用 for 循环创建对象,以车子对象的两个成员变量(横纵坐标值)作为绘 制填充圆的圆心所在位置,以及根据相应的矩形大小绘制填充圆。 对这几
6、个灯进行判断,在其位红色、绿色的情况下,对其进行不同的处理。加载 图片对象,用 try-catch 对异常处理,加载是时间间隔为 10 毫秒。 (3)repaint()方法,循环的调用 paint()方法。 (4)public List getCars()、public void setCars(List cars) 这两个方法的作用是:返回 Car,即加 Car 移出,另一个是将获得 Car 赋给该类 当中的成员变量。 (5)lauch() 该方法的作用就是:创建是三个线程对象,分别是界面的绘制的、车子对象的创 建、时间倒计时对象。 (6)其他的一些方法: 这些方法的作用就是盘对灯的颜色,然后将该类当中的成员变量附上该值。 3.随机产生车子线程类:class CarThread implements Runnable 该类的功能是实现 Runnable 接口功能:在 run()方法中,用 while 循环,在 永真的条件下,将 car 对象添加到其中。用 try-catch 处理异常,在产生异常的 情况下,就输出该异常对象。 4.控制小车子行驶