版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. C语言课程设计 题目:5 投票程序 姓名:钱庆翔 年级:2014级 专业:电气工程及其自动化. . 目录 第一章 问题及分析 . 1 1.1、题目 . 1 1.2、问题提出与要求 . 2 需求分析 . 2 第二章 功能实现设计 . 3 2.1总体设计程序流程图 . 3 2.2、程序设计 . 6 2.3、程序结果 . 9 第三章 反思总结 . 9 3.1、知识积累 . 9 3.2、实习总结 . 11 1.多看代码 . 11 2.要自己动手 . 11 3.关于养成良好的编程习惯 . 12 . . 第一章 问题及分析 1.1、题目 设有代码号X、Y、Z的3个候选人竞选先进工作者,记分方法如下:投
2、票者在选票上对他们的编号填写顺序记分为5.3.2时,如投票为4时,输入投票内容为(1)XYZ;(2)ZXY;(3)ZYX;(4)YZX;候选人等分为X:12;Y:13;Z:15,则Z为年度先进工作者。请编程序从键盘上输入人数及投票结果,统计他们的得分,并输出那位是年度先进工作者。要求投票者在选票上对他们的编号的填写顺序分可自行设定,同一张票上写有两个相同代码视为无效票。 例如:投票人数:4 输入投票内容:X Y Z Z X Y Z Y X Y Z X 三位候选人得分:12 X: 13 Y: 15 Z: . . 祝贺Z当选年度先进工作者! 1.2、问题提出与要求 需求分析 本程序中要求候选人有编
3、号和得票数,且每张选票上要同时写上三个候选人的编号,最终输出谁是获胜者。因此可以用结构体来存储候选人的信息。唱票中要求相对应的编号分别记分为5、3、2,因此在记分程序中可以用一个条件表达式来进行统计得分。统计结果中若前两名有相同的得票数则要求重新投票。为此要求把三个侯选人的总得分进行比较,则可以用一个判断语句来判断,简单明了。 数据结构可用结构体数组,结构体成员包括代号、得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。 . . 第二章 功能实现设计 2.1总体设计程序流程图 流程图: 开始 定义结构体与相关变量 输入投票人数及投票内容 是 否 选票编号重复?该票无效 统计相
4、应候选人的票数并排序 是 否 判断前两名 总票数是否相等 重新投票 输出投票结果及获胜者结 . . 2.2、程序分析 1) 结构体定义 struct houxuanren int id; int point; 2) 输入投票结果 牰湩晴尨请输入投票总人数n); scanf(%d,&k); 牰湩晴尨请输入投票内容 n); getchar(); 3) 判断选票中是否有重复 if(a!=b&a!=c&b!=c) hxr0.point+=(a=x?5:(b=x?3:(c=x?2:0); hxr1.point+=(a=y?5:(b=y?3:(c=y?2:0); hxr2.point+=(a=z?5:(b
5、=z?3:(c=z?2:0); printf( point: %d %d %dn,hxr0.point,hxr1.point,hxr2.point); . . continue; 4) 统计相应候选人的票数 for(i=0;i3;i+) if(temphxr2.point&hxr1.pointhxr2.point)|( (hxr0.point=hxr2.point)&hxr0.pointhxr1.point&hxr2.pointhxr1.point)|(hxr1.point=hxr2.point)&hxr1.pointhxr0.point&hxr2.pointhxr0.point) 牰湩晴尨重
6、新投票n); else 牰湩晴尨 祝贺 %cn年度先进工作者,j); . . getch(); 2.3、程序设计 如下 #include #include struct houxuanren int id; int point; main() int i=0,j=0,k,temp=0; char a,b,c; struct houxuanren hxr3; for(i=0;i3;i+) . . hxri.id=i; hxri.point=0; 牰湩晴尨请输入投票总人数n); scanf(%d,&k); 牰湩晴尨 请输入投票内容n); getchar(); for(i=1;i=k;i+) sca
7、nf(%c%c%c,&a,&b,&c); getchar(); if(a!=b&a!=c&b!=c) hxr0.point+=(a=x?5:(b=x?3:(c=x?2:0); hxr1.point+=(a=y?5:(b=y?3:(c=y?2:0); hxr2.point+=(a=z?5:(b=z?3:(c=z?2:0); printf( point: %d %d %dn,hxr0.point,hxr1.point,hxr2.point); continue; n); 投票无效牰湩晴尨 . . for(i=0;i3;i+) if(temphxr2.point&hxr1.pointhxr2.poi
8、nt)|( (hxr0.point=hxr2.point)&hxr0.pointhxr1.point&hxr2.pointhxr1.point)|(hxr1.point=hxr2.point)&hxr1.pointhxr0.point&hxr2.pointhxr0.point) 牰湩晴尨重新投票n); else 牰湩晴尨祝贺 %cn年度先进工作者 ,j); getch(); . . 2.3、程序结果 第三章 反思总结 3.1、知识积累 什么是结构化程序设计?比较其与对象化程序设计的区别。 答:结构化程序的概念首先是从以往编程过程中无限制地使用转移语. . 句而提出的。转移语句可以使程序的控制流
9、程强制性的转向程序的任一处,在传统流程图中,就是用上节我们提到的很随意的流程线来描述这种转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,像这种结构和风格的程序是不允许出现的。结构程序设计就是一种进行程序设计的原则和方法,按照这种原则和方法可设计出结构清晰、容易理解、容易修改、容易验证的程序。即:结构化程序设计是按照一定的原则与原理,组织和编写正确且易读的程序的软件技术。结构化程序设计的目标在于使程序具有一个合理结构,以保证和验证程序的正确性,
10、从而开发出正确、合理的程序。 结构化的分析方法的基本思路是自顶向下逐层分解。分解和抽象是人们控制问题复杂性的两种基本手段。它强调程序的功能,以函数为中心,分层逐步展开程序设计。而面向对象程序设计强调程序的分层分类概念,它以抽象为基础描述问题解决的大体思想,再以此为基础,进行对象的定义与对象的展示。面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务(功能)为中心来描述系统。它把编程问题视为一个数据集合,数据相对于从功能入手的结构化程序而言,具有很强的稳定性。前者首先关心的是功能,而后者关心的是要处理的数据。 . . 3.2、学习总结 通过一学期的C语言程序设计学习,我认识到了自己在C语
11、言方面的不足。我自己温习了C语言,更是对C语言有了更新的认识,更为深层次的认识。以下几点是我在实习期间的心得和体会。 1) 多看代码 在有一定基础以后一定要多看别人的代码。就例如第四章的庖丁解牛和第五章的举一反三,注意代码中的算法和数据结构。毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环(不过这些很多在我的实习报告中没有用到),绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。 2) 要自己动手 编程序是个实干的
12、活,光说不练不行。刚开始学的时候可以多练习书上的习题。对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一些经典的案例程序。学习程序设计,虽然开始接触的无非是变量、函数、条件语句、循环语句等基本概念,这些在课堂上都能听懂,但. . 要真正能进行编程运用,需要在深入理解这些概念的基础上应用,只简单的学习语法还是远远不够的。结构,而是吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。通过第四章的庖丁解牛和第五章的举一反三,让我学会了如何面对大程序时着手处理,如何去小心查错,通过不断的错误纠正,让我更深层次的了解到程序的逻辑严密性。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年重庆广播电视编辑记者、播音员主持人资格考试(广播电视基础知识)模拟试题
- 2025-2030年航空航空材料行业盈利模式创新与变革分析研究报告
- 2026年县级档案馆招聘笔试模拟题
- Unit 14 A birthday party.说课稿-2025-2026学年小学英语一级下剑桥少儿英语
- 2026年英语版悯农古诗说课稿
- 第3课 上挑点说课稿-2025-2026学年小学书法练习指导三年级下册湘美版
- 初中媒介素养谣言说课稿2025
- 手术室耗材成本分摊的标准化流程设计
- 2026年初级统计师考试仿真题及详解
- 2026年地质工程师考试模拟题集
- 樊昌信通信原理课后答案
- FMEA手册新中文版(第五版)
- GB/T 44748.1-2024筛分试验第1部分:使用金属丝编织网和金属穿孔板试验筛的方法
- 《中国大学介绍》课件
- 超星网课《国际学术论文写作与发表》答案
- 2024新人教版英语七年级上单词默写单(小学部分)
- 中国海洋石油集团有限公司招聘笔试题库2024
- 小学数学1-6年级公式大全(打印版)
- 2024年四川南充中考物理真题及答案
- 贵州省小升初数学试卷及答案
- 合伙人退伙声明书
评论
0/150
提交评论