1 / 13
文档名称:

C语言课程设计-投票程序系统设计.docx

格式:docx   大小:71KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言课程设计-投票程序系统设计.docx

上传人:zhuwo11 2022/8/24 文件大小:71 KB

下载得到文件列表

C语言课程设计-投票程序系统设计.docx

文档介绍

文档介绍:目录
课程设计评语 错误!未定义书签。
目 录 1
1.课程论文题目 2
2.程序设计思路 2
3.功能模块图 3
4.数据结构设计 3
5.算法设计 3
6.程序代码 7
7.程序运行结果 11
8.编程中遇到的困难及char();
/******输入时以回车结束******/
for(i=0;i<re;i++)
{
int flag=0;
for(j=0;j<m;j++) scanf("%c",&p[i][j]); getchar();
/******输入选举投票******/ if(p[i][0]==p[i][1]||p[i][1]==p[i][2]||p[i][0]==p[i][2]) flag=1;
/******判断一张票上是否写有两个相同代号******/ for(j=0;j<m;j++)
{ if(p[i][j]!='a'&&p[i][j]!='b'&&p[i][j]!='c') flag=1;
}
/******判断是否有 a,b,c 以外的字母******/ if(flag)
{
printf(” 此票无效 \n");
v++;
for(j=0;j<m;j++) p[i][j]=0;
} /******若有以上情况,显示"此票无效",忽略此票,并记录废票数******/ }
printf("作废票数是%d票\n",v); return re;
}
(2) 统计模块
【分析】
功能上要求分别统计a,b,c三个人的得分,因而用x,y,z来存放,每一票中分别统计得分, 根据投票者在选票上对他们编号的填写顺序分别记分5, 3, 2,将如果出现废票,直接跳过不 计,将最后结果分别放入 x,y,z.。
引用主函数中的数组pp[3],将统计的x,y,z分别赋值到pp[0],pp[l],pp[2]中,这样就可以带 回主函数中。
【程序】
void count(int a,char p[][3],int pp[])
{
int b=a,i;
int x=0,y=0,z=0;
/******'a','b','c分别代表三个候选人x y z分别是他们的得分******/ for(i=0;i<a;i++)
{
if(p[i][0]=='a')
x+=5;
else if(p[i][1]=='a')
x+=3;
else if(p[i][2]=='a')
x+=2;
if(p[i][0]=='b')
y+=5;
else if(p[i][1]=='b')
y+=3;
else if(p[i][2]=='b') y+=2;
if(p[i][0]=='c')
z+=5;
else if(p[i][1]=='c')
z+=3;
else if(p[i][2]=='c')
z+=2;
if(p[i][0]=='0')
continue;
}
pp[0]=x;
pp[1]=y;
pp[2]=z;
}
(3)输出模块
【分析】
功能上要求比较三位候选人的最后得分,三人得分分别为x,y,z。定义
max,将最高分赋值到max中。只有一位最高分时,输出三位候选人得分,显示“祝贺某 人当选冠军”。
如果有两位最高分,则显示'请重新投票”,接着,令m=2,改变全局变量,只剩下两 位候选者,显示三位候选人得分,重新投票统计。
如果两位候选人分数还相同,则再次循环,若不同,则显示两人得分, 并显示“祝贺某人当选冠军”。
【程序】
int result(int a,int b,int c)
{
int x,y,z,max=0,s=0,l=0;
char k;
x=a;y=b;z=c;
max=x;
k='a';
if(max<y)
{
max=y; k='b';
} if(max<z)
{
max=z;
k='c';
}
if(max==x&&max==y||max==x&&max==z||max==y&&max==z) {
printf("请重新投票\n");
/******若最高票数有两人相同,提示重新投票******/
l=1;
}
if(m==3)
printf("三位候选人得分:\n");
else
printf("两位候选人得分:\n");
if(l)
m=2;
if(x>0)
printf("a:%d\n",x);
if(y>0)
printf("b:%d\n",y);
if(z>0)
printf("c:%d\n",z);
if(!l)
printf("祝贺%c当选冠军\n",k);
return l;
}
如果 l 返回主程序,若