1、 操作系统操作系统 课程设计课程设计 题题 目:目: 交通灯问题交通灯问题 专专 业:业: 计算机科学与技术计算机科学与技术 姓姓 名:名: 学学 号号: 学学 院:院: 信息工程学院信息工程学院 2011 年年 12 月月 23 日日 一、 课程设计题目课程设计题目: 信号信号灯灯模拟模拟程序程序 1、设计目的:设计目的: 一个十字路口,共有四组红绿灯,每个路口的车辆都遵循“红灯停、绿灯行” 的原则,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的 “十字路口交通管理”情况。设计复杂路段信号灯控制,要求实现图形用户界面。 2、设计设计要求要求: 车辆数目: 每个路口的车辆数目不
2、超过 5 辆, 程序能够提供参数来设定初始 的车辆数目。 交通灯设定:初始情况一个路口为红灯、一个路口为绿灯;红灯变为绿灯的 间隔为 3 秒,必须保持十字路口交通灯的设定正确。 车辆通行设定:路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过 对面路口的交通灯后)后,其后续车辆才能继续通过交通灯,车辆通过路口的时 间可以固定、可以自行计算,但是不能为 3 秒。 (即必须体现交通灯对通行的管 制)。 进程的互斥:交通灯进程实际上是互斥的,即不能同时为红或者同时为绿。 进程的消息通信或其他通信方式:对车辆进程而言,每一个车辆在通过路口前, 必须确认前面的车辆已经通过了路口。 进程的调度:停留
3、在一个路口的车辆,决定其前进或等候的因素是交通灯和 前面车辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。 开发环境说明:开发环境说明: 开发软件:Microsoft Visual studio 2010 二、二、 功能需求分析:功能需求分析: 程序需实现以下功能: 车辆正常通过十字路口 车辆都遵守交通规则 合理的使用资源 三、三、 概念设计:概念设计: 根据程序功能需求本程序涉及实体很简单,包括车实体和灯实体,根据实体属性 和实体间的联系进行设计。 1. 车实体 这里我们需要解决四类车辆对象的各种功能和操作,所以在设计过程中添加 如下四个用户控件(即是四个不同的类) 此四个类各
4、种实现不同车道上的车的相关动作。如:运动 2. 灯实体 此次设计过程中,有一个极为重要的功能实现就是交通灯的计时和交通规则 问题。这里在设计红绿灯的亮灯规则有如下波形图: 还有如下等函数来控制亮灯的颜色: 在通过各种判断和控制就实现了最终的交通灯问题。 开始按钮后,交通灯将按照一定的逻辑开始变换亮灯,于此同时将随机的产 生各种不同的车辆对象,开始在道路上按规则进行运动。然后在车辆完成在道路 上的运动时,合理撤销对象,释放其所占有的资源。 四、四、 用户界面设计用户界面设计 道路设计: 简单,交通灯为 label,车道是背景图片,没有进行加工,只是最简单 的绘画。 下来车: 上来车: 左来车: 右来车: 运行界面: 注:次车道为三车道,因为时间原因,车辆的左转和右转还没有实现,所以暂时 只有直行的功能。 1. 红灯停 车辆在还没有通过先时遇见红灯则在线之外等待绿灯才能通行。 2. 绿灯行 车辆在绿灯情况下运行。 3. 黄灯等待和通行问题 当黄灯时,已经通过先的车辆继续通行,未通过的则等待。