火车站售票系统模拟程序

#include<windows.h>

#include<iostream.h>

DWORD WINAPI fun1proc(LPVOID lparameter);

DWORD WINAPI fun2proc(LPVOID lparameter);

int index=0;

int tickets=100;

HANDLE hmutex;   //定义互斥对象句柄

int main()

{

HANDLE ht1;   //线程一句柄

HANDLE ht2;   //线程二句柄

ht1=CreateThread(NULL,0,fun1proc,NULL,0,NULL);  //创建线程一,(NULL(默认安全性),初始宅大小,入口函数,传递参数,0(创建线程立即运行),接收线程的ID)

ht2=CreateThread(NULL,0,fun2proc,NULL,0,NULL);//创建线程二

CloseHandle(ht1);

CloseHandle(ht2);

hmutex=CreateMutex(NULL,FALSE,NULL);   //创建互斥对象,(NULL(默认安全性),互斥对象的拥有者,互斥对象的名称(NULL是匿名))

Sleep(4000);  //等待

return 0;

}

DWORD WINAPI fun1proc(LPVOID lparameter)  //线程一

{

while(1)

{

WaitForSingleObject(hmutex,INFINITE);  (互斥对象的句柄,等待时间)

if(tickets>0)

{

Sleep(1);

cout<<"线程一卖出一张票:"<<tickets--<<endl;

}

else

{

break;

}

ReleaseMutex(hmutex);  //释放互斥对象

}

return 0;

}

DWORD WINAPI fun2proc(LPVOID lparameter)   //线程二

{

while(1)

{

WaitForSingleObject(hmutex,INFINITE);

if(tickets>0)

{

Sleep(1);

cout<<"线程二卖出一张票:"<<tickets--<<endl;

}

else

{

break;

}

ReleaseMutex(hmutex);

}

return 0;

}

时间: 2024-08-18 09:18:25

火车站售票系统模拟程序的相关文章

c#简单写售票系统

代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 售票系统 { class Program { static void Main(string[] args) { Console.Title = "售票系统"; string[,] zuo = new string[9, 4]; for (int i = 0; i < 9; i++)

使用Java多线程模简单拟售票系统

创建单个"火车票类" package date0804.demo3; /** * 票 * @author zzw922cn * */ public final class Ticket { private final String name; public Ticket(String name) { super(); this.name = name; } public String getName() { return name; } } 火车票DB的构建 采用静态工厂生产火车票的模

p1245 售票系统(线段树)

题目描述: 某次列车途经C个城市,城市编号依次为1到C,列车上共有S个座位,铁路局规定售出的车票只能是坐票, 即车上所有的旅客都有座.售票系统是由计算机执行的,每一个售票申请包含三个参数,分别用O.D.N表示,O为起始站,D为目的地站,N为车票张数.售票 系统对该售票申请作出受理或不受理的决定,只有在从O到D的区段内列车上都有N个或N个以上的空座位时该售票申请才被受理.请你写一个程序,实现这个自动 售票系统. 输入格式: 第一行包含三个用空格隔开的整数C.S和R,其中1≤C≤60000, l≤S

多线程售票系统的感想

package 异常练习;class Seel implements Runnable{ private String name; private int ticket=100; Seel(String name){  this.name=name; } public void run(){  while(true){   if(ticket>0){    System.out.println(Thread.currentThread().getName()+"正在售票"+&qu

C#总结项目《影院售票系统》编写总结一

C#学习经历从基本语法结构到窗体再到面向对象终于走完了.NET初级程序员的道路,做为品德优良好学生更不能落下课程的总结项目-某某鸟<影院售票系统>.用了大概一天半的时间做完这个练手项目,先上效果截图一张 抽出时间做些这个对目前的我来说算不小的项目. 用到的知识点有:面向对象思想.TreeView.XML读取.File文件流.泛型集合,这里面对我来说难度最大的是面向对象与泛型集合的结合,看来学习一门编程语言的难点还是在设计思想上. 再来介绍一下项目需求:在影片列表中选择某个时段的一场电影,单击座

影院售票系统-----一个让你有成就感的小项目,只有一丢丢哦

先来点废话,刚拿到这个项目的时候你是怎么想的,上来就闷头写,还是构想思路......   项目需求:     影院售票系统可以销售每天不同时段的电影票,不同时段的电影票有不同的优惠政策,还有使用兑换券的免费票.选择某个时段的一场电影,     单击放映厅未售出的座位并选择一个种类的电影票,创建电影票,计算价格并打印,座位设置为红色表示已经售出.   思想:    使用面向对象思想编写影院售票系统   看完这个你有没有点思路呢,我想你是有的 ...... 下面先来点图片,先刺激一下视觉:  窗体搭

售票系统

售票系统 时间限制: 1 Sec  内存限制: 128 MB 题目描述 某次列车途经C个城市,城市编号依次为1到C,列车上共有S个座位,铁路局规定售出的车票只能是坐票,即车上所有的旅客都有座,售票系统是由计算机执行的,每一个售票申请包含三个参数,分别用O.D.N表示,O为起始站,D为目的地站,N为车票张数,售票系统对该售票申请作出受理或不受理的决定,只有在从O到D的区段内列车上都有N个或N个以上的空座位时该售票申请才被受理,请你写一个程序,实现这个自动售票系统. 输入 输入文件第一行包含三个用空

【cogs247】售票系统【线段树】

[问题描述] 某次列车途经C个城市,城市编号依次为1到C,列车上共有S个座位,铁路局规定售出的车票只能是坐票, 即车上所有的旅客都有座.售票系统是由计算机执行的,每一个售票申请包含三个参数,分别用O.D.N表示,O为起始站,D为目的地站,N为车票张数.售票 系统对该售票申请作出受理或不受理的决定,只有在从O到D的区段内列车上都有N个或N个以上的空座位时该售票申请才被受理.请你写一个程序,实现这个自动 售票系统. [输入格式] 第一行包含三个用空格隔开的整数C.S和R,其中1≤C≤60000, l

【cogs247】售票系统

[问题描述] 某次列车途经C个城市,城市编号依次为1到C,列车上共有S个座位,铁路局规定售出的车票只能是坐票, 即车上所有的旅客都有座.售票系统是由计算机执行的,每一个售票申请包含三个参数,分别用O.D.N表示,O为起始站,D为目的地站,N为车票张数.售票 系统对该售票申请作出受理或不受理的决定,只有在从O到D的区段内列车上都有N个或N个以上的空座位时该售票申请才被受理.请你写一个程序,实现这个自动 售票系统. [输入格式] 第一行包含三个用空格隔开的整数C.S和R,其中1≤C≤60000, l