ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:87.28KB ,
资源ID:19255837      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19255837.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(理发师问题《操作系统》课程设计报告 1Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

理发师问题《操作系统》课程设计报告 1Word格式.docx

1、一个理发店由一个有N张沙发的等候室和一个放有一张理发椅的理发室组成。没有顾客要理发时,理发师便去睡觉。当一个顾客走进理发店时,如果所有的沙发都已被占用,他便离开理发店;否则,如果理发师正在为其他顾客理发,则该顾客就找一张空沙发坐下等待;如果理发师因无顾客正在睡觉,则由新到的顾客唤醒理发师为其理发。在理发完成后,顾客必须付费,直到理发师收费后才能离开理发店。试用信号量实现这一同步问题。3.设计要求:1根据自己对应的课题完成以下主要工作:(1).分析设计要求,给出解决方案,建立必要的数据结构,然后设计总体流程(包括界面)、详细设计必要的算法,并最终显示结果。基于WINDOWS或LINUX操作系统都

2、可以,用何种编程语言都有可以。(2).提交设计报告,包括设计要求、设计思想流程、设计所涉及的主要数据结构、程序清单、运行结果、设计心得、参考资料等。(3).严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。(4).所提交源程序应是能够运行通过的完整程序。(5).提交不少于5000字的课程设计报告,含系统说明,系统功能图,流程图,程序设计说明,源程序清单2. 设计过程中既要虚心接受老师的指导,又要充分发挥主观能动性、独立思考、努力钻研、勤于实践、勇于创新。3在设计过程中,要严格要求自己,树立严密、严谨的科学态度,必须按时、保质、保量完成任务。要求独立完成规定的设计内容,不得弄虚作假,不准

3、抄袭或拷贝他人的程序或其他内容。4不得迟到、早退、旷课。缺课节数达两次以上者,成绩按不及格处理。二、进度安排第 15 周 星期一 14:3018:30 星期三 14: 星期四 14:第 16 周 星期二 14:1需求分析 1.1系统设计题目 1.2问题具体描述 1.3问题分析 1.4运行环境分析 2总体设计 2.1简要介绍 2.2概要设计流程图 2.3数据结构说明 3详细设计 3.1详细设计流程图 3.2 C+语言定义相关的数据类型 3.3 各模块功能 4调试与运行结果 4.1 调试 4.2 运行结果 5心得体会 6附录 6.1源代码 6.2参考文献 7评分表 1需求分析1.1系统设计题目理发

4、店有三个理发师,有三张沙发。顾客来了理发师正忙可以坐在沙发上。理发师理完发可以从沙发上叫醒顾客理发。1.2问题具体描述所以主要由理发师,沙发和顾客组成,当顾客数为零时,理发师休息,当顾客来时,判定理发师是否空闲,如果空闲则理发师理发。当顾客数超过理发师数时,理发师都忙碌,顾客则坐沙发休息,如果未理发的顾客数超过沙发数则顾客离开。1.3问题分析理发师问题是一个利用信号量进行PV操作的经典问题。设计程序实现此问题,要使得理发师的活动与顾客的活动得到各自真实得模拟。所执行的程序应体现:理发师在没有顾客的时候去睡觉,有顾客则工作;顾客在理发师工作时坐下等待,无座时离开,直至等到理发师自己理理发。1.4

5、运行环境分析 操作系统:windows 7820002003xp 运行环境:Microsoft Visual Studio 6.0 内存:1G CPU:2.0G Hz 系统硬盘:30G2总体设计2.1简要介绍此程序主要完成下面各大功能(1)友好界面(2)实现本程序是否开始的功能。(3)实现理发师的理发功能 。(4)设置控制程序结束的语句,可根据用户需要而结束程序2.2概要设计流程图图2.1 概要设计流程图2.3数据结构说明本程序用到了数据结构中的队列,理发的顾客由随机函数产生,顾客遵从先到先理发的原则,但队列的长度限制为输入的理发店中的椅子的个数,当理发店的椅子没有空位的时候,到来的顾客主动退

6、出加入队列。理发师对队列中的顾客进行先到先服务的原则理发。3详细设计3.1详细设计流程图图3.1 详细设计流程图3.2 C+语言定义相关的数据类型 int chairs; /普通椅子数 int customers=0; /顾客数 int count=0; /循环中用来计量的 int waiting=0; /等候理发的人数 int finish=0; /已经理完发的人数 int work=0; /理发师是否在工作 int sleeping=0; /理发师是否在打瞌睡 char opendoor; /理发店是否开门接待顾客 char blank; /获取空白字符 3.3 各模块功能(1)来理发的顾

7、客是随机产生,代码如下:#define random (rand()*10000)/RAND_MAX /用来产生随机数(2)停顿时间,代码如下: Sleep(2000); /为一个顾客理发需要时间 printf(理发完成。n); work=0; /理发完成,理发师空闲 finish+; /理发完人数加14调试与运行结果4.1 调试在开始程序是,先由程序员输入椅子数chairs,然后询问程序员是否开门营业:若程序员输入y,则开门营业;若输入n,则持续询问程序员是否营业。 在刚开门营业之后,先随机产生顾客:若没顾客来,则理发师打瞌睡,再次进行产生顾客;若有顾客来,则直接为顾客理发。在为顾客理发期间

8、,程序自动产生顾客,最多产生5个顾客。顾客进来后,先看看理发师是否在理发,是则看看是否有空椅子,若有则坐下,无则离开。如果理发师正空闲,则直接为顾客理发。当理发完成之后,先判断已经为多少人理发了,如果未超过4人,则继续营业。若已超过,则询问程序员是否继续营业。若继续理发,则先判断是否有人等待,若有则先为等待最久的顾客理发,若没则理发师打瞌睡,程序继续回到随机产生顾客。4.2 运行结果(1)进入程序运行界面,输入理发店等待的椅子发数目图4.1(2)理发师开门营业图4.2(3)理发师理发完成图4.3(4)退出程序图4.45心得体会课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着

9、极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容;计算机操作系统从课程性质上讲是一门专业基础课,它的目的和任务就是训练学生对计算机操作系统的认识,让学生对计算机操作系统有更进一部的认识,进而增加其对学习和应用相关专业课的兴趣。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,将结论用于实践,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中当然遇到了问题,可以说得是困难重重,毕竟这是不可避免的,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够

10、深刻,掌握得不够牢固。由于能力有限,其中文档的编写是参考书上资料,我想在以后的学习中,要更注重实践这一环节。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到种种问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。从设计过程看,在整整两个星期的日子里,做到精益求精,学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识

11、,而且学到了很多在书本上所没有学到过的知识。从设计结果看,设计要求完成任务,达到了预期的目的,设计、演示效果较好。最主要是从中学到了知识。通过这次课程设计,我学到了很多,得到了很多,不仅充分的将在书本中学到的知识运用到解决实际问题上,而且加强了自己的动手能力。我会总结出这次课程设计的所有的成功以及失败的经验和心得,并希望老师能够批评指出存在的错误之处,期待有更多的机会让我实践理论知识。总的来说,这次课程设计确实学到很多,不仅锻炼了我遇到问题解决问题的勇气和能力,还练就了遇到挫折不达目的不罢休的韧性,这在以后的工作与学习中将会非常重要。6附录6.1源代码#include#include void

12、 main()请输入理发店内的普通椅子数: scanf(%d,&chairs); blank=getchar();理发店内总共有%d把普通椅子。,chairs);要开门接待顾客吗?y/nn opendoor=getchar(); while(opendoor!=y) 对不起,尚未营业! 开门迎接客人! /开门接待顾客 if(random%2) /刚开门时随机产生顾客,分有顾客和没顾客两种情况,若为真,则有顾客刚开门就有顾客到来。 customers+; /顾客数加1理发师为第%d个顾客理发。,customers); work=1; /进入工作状态 Loop:for(count=0;random

13、%2&count=5;count+) /*理发师为一个顾客理发的期间随机产生顾客,分有顾客和没顾客两种情况,若为真则有顾客,且最多为来了五个*/ customers+;第%d个顾客到来了。 sleeping=0; /设定理发师不在打瞌睡状态 if(work=1) /判断是否正为顾客理发,是则新来顾客等待,否则不用等待 if(waiting4) /完成为4个人理发的任务,询问理发师是否继续工作已经为%d位顾客理发了,还有%d个顾客在等待,是否继续工作?,finish,waiting); opendoor=getchar(); if(opendoor=n exit(0); /继续工作则改为清醒状态

14、 if(waiting0) /看看是否有人在等待理发 有%d位顾客等待,理发师继续为等待的顾客理发n,waiting); waiting-; /有则进入工作状态 goto Loop; else /无则打瞌睡 if(sleeping=0)没有顾客来理发,理发师打瞌睡中n sleeping=1; goto Loop; /继续边打瞌睡边等顾客 else /刚开门时随机产生顾客,若为假,则无顾客,理发师打瞌睡 if(sleeping=0) sleeping=1;6.2参考文献1 郁红英,李春强.计算机操作系统.北京:清华大学出版社,20082 孟庆昌.操作系统.北京:电子工业出版社,20093 汤子瀛,哲凤屏.计算机操作系统.北京:4 尤晋元,史美林等.windows操作系统原理.北京:机械工业出版社,20015 孟静.计算机操作系统原理教程.北京:清华大学出版社,20056 广树建.新编C/C+程序设计教程.广州:华南理工出版社,20087评分表计算机与通信学院课程设计评分表课程名称: 操作系统 项 目评 价设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩 教师签名: 日 期:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1