同时停车的问题请教

zhaokun521 2010-09-13 10:14:04
一共4个停车位,当车停进场时:

屏幕显示文字:

一共有停车位:4

剩余停车位:*

如1辆车放在其中一车位上,屏幕显示:

一共有停车位:4

剩余停车位:3
单车进场好办,如果是两辆车同时停进场,程序该怎么写啊
...全文
228 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Top_小鑫 2010-09-15
  • 打赏
  • 举报
回复
不明确..
烈火蜓蜻 2010-09-13
  • 打赏
  • 举报
回复
你在显示车位的地方,加一个监控器,看到车进库了,就马上减1,车出库了就加1,没位置了就马上关闸门
chinesesword 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhaokun521 的回复:]
引用 6 楼 chinesesword 的回复:
引用 3 楼 zhaokun521 的回复:
引用 2 楼 think_huang 的回复:
需求不明确,无法解答~

可能是我说的不清楚,好,这样说,四个按钮,一个按下变量i-1,再按下变量i+1,怎么解决两个按钮同时按下

=============
多搞几个按钮 某个按下 i-2 再按 i+2
依次...

这不实际,如……
[/Quote]
=================
呵呵 加个文本框 输入有几辆车进几辆车出呗
如果不行那你就搞多线程好了
chazikai24 2010-09-13
  • 打赏
  • 举报
回复
每隔一定时间循环检查车位。这样不仅可以检查出进库车位的减少,还能检查出库车位的增加
zhaokun521 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chinesesword 的回复:]
引用 3 楼 zhaokun521 的回复:
引用 2 楼 think_huang 的回复:
需求不明确,无法解答~

可能是我说的不清楚,好,这样说,四个按钮,一个按下变量i-1,再按下变量i+1,怎么解决两个按钮同时按下

=============
多搞几个按钮 某个按下 i-2 再按 i+2
依次...
[/Quote]
这不实际,如果是N个车位呢?要多少个这种组合
chinesesword 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhaokun521 的回复:]
引用 2 楼 think_huang 的回复:
需求不明确,无法解答~

可能是我说的不清楚,好,这样说,四个按钮,一个按下变量i-1,再按下变量i+1,怎么解决两个按钮同时按下
[/Quote]
=============
多搞几个按钮 某个按下 i-2 再按 i+2
依次...
纯唇Yu弄 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhaokun521 的回复:]

引用 2 楼 think_huang 的回复:
需求不明确,无法解答~

可能是我说的不清楚,好,这样说,四个按钮,一个按下变量i-1,再按下变量i+1,怎么解决两个按钮同时按下
[/Quote]

还是没整明白
zhaokun521 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 think_huang 的回复:]
需求不明确,无法解答~
[/Quote]
可能是我说的不清楚,好,这样说,四个按钮,一个按下变量i-1,再按下变量i+1,怎么解决两个按钮同时按下
think_huang 2010-09-13
  • 打赏
  • 举报
回复
需求不明确,无法解答~
zhaokun521 2010-09-13
  • 打赏
  • 举报
回复
顶一下
qianyaozu 2010-09-13
  • 打赏
  • 举报
回复
加锁!monitor.enter(this);
停车事件
monitor.exit(this);
liudeqing2008 2010-09-13
  • 打赏
  • 举报
回复
OK 现在我们可以看一下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace HRFD
{
public partial class hello : Form
{
public hello()
{
InitializeComponent();
}
/*
* 设置车位数为4
*/
int parkCount = 4;
int car = 0;
private void button2_Click(object sender, EventArgs e) { parkBus();}
private void button1_Click(object sender, EventArgs e){ parkBus(); }
private void button4_Click(object sender, EventArgs e){ parkBus(); }
private void button5_Click(object sender, EventArgs e){ parkBus(); }
//执行加锁
public void parkBus()
{
lock (this)
{
if (parkCount> 0)
{
++car;
--parkCount;
//剩余车位数
lblCar.Text = "还有车位" + parkCount;
//已停车
lblCarInfo.Text = "已停车" + car;
}
else
{
MessageBox.Show("车位已经停满!", "温馨提示!", MessageBoxButtons.OK);
}
}
}
}
}
这样就可以解决你在多方同时按下按钮的时候,数据的出错!楼主好好看看 有啥需要可以找我 260990509!
heiha008 2010-09-13
  • 打赏
  • 举报
回复
把总共的车位设为只读的变量,在停车位的时候传值进行运算
liudeqing2008 2010-09-13
  • 打赏
  • 举报
回复
楼主应该是新学的吧!呵呵 出现这种情况就涉及到线程的安全执行了!同时停进车 但是你又要不把数据统计错 你可以给每一个线程上边加锁!这样就可以确保不会出现同时停车剩余车位数出错的问题了!
龟仙 2010-09-13
  • 打赏
  • 举报
回复
我的思路是,增加类似队列的机制。
记录的是 进 或 出 每一段时间扫一次队列。
如果两个按钮同时进行,队列里有两个记录,那么是2个周期后进入到数据库,就不会出现,可能少1次的问题吧。
队列可以是数据库中的表,或是程序中的静态容器。。
用线程控制。

只是个想法未曾实现过。。。
MSDNXGH 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 amlove 的回复:]
引用 12 楼 msdnxgh 的回复:

找保安处理吧,不关我们程序员的事吧。。

这个解决问题
[/Quote]
能解决,就加分啦。。。~~~~
  • 打赏
  • 举报
回复
放文本框也行, 进几个写几。 默认是1 , 也挺好
  • 打赏
  • 举报
回复
就用并发吧。。 在一个UPDATE 没处理完前, 锁死 , 其他的操作都无法执行。 这个可以不
stickking 2010-09-13
  • 打赏
  • 举报
回复
建议看一下生产者-消费者问题,操作系统原理中的内容,你这个问题用信号量也不错。
amlove 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 msdnxgh 的回复:]

找保安处理吧,不关我们程序员的事吧。。
[/Quote]
这个解决问题
加载更多回复(2)

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧