电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

收银员程序设计

10页
  • 卖家[上传人]:206****923
  • 文档编号:90750121
  • 上传时间:2019-06-16
  • 文档格式:DOC
  • 文档大小:125KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 沈阳理工大学课程设计专用纸 No1目 录一、课程设计目的及要求1二、相关知识1三、题目分析2四、概要设计5五、代码及流程5六、运行结果5七、设计心得9八、参考文献99一、课程设计目的及要求收银员与顾客(信号量操作)设计目的:加深对操作系统原理的进一步认识,加强实践动手能力和程序开发能力的培养,提高分析问题解决问题的能力,培养合作精神,以巩固和加深磁盘调度的概念。操作系统是一门工程性很强的课程,它不仅要求学生掌握操作系统的工作原理和理论知识,也要求学生的实际动手能力,以加深对所学习内容的理解,使学生熟练地掌握计算机的操作方法,使用各种软件工具,加强对课程内容的理解。要求:在某超市里有一个收银员,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如下图所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0和n。二、相关知识Windows API:在本实验中涉及的API 有:(1)ExitThread 用于结束当前线程。VOID ExitThread(DWORD dwExitCode / exit cod

      2、e for this thread);(2)信号量控制:WaitForSingleObject 可在指定的时间内等待指定对象为可用状态;DWORD WaitForSingleObject(HANDLE hHandle, / handle to objectDWORD dwMilliseconds / time-out interval);hHandle为等待的对象,也就是实现同步或者互斥的对象。该函数一执行,相应的信号量就减去1,如果信号量小于等于0,那么他一直在循环。(3) 实现信号量互斥和同步CreateSemaphore用于创建信号量,根据参数的不同可以利用它实现互斥和同步。ReleaseSemaphore用于释放信号量,使用后相应的信号量加1HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,/SDLONG,lInitialCount,/initial countLONG,lMaximumCount,/maximum countLPCTSTR lpName/object name);Release

      3、Semaphore(HANDLE hSemaphore, /handle to semaphoreLONG lRelseaseCount,/cont increment amountLPLONG lpPreviousCount/previous count);三、题目分析(1)构筑收银员与顾客的队列构造两个队列用来分别存放收银员与顾客的P,V信息typedef struct LNode,typedef struct a(2)判定顾客处于哪个操作void enque(linklist &l,char name)对顾客进行插入操作,从等待状态到付款(付款到付款完毕)char deque(linklist &l)对顾客进行删除操作,当顾客由等待到付款时,就从等待队列里将顾客删除,当顾客从付款到等待时,就从付款队列里将顾客删除(3)对顾客进行P,V操作P操作,对顾客进行减1操作,判断结果是否大于等于0,如果大于等于0则进入付款队列,反之继续等待。V操作,对顾客进行加1操作,判断结果是否大于0,如果大于0则从付款进入等待,反之付款未成功。图3.1 P操作流程图 图3.2 V操作流程图(4)构造收

      4、银员操作当顾客付款后,收银员判断是否收到付款,判断成功后,付款成功,反之付款未成功。 图3.3 收银员流程图 图3.4 主函数流程图 四、概要设计(1)控制流程用void enque(linklist &l,char name),char deque(linklist &l)这两个函数对顾客进行队列的插入和删除(2)创建收银员与顾客用void sy()函数创建收银员相应的操作。用void gk()函数创建顾客相应的操作。void p()用来控制顾客的P操作。Void v()用来控制顾客的V操作。(3)收银员与顾客进程参见图3.4收银员顾客的完整流程图。五、代码及流程#include #include using namespace std;int xin_guke;int guke,shouyin;typedef struct LNodechar name;LNode *next;*Llist;typedef struct aLNode *front;Llist last;*linklist;linklist dengdai,jiuxu;void init(linklist &l)l=

      5、(linklist)malloc(sizeof(a);l-front=l-last=NULL;void enque(linklist &l,char name)Llist p=(Llist)malloc(sizeof(LNode);p-name=name;p-next=l-front;l-front=p;/coutfront-name;char deque(linklist &l)char name=NULL;if(l-front!=NULL)name=l-front-name;l-front=l-front-next;/coutdelnamefront!=NULL)coutfront-namefront=l-front-next;void p()xin_guke-;if(xin_guke=0)if(dengdai-front!=NULL)cout顾客front-name到就绪队列endl;enque(jiuxu,deque(dengdai);elsecout收银员忙,调度顾客到等待队列0)if(jiuxu-front!=NULL)enque(dengdai,deque(jiuxu);

      6、void sy()for(int j=shouyin;j0;j-)if(jiuxu-front!=NULL)coutfront-name收钱完毕!0;i-)p();sy();for(i=j;i0;i-)v();int main()cout请输入顾客数:guke;cout请输入收银员数:shouyin;xin_guke=shouyin;/*guke=8;shouyin=xin_guke;*/init(dengdai);init(jiuxu);for (int i=guke;i0;i-)enque(dengdai,(char)(i+97);while(dengdai-front!=NULL|jiuxu-front!=NULL)gk();return 0;六、运行结果图6.1 输入顾客数图6.2 输入收银员数图6.3 运行结果如图所示,可以输入任意数量的顾客数和收银员数。当顾客数大于收银员数时,后面的顾客将到等待队列中等待前面的顾客付完款。当前面的顾客将款付完后,后面的顾客进入就绪队列付款,付款后进入等待队列,表示付款完毕。七、设计心得此次操作系统的课程设计,从理论到实践,在两个星期的日子里

      7、,可以说是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次操作系统的课程设计,我研究了收银员与顾客的问题,进一步深入了解了同步与互斥机制。比如什么是同步,什么是互斥,什么是信号量等等。课程设计和平时的实验课比较起来有很大的差距,实验课只是将这一章的一部分内容练习操作一遍,而课程设计需要的是他们综合起来的东西,这要更难一些。总体来说我认为操作系统这门学科在计算机科学当是中非常重要的。他将我们学过的编程语言联系起来,可以说是第一次利用C语言利用windows的API与系统进行“沟通”。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,自身知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。比如说编语言掌握得不好,应用程序编写不太会通过这次课程设计之后,一定把以前所学过的知识重新温故。在此,也感谢在课程设计过程中帮我解惑的老师和同学。总而言之,这次操作系统的课程设计收获颇丰,复习了许多东西,也从新学会了许多东西。我想这也许就是课程设计的最终目的吧。八、参考文献1刘振安、刘燕君著.C+程序设计课程设计.北京: 机械工业出版社,20042美Abraham Silberschatz, Peter Baer Galvin, Greg Gagne 著. 郑扣根 译. 操作系统概念(第六版). 北京: 高等教育出版社,20043陈向群,向勇 等. Windows操作系统原理(第二版). 北京:机械工业出版社,2004.

      《收银员程序设计》由会员206****923分享,可在线阅读,更多相关《收银员程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.