ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:19.78KB ,
资源ID:6850306      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6850306.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c程序班委投票选举系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c程序班委投票选举系统.docx

1、c程序班委投票选举系统要先在文件夹中新建名字为“候选人”的文本文档且里面不要有任何内容。此程序还是有一部分漏洞的,切勿直接使用!/* Note:Your choice is C IDE */#include#include#include#include /通过按键盘产生的对应操作getch();#define closegr closegraph#define N 30/最多候选人数void main_a(); /管理员界面void main_v(); /投票者者界面void addcandidate(); / 创建候选人void addUser();/创建投票者(用户)void searc

2、h(); /查询候选人信息void scan();/浏览候选人信息void vote(); /投票者投票void read();/读取候选人信息void save();/存储候选人信息void sort();/整理所有投票void del();/删除候选人 从文本写入数组中读取然后置为空在传回文本void read1();/读取用户信息int total=0,c_total=0;/内存中候选人数int i=0;typedef struct candidate/候选人数据结构体 long number;/候选人编号 char name20;/候选人姓名 char intro400;/候选人简介

3、int vote;/候选人得票数candidate; typedef struct user/投票者数据结构体 char name20;/投票者姓名 char ps8;/对应密码 int power;/权限 int sum;/投了几次票user;candidate c_manN;user total_userN;void main_v()/投票者者界面 int key; do printf(n*n); printf(*欢迎进入班委投票界面*n); printf(*n); printf(* 1.浏览所有候选人 2.查询候选人信息 *n); printf(* 3.投票 4.退出 *n); scan

4、f(%d,&key); switch(key) case 1:scan();break; case 2:search();break; case 3:vote();break; case 4:system(cls);break; default:break; while(key!=4);void vote() /投票者投票 long candidatenum;/定义进行操作时的临时结构体变量 int over_flag=0,tf=0; int i,flag,j,k,m=0; char DataFile20=候选人.txt,next;/ DataFile存储候选人信息的文件名,next为是否进行

5、下一次投标操作的选项 char DataFile120=用户.txt; user TempS1; /临时存放用户信息 user TempS2; candidate TempS; /零时存放候选人信息 FILE *fp;/定义一个指向文件的指针变量fp FILE *fp1; begin: /和后面的goto begin对应 read(); / read1(); printf(请输入进行投票的用户账号:n); scanf(%s,&TempS2.name); printf(密码:n); scanf(%s,&TempS2.ps); fp1=fopen(DataFile1,ab+); /读写用户信息 i

6、f(fp1=NULL) printf(n打开%S失败!按任意键结束.Open file %s fail!End With any key.n,DataFile1); perror(Open file fail); getch(); exit(1); while(fread(&TempS1,sizeof(user),1,fp1)!=(int)NULL) for(j=0;jtotal;j+) if(strcmp(total_userj.name,TempS2.name)=0 & strcmp(total_userj.ps,TempS2.ps)=0) /如果输入的名字和内存的一样 k=j; over

7、_flag=1; break; break; if(over_flag) m=0; else printf(此用户不存在或密码错误.按任意键返回.); getch(); over_flag=0; main_v(); if(total_userk.sum) printf(此用户已经投过票了!); getch(); main_v(); else /如果票数=0说明有这个用户只投了一次否则 flag=0;/flag用来标志是否找对应编号,即投票是否成功 printf(请输入您要投票的候选人的号码:); scanf(%ld,&candidatenum); printf(您所投票的候选人号码是:%ldn

8、,candidatenum); for(i=0;ic_total;i+) if(c_mani.number=candidatenum) flag=1; c_mani.vote+; total_userk.sum+; if(flag) printf(投票成功n); total_userk.sum+; fwrite(&total_userk,sizeof(user),1,fp1); fclose(fp1); fp=fopen(DataFile,wb); if(fp=NULL)/如果当前文件不存在,提示打开文件失败 printf(n打开文件失败!按任意键结束.Open file fail! End

9、With any key.n,DataFile); perror(Open file fail); /同系统的错误一起输出 getch();/暂停,按任意键继续 exit(1);/返回1给程序 for(i=0;ic_total;i+) fwrite(&c_mani,sizeof(candidate),1,fp);/用二进制将数据输出到文件 fclose(fp); else printf(投票失败!您要投票的号码不存在n); printf(按任意键返回首页! n); getch(); return; fp=fopen(DataFile,rb);/ 显示投票后的情况 if(fp=NULL) pri

10、ntf(n打开%s失败!按任意键结束.Open file %s fail! End With any key n,DataFile); perror(Open file fail); getch(); exit(1); printf(整理后的最新投票情况:n); printf(n候选人号码 t候选人姓名 t票数n); while(fread(&TempS,sizeof(candidate),1,fp)!=(int)NULL) if(TempS.number!=0) printf(n%ld t%s t%d n,TempS.number,TempS.name,TempS.vote); fclose

11、(fp); printf(n继续吗?是(Y)/否(N): ); fflush(stdin);/清空输入缓冲区 next=getchar(); putchar(n); if(next=y|next=Y)goto begin; m=0; system(cls);void main_a()/管理员界面 int key; do printf(nn*n); printf(*欢迎进入班委投票界面*n); printf(*n); printf(* 1.创建新候选人 2.创建新用户 *n); printf(* 3.查询候选人信息 4.显示所有候选人 *n); printf(* 5.选举结果显示 6.投票界面

12、*n); printf(* 7.删除候选人 0.退出 *n); scanf(%d,&key); switch(key) case 1:addcandidate();break; case 2:system(cls);addUser();break; case 3:system(cls);search();break; case 4:system(cls);scan();break; case 5:system(cls);sort(); break; case 6:system(cls);printf(nn 您是投票者!欢迎您登录系统!正在进入投票者界面.n); main_v(); break;

13、 case 7:del();break; case 0:break; default:break; while(key!=0);void addcandidate()/创建候选人 char DataFile20=候选人.txt; FILE * fp=NULL; char c; int over_flag=0; candidate TempS; read(); fp=fopen(DataFile,ab+);/ab+读写 do printf( *创建新候选人*n); printf(请输入:); printf(候选人号码:); scanf(%ld,&TempS.number); for(i=0;ic

14、_total;i+)/检查输入编号是否有重复 if(TempS.number=c_mani.number) printf(该号码已存在.); over_flag=1; break; if (over_flag) over_flag=0; continue; printf( 姓名:);scanf(%s,&TempS.name); TempS.name19=0; for(i=0;ic_total;i+) if(strcmp(TempS.name,c_mani.name)=0) printf(该姓名已存在!请再输入一次!按任意键继续.); getch(); over_flag=1; break; i

15、f (over_flag) over_flag=0; continue; printf( 简介:); fflush(stdin);/清空输入缓冲区 gets(TempS.intro); TempS.intro399=0; TempS.vote=0; c_manc_total=TempS;/将数据加入原始数据,用于下一次输入比较 c_total+; if(fwrite(&TempS,sizeof(candidate),1,fp)!=1) printf(n写入文件失败!按任意键结束.write file is fail! End with any keyn,DataFile); perror(wr

16、ite file fail); getch(); exit(1); printf(要继续创建新的候选人吗?是(Y)/否(N): ); fflush(stdin); c=getchar(); while(c=Y|c=y); fclose(fp); printf(n按任意键返回首页!); getch();system(cls);void read()/读取候选人信息 char DataFile20=候选人.txt; FILE * fp=NULL; c_total=0; fp=fopen(DataFile,rb);/rb只读 if(fp=NULL) printf(n打开%S失败!按任意键结束.Ope

17、n file %s fail!End With any key.n,DataFile); perror(Open file fail); getch(); exit(1); while(fread(&c_manc_total,sizeof(candidate),1,fp)!=(int)NULL) c_total+; fclose(fp);void read1()/读取用户信息 char DataFile20=用户.txt; FILE * fp=NULL; total=0; fp=fopen(DataFile,rb);/rb只读 if(fp=NULL) printf(n打开%S失败!按任意键结束

18、.Open file %s fail!End With any key.n,DataFile); perror(Open file fail); getch(); exit(1); while(fread(&total_usertotal,sizeof(candidate),1,fp)!=(int)NULL) total+; fclose(fp);void addUser()/创建用户 FILE *fp=NULL; char DataFile20=用户.txt;/存储投票人信息的文件名 user TempS; int over_flag=0; char c; fp=fopen(DataFile

19、,rb);/读入原始数据,用于检查输入是否有重复 if(fp=NULL) printf(n打开%S失败!按任意键结束.Open file %s fail!End With any key.n,DataFile); perror(Open file fail); getch(); exit(1); while(fread(&total_usertotal,sizeof(user),1,fp)!=(int)NULL) total+; fclose(fp); fp=fopen(DataFile,ab+); do printf( *创建新用户* ); printf(n请输入:); printf(用户名

20、:);scanf(%s,&TempS.name); TempS.name19=0; for(i=0;itotal;i+)/检查输入姓名是否有重复 if(strcmp(TempS.name,total_useri.name)=0) printf(该用户名已存在!n); over_flag=1; break; if (over_flag) over_flag=0; continue; printf( 密码:); scanf(%s,&TempS.ps); TempS.ps7=0; printf( 权限:);scanf(%d,&TempS.power); if(TempS.power!=1) Temp

21、S.power=0; TempS.sum=0; total_usertotal=TempS;/将数据加入原始数据 total+; if(fwrite(&TempS,sizeof(user),1,fp)!=1) printf(n写入文件失败!按任意键结束.write file is fail! End with any keyn,DataFile); perror(write file fail); getch(); exit(1); printf(要继续创建新用户吗?是(Y)/否(N):); getchar(); c=getchar(); while(c=Y|c=y); fclose(fp);

22、 printf(用户资料数据处理完毕.n,DataFile);/在屏幕上显示文件内容 printf(所有用户具体情况如下:n); fp=fopen(DataFile,rb); printf(*); if(fp=NULL) printf(n打开文件失败!按任意键结束.Open file fail! End With any key.n,DataFile); perror(Open file fail); getch(); exit(1); printf(n姓名tt密码tt权限n); while(fread(&TempS,sizeof(user),1,fp)!=(int)NULL) /当文件里有内

23、容时打印 printf(n%stt%-8stt%dn,TempS.name,TempS.ps,TempS.power); fclose(fp); printf(*); printf(n按任意键返回首页!); getch(); system(cls);void scan()/显示候选人信息 read(); printf(候选人资料:n); printf(*n); for(i=0;ic_total;i+) if(c_mani.number=0) continue; else printf(号码:%-15ld,c_mani.number); printf(姓名:%-19s,c_mani.name);

24、 printf(简介:%sn,c_mani.intro); printf(*); printf(n按任意键返回首页!); getch();void search() /查询候选人信息 char c; long number; int flag=0; read(); do printf(nt请输入要查询的候选人号码:); scanf(%ld,&number); for(i=0;ic_total;i+) if(number=c_mani.number) printf(t您要查询的候选人信息如下:nn); printf(t号码:%ld n,c_mani.number); printf(t姓名:%s

25、n,c_mani.name); printf(t简介:%s n,c_mani.intro); flag=1; break; if (flag) flag=0; else printf(t对不起,没有您要查询的候选人n); printf(t要继续查询候选人吗?是(Y)/否(N): ); getchar(); c=getchar(); while(c=Y)|(c=y);void sort()/整理所有投票,选举结果显示 int i,k,j,t=0,flot=0; candidate c_man2N/*存放排序后的数据 */, temp; read(); for(i=0;ic_total;i+) if(c_mani.number!=0) c_man2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1