小学期题目 感觉无从下手
具体要求如下:
题目:停车场模拟管理系统
停车场描述:
停车场有一个入口,一个出口;停车场内有n(自行设定,应大于1)个停车区,每个停车区内在m(不同停车区之停车位可以不同)个停车位及一个进出口。
操作规定为:同时只有一辆汽车可以经由入口进入停车场,同时只有一辆汽车由出口离开停车场。汽车进入停车场后可以存放到任何一个有空闲停车位的停车区内。同一时刻只有一辆汽车可以进入或离开停车区。
注:
1)汽车进入或离开停车场时需要经过一个一段时间,时间随机确定。
2)汽车进入或离开停车区时需要经过一个一段时间,时间随机确定。
3)汽车进入停车场后,经过一段时间后才可查找停车区,时间随机确定。
4)停车需要一定的时间。
5)取车需要一定的时间。
任务要求:
设计一个主界面,主界面中可以选择三种操作:
1)停车操作:将汽车停入存放到停车场中;
2)取车操作:将汽车取走离开停车场;
3)管理临监控操作:时时监控停车场的情况,即每一个停车区中停放的汽车数、有多少汽车处于查找停车区状态,有多少汽车处于正在停车状态等。我的思路如下:
设计一个主界面,两个按钮, 停车 和 查看停车场状况 ,点击停车,应该是新建一个停车操作窗口(可以进行进入停车场、寻找停车区、停车、离开停车场操作),当然每点击一次就应该弹出一个相应的操作界面(也可以说是车的线程)。
这个题目的主旨是线程同步互斥的问题。也就是如果有多辆车,那么只能有一个能进行停车操作(因为停车有一段时间),其他车要等待。
我先在主要就是不明白怎么来设计这个线程同步,(线程同步的知识我有所了解,就是不知道怎么在MFC框架下设计),希望高手能够给出大概思路和架构。

解决方案 »

  1.   

    简单的单文档DOC/View就可以了。View使用FormView
      

  2.   

    定义一个 进场队列,
    缓存
    deque<车的结构> queInPlaceTemp  
    数据
    deque<车的结构>queInPlace;每进场1辆车 就 queInPlaceTemp.push_back(车的结构);//这里是放入缓存
    用1个线程专门从 queInPlaceTemp  队列里取车进场  queInPlace
    进区同样处理。出区、出场 就从数据里删除就好了。细节还得自己琢磨琢磨