已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 课 程 设 计 报 告 课程名称课程名称 操作系统操作系统 课题名称课题名称 交通信号灯问题交通信号灯问题 专专 业业 信息管理与信息系统信息管理与信息系统 班班 级级 13011301 班班 学学 号号 201303110131201303110131 姓姓 名名 李世伟李世伟 精品文档 1欢迎下载 指导教师指导教师 谢雅谢雅 20162016 年年 6 6 月月 1818 日日 精品文档 2欢迎下载 湖南工程学院 课 程 设 计 任 务 书 课程名称 操作系统 课 题 交通信号灯问题 专业班级 信息管理与信息系统 学生姓名 李世伟 学 号 201303110131 指导老师 谢 雅 审 批 精品文档 3欢迎下载 任务书下达日期 2016 年 6 月 3 日 任务完成日期 2016 年 6 月 17 日 精品文档 4欢迎下载 一一 设设计计内内容容与与设设计计要要求求 1 1 课程设计目的 课程设计目的 操作系统 课程设计是信管专业实践性环节之一 是学习完 操作系统 课程后进行的一次较全面的综合练习 其目的在于加深对操作系统的理论 方法 和基础知识的理解 掌握操作系统结构 实现机理和各种典型算法 系统地了解 操作系统的设计和实现思路 培养学生的系统设计能力 并了解操作系统的发展 动向和趋势 进一步提高上机动手能力 培养使用计算机解决实际问题的能力 为后继课 程的学习和实验 以及毕业设计的完成打下扎实的基础 2 2 课题题目课题题目 交通信号灯问题交通信号灯问题 问题描述 一个十字路口 共有四组红绿灯 每个路口的车辆都遵循 红灯 停 绿灯行 的原则 假设将每一台汽车都作为一个进程 请设计良好的机制 展示出合理的 十字路口交通管理 情况 车辆通行设定 路口宽度不限 对一个路口而言 只有当一辆车通过路口 越过对面路口的交通灯后 其后续车辆才能继续通过交通灯 车辆通过路口的 时间可以固定 可以自行计算 进程的互斥 交通灯进程实际上是互斥的 即不能同时为红或者同时为绿 进程的消息通信或其通信方式 对车辆进程而言 每一个车辆在通过路口前 必须确认前面的车辆已经通过了路口 进程的调度 停留在一个路口的车辆 决定其前进或等候的因素是交通灯和 前面车辆的状态 需要设计一个良好的进程调度机制来控制所有车辆的通行 3 3 设计要求 设计要求 1 根据自己对应的课题完成以下主要工作 1 分析设计要求 给出解决方案 建立必要的数据结构 然后设计总体流 程 包括界面 详细设计必要的算法 并最终显示结果 基于 WINDOWS 或 精品文档 5欢迎下载 LINUX 操作系统都可以 用何种编程语言都有可以 2 提交设计报告 包括设计要求 设计思想流程 设计所涉及的主要数据 结构 程序清单 运行结果 设计心得 参考资料等 3 严禁抄袭 复制设计内容 查出后相关同学设计成绩以零分处理 4 所提交源程序应是能够运行通过的完整程序 5 提交不少于 5000 字的课程设计报告 含系统说明 系统功能图 流程 图 程序设计说明 源程序清单 2 设计过程中既要虚心接受老师的指导 又要充分发挥主观能动性 独立 思考 努力钻研 勤于实践 勇于创新 3 在设计过程中 要严格要求自己 树立严密 严谨的科学态度 必须按 时 保质 保量完成任务 要求独立完成规定的设计内容 不得弄虚作假 不准 抄袭或拷贝他人的程序或其他内容 4 不得迟到 早退 旷课 缺课节数达两次以上者 成绩按不及格处理 二 进度安排 第 15 周 星期一 14 30 18 30 星期三 14 30 18 30 星期四 14 30 18 30 第 16 周 星期二 14 30 18 30 星期三 14 30 18 30 星期四 14 30 18 30 精品文档 6欢迎下载 目 录 1 系统需求分析 1 1 1 设计要求 1 1 2 课程设计目的 1 1 3 解决方案 1 1 4 系统开发与运行环境 2 2 总体设计 2 精品文档 7欢迎下载 2 1 函数定义说明 2 2 2 结构设计说明 3 2 3 算法流程图 3 2 4 数据结构 4 3 详细设计 4 3 1 模块描述 4 3 2 核心函数设计 5 3 3 主函数的设计 7 4 系统调试 9 5 程序运行结果 9 6 心得体会 13 7 附录 13 7 1 源代码 13 7 2 参考文献 19 8 评分表 20 I 1 1 系统需求分析 1 1 设计要求 一个十字路口 共有四组红绿灯 每个路口的车辆都遵循 红灯停 绿灯行 的原则 假设将每 一台汽车都作为一个进程 请设计良好的机制 展示出合理的 十字路口交通管理 情况 车辆通行设定 路口宽度不限 对一个路口而言 只有当一辆车通过路口 越过对面路口的交 通灯后 后 其后续车辆才能继续通过交通灯 车辆通过路口的时间可以固定 可以自行计算 进程的互斥 交通灯进程实际上是互斥的 即不能同时为红或者同时为绿 进程的消息通信或其他通信方式 对车辆进程而言 每一个车辆在通过路口前 必须确认前面 的车辆已经通过了路口 进程的调度 停留在一个路口的车辆 决定其前进或等候的因素是交通灯和前面车辆的状态 需要设计一个良好的进程调度机制来控制所有车辆的通行 1 2 课程设计目的 了解并掌握进程同步和互斥机制 熟悉信号量的操作函数 利用信号量实现对共享资源的 控制 1 3 解决方案 根据设计要求 在 VC 6 0 环境下编译 设计了一个能够实现自由模拟某一时段交通状况 并能预测某辆车需要多久才能到达路口的系统程序 改程序达到了设计要求 成功地实现了要 精品文档 22欢迎下载 求功能 1 4 系统开发与运行环境 代码实现 C 语言程序 开发工具 Microsoft Visual C 6 0 运行环境 windows XP 或更高版本操作系统 执行方式 文件打开后直接执行 窗口界面 MS DOS 窗口界面 操作方式 全键盘控制 操作需要相关专业技能 无 2 总体设计 2 1 函数定义说明 本设计中 定义了两个函数实现 P V 原语的操作 其中 P int i 函数实现了 i 方向上车辆等 待数目减一 车辆编号增一以及输出的功能 V int i 函数实现了时间的增加 交通转换灯 的转换 无车标志的转换以及输出的功能 同时定义了东西调度函数 ETW 和南北调度函数 STN 最后当然定义了 main 来调用上述函数实现动态演示及预测功能 精品文档 33欢迎下载 2 2 结构设计说明 为了实现题设的要求 在 VC 6 0 环境下编译实现 整个系统的主要流程设计为如下步骤 1 定义全局变量用来存放实验所需基本信息 2 change 函数实现交换无车标志的功能 3 P 函数模拟 P 原语的功能 4 V 函数模拟 V 原语的功能 5 ETW 函数实现东西方向的车辆调度 6 STN 函数实现南北方向的车辆调度 7 main 函数实现程序的输入接口以及模拟演示 精品文档 44欢迎下载 2 3 算法流程图 开始 结束 Max i 0 cout Time 时刻向 FX i 方向行驶的第 R i 辆车开始出发 0 Max i Max i 1 PT Time cout Time 时刻向 FX i 方向行驶的第 R i 辆车开始出发 0 Max i Max i 1 i 方向上的车辆等待数目减一 R i 当前车辆编号 if PS 1 i 保存预测时间 cout Time 时刻向 FX i 方向行驶的第 R i 辆车开始出发 0 Max i Max i 1 R i if PS 1 i cout Time 时刻向 FX i 方向行驶的第 R i 精品文档 77欢迎下载 辆车开始出发 0 if Max i 0 Max i 1 cout Time 时刻向 FX i 方向行驶的第 R i 辆车到达对面 0 if Max i 0 Max i 1 cout Time 时刻向 FX i 方向行驶的第 R i 辆车到达对面 endl 精品文档 88欢迎下载 T T 4 绿灯时间减少 if T0 P b V b 精品文档 99欢迎下载 void STN 南北调度函数 if L 1 0 change while T 0 P a V a 3 2 主函数的设计 设计 main 函数用来提供程序的输入接口 并实现南北东西方向函数的交叉调度 以及预 测车辆出发时间的输出显示 int main cout 欢迎进入交通信号灯模拟系统 endl cout 请选择当前东西方向红绿灯状态 endl 初始化红绿灯 精品文档 1010欢迎下载 cout t1 红灯 n cout a if a 1 L 0 0 L 1 1 if a 2 L 0 1 L 1 0 cout 请依次输入向东 西 南 北方向的车辆数目 100 以内 Max 0 Max 1 Max 2 Max 3 cout 请选择预测的方向 endl cout t1 东 n cout t2 西 n cout t3 南 n cout PS 精品文档 1111欢迎下载 cout 请输入预测的车辆编号 PN while Max 0 1 STN cout 向 FX PS 1 行驶编号为 PN 的车辆预测出发时间为 PT endl return 0 4 系统调试 交通信号灯模拟程序的运行说明如下 1 按照系统提示一步一步向下走即可顺利执行程序 2 输入数据的过程中一定要尽量保证数据的正确性 防止因数据不正确而造成程序的崩溃 等问题 3 在所有数据都输入之后 程序会自动直接开始运行 运行过程中程序会自动执行到最后 而不会运行一步停下来等待用户的指示 因此为了保证用户检验数据 请在运行之前做好充分 的数据记录 以便与理论值进行对照 本系统是一款多功能 操作方便 界面友好的软件 软件所提供的所有功能都可以通过键 精品文档 1212欢迎下载 盘操作实现 简单易行 会给用户的相关操作带来很大方便 5 程序运行结果 1 系统初始界面如图 5 1 所示 图 5 1 2 选择东西方信号灯状态 图 5 2 3 选择红绿灯状态后会出现图 5 3 的界面 精品文档 1313欢迎下载 图 5 3 4 依次输入四个方向的车的数量之后出现如图 5 4 所示的画面 图 5 4 5 选择预测方向之后会出现如果 5 5 所示的画面 精品文档 1414欢迎下载 图 5 5 6 输入预测的车辆编号之后会直接开始执行 出现如图 5 6 所示的画面 图 5 6 7 在运行过程中遇到红绿灯切换的状态 如图 5 7 所示 精品文档 1515欢迎下载 图 5 7 8 最终运行完毕后 程序会给出相应预测的结果 内容如图 5 8 所示 精品文档 1616欢迎下载 图 5 8 6 心得体会 两周周的课程设计结束了 我的课程设计题目是交通信号灯模拟 通过课程设计我 对 P 操 作和 V 操作又有了更深入的认识 同时更加熟练的掌握了利用 VC 6 0 去解决这类模拟问题的 方法 刚开始接触到课题感觉到无从下手 不知道 P V 操作要从那方面入手 后来通过逐步的思 考 认真的研究逐步的建立了整个宏观的流程 然后就是一段时间的埋头苦干 狂敲代码 这 就告诉我们理论与实践的关系 想到不一定能做到 但做到了一定会想到 做到不一定有想象 的那么难 只要你愿意做 就一定能做到 放手去做吧 当然课设也有很多的不足 由于编译 环境的限制无法实现程序的互斥执行 将是今后研究的重点 最后 在此我要感谢给于过我帮助的指导老师和热心的同学们 谢谢大家 我也会继续努力 7 附录 7 1 源代码 交通信号灯模拟 include include include include using namespace std int Max 4 精品文档 1717欢迎下载 int Time 0 int R 30 int PS 1 PN 1 PT 1 SN 0 EW 1 int T 30 int L 2 char FX 4 void P int void V int void change void STN void ETW void P int i P 函数 i 为方向判断标志 if Max i 0 Max i Max i 1 i 方向上的车辆等待数目减一 R i 当前车辆编号 if PS 1 i 保存预测时间 cout Time 时刻向 FX i 方向行驶的第 R i 辆车开始出发 0 Max i Max i 1 R i if PS 1 i cout Time 时刻向 FX i 方向行驶的第 R i 辆车开始出发 0 if Max i 0 Max i 1 cout Time 时刻向 FX i 方向行驶的第 R i 辆车到达对面 0 精品文档 1919欢迎下载 if Max i 0 Max i 1 cout Time 时刻向 FX i 方向行驶的第 R i 辆车到达对面 endl T T 4 绿灯时间减少 if T0 精品文档 2020欢迎下载 P b V b void STN 南北调度函数 if L 1 0 change while T 0 P a V a void change cout 红绿灯变换 所有未通过车辆停止运行 endl int ss ss SN SN EW EW ss 精品文档 2121欢迎下载 Sleep 2000 int main int a char b for cout 欢迎进入交通信号灯模拟系统 endl b if b Y b y break else cout 您的输入有误 请重新输入 endl system cls while 1 cout 欢迎进入模拟信号灯系统 endl cout 请选择东西方信号灯状态 endl 精品文档 2222欢迎下载 cout t1 红灯 n cout a if a 1 L 0 0 L 1 1 break if a 2 L 0 1 L 1 0 break cout 请依次输入向东 西 南 北行驶的车辆数 Max 0 Max 1 Max 2 Max 3 输入各方位车辆数量 cout 请输入选择预测的方向 endl cout t1 E 东 n cout t2 W 西 n 精品文档 2323欢迎下载 cout t3 S 南 n cout PS cout 请输入预测车辆的编号 PN Time 0 T 32 EW 1 SN 1 FX 0 E FX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 26396-2026洗涤用品安全技术规范
- 经济普查服务外包合同
- 外卖配送劳务外包合同
- 2026年劳动技能教育试题及答案
- 幼儿园电缆敷设施工方案
- 2026年职业技能(互联网营销师)操作知识考试题库与答案
- 2026年工业废水处理工技能考试真题及答案
- 2026年LOGO设计真题及解析
- 酒店管理师备考冲刺模拟试卷含答案
- 江苏合庆小时工外包合同
- 2026年北京市石景山区初三二模英语试卷(含答案及解析)
- 广告牌安装外包合同
- GB/T 47328.3-2026乳及乳制品感官分析第3部分:产品感官特性符合性评价评分法
- 2026汽车后市场行业格局与消费趋势研究报告
- 2025年中国海洋大学辅导员和专职党政管理人员招聘考试真题
- 2026年山东省济南市历下区中考化学二模试卷(含答案)
- 2026国家粮食和物资储备局招聘面试题库
- 2026年超星尔雅学习通尔雅文艺复兴史试卷押题宝典试题附答案详解(突破训练)
- 2026年苏教版小学四年级数学上册期中卷含答案
- 2026年4月浙江卷高考预测模拟数学试卷01
- 2026年洗涤厂转让合同(1篇)
评论
0/150
提交评论