c程序设计实习报告。
题目:c语言投票程序。
学院。专业:
姓名。班级学号。
指导教师。2010 年 07 月 17 日。
目录。一、课程设计题目描述与要求3
二、 需求与个人设计思想4
三、 流程图5
四、我的程序设计(源程序6
程序运**况8
五、 总结与修改9
关于程序实行9
问题及可能的解决方法9
修改后程序运**况12
修改后的程序优点13
心得与体会15
c语言投票程序。
一、课程设计题目描述与要求。
要求:设有代号为a、b、c的足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分。请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。
注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则先是三个候选者得分并输出“祝贺x当选冠军!”。
例如:投票人数:5
输入投票内容:
a b cc a b
c a a 该票无效!
c b ab c a
三位候选人得分:
a: 12b: 13
c: 15祝贺c当选冠军!
提示:数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向。
二、需求与个人设计思想。
【需求】此程序意在评出得分最高的“足球先生”,要求编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。
个人设计思想】
通过结构体数组struct candidate cadt[3]来存储三位候选人的基本信息:代号、得分。在用一个一维数组来存储投票内容——代表投票内容(顺序),通过循环语句while,for和一个没有参数的getchar函数(字符输入函数)从终端输入投票内容,处理后得到最终三位候选人得分,比较得到最终结果,评出得分最高的一名候选人,即为“足球先生”。
在过程中,当遇到一张选票上写有两个代号相同时应显示“此票无效”, 若最终前两名得分相同应显示“重新投票”, 否则先是三个候选者得分并输出“祝贺x当选冠军!”。
三、 流程图。
1、 整体流程图。
图7—12、主函数流程图:
图7—2四、我的程序设计(源程序)
#include<>
struct candidate //定义结构体。
char name; /名字。
int score; /分数。
struct candidate cadt[3]=,
void main()
int i,j,num;
char vote[3],s;
printf("请问共有多少人投票?");
scanf("%d",&num);
while(num--)
if(vote[0]+vote[1]+vote[2]!=a'+'b'+'c') 判断选票上是否有重复**。
elsefor(j=0;j<3;j++)
if(vote[0]==cadt[j].name)
cadt[j].score+=5;
if(vote[1]==cadt[j].name)
cadt[j].score+=3;
if(vote[2]==cadt[j].name)
cadt[j].score+=2;
printf("三位候选人得分:");
for(j=0;j<3;j++)
printf("%c: %d",cadt[j].name,cadt[j].score);
if(cadt[0].score==cadt[1].score||cadt[1].
score==cadt[2].score||cadt[2].score==cadt[0].
score)
printf("please vote againe.");
elseif(cadt[0].scorecadt[0].name=cadt[1].name;
if(cadt[0].scorecadt[0].name=cadt[2].name;
printf("祝贺%c当选冠军 .",cadt[0].name);
程序运**况如下:
1) 当遇到一张选票上写有两个代号相同时成功显示“该票无效”:
图7—32) 显示最终结果:
图7—4五、总结与修改。
暑假期间,通过八天的c语言程序设计实习,我重新温习了c语言,更是对c语言有了更新的认识,更为深层次的认识。以下几点是我在实习期间遇到的问题及心得体会。
关于程序实行】
程序运**况的截图如图7—3,7—4所示,图中显示有投票人数、投票的内容、候选人最后的得分情况以及最终冠军的获得者,系统运**况较好,但仍存在一些不足,例如:没有控制开始结束的语句,程序没有很好的体现模块化等。在以后的程序设计中要特别注意这次遇到的问题,改进不足,探索新颖的思路,力求将程序设计完美化。
问题及可能的解决方法】
程序中最大的不足是模块化没有很好的发挥其作用,个人觉得可以通过调用函数来弥补这一不足。至于开始结束语句地解决,可以增加一个输出语句来解决。还有一个问题是,源**中没有注释语句,虽然这次设计的程序比较简单没用到注释,但以后设计中一定要注意这方面。
修改后程序】
#include<>
#include <>
struct candidate//定义结构体。
char name;//名字。
int score;//选票得分。
struct candidate cadt[3]=,
void thanks()
printf("thank you!");
void football()
int i,j,num;
char vote[3],s;
printf("请问共有多少人投票?");
scanf("%d",&num);
while(num--)
if(vote[0]+vote[1]+vote[2]!=a'+'b'+'c')/判断选票是否有重复代号。
elsefor(j=0;j<3;j++)
if(vote[0]==cadt[j].name)
cadt[j].score+=5;
if(vote[1]==cadt[j].name)
cadt[j].score+=3;
if(vote[2]==cadt[j].name)
cadt[j].score+=2;
printf("三位候选人得分:");
for(j=0;j<3;j++)
printf("%c: %d",cadt[j].name,cadt[j].score);
if(cadt[0].score==cadt[1].score||cadt[1].
score==cadt[2].score||cadt[2].score==cadt[0].
score)
printf("please vote againe.");
C语言课程课程设计
课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...