C语言课程设计--C语言投票程序
C程序设计实习报告
题目:C语言投票程序
学 院:
专 业:
姓 名:
班级学号
指导教师:
年 07 月 17 日
目录
一、课程设计题目描述与要求…………………………………… 3
二、 需求与个人设计思想 …………………………………… 4
三、 流程图 …………………………………… 5
四、我的程序设计(源程序)…………………………………… 6
程序运行情况 …………………………………… 8
五、 总结与修改 …………………………………… 9
关于程序实行 …………………………………… 9
问题及可能的解决方法 …………………………………… 9
修改后程序运行情况 …………………………………… 12
修改后的程序优点 …………………………………… 13
心得与体会 …………………………………… 15
C语言投票程序
一、课程设计题目描述与要求
要求:设有代号为a、b、c的足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5、3、2。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。
注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则先是三个候选者得分并输出“祝贺X当选冠军!”。
例如:
投票人数:5
输入投票内容:
a b c
c a b
c a a 该票无效!
c b a
b c a
三位候选人得分:
a: 12
b: 13
c: 15
祝贺c当选冠军!
提示:
数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向
二、需求与个人设计思想
【需求】
此程序意在评出得分最高的“足球先生”,要求编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。
【个人设计思想】
通过结构体数组struct candidate Cadt[3]来存储三位候选人的基本信息:代号、得分。在用一个一维数组来存储投票内容——代表投票内容(顺序),通过循环语句while,for和一个没有参数的getchar函数(字符输入函数)从终端输入投票内容,处理后得到最终三位候选人得分,比较得到最终结果,评出得分最高的一名候选人,即为“足球先生”。在过程中,当遇到一张选票上写有两个代号相同时应显示“此票无效”, 若最终前两名得分相同应显示“重新投票”, 否则先是三个候选者得分并输出“祝贺X当选冠军!”。
流程图
整体流程图
图7—1
2、主函数流程图:
图7—2
四、我的程序设计(源程序)
#include
struct candidate //定义结构体
{
char name; //名字
int score; //分数
};
struct candidate Cadt[3]={{'a',0},{'b',0},{'c',0}};
void main()
{
int i,j,num;
char vote[3],s;
printf("请问共有多少人投票?\n");
scanf("%d",&num);
while(num--)
{
for(i=0;i<3;i++)
{
s=getchar();
while(s!='a' && s!='b' && s!='c')
s=getchar();
vote[i]=s;
}
if(vote[0]+vote[1]+vote[2]!='a'+'b'+'c') //判断选票上是否有重复代码
{
printf(" 该票无效 !\n");
continue;
}
else
for(j=0;j<3;j++)
{
if(vote[0]==Cadt[j].name)
如果觉得《c语言程序课程设计投票程序 C语言课程设计--C语言投票程序.doc》对你有帮助,请点赞、收藏,并留下你的观点哦!