This topic created in 3212 days ago, the information mentioned may be changed or developed.
我们公司是做自动售货机刷卡器的。客户刷银行卡买东西。
在使用被盗的银行卡时,为了减少损失,打算实现一个每张卡每天最多在同一个机器上刷 5 次的功能。
每台机器每天最多的刷卡数不会超过 100。
机器里在跑 c 语言程序。怎么在机器上实现比较好?
1.直接全局变量一个长度 100 的结构体数组。结构里是有卡号和刷卡次数。每次刷卡时遍历数组。
2.实现一个链表。刷卡时遍历,没有记录就 malloc 内存增加节点。
怎么实现比较好?
11 replies • 2017-08-23 20:00:25 +08:00
 |
|
1
jlsk Aug 23, 2017
用 std::map,什么年代了还重复造轮子
|
 |
|
3
RLib Aug 23, 2017
sys/queue.h
|
 |
|
4
swulling Aug 23, 2017 via iPhone
放内存,机器重启了不就清空了么
|
 |
|
7
leewangyang Aug 23, 2017 via Android
不太懂关注点在哪。。。效率么?反正都是遍历,空间麽?链表的空间极限状况还要用多一些,100 个应该也不用担心空间不足问题。唯一的问题是,100 这个数字只是目前的情况吧,以后如果确定肯定不会变就数组呗,要是会变而且增多到多少不能确定就链表呗
|
 |
|
8
NoAnyLove Aug 23, 2017
所以机器到底是什么样的机器?接近普通 PC 的处理能力和内存?还是说是嵌入式设备?是运算能力比较弱的机器?还是内存比较小的机器?处理能力和内存大概是个什么水平?用的什么编译器?这些基本条件需要给够啊。
你如果内存够大,顺便分配,那当然搞个大数组没问题;你如果内存紧张,那当然又不同了。如果接近 PC 的运算能力,那你想怎么弄都行。
另外,你这么肯定刷卡次数不会超过 100 ?万一超过了怎么办?
|
 |
|
10
noah1987 Aug 23, 2017
跟老板商量了下改变实现方式了。 一个数组记录最近 5 张卡,重复多的拒绝。
|
 |
|
11
sampeng Aug 23, 2017
长度 100.。有什么纠结的。。1000-10000 都在现代计算机上都没什么纠结的
|