电子投票平台管理系统.docx
- 文档编号:5747309
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:20
- 大小:38.83KB
电子投票平台管理系统.docx
《电子投票平台管理系统.docx》由会员分享,可在线阅读,更多相关《电子投票平台管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
电子投票平台管理系统
综合性实验报告
题目:
电子投票平台管理系统
课程名称:
C语言程序设计
院系名称:
计算机科学与技术学院
专业班级:
09计算机(非师范)
************
学号:
***********
***************
一、实验目的:
C语言课程设计是计算机学院重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。
1.进一步巩固和复习C程序设计的基础知识。
2.培养学生结构化程序,模块化程序设计的方法和能力。
3.提高学生调试程序的技巧和软件设计的能力。
4.提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。
5.了解软件的编制过程。
二、实验要求:
1.主要操作包括:
数据输入、输出、插入、删除、查找、修改、排序等。
2.用C语言编程实现上述实验内容的结构定义和相关功能,要求程序能够正确执行,最后提交源程序代码及实验报告。
三、系统分析
电子投票平台有两大功能是:
管理员操作和游客操作。
它包括功能选择;身份验证;投票人管理模块;候选人管理模块;投票区和得票结果管理六大模块。
保证了不同人有自己的操作,同时又不能执行别人的操作,具有安全性,并且又有一定的实用性。
本程序包含六个功能模块:
功能选择;身份验证;投票人管理模块;候选人管理模块和投票区。
功能选择:
功能选择模块为系统提供类似于菜单的功能,让用户输入功能选择项,并进入相应的功能执行程序。
系统按权限分为管理员的功能选择和投票人的功能选择。
分别在admin()和gust()函数中。
身份验证:
该模块判断要使用该系统的是投票人还是管理员,首先获取登录者的用户名和密码,当用户名和密码相符时,判断用户的权限并进入相应功能选择函数。
当用户忘记密码时,给用户机会进行重新输入。
源程序包含在denglu()中。
③候选人管理模块:
候选人管理模块完成候选人的初始化、候选人信息的浏览、候选人信息修改、3个主要功能。
源程序包含在chushihua();liulan();xiugai()。
④投票区管理:
投票区完成该系统的主体功能。
当投票人顺得登录系统后,输入要投票的候选人的姓名,即可完成投票。
候选人的得票信息会随时刷新。
每个投票人投票后就会失去投票的权利,避免重复投票。
投票后立刻显示各个候选人的得票数。
四、程序操作说明书
①.用户类型操作
②.输入1进行管理员操作。
输入帐号和密码。
进行下一步操作。
③.输入1进行候选人初始化,并输入各个候选人的资料。
④初始化完成后,返回管理员操作界面,输入2可以浏览候选人。
⑤浏览后,可以输入3修改候选人资料。
然后选择相应的的资料进行修改
⑥.输入5可以返回主界面。
重复操作。
⑦选择2进入投票者界面并输入帐号和密码。
⑧.输入1可以浏览候选人的资料。
⑨输入2可以进行投票,如果投票后就不能进行投票了。
投票成功后会输出个候选人的得票数。
五、系统实现
表3-1程序总框架(函数清单)表
序号
文字解释
函数
1
管理员界面
Admin()
2
候选人初始化
chushihua()
3
用户登录
denglu();
4
主界面
delujiemian()
5
管理员的操作
guanliyuancaozuo();
6
投票者界面
gust();
7
循环操作
jj()
8
投票者浏览
liulan()
9
主函数
main()
10
投票
toupiao()
11
修改候选人
xiugai()
12
用户资料初始化
yonghuziliao();
13
用户浏览
yonghuliulan()
详细源程序
#include
#include
#include
#include
#defineSIZE3
#defineNUM11
intzxcv;
voidchushihua();
voidliulan();
voidxiugai();
structuser
{
longnumber;
charname[15];
charps[8];
intpower;
intn;
}us[NUM];
structcandidate
{
longnumber;
charname[80];
charintro[80];
intvotenum;
}cd[SIZE];
voidyonghucaozuo();
voiddenglujiemian()
{
printf("***************************\n");
printf("管理员请选择1,游客请选择2.\n");
printf("***************************\n");
}
voidadmin()
{
//intj;
printf("********************************\n");
printf("*********1初始化候选人*********\n");
printf("*********2浏览候选人*********\n");
printf("*********3修改候选人*********\n");
printf("*********4退出*******\n");
printf("*********5返回上一层*********\n");
printf("********************************\n");
}
voidgust()
{
printf("********************************\n");
printf("**********1浏览候选人*********\n");
printf("**********2投票*********\n");
printf("**********3退出*********\n");
printf("**********4返回上一层*********\n");
printf("********************************\n");
}
voidchushihua()//初始化候选人
{
FILE*fp;
inti;
printf("请输入候选人的数据:
\n");
for(i=0;i { printf("请输入第%d个候选人的数据: \n",i+1); printf("\n编号: "); cd[i].number=i+1; printf("%d",cd[i].number); getchar(); printf("\n姓名: "); gets(cd[i].name); printf("\n简介: "); gets(cd[i].intro); printf("\n得票数"); scanf("%d",&cd[i].votenum); } printf("输入完成,请继续选择其他功能\n"); if((fp=fopen("jilu","wb"))==NULL)//打开输出文件jilu { printf("打开失败\n"); return; } for(i=0;i if(fwrite(&cd[i],sizeof(structcandidate),1,fp)! =1) printf("文件输入失败\n"); fclose(fp); } voiddenglu() { intg=1,j; chara[15],b[8]; printf("帐号: "); scanf("%s",a); printf("\n"); printf("密码: "); scanf("%s",b); printf("\n"); while(g) { for(j=0;j<=NUM;j++) { if((strcmp(a,us[j].name)==0)&&(strcmp(b,us[j].ps)==0)) { printf("输入正确\n");zxcv=j; g=0; break; } else if(j==NUM) { printf("输入有错,请重新输入\n"); printf("帐号: "); scanf("%s",a); printf("\n"); printf("密码: "); scanf("%s",b); printf("\n"); } } } FILE*qw; if((qw=fopen("yonghujilu","wb"))==NULL) { printf("打开文件失败"); return; } for(intn=0;n { while(fread(&us[n],sizeof(user),1,qw)! =NULL) if((strcmp(a,us[n].name)==0)&&(strcmp(b,us[n].ps)==0)) { if(us[n].power==1) admin(); else gust(); } } } voidliulan()//浏览候选人 { inti;FILE*fp; if((fp=fopen("jilu","rd"))==NULL) { printf("打开失败"); return;} for(i=0;i { fread(&cd[i],sizeof(structcandidate),1,fp); printf("编号%d姓名%s简介%s得票数%d",cd[i].number,cd[i].name,cd[i].intro,cd[i].votenum); printf("\n"); } printf("操作完成,请继续选择其他功能\n"); } voidxiugai()//修改候选人 { intm,n; printf("请输入你想修改的候选人的编号(1-3): \n"); scanf("%d",&n); while((n! =1)&&(n! =2)&&(n! =3)) { printf("输入错误,请重新输入(1-3): \n"); scanf("%d",&n); } printf("您选中的候选人资料: \n"); printf("编号%d姓名%s介绍%s得票数%d\n",cd[n-1].number,cd[n-1].name,cd[n-1].intro,cd[n-1].votenum); printf("请输入您想修改的候选人的内容: \n"); printf("1姓名2简介3得票数\n"); scanf("%d",&m); while((m! =1)&&(m! =2)&&(m! =3)) { printf("输入有错,请重新输入: \n"); scanf("%d",&m); }getchar(); if(m==1) { printf("新的姓名: \n"); gets(cd[n-1].name); } else if(m==2) { printf("新的简介: \n"); gets(cd[n-1].intro); } else { printf("新的票数: \n"); scanf("%d",&cd[n-1].votenum); } printf("更改后的资料: \n"); printf("编号%d姓名%s介绍%s得票数%d\n",cd[n-1].number,cd[n-1].name,cd[n-1].intro,cd[n-1].votenum); FILE*fp;inti; if((fp=fopen("jilu","wb"))==NULL)//打开输出文件jilu { printf("打开失败\n"); return; } for(i=0;i if(fwrite(&cd[i],sizeof(structcandidate),1,fp)! =1) printf("文件输入失败\n"); fclose(fp); } voidyonghuliulan() { inti;FILE*fp; if((fp=fopen("jilu","rd"))==NULL) { printf("打开失败"); return;} for(i=0;i { fread(&cd[i],sizeof(structcandidate),1,fp); printf("编号%d姓名%s简介%s得票数%d",cd[i].number,cd[i].name,cd[i].intro,cd[i].votenum); printf("\n"); }fclose(fp); printf("操作成功,请继续选择其他功能\n"); } voidtoupiao() { inti,j,g=1;FILE*fp; charname[20]; if(us[zxcv].n==0) { printf("您已经投过票,没有此权利了\n"); } else { if((fp=fopen("jilu","rd"))==NULL) { printf("打开失败"); return;} printf("各个候选人的编号和姓名\n"); for(j=0;j {fread(&cd[j],sizeof(structcandidate),1,fp); printf("%d%s\n",cd[j].number,cd[j].name); }fclose(fp); printf("你支持的候选人的姓名: \n");getchar(); gets(name); while(g) { for(i=0;i<=SIZE;i++) { if(strcmp(name,cd[i].name)==0) { cd[i].votenum=cd[i].votenum+1; us[zxcv].n=0;g=0;break; } else if(i==SIZE) { printf("输入有错,请重新输入\n"); printf("你支持的候选人的姓名: \n"); //getchar(); gets(name); } } } FILE*fp; if((fp=fopen("jilu","wb"))==NULL) { printf("打开文件失败"); return; } for(i=0;i { if(fwrite(&cd[i],sizeof(structcandidate),1,fp)! =1) printf("输入错误"); } fclose(fp); printf("各个候选人的得票数: \n"); for(i=0;i { printf("%s%d\n",cd[i].name,cd[i].votenum); } printf("操作成功,请继续选择其他功能\n"); } } voidjj(); voidguanliyuancaozuo() { intabc=1,j; while(abc==1) { admin(); { scanf("%d",&j); while(j! =1&&j! =2&&j! =3&&j! =4&&j! =5) { printf("输入有错,请重新输入\n");admin(); scanf("%d",&j); } switch(j) { case1: chushihua(); break; case2: liulan(); break; case3: xiugai(); break; case4: exit(0); break; case5: jj(); break; } } } } voidjj() { inti; denglujiemian(); scanf("%d",&i); while(i! =1&&i! =2) { printf("输入有错,请重新输入\n"); denglujiemian(); scanf("%d",&i); } denglu(); if(us[i].power==1) { guanliyuancaozuo(); } else { yonghucaozuo(); } } voidyonghucaozuo() { intbcd=1,j; while(bcd==1) { gust();scanf("%d",&j); {while(j! =1&&j! =2&&j! =3&&j! =4) { printf("输入有错,请重新输入\n");gust(); scanf("%d",&j); } switch(j) { case1: yonghuliulan(); break; case2: toupiao(); break; case3: exit(0); break; bcd=0; case4: jj(); break; } } } } voidyonghuziliao() { strcpy(us[1].name,"admin"); strcpy(us[1].ps,"1234"); strcpy(us[2].name,"gust1"); strcpy(us[2].ps,"1234"); strcpy(us[3].name,"gust2"); strcpy(us[3].ps,"1234"); strcpy(us[4].name,"gust3"); strcpy(us[4].ps,"1234"); strcpy(us[5].name,"gust4"); strcpy(us[5].ps,"1234"); strcpy(us[6].name,"gust5"); strcpy(us[6].ps,"1234"); strcpy(us[7].name,"gust6"); strcpy(us[7].ps,"1234"); strcpy(us[8].name,"gust7"); strcpy(us[8].ps,"12348"); strcpy(us[9].name,"gust8"); strcpy(us[9].ps,"1234"); strcpy(us[10].name,"gust9"); strcpy(us[10].ps,"1234"); us[1].power=1;us[2].power=2;us[3].power=2;us[4].power=2;us[5].power=2; us[6].power=2;us[7].power=2;us[8].power=2;us[9].power=2;us[10].power=2; us[1].n=0;us[2].n=1;us[3].n=1;us[4].n=1;us[5].n=1; us[6].n=1;us[7].n=1;us[8].n=1;us[9].n=1;us[10].n=1; us[10].power=2; FILE*qw;intq; if((qw=fopen("yonghujilu","wb"))==NULL) { printf("打开文件失败"); return; } for(q=0;q { if(fwrite(&us[q],sizeof(structuser),1,qw)! =1) printf("输入错误"); } fclose(qw); } voidmain() { yonghuziliao(); inti,j=1,abc=1,bcd=1,g=1; denglujiemian(); scanf("%d",&i); while(i! =1&&i! =2) { printf("输入有错,请重新输入\n"); denglujiemian(); scanf("%d",&i); } denglu(); if(us[zxcv].power==1) { guanliyuancaozuo(); } else { yonghucaozuo(); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 投票 平台 管理 系统