电子投票系统.docx_第1页
电子投票系统.docx_第2页
电子投票系统.docx_第3页
电子投票系统.docx_第4页
电子投票系统.docx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子投票系统信息工程系计算机科学与技术5173002142院(系):专业:班级:团队成员:(1) 姓名:来紫祥姓名:王泽峰(2) 姓名:石凤丽姓名:陈阳(3) 姓名:贺天浩姓名:胡成(4) 姓名:胡伊童学号:517300214214学号:517300214229学号:517300214225学号:517300214204学号:517300214209学号:517300214210学号:517300214211指导老师:杜君所在单位:湖北工程学院新技术学院课程设计时间:2019年5月1日至5月18日(6)修改候选人信息请输入候选人的编号:1001请选择要修改的内容1 .修&候企人姓名2

2、.修改候选人简介0.退出*请选择0到2:2请输入新的简介:学委是重新输入编号?是(Y)/否(N):N(7)删除候选人信息请输入候选人编号:1006请确认是否删除!是(Y)/否(N):Y(8)查询用户信息adminadminlaizixianglail58720497233086408355按任意键返回!.123456789(9)修改用户信息请输入用户的账号:3086408355请选择要修改的内容1.修改用户账号2 .修改用户密码.修改用户权限请选择1到3:2请输入新的密码:147258369(10)删除用户信息请输入用户账号:3086408355请确认是否删除!是(Y)/否(N):Y删除成功!

3、是否重新输入用户账号!是(Y)/否(N):.(11)清空投票信息投票信息清除完成!按任意键返回!候选人功能测试:(1) 浏览所有候选人候选人资料:号码:1001号码:1002号码:1003号码:1004号码:1005号码:1006号码:1007姓名:王泽峰姓名:陈阳姓名:胡成姓名:贺天浩姓名:胡伊童姓名:来紫住姓名:石凤丽简简简简简简简生生生生生生生学学学学学学学'.匕.'K_.*2_q.匕._._飞7*._2_!_2_.*>.!,!.、,.、,.,',.、.、,',.、,A、,.,,.、,、,.,A、,、,、,A、,.、,、,.',、.、,*,A

4、、,A、,.,.,.、,、,.,A、,A、,.、*.、,.、,'.,、.、,.、,A、,.、,A,'、,、,,,A、,、,.、*,.、,、,.,.,、,.、,.、按任意键返回首页!(2) 查询候选人信息您要查询的候选人信息如下:号码:1007姓名:石凤丽简介:学生要继续查询候选人吗?是(Y)/否(N):N(3) 投票瀚疆溷啊°。7mi情况:候选人号码候选人姓名票数1001王泽峰31002陈阳21003胡成11004贺天浩11005胡伊童11007石凤丽4继续吗?是(Y)/否(N):.7.小结该程序基本达到了姗结构课程设计的要求,但程序还是存在一定的不足之处。其Fe设置

5、用户密码检测执制,对密码的长度没有限制且不能检测密码复杂度,因此系统安全性不高,可能会出现不确定性的错误;其二是修改函数没有检查机制,可能会导致信息重复。编写过程中,由于用至|牖秘作,所以遇很多指针指向错误的问题,经常导致程序直接崩溃。在运行过程中,发现出现回车键被读取的IW况,从而导致无法正常输入,解决方法是在数据输入输QAgetcharO函数。同时还发现清空缓冲区函数未发挥作用,因为C语言的标准里从来没有定义过fflush(stdin),某些编译器如VC6支持用fflush(stdin)来清空输入缓冲,但是并非所有编译器都要支持这个功能,如linux下的gcc就不支持。在文件i麴田程中,发

6、现倒iintfeof(FILE*strearn)函躬£法按正确判断文件是读取结尾。因为feof判断文件结束是通过读取函数fread/fscanf等返回错i疑识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误,C语言没有像C廿那样文件预读函数peek。另外需要注意的是,用指针作为函数返回值时需要注意的一点是,函数运行结束后会销毁在它内部定义的所有局部娜,包括局部变量、局部数组和形式参数,函数返回的指针请尽量不要指向这些施C语言没有任何机制来保证这甄据会一直有效,它们

7、在后续使用过程中可能会引发运行时错误(局部变量可能是在栈上创建出来的,函数结束后局剖技量可能会被销毁o通过这次C语言的课程设计,让我们从更深一层了解了C语言作用的啾以及C语言的魅力。我们一定要好好掌握C语言方方面面的知识,学会编程才仓雌出更美好的东西,另外,做这个课程设计的时彳蛾是参考了很多资料才完成的,所以在编写程序这方面,我们的功力还远远不够,需要努力努力,继续加强!附录(程序源代码)Main,c#includez,evotingsystem.hintmain()InitializationO;WelcomePage();UserLogin();SaveUserlnfo();SaveCan

8、didatelnfo();End_Page();return0;)evotingsystem,httpragmaonce#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>ttdefineNULL0数据定义/*候选人信息数据结构描述候选人的编号、姓名、简介和得票数量信息,作为候选人信息记录存在文件中*/typedefstructcandidatelongnumber;charname20;charintro400:intvote;structcandidate

9、*next;candidate:/*系统用户数据结构描述系统用户编号、用户名、密码和权限信息,作为一整条记录存放在文件中*/typedefstructuser(characcount20:charpassword17;intpower:structuser*next;user;功能定义/*欢迎界面*/voidWelcomePage():/*再见*/voidEndPage();/*管理员界面*/voidAdminPage();/*用户(投票者)界面*/voidVoterPage();/*创建候选人*/voidCreateCandidate();/*创建用户*/voidCreatUser();/*

10、查询候选人信息*/voidQueryCandidatelnfo():/*浏览全部候选人信息*/voidBrowseCandidatelnfoO;/*展示单个候选人信息*/voidDisplayCandidatelnfo(candidate*p);/*展示单个用户信息*/voidDisplayUserlnfo(user*p);/*浏览全部用户信息*/voidBrowseUserlnfo();/*用户投票*/voidVoteO;/*读取候选人信息*/voidReadCandidatelnfo();/*存储候选人信息*/voidSaveCandidatelnfo():/*存储候选人信息*/voidS

11、aveUserlnfo():/*预读取文件的下一个字节(用来判断文件是否到达结尾)*/intpeek(FILE*fp);/*初始化加载候选人数据加载用户数据*/voidInitialization();/显示投票情况voidShowVotingSituation();/*从文件读取用户信息*/voidReadUserlnfo();/*按票数从高到低列出所有数据*/voidCandidateSort():/*用户登陆*/voidUserLogin();/*修改投票人信息*/voidModifyCandidatelnfo();/*根据账号搜索用户信息并返回指向该用户的指针,没该用户信息则返回空*/

12、user*SearchUser(characcount);/*根据候选人编号搜索候选人信息信息并返回指向该用户的指针,没该候选人信息则返回空*/candidateSearchCandidate(longnumber):/*清除投票信息*/voidClearVotelnfoO:/*修改用户信息*/voidModifyUserlnfo();/*删除候选人信息*/voidDeleteCandidatelnfoO;/*删除用户信息*/voidDeleteUserlnfo();evotingsystem,c#include,zevotingsystem.h/*存储投票人信息的文件名*/charCandi

13、dateInfoFileName二”Candidatelnfo,dat”;/*用户信息的文件名*/charUserlnfoFileName="UserInfoFile,dat”;intUserNum=0:intCandidateNum=0;/候选人头指针candidatecandidatelisthead二NULL;/候选尾指针candidatecandidatelistend=NULL;排序后的候选人头指针candidate*candidatelisthead2=NULL;/用户头指针user*userlisthead=NULL;/用户尾指针user*userlistend=NUL

14、L;voidReadCandidatelnfo()FILE*fp=NULL;candidate*p二NULL:candidate*s=NULL;CandidateNum二0;candidatelisthead=(candidate*)malloc(sizeof(candidate):candidate1isthead>next=NULL;candidatelistend二candidatelisthead;p二candidatelisthead;fp=fopen(CandidateInfoFi1eName,rb);if(fp=NULL)printf(,znOpenfile%sfail!E

15、ndWithanykeyn,CandidatelnfoFileName);perror(z,0penfilefail");getchO;exit(1);)elsewhile(peek(fp)!二NULL)s=(candidate*)malloc(sizeof(candidate);inta=fread(s,sizeof(candidate),1,fp);s>next=NULL;p->next二s;P二s;candidatelistend=p;CandidateNum+;fclose(fp);voidReadUserlnfo()FILE*fp=NULL;user*p=NUL

16、L;user*s=NULL;UserNum=0;userlisthead二(user*)malloc(sizeof(user);strcpy(userlisthead->account,,superadmin,z);strcpy(userlisthead->password,superadmin);user1isthead->power=1;userlistend二userlisthead;p二userlisthead;p->next=NULL;fp=fopen(UserlnfoFileName,rb);if(fp=NULL)printf(nOpenfile%sfail

17、!EndWithanykeyn,UserlnfoFileName);perror(''Openfilefail");getchO;exit(1);)else(while(peek(fp)!=NULL)s=(user*)malloc(sizeof(user);fread(s,sizeof(user),1,fp);s->next=NULL;p->next=s;P=s;userlistend二p;UserNum+;fclose(fp);/*存储候选人信息*/voidSaveCandidatelnfo()(FILE*fp二NULL;candidate*p二NULL

18、;fp=fopen(CandidatelnfoFileName,wb);if(fp=NULL)(perror(''writefilefail");getchO;exit(1);)elsefor(p二candidatelisthead->next;p!二NULL;p=p->next)fwrite(p,sizeof(candidate),1,fp);)fclose(fp);/*存储用户信息*/voidSaveUserlnfo()FILE*fp=NULL;user*p二NULL;fp二fopen(UserlnfoFileName,wb);if(fp=NULL)(

19、perror("writefilefail");getch();exit(1);else=p->next)=p->next)for(p=userlisthead->next:p!=NULL:pfwrite(p,sizeof(user),1,fp);fclose(fp);intpeek(FILE*fp)chara;intflag=NULL;读取文件流中的下一个字节if(fread(&a,sizeof(char),1,fp)!=NULL)(/将文件指针向后移动一个字节fseek(fp,-1,SEEK_CUR);flag二1;returnflag;/*初

20、始化加载候选人数据加载用户数据*/voidInitialization()(ReadCandidatelnfo();ReadUserlnfo();printf(,z程序初始化成功!n");voidVote()/*临时候选人编号*/longcandidatenum;/*flag用来标志是否找对应编号,即投票是否成功*/intflag=0;待添加功能/*检测用户投票次数防止多次重复投票*/intvotetimes=0;/*用来检测是否进行下一次投票*/charisnext二'N'candidate*p=NULL;candidate*temp=NULL;do(printfC

21、请输入您要投票的候选人的号码:);scanf(ld,fecandidatenum);printf(您所投票的候选人号码是:ldn,candidatenum);if(temp=SearchCandidate(candidatenum)!=NULL)(temp-vote+;printf(,z投票成功n);/*显示投票后的情况*/ShowVotingSituation();else(isnext='N'printf(投票失败!您要投票的号码不存在n);printf(按任意键返回上一步!n);getchO;getch();printffn继续吗?是(Y)/否(N):);getchO;i

22、snext二getchar();while(isnext='y'|isnext=,Y,);voidShowVotingSituation()candidate*p二NULL;printf(,z最新投票情况:n);printfCAn候选人号码t候选人姓名t票数n);for(p=candidatelisthead->next;p!=NULL;p=p->next)1.需求分析L1问题描述投票是选举的一种表现形式,但是较电子投票来说,纸质投票方式相对复杂。电子投票系统以文件的方式保存候选人信息和用户信息,并提供投票和查询功能供用户查询和使用投票系统。下面介绍用c语言实现的简

23、易电子投票系统,它支持基本的用户的投票、查找、浏览功能,管理员的删除、查找、排序、新建候选人和用户功能,以及系统自带的文件读写功能。1.2功能描述电子投票系统要求实现最基本的功能,用户的投票、查找、浏览功能以及管理员的删除、查找、排序、新建候选人和用户功能,为此需要首先定义两个数据结构。其一是候选人,基本属性包括编号、姓名、简介和票数;其二是用户,基本属性包括账号、密码和权限。整个系统由如下几大功能模块组成。投票人主要功能如下:(1) 投票人的投票方式:在系统提示符下输入要选举的选人编号,即可完成投票。(2) 投票人了解候选人的方式:浏览候选人列表、输入序号查询候选人介绍。管理员的主要功能如下

24、;初始候选人信息:在系统投入使用前需要将投票选举的候选人信息录入系统中,以便投票和查看。管理员的初始化工作就是将候选人的序号、姓名和简介录入系统。(1) 浏览候选人简介:为随时掌握候选人的信息,以便进行修改,管理员有权浏览候选人简介。浏览的顺序按照候选人序号即可。(2) 修改候选人简介:当系统更新或候选人信息有所变化时,输入候选人序号对其信息进行修改。(3) 查询投票情况:管理员有权查询当前各个候选人得票情况,以便得出最终被选出的候选人信息。(4) 清除投票信息:当投票工程结束后,管理员选择清除投票信息即清除系统中所有候选人的票数,使之归零。(5) 安全管理:管理员可以对投票人进行管理,投票人

25、只有用管理员规定的用户名和密码才能进入系统进行投票。管理员还可以更改用户名、密码和权限,并对投票人信息进行增加、删除、查询、排序和初始化等操作。printf(n%ldt%st%dn,p->number,p->name,p->vote):/*创建用户信息*/voidCreatUser()user*s=NULL;user*p=NULL;intflag=0;charc:s=(user*)malloc(sizeof(user);s->next=NULL;/*读入原始数据,用于检查输入是否有重复*/system(cls);dosystem(cls);printf(*6U建新用户*

26、");printf(,zn请输入:);printf(n用户名:);scanfs->account);s->account19='0'/*检查输入姓名是否有重复*/SearchUser函数用来搜索if(SearchUser(s->account)!二NULL)printf(,z该用户名巳存在!);getch();flag=1;elseprintf(密码:”);scanf(s,&s->password);s>password16二'0'printfC提示权限只有1和0,如果权限输入不在1和0之间那么就默认0o提示1为管

27、理员权限,0为投票人。n);printf(,z权限:);scanf(d,&(s->power);if(s->power!=1)s->power=0;/*将数据加入原始数据,用于下一次输入比较*/userlistend->next=s;userlistend二s;UserNum+;printfC要继续创建新用户吗?是(Y)/否(N):);getchar():c=getchar();while(c='Y'IIc='y');/*在屏幕上显示文件内容*/printfC用户资料数据处理完毕.n);printfC所有用户具体情况如下:n);y

28、-k4-q*q*q*q*q*q*q*q*q*q*1*4*q*q*q*q*IjL>1*7*7*7*7*1*7*7*T*T*7*1*7*T*7*T*7*)BrowseUserlnfo();printfCzn按任意键返回首页!);getchO;/*创建候选人*/voidCreateCandidate()candidate*p二NULL;candidate*s=NULL;charc='N'longnumber;system(/cls/,);dosystem(cls);printf(*创建新候选人*n);printfC请输入:n);printf(候选人号码:);scanf(ld,f

29、enumber);/*检查输入编号是否有重复*/if(SearchCandidate(number)printf(,z该号码已存在,按任意键结束!n);getchO;break;elses=(candidate*)malloc(sizeof(candidate);s>next=NULL;s->number=number;printfC姓名:);scanf(s,s->name);s>name19='0'printfC简介:);getchar();/scanf正则表达式用法scanf(n,s>intro);s>intro399='0

30、9;s>vote=0;/*将数据加入原始数据,用于下一次输入比较*/candidatelistend->next=s;candidatelistend=s:CandidateNum+;printf(要继续创建新的候选人吗?是(Y)/否(N):);getchar();c=getchar();while(c='Y'|c='y');/*在屏幕上显示文件内容*/BrowseCandidatelnfo();/*浏览全部候选人信息*/voidBrowseCandidatelnfo()candidate*p二NULL;/*清屏*/system(cls);print

31、f(候选人资料:n);v"»iv-4-/-*(*X*A*4*L*X*1*X*4*1*X*X*X*>1*1*X*X*A*4*1*4*X*1*X*X*X*1*A*4*X*A*v>iIjIZjszjszjszjsZjsXjsZjsZ|SzjszjxzjsXjsZjszjszjsxjszjsZjsZjsxp%ZjsZjsXjXZ|XZjsZjszjsZ|SzjxIIIfor(p二candidatelisthead->next;p!二NULL;p二p->next)DisplayCandidateinfo(p);)-w4-、,)JLLzJLy*y*T*T*T*T

32、*7*T*?*T*T*T*7*T*7*T*T*T*7*?*T*7*T*T*T*7*7*T*T*T*T*T*7*7*T*T*?*T*T*7*7*T*T*T*T*T*T*7*T*T*T*T*T*?*7*T*T*T*T*7*7*T*T*T*)printf(,zn按任意键返回首页!);getch();/*展示单个候选人信息*/voidDisplayCandidatelnfo(candidate*p)printf(号码:T51d,p->number);printf(姓名:%T9s,p->name);printf(简介:sn,p->intro);/*展示单个用户信息*/voidDispl

33、ayUserlnfo(user*p)printf(,zn%stt%-8stt%dn/z,p->account,p->password,p->power);/*浏览用户信息*/voidBrowseUserlnfo()system(cls);user*p;printfCn姓名tt密码tt权限n);for(p=userlisthead->next;p!=NULL;p=p->next)DisplayUserlnfo(p);)printf(,z按任意键返回!);getchar();getchar();/*查询候选人信息*/voidQueryCandidatelnfo()ch

34、arc='N'longnumber;candidate*p=NULL;do(p二NULL;systeni(cls);printf(nt请输入要查询的候选人号码:);sc&nf(ld,fenumber);if(p=SearchCandidate(number)!=NULL)system(cls);printf(/zt您要查询的候选人信息如下:nn);DisplayCandidatelnfo(p);else(printf(t对不起,没有您要查询的候选人n);printfCAt要继续查询候选人吗?是(Y)/否(N):);getchar();c=getchar();while(

35、c='Y,)|(c='y');voidCandidateSort()(system(cls);candidate*p,*s;candidate*i;chartemp400;longtemp_num;/*candidatelisthead2用于存放排序后的数据*/candidatelisthead2=(candidate*)malloc(sizeof(candidate):p=candidatelisthead2;/*将候选人链表复制一份*/for(i二candidatelisthead->next;i!=NULL;i=i->next)(s=(candidat

36、e*)malloc(sizeof(candidate):s->next=NULL;strcpy(s>name,i->name);strcpy(s->intro,i->intro);s>number=i>number;s>vote=i>vote;p->next=s;P二s;/*用冒泡法排序*/for(p=candidatelisthead2->next;p!=NULL;p=p->next)for(s=p->next:s!=NULL;s=s->next)if(s->vote>p->vote)str

37、cpy(temp,s->name);strcpy(s->name,p->name);strcpy(p->name,temp);strcpy(temp,s>intro);strcpy(s->intro,p->intro);strcpy(p->intro,temp);temp_num二s->number;s->number二p->number;p->number=tempnum;temp_num=s->vote;s>vote=p->vote;p->vote=temp_num;/*排序结束*/printf

38、(票数从高到低排列如下:n);printf(*n);票数*n);p!二NULL;p=p->next)printf(*号码候选人printf(*n);/*输出排序后的结果*/for(p=candidatelisthead2->next:printf(*%T31d%-13s%-6d*n”,p->number,p->name,p>vote):printf(*n);printf(,z按任意键返回首页!);getchO;)voidWelcomePage()printf(*电子投票系统*n);printf(z,按任意键进入系统登录界面.);getch();system(cls

39、);printf(*欢迎登陆电了投票系统*n);voidEnd_Page()system(cls);printf("nnnnnnr感谢您的参与!n);printf(,znnnnnnr再见!);getchO;/*管理员界面*/voidAdminPage()intkey;dosystem(cls);/*输出主菜单*/printf(*n);printf(,z管理员界面nr);printf(*n);printf(z,l.创建新候选人n);printf(,z2.创建新用户n);printf(3.查询候选人信息n);printf("4.浏览所有候选人n);printf(5.整理所有投票

40、n):printf(6.修改候选人信息n);printf(7.删除候选人信息n);printf(,z8.查询用户信息n);printf(z,9.修改用户信息n");printfC'lO.删除用户信息n);printf(ll.清空投票信息n);printf(z,0.退出n);printf(*请选择0到11:);scanf(d,&key);switch(key)case1:CreateCandidate();break;case2:CreatUser();break;case3:QueryCandidatelnfo();break;case4:BrowseCandidat

41、elnfo();break;case5:CandidateSort();break;case6:ModifyCandidatelnfo();break;case7:DeleteCandidatelnfo();break;case8:BrowseUserlnfo();break;case9:ModifyUserlnfo();break;case10:DeleteUserlnfoO;break;case11:ClearVotelnfoO;break;case0:break;default:break;while(key!=0);End_Page();/*投票者界面*/voidVoterPage()

42、intkey;dosystem(,cls,/);/*输出主菜单*/printf(*nr);printfC投票者界面nr);printf(*nr);printf("1.浏览所有候选人nr);printf(z,2.查询候选人信息nr);printf(3.投票nr);printfCO.退出nr);printf(*请选择0到3:);switch(key)case1:BrowseCandidatelnfo();break;case2:QueryCandidatelnfo();break;case3:system(cls);Vote();break;case0:break;default:bre

43、ak;while(key!=0);End_Page();voidUserLogin()(characcount20;charpassword17:inti=0;chart:user*tempuser;/判断登陆是否成功intlogin_success=0;intlogin_times=0;用来输出错信息charerrormessage25=0;判断用户是否重新登陆charrelogin='N'do(printf(,z请输入用户名:”);scanf(s,account);搜索用户名temp_user=SearchUser(account);getchar();if(tempuse

44、r!=NULL)(doprintf("n请输入密码:);读取密码时用星号显示while(1)t二getchO;if(t!二r'&&t!='b')printf(*);passwordi=t;i+;elseif(t=b'&&i!=0)printf(bb);i;elseif(t=r,)passwordi='0'break;/scanf(s,password);if(strcmp(temp_user->password,password)=0)loginsuccess=1;break;elseloginsu

45、ccess=0;login_times+;printfCn密码错误,请重新输入!n);)while(login_times=3);elselogin_success=0;/错误信息if(loginsuccess=0)strcpy(error_message,账户错误!n);if(logintimes>3)strcpy(errormessage,密码多次错误,请联系管理员重置密码!n);判断登陆是否成功if(loginsuccess=1)(if(temp_user>power=1)system(cls);printfC您是管理员!欢迎您登录系统!按任意键进入管理员界面.n);getc

46、hO;AdminPage();2.总体设计程序主要包括三大模块:输入/输出模块、管理模块和文件操作模块。输入/输出模块的主要功能是人机交互,包括程序界面显示、用户输入响应、结果输出等;管理模块从输入/输出模块读取用户命令并进行相应的操作,包括录入、删除、修改、查找、排序等;文件操作模块获取管理模块中的数据或命令,然后进行存储文件的读写,如图0-1所示。开始初始化(加栽数据)欢迎界面界面设计程序的主界面是一个文本方式的菜单,用户通过键盘输入数字,选取相应的操作命令。3. 详细设计4.1重要数据结构设计电子投票系统中候选人信息用结构体candidate表示,包含四个属性。number属性是候选人的

47、唯一编号,name、intro、vote分别代表候选人的姓名、简介、票数ostructcandidate*next表示单链表的指针域。typedefstructcandidatelongnumber;/*如power的值为0,则是投票者,并调用投票者界面*/elsesystem(cls);printf(您是投票者!欢迎您登录系统!按任意键进入投票者界面.n);getchO;VoterPage();/登陆失败输出错误语句,并询问用户是否重新登陆elserelogin二'N'printferrormessage);printfC是重新登陆?是(Y)/否(N):);getchar()

48、;scanf(c,ferelogin);logintimes=0;while(relogin='y'|relogin='Y');/*修改候选人信息*/voidModifyCandidatelnfo()system(,cls,/);candidate*temp;longnumber;判断是否重新输入charc='N'intflag=0;doprintf(z,请输入候选人的编号:);scanf(ld,fenumber);if(temp=SearchCandidate(number)!=NULL)(printfC请选择要修改的内容n);printf(,

49、zl.修改候选人姓名n);printf(z,2.修改候选人简介n);printf(0.退出);print"*请选择0到2:);scanffeflag);getchar();switch(flag)case1:printff请输入新的姓名:);scanf(s,temp->name);break;case2:printf(,z请输入新的简介:);scanf(n,temp->intro);break;case0:break;default:break;elseprintf(/z您输入的编号有误!,按任意键继续。);getchO;)printfCn是重新输入编号?是(Y)/否(N

50、):);getchar();scanf(%c,&c);while(c='Y'|c='y');/*搜索用户信息并返回指向该用户的指针,没该用户信息则返回空*/user*SearchUser(char*account)(user*p=NULL;for(p=userlisthead->next:p!=NULL;p=p->next)if(strcmp(account,p->account)=0)break;)returnp;/*搜索候选人信息信息并返回指向该用户的指针,没该候选人信息则返回空*/candidate*SearchCandidate

51、(longnumber)candidate*p二NULL;for(p=candidatelisthead->next;p!=NULL;p=p->next)if(number=p->number)break;returnp;/*清除投票信息*/voidClearVotelnfoO(system(cls);candidate*p;清除投票信息p->next)for(p=candidatelisthead-next;p!=NULL;pp->vote=0;printfC投票信息清除完成!按任意键返回!);getchO;/*修改用户信息*/voidModifyUserlnf

52、o()system(/cls/,);user*temp;characcount20;intflag=0;判断是否重新输入charc='N'doprintfC请输入用户的账号:);scanf(s,account);account19='0'getchar();if(temp=SearchUser(account)!=NULL)printf(请选择要修改的内容n);printfCzl.修改用户账号n);printf(/z2.修改用户密码n);printf(3.修改用户权限n);printfC请选择1到3:);scanf(d,&flag);switch(fla

53、g)case1:printf(,z请输入新的账号:);scanf(s,temp->account);break;case2:printf(z,请输入新的密码:);scanf(s,temp->password);break;case3:printf(,z请输入新的权限:");scanf(d,&(temp->power);break;default:break;else(printf(/z您输入的账号有误!,按任意键继续。n);getchO;)printfC是否重新输入用户的账号!是(Y)/否(N):);getchar();c二getchar;while(c=,

54、yc=,Y,);voidDeleteCandidatelnfo()(system(cls);candidate*temp;candidate*p;判断是否重新输入charc='N'确认删除charcondelet='N'longnumber;doprintf(请输入候选人编号:);sc&nf(ld,&number);if(temp=SearchCandidate(number)!=NULL)getchar();printfC请确认是否删除!是(Y)/否(N):);condelet二getchar():if(condelet二二'Y'|condelet二二'y')(p=candidatelisthead-next;while(p->next!=temp)p=p->next;)p->next=temp->next;free(temp);printfC删除成功!n);else(printfC删除取消!按任意键继续。n);getchO;else(printfCz您输入的编号有误!);printfC是否重新输入候选人编号!是(Y)/否(N):);getc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论