模拟投票系统–c语言版
题目及要求
请设计完成一个投票系统,实现三个角色:
选民、备选对象、管理员;
实现参加票选、管理投票过程、结果查询与公布、加入投票等。代码要能提供以下几个基本功能。
(1)注册:每个进入系统的人员需注册,管理员不用
(2)查询功能:可以查阅参选对象的信息当前投票状态 参选对象 票数 排名
(3)管理人员可以查看注册信息用户名 手机号 投票次数
(4)提供菜单选项,设置用户角色,管理员和注册用户、参选对象:管理员:审核参选对象;可以修改投票次数的限定、选举时间限定;发布、统计投票结果;用户:查询投票情况,搜索参选对象,投票。
(5)对用户的输入进行一定的正确性检查。
(6)手机一天投票数量限制。比如:同意一个手机号码一天只能投一次,或者一天只能给一个参选者投一次票
说明
:投票模拟系统除了**排名 **功能的算法还没有写,其余功能的算法均已完成,为了方便测试,选民和备选对象均已初始化了三组数据。
#include<stdio.h>
#include<string.h>
#define MaxSize 20
/*为方便测试先给 选民 和 备选对象 各赋三个初始值 */
struct guest_info{
/*声明结构体类型 -- 选民*/
char name[8]; /*姓名*/
int phone; /*号码 */
int votenum; /*投票次数*/
int number; /*编号 */
int sign; /*投票标记 ,0:未投票--1:已投票*/
}GuestList[MaxSize] = {
{
"吴一",1234,3,0,0},{
"大二",1567,3,1,0},{
"张三",5678,3,2,0}};
struct Can_info{
/*声明结构体类型 -- 备选对象*/
int ranking; /*排名*/
int number; /*编号 */
char name[8]; /*姓名*/
int sum; /*票数 */
int phone; /*号码 */
int time; /*选举时间*/
}CanList[MaxSize] = {
{
0,0,"李四",0,9871,20210617},{
0,1,"王五",0,9762,20210617},{
0,2,"赵六",0,9763,20210617}};
void Admin(int,int); /*管理员*/
void Candidate(int); /*备选对象*/
void Voter(int *,int); /*选民*/
void InsertC(int *); /*备选对象插入*/
void InsertV(int *); /*选民插入*/
void Show(int, int); /*显示*/
void Update(int, int); /*修改*/
int main()
{
int i;
/*因两个结构体各已有三个初始值,所以count从3开始记录*/
int count = 3; /*count为选民计数器,记录已经登记记录个数 */
int cnt = 3; /*cnt为备选对象计数器,记录已经登记记录个数 */
do {
/*显示一个简易菜单 */
printf("*****************************\n");
printf("* 欢迎进入 *\n");
printf("* 可爱多投票系统 *\n");
printf("*****************************\n");
printf("\n");
printf(" 1---管理员\n");
printf(" 2---备选对象\n");
printf(" 3---选民\n");
printf(" 4---注册备选对象\n");
printf(" 5---注册选民\n");
printf(" 6---退出\n");
scanf("%d",&i); /*接收用户的选择*/
switch(i)
{
case 1:Admin(count,cnt);