收银员程序设计

上传人:206****923 文档编号:90750121 上传时间:2019-06-16 格式:DOC 页数:10 大小:125KB
返回 下载 相关 举报
收银员程序设计_第1页
第1页 / 共10页
收银员程序设计_第2页
第2页 / 共10页
收银员程序设计_第3页
第3页 / 共10页
收银员程序设计_第4页
第4页 / 共10页
收银员程序设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《收银员程序设计》由会员分享,可在线阅读,更多相关《收银员程序设计(10页珍藏版)》请在金锄头文库上搜索。

1、 沈阳理工大学课程设计专用纸 No1目 录一、课程设计目的及要求1二、相关知识1三、题目分析2四、概要设计5五、代码及流程5六、运行结果5七、设计心得9八、参考文献99一、课程设计目的及要求收银员与顾客(信号量操作)设计目的:加深对操作系统原理的进一步认识,加强实践动手能力和程序开发能力的培养,提高分析问题解决问题的能力,培养合作精神,以巩固和加深磁盘调度的概念。操作系统是一门工程性很强的课程,它不仅要求学生掌握操作系统的工作原理和理论知识,也要求学生的实际动手能力,以加深对所学习内容的理解,使学生熟练地掌握计算机的操作方法,使用各种软件工具,加强对课程内容的理解。要求:在某超市里有一个收银员

2、,且同时最多允许有n个顾客购物,我们可以将顾客和收银员看成是两类不同的进程,且工作流程如下图所示。为了利用PV操作正确地协调这两类进程之间的工作,设置了三个信号量S1、S2和Sn,且初值分别为0、0和n。二、相关知识Windows API:在本实验中涉及的API 有:(1)ExitThread 用于结束当前线程。VOID ExitThread(DWORD dwExitCode / exit code for this thread);(2)信号量控制:WaitForSingleObject 可在指定的时间内等待指定对象为可用状态;DWORD WaitForSingleObject(HANDLE

3、 hHandle, / handle to objectDWORD dwMilliseconds / time-out interval);hHandle为等待的对象,也就是实现同步或者互斥的对象。该函数一执行,相应的信号量就减去1,如果信号量小于等于0,那么他一直在循环。(3) 实现信号量互斥和同步CreateSemaphore用于创建信号量,根据参数的不同可以利用它实现互斥和同步。ReleaseSemaphore用于释放信号量,使用后相应的信号量加1HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,/SDL

4、ONG,lInitialCount,/initial countLONG,lMaximumCount,/maximum countLPCTSTR lpName/object name);ReleaseSemaphore(HANDLE hSemaphore, /handle to semaphoreLONG lRelseaseCount,/cont increment amountLPLONG lpPreviousCount/previous count);三、题目分析(1)构筑收银员与顾客的队列构造两个队列用来分别存放收银员与顾客的P,V信息typedef struct LNode,typed

5、ef 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)构造收

6、银员操作当顾客付款后,收银员判断是否收到付款,判断成功后,付款成功,反之付款未成功。 图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 #incl

7、ude 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=(linklist)malloc(sizeof(a);l-front=l-last=NULL;void enque(linklist &l,char name)Llist p=(Llist)mallo

8、c(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

9、;enque(jiuxu,deque(dengdai);elsecout收银员忙,调度顾客到等待队列0)if(jiuxu-front!=NULL)enque(dengdai,deque(jiuxu);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

10、(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 运行结果如图所示,可以输入任意数量的顾客数和收银员数。当顾客数大于收银员数时,后面的顾客将到等待队列中等待前面的顾客付完款。当前面的顾客将款付完后,后面的顾客进入就绪队列付款,付款后进入等待队列,表示付款完毕。七、设计心得此次操作系统的课程设计,从理论到实践,在两个星期的日子里

11、,可以说是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次操作系统的课程设计,我研究了收银员与顾客的问题,进一步深入了解了同步与互斥机制。比如什么是同步,什么是互斥,什么是信号量等等。课程设计和平时的实验课比较起来有很大的差距,实验课只是将这一章的一部分内容练习操作一遍,而课程设计需要的是他们综合起来的东西,这要更难一些

12、。总体来说我认为操作系统这门学科在计算机科学当是中非常重要的。他将我们学过的编程语言联系起来,可以说是第一次利用C语言利用windows的API与系统进行“沟通”。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,自身知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。比如说编语言掌握得不好,应用程序编写不太会通过这次课程设计之后,一定把以前所学过的知识重新温故。在此,也感谢在课程设计过程中帮我解惑的老师和同学。总而言之,这次操作系统的课程设计收获颇丰,复习了许多东西,也从新学会了许多东西。我想这也许就是课程设计的最终目的吧。八、参考文献1刘振安、刘燕君著.C+程序设计课程设计.北京: 机械工业出版社,20042美Abraham Silberschatz, Peter Baer Galvin, Greg Gagne 著. 郑扣根 译. 操作系统概念(第六版). 北京: 高等教育出版社,20043陈向群,向勇 等. Windows操作系统原理(第二版). 北京:机械工业出版社,2004.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号