C语言课程设计报告—歌星大奖赛评分系统_第1页
C语言课程设计报告—歌星大奖赛评分系统_第2页
C语言课程设计报告—歌星大奖赛评分系统_第3页
C语言课程设计报告—歌星大奖赛评分系统_第4页
C语言课程设计报告—歌星大奖赛评分系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言课程实习报告语言课程实习报告 课程名称 课程名称 歌星大奖赛歌星大奖赛 学学 院 院 信息工程学院信息工程学院 专专 业 业 通信工程通信工程 班班 级 级 112130X112130X 学学 号号 201120130XXX201120130XXX 姓姓 名 名 徐凤龙徐凤龙 指导老师 指导老师 刘自强刘自强 第一部分 课程设计编号 名称 内容第一部分 课程设计编号 名称 内容 名称 歌星大奖赛名称 歌星大奖赛 内容 内容 要求要求 1 在歌星大奖赛中 有十个评委为参赛的选手打分 分数为 1 100 分 选 手最后得分为 去掉一个最高分和一个最低分后其余 8 个分数的平均植 请编写一个程序实现 2 同时对评委评分进行裁判 即在 10 个评委中找出最公平 即评分最接近 平均分 和最不公平 即与平均分的差距最大 的评委 提示提示 一 需求分析需求分析 这个问题的第一个要求算法比较简单 但是要注意在程序中判断最大 最 小值的变量是如何赋值的 第二个要求为了考虑效率 要用到排序技术 第二部分 程序总体设计思路第二部分 程序总体设计思路 由于 C 语言是面对过程的语言 故我的设计思路是根据目标程序运行的过程来编写的 在编写本程序的过程中 首先我借助购买的指导材料 了解了一些目标程序运行的次 序与界面的操作方法 然后按照题目的具体要求进行思考和设计 具体的设计思路如下 程序的要求是根据十个评委对歌手的打分情况 求出这个歌手的平均成绩和最公平及 最不公平的裁判 首先 我先考虑到程序的数据输入 可以用 scanf 函数来解决 并将输 入的数据存放于数组中 随后对存放在数组中的数据进行排序 这步为执行找出最不公平 的裁判提高了效率 只需将排好序的数组的首尾分值与平均值进行比较即可 将排好序的 数组中间的八个数求平均值即为此歌手的成绩 可见排序法可大大的简化程序 接下来是 最后一个任务就是找最公平的裁判 此过程我使用拆半法 先将靠近中间的一个裁判假设 为最公平的 再将他前面的裁判与之比较 找出前半部分的最公平的裁判 再将之与后半 部分的进行比较 得出最终的最公平的裁判 为了方便管理员更好的使用界面操作 我还 设置了每输入完一组数据并得到结果后 或接着输入下组数据或按 0 跳出界面 整个程序的设计思路到此结束 第三部分 程序功能划分 图示及流程图第三部分 程序功能划分 图示及流程图 功能模块划分及其流程图功能模块划分及其流程图 本程序功能模块根据程序设计的需求 综合程序的实用性 人性化 智能化的考虑 将程序划分为 6 个部分分别编写 程序主体功能将由这 6 6 个部分来完成 这 6 6 个部分依次 是 1 分数的输入部分 2 对分数进行的排序部分 3 计算平均值的部分 4 找出最不公平裁判部分 5 找出最公平裁判部分 6 数据的输出部分 总体设计 总体设计 歌星大奖赛评分系统歌星大奖赛评分系统 分数输入分数排序计算平均 分 找出最不 公平评委 找出最公平 评委 数据输出 系统功能模块图 程序流程 系统的执行应从功能菜单的选择开始 依据用户的选择来进行后续的处理 直到用户 选择退出系统为止 其间应对用户的选择做出判断及异常处理 系统的流程图如下 开始 是 否 开 始 菜 单 选 择 分 数 输 入 分 数 排 序 去掉一个最高分 去掉一个最低分 求 其 平 均 分 各 个 分 数 与 平 均 分 比 较 选出最不公平评委 选出最公平评委 数 据 输 出 继 续 结 束 程 序 流 程 图 第四部分 程序设计数据 运行结果第四部分 程序设计数据 运行结果 本程序是一款应用软件 故数据设计 程序运行结果应在程序的运用中得以体现 现 在通过一个程序的运用事例来对数据设计 程序运行结果进行演示与实现 软件运用举例 程序开始界面如下 管理员输入评委对任意歌手的打分 输入完毕后程序如下菜单界面 管理员输入评委对任意歌手的打分 当输入有误后程序如下菜单界面 此程序显示了裁判对歌手的平均分数 以及根据裁判们打分与平均分数间 的差距判断出的最公平和最不公平裁判的位置及打分 当出现最高分的裁判和最低分的裁判各不止一个时 输入数据后程序界面 的运行如下 第五部分 程序改进思路第五部分 程序改进思路 针对第一点 程序算法精简问题针对第一点 程序算法精简问题 改进思路 算法上除了采用结构体数组外 考虑在程序的算法设计上引入排序法 考察这样对数 据组织运算效率上是具有提高作用的 就现有知识水平 经验来看 对我来说 本程序的算法设计上已经是最精简的了 C 语 言知识博大精深 有必要对 C 语言的专著进行研究学习 多阅读别人的程序代码 多 动手实践操作与设计 这样便对程序算法精简改进提供了可能 针对第二点 用户输入错误问题针对第二点 用户输入错误问题 改进思路 对每个数据输入段代码进行更深的研究与分析 明确变量的类型 可能的数值 然后 进行分类判断 if 或 switch 语句 必要时借助 for 循环语句来控制程序进行 保障各模 块运行相对独立 稳定准确执行各自功能 典型方法是如果输入数据错误 通过 printf 输 出问题 并用 for 或 do while 构成循环 直到用户输入正确为止 此功能本因在程序中 得以体现 但因对 C 语言编程掌握的不够全面和深入 加上时间不太充分 此程序中没有 体现出来 是我编程工作中的失误 再以后还需加深学习并改进 针对第三点 程序功能完善问题针对第三点 程序功能完善问题 改进思路 管理员对运动员的成绩输入 管理员对运动员的成绩输入 设计思路 将裁判的评给分数全部读入 并且全部进行简 单的排序 通过去掉排序后首尾最高和最低分 求出相应的歌手的平均成绩 再将平均值 与每个裁判的打分进行比较 与平均值差值最大的定位此次打分中最不公平的裁判 与平 均值差值最小的定为此次打分中最公平的裁判 第七部分 附录第七部分 附录 原程序 原程序 include include include include struct test int num float s void main int i j k bad good float ts m sum 0 aver 0 tm 10 double min struct test score 10 Judge 10 temp do sum 0 aver 0 printf 请选择 继续请按 1 退出请按 2 n scanf f if m 2 exit 0 for i 0 i100 score i s 1 printf 分数在 1 100 之间 请重新输入 n scanf f continue if score 0 s 0 break for i 0 i 10 i tm i score i s for i 0 i 10 i Judge i for i 0 i 9 i k i for j i 1 j 10 j if tm k tm j k j if k i ts tm i tm i tm k tm k ts temp Judge i Judge i Judge k Judge k temp 对输入分值进行排序 for i 1 is aver sum 8 计算平均值的部分 printf n n printf 该选手的平均分为 3f n aver printf n fabs Judge 0 s aver fabs Judge 9 s aver bad 0 bad 9 通过绝对差值判断与平均值相差最大的 裁判 min fabs Judge 5 s aver good 5 暂定第六个为最公平裁判 for i 4 i 0 i if fabs Judge i s aver s aver good i else break 用拆半法先将前半部分与 min 比较 for i 6 is aver s aver good i else break 用拆半法先将后半部分与 min 比较 printf 最不公平评委

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论