《C语言课程设计报告-歌星大奖赛设计.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告-歌星大奖赛设计.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言课程设计报告学 院: 专 业: 班 级:学 号: 姓 名: 指导老师:目 录第一部分:前言摘要1第二部分:课程设计名称及题目要求1第三部分:程序总体设计思路2第三部分:调试分析8第四部分:使用手册10第五部分:测试结果10第六部分:总结与致谢13第七部分:参考文献14第八部分:附录(源程序)15第一部分:前言摘要课程设计是学习程序设计语言中的一个重要环节。为提高学生程序设计能力,课程设计共安排两个实践环节:上机实习和课程设计。其中上机实习与课堂教学同一学期先后进行,主要是检验课堂教学内容,初步掌握程序设计的基本方法和调试技能;课程设计是在课堂学习结束后,集中安排一次上机强化训练,使学生的
2、程序设计能力再上一个台阶。最后,以报告形式形成此次课程设计的最终成果。第一部分为上机实习。安排了Visual C+环境下的课堂实习内容。具体内容包括Visual C+ 集成环境的使用;课堂实验指导内容,共分八个实验,学生在每次上机实习前需事先阅读并熟悉相关实验内容。具体进度可由任课教师统一安排。由于统一安排的上机时间有限,部分实验内容可由学生在课后自由上机时间完成。第二部分是课程设计。老师首先让大家复习以前所学知识,然后在每堂课上给大家出道相关题目让大家进行自我测试检验。最后通过多次统一课程设计,在课程结束时完成自己所选的题目的课程设计。第二部分:课程设计名称及题目要求题目名称:歌星大奖赛【要
3、求】(1) 在歌星大奖赛中,有十个评委为参赛的选手打分,分数为1100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均植。请编写一个程序实现。(2) 同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)和最不公平(即与平均分的差距最大)的评委。【需求分析】 这个问题的第一个要求算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。第二个要求为了考虑效率,要用到排序技术。第三部分:程序总体设计思路一、设计思想对于我所做的题目,我是采用根据目标程序运行的过程的方法来编写的。此种方法较为简单明了,容易理解接受,属常规思维,但是不够精简,有进一步改进
4、的空间。我所做的是16题:歌星大奖赛。首先我学习了C语言课程设计与学习指导的相关内容,再在以前所学C语言的基础上,以及在老师的指导、同学的帮助指正下,借图书馆及网上的相关资料,了解了一些目标程序运行的次序与界面的操作方法后,我按照题目的具体要求进行了思考和设计,具体设计思路为:程序的要求是根据十个评委对歌手的打分情况,求出这个歌手的平均成绩和最公平及最不公平的裁判。首先,我先考虑到程序的数据输入,可以用scanf函数来解决,并将输入的数据存放于数组中。随后对存放在数组中的数据进行排序,这步为执行找出最不公平的裁判提高了效率,只需将排好序的数组的首尾分值与平均值进行比较即可。将排好序的数组中间的
5、八个数求平均值即为此歌手的成绩,可见排序法可大大的简化程序。接下来是最后一个任务就是找最公平的裁判,此部分我接受了同学的建议,使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判。整个程序的设计思路到此结束。1.数据结构 struct test int num; float s;2.文件结构 整个程序分为/main.c主函数和/Fun.c两部分。3.基本思想程序按照题目要求依次进行。在主函数下调用具体功能实现函数依次实现数据的输入和排序,求平均值,求最公平数据以及求最不公平数据的操作,最后输出
6、结果。整体程序思想简单,无太复杂过程。二、模块设计【功能模块划分及其流程图】本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为5个部分分别编写,程序主体功能将由这5个部分来完成。这5个部分依次是:1.分数的输入以及对分数进行排序的部分;采用数组和指针,将10个裁判对于同一个选手的打分分别输入并存放于指针所指的地址中,以便后面调用和输出。 将输入的10个分数按照从低到高的顺序排成一列,以便方便接下来计算选手得分,以及找出最公平和最不公平裁判。2.计算平均值的部分; 将排序好的分数去掉第一个和最后一个,再将剩下8个求和之后除以8,便是选手的最终得分。3.找出最不
7、公平裁判部分;使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最不公平的裁判,再将之与后半部分的进行比较,得出最终的最不公平的裁判。4.找出最公平裁判部分;使用拆半法,先将靠近中间的一个裁判假设为最公平的,再将他前面的裁判与之比较,找出前半部分的最公平的裁判,再将之与后半部分的进行比较,得出最终的最公平的裁判。5.数据的输出部分。总体设计: 歌星大奖赛评分系统 分数输入分数排序计算平均分找出最不公平评委找出最公平评委数据输出开始主函数流程图: InputAndSort AverageWorstJudeBestJude【模块接口说明】首先通过InputA
8、ndSort实现对数据的输入与排序,然后依次调用Average,WorstJude和BestJude函数对数据进行处理,求出平均值,最公平数据和最不公平数据。三、函数的功能实现主要有以下几个部分:void InputAndSort(struct test p); /输入评分和排序float Average(struct test p); /平均void WorstJude(struct test p, float average); /最不公平void BestJude(struct test p, float average); /最公平四、算法设计/Fun.cvoid InputAndSo
9、rt(struct test p)int i, j, k;float ts, tm10;struct test a10, temp;printf(Input 10 sorcesn);for (i = 0; i10; i+)ai.num = i + 1;scanf(%f, &ai.s); /分数的输入部分for (i = 0; i10; i+)tmi = ai.s;for (i = 0; i10; i+)pi = ai;for (i = 0; i 9; i+)k = i;for (j = i + 1; j 10; j+)if (tmk tmj)k = j;if (k != i)ts = tmi;
10、 tmi = tmk; tmk = ts; temp = pi; pi = pk; pk = temp; /对输入数据进行排序float Average(struct test p)int i;float sum = 0;float average = 0;for (i = 1; ifabs(p9.s - average) ? (bad = 0) : (bad = 9); /通过绝对值之差判断与平均值相差最大的裁判printf(The worst judge is %d and the score is %.1fn, pbad.num, pbad.s); /输出最不公平裁判和其分数void B
11、estJude(struct test p, float average)int i;int good;double min = fabs(p5.s - average);good = 5; /暂定第六个为最公平裁判for (i = 4; i0; i-)if (fabs(pi.s - average) = min)min = fabs(pi.s - average); good = i;else break; /用折半法先将前半部分与min比较for (i = 6; i9; i+)if (fabs(pi.s - average) = min)min = fabs(pi.s - average)
12、; good = i;else break; /用折半法将后半部分与min比较printf(The best judge is %d and the score is %.1fn, pgood.num, pgood.s); /输出最公平裁判和其分数第三部分:调试分析1.优点分析算法上的优点主要体现在以下三点:1. 程序采用main主函数方式设计,程序的主体的功能大都由该功能完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。2. 程序执行使用for语句,C语言中的for语句使用是最为灵活的,而他完全可以代替while语句!有助于相应功能准确高效运行。3. 程序对数据的读写采用了
13、scanf 函数,此数据的读取与存贮方式有利于磁盘数据的加密,即无法用记事本等程序对数据文件进行正常读取,有助于数据的保护与加密。另外,本程序采用scanf函数一次性把所有修改过的结构体数组写入文本文件的修改方式,不仅克服了本次程序设计中文本文件不能顺利准确读取的难点,而且相较于传统的fprintf()函数的写入方式与创建临时交换文件的写入方式,写入效率明显提高。功能上的优点主要体现在以下三点:1. 简洁明了的程序菜单。2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑句,而且提示明确,具有较强的明确的指导作用。3. 程序采用先对裁判分数进行排序,再将排序后首尾的分数直接
14、与平均值进行比较,得出最差裁判。2.缺点分析【程序的缺点】主要表现在以下四点:1. 程序虽然经过多次精简,但仅仅是形式上、小范围的精简,仍未得到本质上的精简,未找到更加简单、更加高效、更加合理、更小占用的资源的算法。2. 程序仍然存在不合理的地方,仍需进一步改进。3. 程序功能仍然不够完善。3.改进1. 可以对程序进行进一步简化,我采用的是折半法求最公平裁判,可以直接从前到后来求最公平裁判;2. 可以在程序执行完毕后设置执行某一操作来退出程序,这样更加人性化。因为这样必定会增加程序复杂度,所以我没有进行设置;3. 程序运行时,出现不止一个最公平裁判或最不公平裁判时,程序会默认输出序号较小的裁判
15、分数,并不能同时输出全部相同裁判位置,这方面还可以进一步改进完善。第四部分:使用手册1. 依次输入裁判分数,数据间用空格隔开;2. 输完一组数据后按enter键执行下一步输出结果;3. 输入下一组数据时重复以上操作即可;4. 程序执行完毕后直接关闭程序。第五部分:测试结果本程序是一款应用软件,故数据设计、程序运行结果应在程序的运用中得以体现,现在通过一个程序的运用事例来对数据设计、程序运行结果进行演示与实现:现在假设要求某一选手的得分情况,则在下面所示的界面里输入10位裁判对于该选手的打分:输入10位裁判对于该选手的打分,如下面界面所示:输入输入完毕后,按Enter健回车,程序运行界面如下:
16、此程序显示了歌手的最后得分,以及根据裁判们打分与最后得分之间的差距判断出的最公平和最不公平裁判的位置及打分! 为了验证程序的准确性及公平与不公平裁判出现在每个裁判上的几率,又输入了几位歌手的打分,如下所示: 输入输入完毕后,按Enter健回车,程序运行界面如下: 接着又输入一组数据后运行如下:当出现最高分的裁判和最低分的裁判各不止一个时,输入数据后程序界面的运行如下:第六部分:总结与致谢二:收获与体会;为了编写这个程序我用了很多天时间,克服了非常多的困难,感觉到了很大的压力。程序是在边看书、边查资料、询问、长期思考与设计、调试、试验的基础上编写出来的,在编写程序的过程中,得到了许多的锻炼,编程
17、的思维也得以塑造。有的地方我自己编不出来,多亏了室友的帮忙与指导。第二部分的折半法我原本没有采用,可是总是编不出来,最后不得已只有采用这个方法。这次课程设计让我收获很多,首先以前学的C知识得到了加强与巩固;其次收获了很多新知识,编程的方法、思路以及思维模式等;最后,通过此次课程设计,我发现了自己仍然存在很多的不足,基础知识大的并不扎实,需要进一步学习和复习巩固。感谢老师在课程设计这段时间的指导与帮助,以及同学耐心地和我改进、完善程序!第七部分:参考文献1谭浩强.C语言设计(第四版)M.北京:清华大学出版社,2010.2张冬梅,刘远兴,陈晶,王媛妮.C语言课程设计与学习指导.中国铁道出版社,20
18、08.3何兴恒. C语言设计实践指导书.武汉:中国地质大学出版社,2004.4谭浩强.C语言设计教程.北京:清华大学出版社,2007.5张宝森.C语言程序设计实验与实训.北京:科学出版社,2005.6王贺艳.C语言程序设计综合实训.北京:科学出版社,2007.7杨开城.C语言程序设计教程实验与练习.北京:人民邮电出版社,2005.8谭浩强. C语言设计题解与上机指导.北京:清华大学出版社,2010.9杨彩霞.C语言课程设计实验指导与习题解答.北京:中国铁道出版社,2006.10郑军红.C语言设计上机实习指导与综合练习.武汉:武汉大学出版社,2008.第八部分:附录(源程序)/main.c#in
19、clude#include#include#includestruct testint num;float s;void InputAndSort(struct test p); /输入评分和排序float Average(struct test p); /平均void WorstJude(struct test p, float average); /最不公平void BestJude(struct test p, float average); /最公平int main()float average;struct test a10;struct test *p = a;do InputAn
20、dSort(p); /average=Average(p);WorstJude(p, average);BestJude(p, average);printf(nn);printf(The next:); while (1);return 0;/Fun.cvoid InputAndSort(struct test p)int i, j, k;float ts, tm10;struct test a10, temp;printf(Input 10 sorcesn);for (i = 0; i10; i+)ai.num = i + 1;scanf(%f, &ai.s); /分数的输入部分for (
21、i = 0; i10; i+)tmi = ai.s;for (i = 0; i10; i+)pi = ai;for (i = 0; i 9; i+)k = i;for (j = i + 1; j 10; j+)if (tmk tmj)k = j;if (k != i)ts = tmi; tmi = tmk; tmk = ts; temp = pi; pi = pk; pk = temp; /对输入数据进行排序float Average(struct test p)int i;float sum = 0;float average = 0;for (i = 1; ifabs(p9.s - ave
22、rage) ? (bad = 0) : (bad = 9); /通过绝对值之差判断与平均值相差最大的裁判printf(The worst judge is %d and the score is %.1fn, pbad.num, pbad.s); /输出最不公平裁判和其分数void BestJude(struct test p, float average)int i;int good;double min = fabs(p5.s - average);good = 5; /暂定第六个为最公平裁判for (i = 4; i0; i-)if (fabs(pi.s - average) = min
23、)min = fabs(pi.s - average); good = i;else break; /用折半法先将前半部分与min比较for (i = 6; i9; i+)if (fabs(pi.s - average) = min)min = fabs(pi.s - average); good = i;else break; /用折半法将后半部分与min比较printf(The best judge is %d and the score is %.1fn, pgood.num, pgood.s); /输出最公平裁判和其分数1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究2.
24、 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器7. 单片机控制的二级倒立摆系统的研究8. 基于增强型51系列单片机的TCP/IP协议栈的实现 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控
25、制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制 14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发 16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机实现 18. 一种基于单片机的轴快流CO,2激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制 22. 基于单片机的软起动器的研究和设计 23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究 24. 基于单片
26、机的机电产品控制系统开发 25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究 27. 基于单片机的远程抄表系统的设计与研究 28. 基于单片机的烟气二氧化硫浓度检测仪的研制 29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC单片机的电能采集终端的设计和应用 34. 基于单片机的光纤光栅解调仪的研制 35. 气压式线性摩擦焊机单片机控制系统的研制 36. 基于单片机的数字磁通门传感器 37. 基于单片机的旋转变压器-数字
27、转换器的研究 38. 基于单片机的光纤Bragg光栅解调系统的研究 39. 单片机控制的便携式多功能乳腺治疗仪的研制 40. 基于C8051F020单片机的多生理信号检测仪 41. 基于单片机的电机运动控制系统设计 42. Pico专用单片机核的可测性设计研究 43. 基于MCS-51单片机的热量计 44. 基于双单片机的智能遥测微型气象站 45. MCS-51单片机构建机器人的实践研究 46. 基于单片机的轮轨力检测 47. 基于单片机的GPS定位仪的研究与实现 48. 基于单片机的电液伺服控制系统 49. 用于单片机系统的MMC卡文件系统研制 50. 基于单片机的时控和计数系统性能优化的研
28、究 51. 基于单片机和CPLD的粗光栅位移测量系统研究 52. 单片机控制的后备式方波UPS 53. 提升高职学生单片机应用能力的探究 54. 基于单片机控制的自动低频减载装置研究 55. 基于单片机控制的水下焊接电源的研究 56. 基于单片机的多通道数据采集系统 57. 基于uPSD3234单片机的氚表面污染测量仪的研制 58. 基于单片机的红外测油仪的研究 59. 96系列单片机仿真器研究与设计 60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造 61. 基于单片机的温度智能控制系统的设计与实现 62. 基于MSP430单片机的电梯门机控制器的研制 63. 基于单片机的气体测漏仪的研究
29、 64. 基于三菱M16C/6N系列单片机的CAN/USB协议转换器 65. 基于单片机和DSP的变压器油色谱在线监测技术研究 66. 基于单片机的膛壁温度报警系统设计 67. 基于AVR单片机的低压无功补偿控制器的设计 68. 基于单片机船舶电力推进电机监测系统 69. 基于单片机网络的振动信号的采集系统 70. 基于单片机的大容量数据存储技术的应用研究 71. 基于单片机的叠图机研究与教学方法实践 72. 基于单片机嵌入式Web服务器技术的研究及实现 73. 基于AT89S52单片机的通用数据采集系统 74. 基于单片机的多道脉冲幅度分析仪研究 75. 机器人旋转电弧传感角焊缝跟踪单片机控
30、制系统 76. 基于单片机的控制系统在PLC虚拟教学实验中的应用研究77. 基于单片机系统的网络通信研究与应用 78. 基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究79. 基于单片机的模糊控制器在工业电阻炉上的应用研究 80. 基于双单片机冲床数控系统的研究与开发 81. 基于Cygnal单片机的C/OS-的研究82. 基于单片机的一体化智能差示扫描量热仪系统研究 83. 基于TCP/IP协议的单片机与Internet互联的研究与实现 84. 变频调速液压电梯单片机控制器的研究 85. 基于单片机-免疫计数器自动换样功能的研究与实现 86. 基于单片机的倒立摆控制系统设计与实现
31、 87. 单片机嵌入式以太网防盗报警系统 88. 基于51单片机的嵌入式Internet系统的设计与实现 89. 单片机监测系统在挤压机上的应用 90. MSP430单片机在智能水表系统上的研究与应用 91. 基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用92. 单片机在高楼恒压供水系统中的应用 93. 基于ATmega16单片机的流量控制器的开发 94. 基于MSP430单片机的远程抄表系统及智能网络水表的设计95. 基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计 96. 基于单片机的氨分解率检测系统的研究与开发 97. 锅炉的单片机控制系统 98. 基于单片机
32、控制的电磁振动式播种控制系统的设计 99. 基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制 100. 一种RISC结构8位单片机的设计与实现 101. 基于单片机的公寓用电智能管理系统设计 102. 基于单片机的温度测控系统在温室大棚中的设计与实现103. 基于MSP430单片机的数字化超声电源的研制 104. 基于ADC841单片机的防爆软起动综合控制器的研究105. 基于单片机控制的井下低爆综合保护系统的设计 106. 基于单片机的空调器故障诊断系统的设计研究 107. 单片机实现的寻呼机编码器 108. 单片机实现的鲁棒MRACS及其在液压系统中的应用研究 109. 自适应控制
33、的单片机实现方法及基上隅角瓦斯积聚处理中的应用研究110. 基于单片机的锅炉智能控制器的设计与研究 111. 超精密机床床身隔振的单片机主动控制 112. PIC单片机在空调中的应用 113. 单片机控制力矩加载控制系统的研究 项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文,优秀毕业论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机论文,基于单片机论文,毕业论文终稿,毕业论文初稿,本文档支持完整下载,支持任意编辑!本文档全网独一无二,放心使用,下载这篇文档,定会成功!19