C语言课程设计C语言投票程序Word文档下载推荐.docx
《C语言课程设计C语言投票程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计C语言投票程序Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
问题及可能的解决方式……………………………………9
修改后程序运行情形……………………………………12
修改后的程序优势……………………………………13
心得与体会……………………………………15
一、课程设计题目描述与要求
要求:
设有代号为a、b、c的足球先生候选人,依照投票者在选票上对他们编号的填写顺序别离记分五、3、2。
请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位被选足球先生。
注意:
假设同一张票上写有两个相同的代号,那么显示“此票无效”,假设最终前两名得分相同应显示“从头投票”,不然先是三个候选者得分并输出“祝贺X被选冠军!
”。
例如:
投票人数:
5
输入投票内容:
abc
cab
caa该票无效!
cba
bca
三位候选人得分:
a:
12
b:
13
c:
15
祝贺c被选冠军!
提示:
数据结构可用结构体数组,结构体成员包括代号、得分。
或采纳二维数组,行方向对应一张投票,列方向
二、需求与个人设计思想
【需求】
此程序意在评出得分最高的“足球先生”,要求编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位被选足球先生。
【个人设计思想】
通过结构体数组structcandidateCadt[3]来存储三位候选人的大体信息:
代号、得分。
在用一个一维数组来存储投票内容——代表投票内容(顺序),通过循环语句while,for和一个没有参数的getchar函数(字符输入函数)从终端输入投票内容,处置后取得最终三位候选人得分,比较取得最终结果,评出得分最高的一名候选人,即为“足球先生”。
在进程中,当碰到一张选票上写有两个代号相同时应显示“此票无效”,假设最终前两名得分相同应显示“从头投票”,不然先是三个候选者得分并输出“祝贺X被选冠军!
三、流程图
1、整体流程图
图7—1
2、主函数流程图:
图7—2
四、我的程序设计(源程序)
#include<
>
structcandidateame)
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("
三位候选人得分:
\n"
);
for(j=0;
j<
3;
j++)
%c:
%d\n"
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)
pleasevoteagaine.\n"
else
if(Cadt[0].score<
Cadt[1].score)
Cadt[0].name=Cadt[1].name;
Cadt[2].score)
Cadt[0].name=Cadt[2].name;
printf("
祝贺%c被选冠军.\n"
Cadt[0].name);
}
程序运行情形如下:
(1)当碰到一张选票上写有两个代号相同时成功显示“该票无效”:
图7—3
(2)显示最终结果:
图7—4
五、总结与修改
暑假期间,通过八天的C语言程序设计实习,我从头温习了C语言,更是对C语言有了更新的熟悉,更为深层次的熟悉。
以下几点是我在实习期间碰到的问题及心得体会。
【关于程序实行】
程序运行情形的截图如图7—3,7—4所示,图中显示有投票人数、投票的内容、候选人最后的得分情形和最终冠军的取得者,系统运行情形较好,但仍存在一些不足,例如:
没有操纵开始终止的语句,程序没有专门好的表现模块化等。
在以后的程序设计中要专门注意这次碰到的问题,改良不足,探讨新颖的思路,力求将程序设计完美化。
【问题及可能的解决方式】
程序中最大的不足是模块化没有专门好的发挥其作用,个人感觉能够通过挪用函数来弥补这一不足。
至于开始终止语句地解决,能够增加一个输出语句来解决。
还有一个问题是,源代码中没有注释语句,尽管这次设计的程序比较简单没用到注释,但以后设计中必然要注意这方面。
【修改后程序】
#include<
structcandidateame)
祝贺%c被选冠军!
intmain()
{
intID,ture=0;
\n****************************此程序为足球先生投票程序****************************\n"
while
(1)
{
请选择是不是继续:
1为继续,2为退出;
\n"
scanf("
%d"
&
ID);
getchar();
switch(ID)
{
case1:
football();
break;
case2:
thanks();
default:
ture=1;
}
if(ture!
=1)printf("
**********************************谢谢您的参与**********************************\n"
if(ture)break;
\n请按任何键继续......\n"
return0;
}
修改后程序运行情形:
图7—5
图7—6
【修改后的程序优势】
程序被修改后更好地实现了模块化:
(1)主函数
图7—7
(2)thanks函数
图7—8
(3)football函数
图7—9
【心得与体会】
c语言作为一种运算机的语言,咱们学习它,有助于咱们更好的了解运算机,与运算机进行交流,因此,c语言的学习对咱们尤其重要,于是学校组织咱们进行了为期八天的实习。
在这八天里,咱们在教师的率领下进行了暑期c语言程序实践学习。
在这之前,咱们已经对c语言这门课程学习了一个学期,对其有了必然的了解,可是也仅仅是停留在了解的范围,对里面的好多东西仍是很陌生,更多的在运用起来的时候仍是感到很棘手,毕竟,万事开头难嘛。
实习前两天由于对所学的知识忘记了很多,编的程序中有很多错误,而且很多找不出缘故所在,也确实是说完成程序的编写,并不意味着万事大吉。
本来以为万无一失的程序,事实上机运行时却不断显现麻烦。
如编译程序检测出一大堆错误。
有时程序本身不存在语法错误,也能够顺利运行,可是运行结果显然是错误的。
通过几天对书上知识如:
数组、结构体数组、循环语句(for\while)、if语句等的温习和教师的耐心辅导,不仅重拾以前所学知识而且对c语言有了更深层次的明白得。
当看到自己设计出来的程序运行成功时,感觉很欣慰的同时更痛下决心,以后必然要多看c语言源程序。
专门时要注意程序中的算法与数据结构,毕竟学c的关口确实是算法和数据结构。
别的方面也要关注一下,诸如变量的命名、库函数的用法、结构体的概念等等。
有些库函数是常经常使用到的。
关于这些库函数的用法必然要牢牢记住。
只是看是不行的,编程序是个实干的活。
一个c语言程序从编辑、编译、连接到运行,光说不练不行。
刚开始学的时候能够多练习书上的习题。
关于自己不明白的地址,自己编个小程序实验一下是最好的方式,能给自己留下深刻的印象。
自己动手的进程中要不断纠正自己不行的编程适应和熟悉错误。
有必然的基础以后能够尝试编一些经典的案例程序。
由于时刻的关系,咱们的这次实践课程教师并无给咱们详细的介绍,只是给咱们简单的介绍了几个比较重要的实际操作。
包括了程序模块处置、程序的添加修改、程序错误检查顶用到的屏蔽操作、程序的调试等大体操作,更多的仍是要靠自己尽力。
上机实验是学习程序设计语言必不可少的实践环节,专门是c语言灵活、简练,更需要通过编程的实践来真正把握它。
关于程序设计语言的学习,能够归纳为学习语法规定、把握程序设计方式、提高程序处置能力,而这些都必需通过充分的事实上机操作才能完成。
通过量次上机练习,我关于语法知识有了感性的熟悉,加深了对它的明白得,在明白得的基础上就会自但是然地把握c语言的语法规定。
关于一些内容自己以为在课堂上听懂了,但上机实践中会发觉原先明白得的误差。
因此学习c语言不能只停留在学习它的语法规那么,而是利用学到的知识编写c语言程序,解决实际问题。
即把c语言作为工具,描述解决实际问题的步骤,由运算机帮忙咱们解题。
只有通过上机才能查验自己是不是把握c语言、自己编写的程序是不是能够正确地解题。
因此,这次实习关于c语言初学者的我意义非凡,通过它我学到了很多在书上学不到的知识。
关于养成良好的编程适应方面一、在比较复杂的代码后面要有注释;
二、注意语句的嵌套不能太长;
3、注意语句的选择。
分支语句注意if循环和while、for的利用。
通过这次为数不多的几天运算机实践学习,咱们了解了一些关于c语言的知识,明白得巩固了咱们c语言的理论知识,对咱们以后其他编程学习将会有莫大的帮忙。
同时它让我明白,“功夫不负有心人”,只要我尽力,我就必然能做到。