电子投票系统

电子投票系统
院 (系)信息工程系
专    业:计算机科学与技术
班    级:5173002142
团队成员
(1)姓名:来紫祥 学号:5173****4214
2)姓名:王泽峰 学号:5173****4229
3)姓名:石凤丽 学号:5173****4225
4)姓名:陈 阳 学号:5173****4204
5)姓名:贺天浩 学号:5*********09
6)姓名:胡 成 学号:5173****4210
7)姓名:胡伊童 学号:5173****4211
*******
所在单位:湖北工程学院新技术学院
课程设计时间:2019年5月1日至5月18
1.需求分析
1.1问题描述
投票是选举的一种表现形式,但是较电子投票来说,纸质投票方式相对复杂。电子投票系统以文件的方式保存候选人信息和用户信息,并提供投票和查询功能供用户查询和使用投票系统。下面介绍用C语言实现的简易电子投票系统,它支持基本的用户的投票、查、浏览功能,管理员的删除、查、排序、新建候选人和用户功能,以及系统自带的文件读写功能。
1.2功能描述
电子投票系统要求实现最基本的功能,用户的投票、查、浏览功能以及管理员的删除、查、排序、新建候选人和用户功能,为此需要首先定义两个数据结构。其一是候选人,基本属性包括编号、姓名、简介和票数;其二是用户,基本属性包括账号、密码和权限。
整个系统由如下几大功能模块组成。
投票人主要功能如下:
(1)投票人的投票方式:在系统提示符下输入要选举的选人编号,即可完成投票。
(2)投票人了解候选人的方式:浏览候选人列表、输入序号查询候选人介绍。
管理员的主要功能如下;
(1)初始候选人信息:在系统投入使用前需要将投票选举的候选人信息录入系统中,以便投票和查看。管理员的初始化工作就是将候选人的序号、姓名和简介录入系统。
(2)浏览候选人简介:为随时掌握候选人的信息,以便进行修改,管理员有权浏览候选人简介。浏览的顺序按照候选人序号即可。
(3)修改候选人简介:当系统更新或候选人信息有所变化时,输入候选人序号对其信息进行修改。
(4)查询投票情况:管理员有权查询当前各个候选人得票情况,以便得出最终被选出的候选人信息。
(5)清除投票信息:当投票工程结束后,管理员选择清除投票信息即清除系统中所有候选人的票数,使之归零。
(6)安全管理:管理员可以对投票人进行管理,投票人只有用管理员规定的用户名和密码才能进入系统进行投票。管理员还可以更改用户名、密码和权限,并对投票人信息进行增加、删除、查询、排序和初始化等操作。
2.总体设计
程序主要包括三大模块:输入/输出模块、管理模块和文件操作模块。输入/输出模块的主要功能是人机交互,包括程序界面显示、用户输入响应、结果输出等;管理模块从输入/输出模块读取用户命令并进行相应的操作,包括录入、删除、修改、查、排序等;文件操作
模块获取管理模块中的数据或命令,然后进行存储文件的读写,如01所示。
01电子投票系统流程图
3.界面设计
程序的主界面是一个文本方式的菜单,用户通过键盘输入数字,选取相应的操作命令。
4.详细设计
4.1重要数据结构设计
电子投票系统中候选人信息用结构体candidate表示,包含四个属性。number属性是候选人的唯一编号,name、intro、vote分别代表候选人的姓名、简介、票数。struct candidate *next表示单链表的指针域。
typedef struct candidate
{
    long number;
    char name[20];
    char intro[400];
    int vote;
    struct candidate *next;
} candidate;
电子投票系统中用户信息用结构体user表示,包含三个属性。account、password、power分别代表用户的账号、密码和权限。struct user *next表示单链表的指针域。
typedef struct user
{
    char account[20];
    char password[17];
    int power;
    struct user *next;
} user;
4.2功能函数设计
电子投票系统采用了 结构化设计的思想,程序中除了主函数外,共设计了28个函数。
(1)void WelcomePage()
功能:显示欢迎界面。
(2)void End_Page();
功能:显示结束界面。
(3)void AdminPage();
功能:显示管理员界面。
(4)void VoterPage();
功能:显示用户(投票者)界面。
(5)void CreateCandidate();
功能:创建候选人。
(6)void CreatUser();
功能:创建用户。
(7)void QueryCandidateInfo();
功能:查询候选人信息。
(8)void BrowseCandidateInfo();
功能:浏览全部候选人信息。
(9)void DisplayCandidateInfo(candidate *p);
功能:展示单个候选人信息。
(10)void DisplayUserInfo(user *p);
功能:展示单个用户信息。
(11)void BrowseUserInfo();
功能:浏览全部用户信息。
(12)void Vote();
功能:用户投票。
(13)void ReadCandidateInfo();
功能:读取候选人信息。
(14)void SaveCandidateInfo();
功能:存储候选人信息。
(15)void SaveUserInfo();
功能:存储用户信息。
(16)int peek(FILE *fp);
功能:预读取文件的下一个字节(用来判断文件是否到达结尾。
(17void Initialization();
功能:初始化,加载候选人数据,加载用户数据。
18void ShowVotingSituation();
功能:显示投票情况
19void ReadUserInfo();

本文发布于:2024-09-22 03:46:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/94388.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:候选人   功能   用户   信息   投票   管理员
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议