在写实验三的匿名投票是遇到了一个问题,对于匿名投票无法确定一个人投的票是不是合法的、有没有一人投多票。
开始我的思路是在addvote中增加一个voter的参数,但是实现后就变成了实名投票的实现,与匿名投票的要求是不符的。之后,我改变了检查合法性的思路,只有投票的总数量与投票人数一致,选票中没有非法的选项即为合法投票。这虽然无法确定一个人投了几票,但至少在匿名投票的前提下保证了一定的正确性。而对于是不是有人投了多票的检测,我把它放在了客户端,设置有一个“监督员”保证一个人投票后不能再投票,从而是这个合法性检查完整。