c程序班委投票选举系统文档格式.docx
- 文档编号:19871811
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:23
- 大小:19.78KB
c程序班委投票选举系统文档格式.docx
《c程序班委投票选举系统文档格式.docx》由会员分享,可在线阅读,更多相关《c程序班委投票选举系统文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
inttotal=0,c_total=0;
//内存中候选人数
inti=0;
typedefstructcandidate//候选人数据结构体
{
longnumber;
//候选人编号
charname[20];
//候选人姓名
charintro[400];
//候选人简介
intvote;
//候选人得票数
}candidate;
typedefstructuser//投票者数据结构体
//投票者姓名
charps[8];
//对应密码
intpower;
//权限
intsum;
//投了几次票
}user;
candidatec_man[N];
usertotal_user[N];
voidmain_v()//投票者者界面
intkey;
do
{
printf("
\n***************************************************************\n"
);
********************欢迎进入班委投票界面***********************\n"
***************************************************************\n"
**1.浏览所有候选人2.查询候选人信息**\n"
**3.投票4.退出**\n"
scanf("
%d"
&
key);
switch(key)
{
case1:
scan();
break;
case2:
search();
case3:
vote();
case4:
system("
cls"
default:
}
}while(key!
=4);
}
voidvote()//投票者投票
longcandidatenum;
//定义进行操作时的临时结构体变量
intover_flag=0,tf=0;
inti,flag,j,k,m=0;
charDataFile[20]="
候选人.txt"
next;
//DataFile存储候选人信息的文件名,next为是否进行下一次投标操作的选项
charDataFile1[20]="
用户.txt"
;
userTempS1;
//临时存放用户信息
userTempS2;
candidateTempS;
//零时存放候选人信息
FILE*fp;
//定义一个指向文件的指针变量fp
FILE*fp1;
begin:
//和后面的gotobegin对应
read();
//read1();
printf("
请输入进行投票的用户账号:
\n"
scanf("
%s"
TempS2.name);
密码:
TempS2.ps);
fp1=fopen(DataFile1,"
ab+"
//读写用户信息
if(fp1==NULL)
{
\n打开%S失败!
按任意键结束.Openfile%sfail!
EndWithanykey.\n"
DataFile1);
perror("
Openfilefail"
getch();
exit
(1);
while(fread(&
TempS1,sizeof(user),1,fp1)!
=(int)NULL)
for(j=0;
j<
total;
j++)
if(strcmp(total_user[j].name,TempS2.name)==0&
&
strcmp(total_user[j].ps,TempS2.ps)==0)//如果输入的名字和内存的一样
k=j;
over_flag=1;
break;
break;
if(over_flag)
m=0;
else
此用户不存在或密码错误.按任意键返回..."
over_flag=0;
main_v();
if(total_user[k].sum)
此用户已经投过票了!
"
getch();
main_v();
else//如果票数=0说明有这个用户只投了一次否则
flag=0;
//flag用来标志是否找对应编号,即投票是否成功
请输入您要投票的候选人的号码:
%ld"
candidatenum);
您所投票的候选人号码是:
%ld\n"
candidatenum);
for(i=0;
i<
c_total;
i++)
if(c_man[i].number==candidatenum)
flag=1;
c_man[i].vote++;
total_user[k].sum++;
if(flag)
投票成功\n"
fwrite(&
total_user[k],sizeof(user),1,fp1);
fclose(fp1);
fp=fopen(DataFile,"
wb"
if(fp==NULL)//如果当前文件不存在,提示打开文件失败
\n打开文件失败!
按任意键结束.Openfilefail!
EndWithanykey.\n"
DataFile);
//同系统的错误一起输出
//暂停,按任意键继续
//返回1给程序
c_man[i],sizeof(candidate),1,fp);
//用二进制将数据输出到文件
fclose(fp);
投票失败!
您要投票的号码不存在\n"
按任意键返回首页!
\n"
return;
rb"
//显示投票后的情况
if(fp==NULL)
\n打开%s失败!
EndWithanykey\n"
整理后的最新投票情况:
\n候选人号码\t候选人姓名\t票数\n"
TempS,sizeof(candidate),1,fp)!
if(TempS.number!
=0)
\n%ld\t%s\t%d\n"
TempS.number,TempS.name,TempS.vote);
\n继续吗?
是(Y)/否(N):
"
fflush(stdin);
//清空输入缓冲区
next=getchar();
putchar('
\n'
if(next=='
y'
||next=='
Y'
)gotobegin;
m=0;
voidmain_a()//管理员界面
\n\n***************************************************************\n"
**1.创建新候选人2.创建新用户**\n"
**3.查询候选人信息4.显示所有候选人**\n"
**5.选举结果显示6.投票界面**\n"
**7.删除候选人0.退出**\n"
addcandidate();
addUser();
case5:
sort();
case6:
printf("
\n\n您是投票者!
欢迎您登录系统!
正在进入投票者界面...\n"
main_v();
case7:
del();
case0:
}
=0);
voidaddcandidate()//创建候选人
FILE*fp=NULL;
charc;
intover_flag=0;
//ab+读写
do
*****************创建新候选人*****************\n"
请输入:
候选人号码:
TempS.number);
i++)//检查输入编号是否有重复
if(TempS.number==c_man[i].number)
该号码已存在."
over_flag=1;
if(over_flag)
continue;
姓名:
scanf("
TempS.name);
TempS.name[19]='
\0'
if(strcmp(TempS.name,c_man[i].name)==0)
该姓名已存在!
请再输入一次!
按任意键继续..."
简介:
gets(TempS.intro);
TempS.intro[399]='
TempS.vote=0;
c_man[c_total]=TempS;
//将数据加入原始数据,用于下一次输入比较
c_total++;
if(fwrite(&
=1)
\n写入文件失败!
按任意键结束.writefileisfail!
Endwithanykey\n"
writefilefail"
要继续创建新的候选人吗?
c=getchar();
}while(c=='
||c=='
\n按任意键返回首页!
voidread()//读取候选人信息
c_total=0;
//rb只读
c_man[c_total],sizeof(candidate),1,fp)!
voidread1()//读取用户信息
total=0;
total_user[total],sizeof(candidate),1,fp)!
total++;
voidaddUser()//创建用户
FILE*fp=NULL;
//存储投票人信息的文件名
userTempS;
//读入原始数据,用于检查输入是否有重复
total_user[total],sizeof(user),1,fp)!
*****************创建新用户*****************"
\n请输入:
用户名:
i++)//检查输入姓名是否有重复
if(strcmp(TempS.name,total_user[i].name)==0)
该用户名已存在!
密码:
TempS.ps);
TempS.ps[7]='
权限:
TempS.power);
if(TempS.power!
TempS.power=0;
TempS.sum=0;
total_user[total]=TempS;
//将数据加入原始数据
TempS,sizeof(user),1,fp)!
要继续创建新用户吗?
getchar();
用户资料数据处理完毕.\n"
//在屏幕上显示文件内容
所有用户具体情况如下:
************************************************************"
\n姓名\t\t密码\t\t权限\n"
=(int)NULL)//当文件里有内容时打印
\n%s\t\t%-8s\t\t%d\n"
TempS.name,TempS.ps,TempS.power);
system("
voidscan()//显示候选人信息
候选人资料:
if(c_man[i].number==0)
continue;
号码:
%-15ld"
c_man[i].number);
姓名:
%-19s"
c_man[i].name);
简介:
%s\n"
c_man[i].intro);
}
***************************************************************"
voidsearch()//查询候选人信息
intflag=0;
\n\t请输入要查询的候选人号码:
number);
if(number==c_man[i].number)
\t您要查询的候选人信息如下:
\n\n"
\t号码:
%ld\n"
\t姓名:
%s\n"
\t简介:
if(flag)
\t对不起,没有您要查询的候选人\n"
\t要继续查询候选人吗?
}while((c=='
)||(c=='
));
voidsort()//整理所有投票,选举结果显示
inti,k,j,t=0,flot=0;
candidatec_man2[N]/*存放排序后的数据*/,temp;
if(c_man[i].number!
c_man2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 班委 投票 选举 系统