#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct _Info
{
int no;//序号
int count;//得票数
char name[20];//姓名
char introduce[100];//简介
}Info,*PInfo;
typedef struct _Code
{
char count[20];//账号
char code[20];//密码
}Code;
int Main_Menu()
{
int choice;
system("cls");
printf("1:用户登录\n");
printf("2:管理员登录\n");
printf("0:退出\n");
printf("请输入选择:");
scanf("%d",&choice);
while(choice<0||choice>2)
{
printf("请重新输入选择:");
scanf("%d",&choice);
}
return choice;
}
int Menu1()
{
int choice;
system("cls");
printf("1:投票\n");
printf("2:浏览候选人\n");
printf("3:查看候选人简介\n");
printf("0:返回\n");
printf("请输入选择:");
scanf("%d",&choice);
while(choice<0||choice>3)
{
printf("请重新输入选择:");
scanf("%d",&choice);
}
return choice;
}
int Menu2()
{
int choice;
system("cls");
printf("1:增加候选人信息\n");
printf("2:浏览候选人简介\n");
printf("3:修改候选人简介\n");
printf("4:查询投票情况\n");
printf("5:清除投票信息\n");
printf("6:删除候选人信息\n");
printf("7:设置投票账号密码\n");
printf("0:返回\n");
printf("请输入选择:");
scanf("%d",&choice);
while(choice<0||choice>7)
{
printf("请重新输入选择:");
scanf("%d",&choice);
}
return choice;
}
void Set_User_Info(Code* user)
{
system("cls");
printf("请设置投票用户:");
scanf("%s",user->count);
printf("请设置投票密码:");
scanf("%s",user->code);
printf("设置成功!\n");
system("pause");
}
void Save_USER_File(Code user)
{
FILE* fp=fopen("user.txt","w+");//用写的方式打开文件
if(fp==NULL)//打开失败则返回
{
return ;
}
fwrite(&user,sizeof(Code),1,fp);//每次写入一个结构体大小
fclose(fp);//关闭文件
}
void Load_USER_File(Code* user)
{
FILE* fp=fopen("user.txt","r+");//用读的方式打开文件
if(fp==NULL)//打开失败则返回
{
return;
}
fread(user,sizeof(Code),1,fp); //每次读取一个结构体大小
fclose(fp);//关闭文件
}
void Save_Info(PInfo mon,int n)
{
int i;
FILE* pFile = fopen("Mon_Info.dat","w");
if(pFile==NULL)
{
return;
}
for(i=0;i<n;i++)
{
fwrite(&mon[i],1,sizeof(Info),pFile);
}
fclose(pFile);
}
int Read_Info(PInfo mon)
{
int i=0;
FILE* pFile = fopen("Mon_Info.dat","r");
if(pFile==NULL)
{
return 0;
}
while(fread(&mon[i++],1,sizeof(Info),pFile));
fclose(pFile);
if(i>=1)
{
return i-1;
}
return 0;
}
int Login(Code* user)
{
char count[20],code[20];
system("cls");
printf("请输入账号:");
scanf("%s",count);
printf("请输入密码:");
scanf("%s",code);
if(!strcmp(count,user->count) && !strcmp(code,user->code))
return 1;
printf("账号密码错误!\n");
system("pause");
return 0;
}
int Add_New_Info(PInfo info,int n)
{
system("cls");
printf("请输入候选人序号:");
scanf("%d",&info[n].no);
printf("请输入候选人姓名:");
scanf("%s",info[n].name);
printf("请输入候选人简介:");
scanf("%s",info[n].introduce);
info[n].count=0;
printf("录入成功!\n");
system("pause");
return n+1;
}
int Del_Info(PInfo info,int n)
{
int i,temp,j;
system("cls");
printf("请输入要删除的序号:");
scanf("%d",&temp);
for(i=0;i<n;i++)
{
if(temp==info[i].no)
break;
}
if(i==n)
return n;
for(j=i;j<n;j++)
info[j]=info[j+1];
printf("删除成功!\n");
system("pause");
return n-1;
}
void Clean_Info(PInfo info,int n)
{
int i;
system("cls");
for(i=0;i<n;i++)
{
info[i].count=0;
}
printf("清除成功!\n");
system("pause");
}
void Print_Info_Count(PInfo info,int n)
{
int i;
system("cls");
printf("%-10s%-10s%-10s\n","序号","姓名","得票");
for(i=0;i<n;i++)
{
printf("%-10d%-10s%-10d\n",info[i].no,info[i].name,info[i].count);
}
system("pause");
}
void Print_Info_info(PInfo info,int n)
{
int i;
system("cls");
printf("%-10s%-10s\n","序号","姓名");
for(i=0;i<n;i++)
{
printf("%-10d%-10s\n",info[i].no,info[i].name);
}
system("pause");
}
void Print_Introduce(PInfo info,int n)
{
int i;
system("cls");
printf("%-10s%-10s%-10s\n","序号","姓名","简介");
for(i=0;i<n;i++)
{
printf("%-10d%-10s%-10s\n",info[i].no,info[i].name,info[i].introduce);
}
system("pause");
}
void Print_One_Introduce(PInfo info,int n)
{
int i,temp;
system("cls");
printf("请输入要查询的序号:");
scanf("%d",&temp);
for(i=0;i<n;i++)
{
if(temp==info[i].no)
break;
}
if(i==n)
{
printf("无该序号!\n");
system("pause");
return ;
}
printf("%-10s%-10s%-10s\n","序号","姓名","简介");
printf("%-10d%-10s%-10s\n",info[i].no,info[i].name,info[i].introduce);
system("pause");
}
void Modify_Info(PInfo info,int n)
{
int i,temp;
system("cls");
printf("请输入要修改的序号:");
scanf("%d",&temp);
for(i=0;i<n;i++)
{
if(temp==info[i].no)
break;
}
if(i==n)
{
printf("无该序号!\n");
system("pause");
return ;
}
printf("请输入新简介:");
scanf("%s",info[i].introduce);
printf("修改成功!\n");
system("pause");
}
void Vote_Info(PInfo info,int n)
{
int i,temp;
system("cls");
printf("请输入要投票的序号:");
scanf("%d",&temp);
for(i=0;i<n;i++)
{
if(temp==info[i].no)
break;
}
if(i==n)
{
printf("无该序号!\n");
system("pause");
return ;
}
info[i].count++;
printf("投票成功!\n");
system("pause");
}
int main()
{
int choice,choice2;
Code user;
Info info[100];
int NUM;
Load_USER_File(&user);
NUM=Read_Info(info);
do
{
choice=Main_Menu();
switch(choice)
{
case 1:
if(!Login(&user))
break;
do
{
choice2=Menu1();
switch(choice2)
{
case 1:
Vote_Info(info,NUM);
break;
case 2:
Print_Info_info(info,NUM);
break;
case 3:
Print_One_Introduce(info,NUM);
break;
}
}while(choice2!=0);
break;
case 2:
do
{
choice2=Menu2();
switch(choice2)
{
case 1:
NUM=Add_New_Info(info,NUM);
break;
case 2:
Print_Introduce(info,NUM);
break;
case 3:
Modify_Info(info,NUM);
break;
case 4:
Print_Info_Count(info,NUM);
break;
case 5:
Clean_Info(info,NUM);
break;
case 6:
NUM=Del_Info(info,NUM);
break;
case 7:
Set_User_Info(&user);
break;
}
}while(choice2!=0);
break;
}
}while(choice!=0);
Save_USER_File(user);
Save_Info(info,NUM);
return 0;
}
电子投票平台
最新推荐文章于 2022-10-09 09:35:09 发布