唱歌比赛系统_第1页
唱歌比赛系统_第2页
唱歌比赛系统_第3页
唱歌比赛系统_第4页
唱歌比赛系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、沈 阳 航 空 航 天 大 学 课程设计 学 号 _2009041101034_ 班 级 _94110102_ 姓 名 _ 刘建生 _指导教师 _ 徐 晗_ 2011年 6月 18日沈阳航空航天大学课程设计任务书系:材料科学与工程学院 专业:金属材料工程 班级:94110102 学号:2009041101034 题目:唱歌比赛系统一、课程设计时间201011第2学期第15周,即6月13日6月17日,共计1周,20学时。二、课程设计内容用C语言编写软件,模拟唱歌比赛评分系统,用户界面中的菜单至少应包括“读取并显示选手名单,”表演与评分“打印最后程序,退出,4项,参赛3名选手名称和出场顺序存放在文

2、件file22.txt中,评委共有7个,每当一个选手表演后,7个评委都分别评分0-10分,而选手的最终得分计算规则为:去掉7个评分的最高分和最低分,取剩下5个的平均值,程序最后打印出3位选手的成绩三、课程设计要求1. 程序质量:l 贯彻结构化的程序设计思想。l 用户界面友好,功能明确,操作方便。l 用户界面中的菜单至少应包括“读取并显示选手名单”、“表演与评分”、“打印最后成绩”、“退出”4项。l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生

3、签名:_五、成绩六、教师评语沈阳航空航天大学设计用纸目录一、需求分析1二、设计分析2三、主要界面截图9四、技术要点10五、个人总结12六、参考文献12七、源程序1217一、需求分析对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,功能分别是:读取并显示选手名单(duqubingxianshixuanshou),表演与评分(biaoyanyupingfen),打印最后成绩(dayinzuihouchengji)。 1、读取并显示选手名单(duqubingxianshixuanshou)主要是读取选手名单的原始数据存在D盘file22中;2、表演与评分(bi

4、aoyanyupingfen)主要显示评委评分功能;3、打印最后成绩(dayinzuihouchengji)主要是输出评委打出的分数。二、设计分析1、程序总体结构图开始 Int choice=0;调用函数readFile();调用函数menu();输入choiceChoice=1;是printCompetitorInf();1否22Choice=2是performAndGrade(); 否Choice=3是printScore(); 否Choice=4是exit(0);结束 否12、读取选手名单开始只读方式打开文件能打开是否文件打开失败读取选手信息关闭文件结束3、显示选手名单开始Int i=0

5、输出一个选手信息i<3是i=i+1否结束4、评委评分开始int i=0,j=0;float min,max;float score7;输出比赛完的选手裁判评分j<7是输入scorej34否i<3是5否63输入不合法是j-4否j+56j=1min>scorej是min=scorej;否max=scorejj+787j<7是8否统计总分,平均分结束三、主要界面截图四、技术要点本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,添加及输入数据函数是程序中较核心部分。下面进行关键技术说明:1、结构体的应用结构

6、体可以将不同类型的数据组合成一个有机的整体以便于应用。888结构体中包括参赛选手的名字,得分。具体定义如下:typedef struct competitorchar name20; /名字int order; /顺序float score;competitor;2、文件操作包括写入和读出,此处只有读出,如下:(fp=fopen("file22.txt","r")打开文件fclose(fp)关闭文件3求总分和平均分评委打分,累加分数为总分,求平均分时,首先要找到最高分和最低分,去掉之后再求。例如:for(j=1;j<7;j+) /查找最高分和最低分

7、if(min>scorej)min=scorej;if(max<scorej)max=scorej;competi.score=0;/统计平均分for(j=0;j<7;j+) competi.score=competi.score+scorej;/总分competi.score=(competi.score-max-min)/5;/平均分现将D盘file22.txt文本文档内容表示如下以便操作,顺序依次为:1 崔晓莲2 朱艳明3 于海霞五、个人总结一个星期的C语言课程设计过去了,这段时间是我在大学生活中最难忘的一段时间,虽然中间遇到了许多问题,困惑还有各种不解,但我最终还是挺

8、了过来,完成了老师交给我的任务。“学以致用”,这是我们真正学习的目的,所以,在我们完成了C语言课堂知识的同时,也要拿这些在书本的东西来运用到实际中,所以,学校给了我们这次课程设计的机会,让我们亲自动手,解决实际问题,对将来我们在工作中的发展起到非常积极的作用。在课程设计的这几天里,说实在话,我是遇到了好多好多棘手的问题,因为C语言是在一年前这个时候学的,那些知识多多少少已经记忆混淆,所以我便通过翻阅去年的书籍,在图书管也借阅了很多关于C语言课程设计的书,在同学的帮助和自己不懈努力下,正确程序终于编了出来,当时的我很激动,心想这么复杂的程序都编出来了,还有什么不能成功,这让我在今后学习计算机的道

9、路上更加充满信心。六、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006七、源程序#include<stdio.h>#include <STDLIB.H>typedef struct competitorchar name20; /名字int order; /顺序float score;competitor;competitor compet3; /用来存储3个参赛者的信息void readFile()FILE *fp;int i=0;int order;if(fp=fopen("fi

10、le22.txt","r")=NULL) /打开选手文件printf("打开选手信息文件失败!");exit(0);/读取3个选手信息到 compet3 中for(i=0;i<3;i+)fscanf(fp,"%d",&order);fscanf(fp,"%s",&);competorder-1.order=order;fclose(fp);void menu() printf("按1读取并显示选手名单n");printf(&qu

11、ot;按2表演与评分n");printf("按3打印最后成绩n");printf("按4退出n");printf("请选择操作:");void printCompetitorInf()int i=0;printf("nt选手名称t出场顺序tn");for(i=0;i<3;i+)printf("t%st %dtn",,competi.order);printf("nn");void performAndGrade()int i=0,j=0

12、;float min,max;float score7;printf("ntt选手们开始比赛了n");for(i=0;i<3;i+)printf("第%d号选手%s完成了比赛,请裁判给予评分n",competi.order,);for(j=0;j<7;j+)printf("第%d个裁判评分:",j+1);scanf("%f",&scorej);if(scorej<0|scorej>10)printf("第%d个裁判评分不合法,请重新输入n"

13、,j+1);j-;min=score0;max=score0;for(j=1;j<7;j+) /查找最高分和最低分if(min>scorej)min=scorej;if(max<scorej)max=scorej;competi.score=0;/统计平均分for(j=0;j<7;j+) competi.score=competi.score+scorej;competi.score=(competi.score-max-min)/5;printf("nn");void printScore()int i=0;printf("nt出场顺序t选手名称t得分tn");for(i=0;i<3;i+)printf("t%dtt%stt%ftn",competi.order,,competi.score);printf("nn");void main() int choice=0;

温馨提示

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

评论

0/150

提交评论