ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:151.98KB ,
资源ID:19191203      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19191203.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计 歌星大奖赛报告Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计 歌星大奖赛报告Word文件下载.docx

1、具体进度可由任课教师统一安排。由于统一安排的上机时间有限,部分实验内容可由学生在课后自由上机时间完成。第二部分是课程设计。本部分内容共分为四个单元,其中第一个单元为温故而知新,在巩固以学内容的基础上,复习课程设计和上机调试的基本方法。第二个单元为庖丁解牛,通过学习一个综合程序的设计与编写,使学生能够在较短时间内掌握综合程序设计的基本步骤和方法。第三个单元为举一反三,在第二个单元的基础上以教材案例的指导下学会构建程序的框架以及部分常用算法代码的书写。第四个单元为熟能生巧,在前三个单元系统学习的基础上,动手完成一两个程序的完整设计与编写。第二部分:课程设计名称及题目要求题目名称:歌星大奖赛【要求】

2、(1) 在歌星大奖赛中,有十个评委为参赛的选手打分,分数为1100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均植。请编写一个程序实现。(2) 同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。【提示】一、 需求分析这个问题的第一个要求算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。第二个要求为了考虑效率,要用到排序技术。第三部分:程序总体设计思路对于我所做的题目,我是采用根据目标程序运行的过程的方法来编写的。此种方法较为简单明了,容易理解接受,属常规思维,但是不够精简,有进一步改进的空间。

3、我所做的是21题:歌星大奖赛。首先我学习了C语言课程设计与学习指导的相关内容,再在以前所学C语言和C+的基础上,以及在老师的指导、同学的帮助指正下,借助购买的指导材料,了解了一些目标程序运行的次序与界面的操作方法后,我按照题目的具体要求进行了思考和设计,具体设计思路为:程序的要求是根据十个评委对歌手的打分情况,求出这个歌手的平均成绩和最公平及最不公平的裁判。首先,我先考虑到程序的数据输入,可以用scanf函数来解决,并将输入的数据存放于数组中。随后对存放在数组中的数据进行排序,这步为执行找出最不公平的裁判提高了效率,只需将排好序的数组的首尾分值与平均值进行比较即可。将排好序的数组中间的八个数求

4、平均值即为此歌手的成绩,可见排序法可大大的简化程序。接下来是最后一个任务就是找最公平的裁判,此部分我接受了同学的建议,使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判。为了方便管理员更好的使用界面操作,我还设置了每输入完一组数据并得到结果后,或接着输入下组数据或按0跳出界面。整个程序的设计思路到此结束。第四部分:详细设计和流程图【功能模块划分及其流程图】本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这6个部分来完成。

5、这6个部分依次是:1.分数的输入部分;采用数组和指针,将10个裁判对于同一个选手的打分分别输入并存放于指针所指的地址中,以便后面调用和输出。2.对分数进行的排序部分; 将输入的10个分数按照从低到高的顺序排成一列,以便方便接下来计算选手得分,以及找出最公平和最不公平裁判。3.计算平均值的部分; 将排序好的分数去掉第一个和最后一个,再将剩下8个求和之后除以8,便是选手的最终得分。4.找出最不公平裁判部分; 使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最不公平的裁判,再将之与后半部分的进行比较,得出最终的最不公平的裁判。5.找出最公平裁判部分;使用拆半

6、法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判。6.数据的输出部分总体设计:歌星大奖赛评分系统分数输入分数排序计算平均分找出最不公平评委找出最公平评委数据输出主函数流程图: N程序#include math.hconio.hstruct test int num; float s;void main() int i,j,k,bad,good; float ts,sum=0,min,average=0,tm10; struct test a10,*p10,*temp; do sum=0;avera

7、ge=0; printf(Input 10 sorces-input 0(exit)n); for(i=0;i10;i+) ai.num=i+1; scanf(%f,&ai.s); /*分数的输入部分*/ if(a0.s=0) exit(0); i+) tmi=ai.s;i+) pi=&ai;9; k=i; for(j=i+1;jj+) if(tmks; average=sum/8; /*计算平均值的部分*/ printf(n-nThe average is:%.1fn,average);-n (fabs(p0-s-average)fabs(p9-s-average)?(bad=0):(bad

8、=9); /*通过绝对差值判断与平均值相差最大的裁判*/ min=fabs(p5-s-average); good=5; /*暂定第六个为最公平裁判*/ for(i=4;i0;i-) if(fabs(pi-s-average) good=i; else break; /*用拆半法先将前半部分与min比较*/ for(i=6; /*用拆半法先将后半部分与min比较*/printf(The worst 裁判 is %d and the sorce is %.1fn, pbad-num,pbad-s); /*打印出最不公平裁判和其分数*/The best 裁判 is %d and the sorce

9、 is %.1fn pgood-num,pgood- /*打印出最公平裁判和其分数*/n-n下一选手得分: /*打印出下一位*/ while(1);/* getch(); */ return 0;第五部分:上机操作及程序运行结果本程序是一款应用软件,故数据设计、程序运行结果应在程序的运用中得以体现,现在通过一个程序的运用事例来对数据设计、程序运行结果进行演示与实现:现在假设要求某一选手的得分情况,则在下面所示的界面里输入10位裁判对于该选手的打分:输入10位裁判对于该选手的打分,如下面界面所示:输入输入完毕后,按Enter健回车,程序运行界面如下: 此程序显示了歌手的最后得分,以及根据裁判们打

10、分与最后得分之间的差距判断出的最公平和最不公平裁判的位置及打分! 为了验证程序的准确性及公平与不公平裁判出现在每个裁判上的几率,又输入了几位歌手的打分,如下所示:接着又输入一组数据后运行如下:当出现最高分的裁判和最低分的裁判各不止一个时,输入数据后程序界面的运行如下:第六部分:结束语一:程序的优缺点;算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。算法上的优点主要体现在以下三点:1. 程序采用main主函数方式设计,程序的主体的功能大都由该功能完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。2. 程序执行使用for语句,C语言中的for语句使用是最为灵

11、活的,而他完全可以代替while语句!有助于相应功能准确高效运行。3. 程序对数据的读写采用了scanf 函数,此数据的读取与存贮方式有利于磁盘数据的加密,即无法用记事本等程序对数据文件进行正常读取,有助于数据的保护与加密。另外,本程序采用scanf函数一次性把所有修改过的结构体数组写入文本文件的修改方式,不仅克服了本次程序设计中文本文件不能顺利准确读取的难点,而且相较于传统的fprintf()函数的写入方式与创建临时交换文件的写入方式,写入效率明显提高。功能上的优点主要体现在以下三点:1. 简洁明了的程序菜单。2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑句,而且提

12、示明确,具有较强的明确的指导作用。3. 程序采用先对裁判分数进行排序,再将排序后首尾的分数直接与平均值进行比较,得出最差裁判。【程序的缺点】主要表现在以下四点:1. 程序虽然经过多次精简,但仅仅是形式上、小范围的精简,仍未得到本质上的精简,未找到更加简单、更加高效、更加合理、更小占用的资源的算法。2. 程序仍然存在不合理的地方,仍需进一步改进。3. 程序功能仍然不够完善。二:收获与体会;为了编写这个程序我用了很多天时间,克服了非常多的困难,感觉到了很大的压力。程序是在边看书、边查资料、询问、长期思考与设计、调试、试验的基础上编写出来的,在编写程序的过程中,得到了许多的锻炼,编程的思维也得以塑造。有的地方我自己编不出来,多亏了同学的帮忙与指导。第二部分的折半法我原本没有采用,可是总是编不出来,最后不得已只有采用这个方法。这次课程设计让我收获很多,首先以前学的C知识得到了加强与巩固;其次收获了很多新知识,编程的方法、思路以及思维模式等;最后,通过此次课程设计,我发现了自己仍然存在很多的不足,基础知识大的并不扎实,需要进一步学习和复习巩固。感谢老师一个多星期以来对我们的指导以及辛勤的工作与付出!第七部分:附录(原程序)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1