抢答器

秋天之落叶 2018-10-17 03:31:36
需要编一个抢答器,没有电路的,想着设计一个D语言的,没见过别人怎么编,自己想了一个思路:
抢答端:进去自己输入编号001......00N,设置一个按键,抢答时,用空格或回车按按键,后台数据库设置一个单字段的表,能写入编号即可,写入前判断是否为空,空则写、非空则忽略。
裁判端:实时读取并刷新单字段数据表,显示号码并蜂鸣,确定本轮首先抢答的编号。下次抢答前主持人喊开始后按恢复键恢复数据表为空,并计时,时间到无人抢答则写入终止操作字符串,开始下一轮循环。
时间上,因为都是本地局域网,通讯长连接状态,理论上不会有延迟。
我也只能想到这样了,不知道大神们有何高见?
...全文
682 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
l77268734 2020-12-16
  • 打赏
  • 举报
回复
厉害了,感谢
秋天之落叶 2018-10-18
  • 打赏
  • 举报
回复
本以为单位有抢答器,找工会说是以前租的,费用还不低,部门没有那个费用,也不可能增加别的硬件设备,只能临时做一个软件版的顶着用,能用就行,又不是什么正规的大奖赛,哈哈
很久以前玩过简单的电路,不过现在大部分电器元件都找不到了,否则凑一个问题不大。
  • 打赏
  • 举报
回复
你的意思是每个人前面放一个平板或者笔记本,运行一个软件代替抢答器?也是可以的。
lyhoo163 2018-10-17
  • 打赏
  • 举报
回复
抢答器使单片机比较好。
liups 2018-10-17
  • 打赏
  • 举报
回复
可以结合数据库的事务来实现。
秋天之落叶 2018-10-17
  • 打赏
  • 举报
回复
引用 2 楼 DelphiGuy 的回复:
可以用触发器实现

你说的是DML吗?

延迟处理:看来不但要传送号码,还要传送按下的时间值(应该在服务器端取值,照样有延迟问题,晕),裁判端要排序显示谁先按下的键,而不是谁先写入的值。
喊开始前一直按着键:没有清除字段前接收到了抢答端指令,写入时间在开始后延迟N秒?
  • 打赏
  • 举报
回复
可以用触发器实现
秋天之落叶 2018-10-17
  • 打赏
  • 举报
回复
两个细节:一是按下即可发送信息,而不是按下键弹起键;二是喊开始前如果一直按着键,如何处理?
一个问题:假如两个人员同时按键一个是12:12:12 00.001,一个是 12:12:12 00.003,会出现第二个写入数据表而第一个写不进去的情况吗?
如何解决因延迟而发生的问题?

16,747

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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