C语言课程设计报告电子投票系统(共39页).doc
《C语言课程设计报告电子投票系统(共39页).doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告电子投票系统(共39页).doc(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C 语言课程设计报告电子投票系统学院计算机学院专业年级姓名学号教师年 月 日广东工业大学计算机学院制一 . 设计题目电子投票系统二课程设计目的了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用 WIN-TC实现学生成绩管理系统的录入、查询、删除、统计等基本操作,使用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握 C 语言中的结构体、指针、函数(系统函数、自定义函数)、文件操作等知识。通过对系统的分析和设计,进一步巩固 C语言的学习,以提高对开发环境的进一步认识和综合编程能力。专心-专注-专业三系统功能本系统程序功能:(1)投票者功能a. 浏览所有
2、候选人资料b. 查询要了解的候选人的信息c. 在了解候选人之后进行投票(2)管理员功能a. 创建新的候选人资料b. 创建新的用户资料c. 查询要了解的候选人资料d. 浏览所有的候选人资料e. 对候选人票数进行统计并排序四系统功能模块结构图本程序利用单链表存储结构完成对学生成绩的动态管理, 其基本功能模块如下图所示:电子投票系统验证账号密码管投添添理浏查浏票投查查加加员览看览人票找找图 1程序功能模块结构图候投候候投候候五程序设计及各模块函数功能简述1数据结构链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。线形表的顺序存储结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻,因此可以随
3、机存取表中任一元素。链式存储结构的特点是用一组任意的存储单元存储线形表的数据元素。链表的最大的优点是对表的添加、删除、查找、排序等操作比较方便,因此采用链表来存储候选人 , 投票人相关信息。且对结点的定义如下:ttypedef struct candidate/候选人数据结构体long number;/候选人编号char name20;/候选人姓名char intro400;/候选人简介int vote;/候选人得票数candidate;typedef struct user/投票者数据结构体char name20;/投票者姓名char ps8;/对应密码int power;/权限user;2
4、.main() 主函数主函数是程序入口,采用模块化设计。创建用户文档,进行账号密码验证并根据账户不同调用不同函数进入不同的界面,执行不同的功能3main_a() 管理员界面根据输入数字的不同调用不同的函数进入对应的功能,返回主函数。相关的一些函数如下:addcandidate(); /创建候选人addUser();/创建投票者search(); /查询候选人信息scan();/浏览候选人信息sort();/整理所有投票对菜单选项的选择是输入对应数字按回车键进行选择。4main_v();投票者者界面根据输入数字的不同调用不同的函数进入对应的功能,返回主函数。相关的一些函数如下:search();
5、 /查询候选人信息scan();/浏览候选人信息vote(); /投票者投票对菜单选项的选择是输入对应数字按回车键进行选择。5addcandidate();创建候选人当用户选择该项对应数字后, 进入该函数。创建候选人文档, 输入候选人信息。 用 for 语句和 if 语句检查编号、 姓名是否重复。 在确认不再创建新候选人信息后输出所有候选人信息。6addUser() 创建用户当用户选择该项对应数字后,进入该函数。创建用户文档,输入用户账号与密码。用for 语句和 if语句检查账号名是否重复。 在确认不再创建新用户信息后输出所有用户信息。7read() 读取候选人信息打开候选人文档,提取文档内内
6、容8scan() 浏览候选人信息先调用 read ()读取候选人信息,利用for 语句输出。9search()查询候选人信息先调用 read ()读取候选人信息,利用 for 语句查找与输入编号一致的候选人信息并输出,若查无此编号则输出“对不起,没有您要查询的候选人” 。10.sort()整理所有投票先调用 read ()读取候选人信息,利用for 语句,使用选择法对投票数进行排序,并输出。11.vote() 投票者投票先调用 read ()读取候选人信息,输入候选人相应编号,利用for 语句,将对应候选人的投票数 1,并返回到文档中,输出投票结果。若查无此编号,输出“投票失败!您要投票的号码
7、不存在” 。六结果初始界面分别输入 1, 1 进入管理员界面创建新候选人输出候选人信息投票者界面投票以及投票结果候选人票数排序结果七心得体会在本次课程设计中, 先使用结构化分析方法对系统进行分析, 将整个系统细分为几个模块,再针对每个小模块编写代码。通过本次课程设计的学习以及老师的指导,学会了很多东西,了解了开发一个系统的一些步骤。尽管大部分都参考权威书籍的代码,但是在编写代码过程中还是加深了对链表的了解程度。开发工具用的是 vc+6.0 。这个程序还存在很多需要改进的地方,如密码输入后直接显示了出来,而不是 * ,缺少安全性;每个投票人不仅仅只能投一票等等。但我会继续努力学习,争取写出更好的
8、程序源代码#include#include#include#include#define closegr closegraph#define N 30void main_a(); /管理员界面void main_v(); /投票者者界面void addcandidate(); /创建候选人void addUser();/创建投票者void search(); /查询候选人信息void scan();/浏览候选人信息void vote(); /投票者投票void read();/读取候选人信息void save();/存储候选人信息void sort();/整理所有投票int total=0,c
9、_total=0;int i=0;typedef struct candidate/候选人数据结构体long number;/候选人编号char name20;/候选人姓名char intro400;/候选人简介int vote;/候选人得票数candidate;typedef struct user/投票者数据结构体char name20;/投票者姓名char ps8;/对应密码int power;/权限user;candidate c_manN;user total_userN;void main_v()/投票者者界面int key;doprintf(*n);printf(*欢迎进入投票员
10、界面*n);printf(*n);printf(*1. 浏览所有候选人2.查询候选人信息*n);printf(*3. 投票4. 退出*n);scanf(%d,&key);switch(key)case 1:scan();break;case 2:search();break;case 3:vote();break;case 4:break;default:break;while(key!=4);void vote() /投票者投票long candidatenum;/定义进行操作时的临时结构体变量int i,flag;char DataFile20=候选人 .txt,next;/ DataFi
11、le存储候选人信息的文件名,next 为是否进行下一次投标操作的选项candidate TempS;FILE *fp;begin:flag=0;/flag用来标志是否找对应编号,即投票是否成功read();printf(请输入您要投票的候选人的号码:);scanf(%ld,&candidatenum);printf(您所投票的候选人号码是:%ldn,candidatenum);for(i=0;ic_total;i+)if(c_mani.number=candidatenum)flag=1;c_mani.vote+;if(flag)printf(投票成功 n);fp=fopen(DataFile
12、,wb);if(fp=NULL)/如果当前文件不存在,提示打开文件失败printf(nOpen file is fail!End with any key.n,DataFile);perror(Open file fail);getch();exit(1);for(i=0;ic_total;i+)fwrite(&c_mani,sizeof(candidate),1,fp);fclose(fp);elseprintf(投票失败!您要投票的号码不存在n);printf(按任意键返回首页!n);getch();return;fp=fopen(DataFile,rb);/显示投票后的情况if(fp=N
13、ULL)printf(nOpen 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%ldt%st%dn,TempS.number,TempS.name,TempS.vote);fclose(fp);printf(n继续吗 ?是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 电子 投票 系统 39
限制150内