欢迎来到天天文库
浏览记录
ID:53788141
大小:651.02 KB
页数:27页
时间:2020-04-07
《电子投票系统C语言课程设计-广东工业大学.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计报告一、需求分析:1、设计题目:电子投票系统2、设计内容及要求:(1)通过编程建立一个小型电子投票系统,其中包含电子投票、票数统计功能。尽量做到提供一个简单的人机界面,系统界面友好,使用方便。(2)软件的使用者分为两类,一类为管理员,可以对候选人信息进行初始化和修改,还可浏览候选人信息介绍,可对候选人的票数进行排序以及对系统的用户进行管理,创建使用者用户名和密码等。另一类为使用者—普通投票者,该类用户需要用管理员分配的用户名和密码正确登录系统,可以查询候选人介绍、投票等。(投票是只需做到输入自己想要投票的候选人编号即可完成投票)3、系统功能分析:本系统程序功能:(1
2、)投票者功能a.浏览所有候选人资料b.查询要了解的候选人的信息c.在了解候选人之后进行投票(2)管理员功能a.创建新的候选人资料b.创建新的用户资料c.查询要了解的候选人资料d.浏览所有的候选人资料e.对候选人票数进行统计并排序二、具体设计1、功能模块(1)开始运行与结束运行界面模块开始运行显示有“电子投票系统”字样的界面,结束运行时则输出显示“感谢参与、再见”字样的界面。(2)功能选择模块根据输入的用户名和密码,分别进入管理员界面和投票者界面(3)身份验证模块验证管理员和投票者的用户名和密码是否正确,不正确可选择重新输入用户名和密码或者退出。(4)投票人管理模块 实现对投
3、票人的管理功能,如创建投票人用户名和密码。主要用结构体类型的数组和文件的读写来完成数据的管理操作。(5)候选人管理模块同投票人管理模块类似,要实现对大量有一定结构的信息进行管理的操作,如创建候选人,查询、浏览候选人信息。因此定义候选人信息结构体,用于存储候选人信息记录,并且将大量记录存储在硬盘文件中以便保存。用文件的读写函数实现各项功能。(6)投票区模块投票区模块用于完成系统的主体功能,提示投票人输入自己想要选举的候选人序号,系统立刻将该候选人对应的票数加一,并将目前的投票状况显示给投票人。因此该部分只需读取候选人信息文件,将对应的候选人票数加一后再写回文件并显示即可。(7
4、)票数管理模块:该模块具有对候选人票数进行排行和浏览两大功能。2、程序流程图三、源程序代码#include#include#include#include#include#defineclosegrclosegraph#defineN30voidwelcome();/*欢迎*/voidthans();/*再见*/voidmain_a();/*管理员主控平台*/voidmain_v();/*用户(投票者)主控平台*/voidcreate();/*创建候选人*/voidCreat
5、User();/*创建用户*/voidsearch();/*查询候选人信息*/voidbrowse();/*浏览候选人信息*/voidvote();/*用户投票*/voidread_c_man();/*读取候选人信息*/voidc_save();/*存储候选人信息*/inttotal=0,c_total=0;inti=0;/*候选人信息数据结构描述候选人的编号、姓名、简介和得票数量信息,作为候选人信息记录存在文件中*/typedefstructcandidate{longnumber;charname[20];charintro[400];intvote;}candidat
6、e;/*系统用户数据结构描述系统用户编号、用户名、密码和权限信息,作为一整条记录存放在文件中*/typedefstructuser{charname[20];charps[8];intpower;}user;candidatec_man[N];usertotal_user[N];voidread_c_man(){charDataFile[20]="候选人.txt";FILE*fp=NULL;c_total=0;fp=fopen(DataFile,"rb");if(fp==NULL){printf("Openfile%sfail!EndWithanykey",Data
7、File);perror("Openfilefail");getch();exit(1);}while(fread(&c_man[c_total],sizeof(candidate),1,fp)!=(int)NULL){c_total++;}fclose(fp);}voidc_save(){FILE*fp=NULL;charDataFile[20]="候选人.txt";/*存储投票人信息的文件名*/fp=fopen(DataFile,"wb");for(i=0;i
此文档下载收益归作者所有