资源描述:
《c语言课程设计-投票程序系统设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录课程设计评语2目录31.课程论文题目42.程序设计思路43.功能模块图54.数据结构设计55.算法设计66.程序代码137.程序运行结果228.编程中遇到的困难及解决方法259.总结心得及良好建议2610.致谢26131.课程论文题目投票程序[要求]设有代号为‘a’,‘b’,‘c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三位候选人得分并输入“祝贺X当选冠军”。例
2、如:投票人数:5请参加投票的人开始投票:abccabcaa此票无效cbabca三位候选人得分:a:12b:13c:15祝贺c当选冠军 [提示]数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。2.程序设计思路根据题目要求,首先要输入投票者人数,再输入投票者的选票,而选票不是都有效,若同一张票上写有两个相同的代号,则此票无效,所以要将有效的选票选出来,然后对选票进行统计得分,最终来比较得分,若有得分相同,则重新来选,最后得分最多的获胜,最终成为足球先生。 但是此程序还不够完善,可以增加以下程序,增强其功能:1.记录废票数目,以
3、便废票太多,影响选举公正。2.若出现a,b,c以外的投票,应当将该票记为无效。3.若出现最终前两名得分相同,应该还可以运行程序,使其重新投票,重新计票,直至最后选出足球先生。133.功能模块图足球先生评选程序输入选票信息输出结果统计选票输入选票信息:输入对足球先生候选人的选票输出结果:输出最后足球先生的获得者统计选票:对选票进行统计4.数据结构设计要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每输入一行,就开始判断是否一张票上写有两个相
4、同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。返回投票人数re,留到后续函数使用。5.算法设计1、主函数:主函数只提供输入、处理和输出部分函数调用:【程序】#include#includeintstart(charp[][3]); /****输入函数****/13voidcount(inta,charp[][3],intpp[]); /***统计函数***/intresult(int
5、a,intb,intc); /***输出函数***/intm; /*****全局变量*****/voidmain() /*****主函数*****/{ inta; m=3; intpp[3]={0,0,0}; do { charp[100][3]={{0}}; /******p[100][3]赋初值,清空******/ a=start(p); count(a,p,pp);
6、 /******计算得分******/ } while(result(pp[0],pp[1],pp[2]));/*****若m=2循环,直至选出足球先生*****/}1、各功能模块设计(1) 输入模块【分析】要输入投票人数,将其定义为re,选票信息可以用一个p[100][3]的数组来存放,re来控制投票信息数组的行数。最开始定义一个全局变量m=3,来表示候选者人数。这样来控制数列数,达到控制输入的目的。每输入一行,就开始判断是否一张票上写有两个相同代号,或者是出现‘a’,‘b’,‘c’以外的投票结果,如果出现这种情况,就将票作废,并记录作废票数。
7、定义变量v记录作废票数。判断完毕后,若出现废票,就将其中的票府赋值为‘0’。返回投票人数re,留到后续函数使用。 【程序】 intstart(charp[][3]) { intre,i,j,v=0; printf("请输入投票人数"); scanf("%d",&re); /******a为投票人数******/ printf("请参加投票的人