大二实验周,选择了一个题目,是用C语言模拟投票系统。其中有一个要求是用户投票限制,一个手机号一天只能投一次票或者一天内相同用户不能给一个候选人重复投票(此种情况投票者可以给其他人投票)。
我们原本是打算用datetime,可是问了老师,老师很疑惑地问我们为什么要用datetime,但是问她有一些建议吗,她又不肯说。问了周围的,都没什么思路,恳请各位大佬解答。
下面贴出的是我们构建的结构体里包含的信息。
typedef struct voter//投票者结构体
{
char name[20];
char phone[20];
}vote;
typedef struct candidate//候选人结构体
{
char name[20];
char sex[8];
int age;
int piaoshu;
int rank;
int pec;
int id;
}candi;
typedef struct manager//管理员结构体
{
char name[20];
char password[15];
}mana;
typedef struct ticket
{
char xuanmin[20]; //投票人
char hxr[20]; //候选人
int last; //最后投票日期,计算方式是投票的 (年份%100)*10000+月份*100+日期,比如今天是191015
}tick;
int candin; //这三个变量记录下实际有的候选人、投票人和票的总数
int tickn;
int voten;
void toupiao(vote *user,candi *c,tick *t)
{
int today=191015;
int canvot = 1;
for (int i = 0; i <tickn; i++)
{
if (strcmp(user[count].name, t[i].xuanmin) == 0 &&(t[i].last ==today))
{canvot = 0;
printf("今日投票次数已达上限");
break; } //今天投过
if((strcmp(user[count].name, t[i].xuanmin) == 0 && (c[num].name,t[i].hxr) == 0))
{ canvot = 0;
printf("给该候选人投票次数已达上限");
break; } //这个人投过这个候选人
}
if (canvot)
{
strcpy(t[tickn].xuanmin, user[count].name);
strcpy(t[tickn].hxr, c[num].name);
t[tickn].last =191015;
tickn++;
}
}