




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计综合性设计报告一、设计题目校园歌手大奖赛大奖统计程序的主要功能是录入各选手的得分信息,包括选手编号、各评委编号以及相应给分。然后选择性输出得分表、名次表、评委得分表和查询。二、综合设计分工说明组长:涂嘉明 222009322210184;组员:王星君 222009322210188王定超 222009322210186小组各成员的分工如下:涂嘉明:总体设计方向和功能的确定,分配组员任务; 程序的主控模块:输入选手信息并计算,利用switch语句调用函数以及退出;王星君:函数部分:“校园歌手大奖赛得分表”和“校园歌手大奖赛排名表”;王定超:函数部分:“校园歌手大奖赛评委评判水平名次表”和“查询(按选手编号)”;三、问题概述1、建立成绩输入、按“playerscorei=(playerscorei-max-min)/(n-2)”计算以及主控函数模块;2、输出选手信息(包括选手编号、各评委给分、最后成绩);3、输出排名信息(对2中已有信息进行排名、输出名次);4、按照raterscorej=10-i=1kgradeij-playerscorei2k计算评委评判水平,输出评委得分以及排名;5、根据选手编号进行成绩以及相关信息的查询。四、问题分析1、将各功能按照带编号的菜单形式编辑在主控模块里,通过输入编号实现相应功能,并且显示菜单的代码处于循环当中,实现一个功能后,就又回到主菜单,直到选择退出。“校园歌手大奖赛得分表”利用主程序中已有的数据,如“选手编号、评委给分、选手得分”,进行循环输出;“校园歌手大奖赛排名表”利用主程序中已有的数据,如“选手编号、评委给分、选手得分”,对这些数据进行排序,建立新数组保存名次(多个相同成绩的名次输出已经实现,详见源程序),循环输出以上数据。“校园歌手大奖赛评委评判水平名次表”利用主程序中已有的数据,如“选手编号、评委给分、选手得分”计算评委得分,存入新建的数组,循环输出数据。“查询(按选手编号)”输入选手编号,利用数组实现查找。五、功能模块描述及功能模块图 主控模块查询(按选手编号)评委评判水平名次表排名表得分表 六、源程序清单#include stdio.h#includemath.hvoid main() int quit=0,c,m,n; char q=N;int flag=1;void score(float g996,float array,int x,int y);void placing(float g996,float array,long p,int x,int y);void raterscore(float g996,float array,long p,long q,int x,int y);void find1(float g996,float array,long p,int x,int y); printf(*n); printf(* 综合性实验设计 *n); printf(*n); printf(nnnn); printf(请输入歌手人数(小于99):); scanf(%d,&m);while(m99|m6|n3)printf(输入有误,请从新输入评委人数(36):);scanf(%d,&n);printf(n);long i,j,playerno99,raterno6;float grade996,playerscore99;for(i=0;im;i+)playernoi=i+1; printf(n); printf(有请%d,playernoi);printf(号选手上场n);for(j=0;j10)printf(输入有误,请从新输入:n); scanf(%f,&gradeij);float max=gradei0;for(j=0; jmax) max=gradeij; float min=gradei0; for(j=0; jn; j+) if(gradeijmin) min=gradeij; float sum=0; for(j=0;jn;j+)sum+=gradeij;playerscorei=(sum-max-min)/(n-2);printf(%d,i+1);printf(号选手得分);printf(%4.2f,playerscorei); while (flag)printf(n);printf(-n);printf(| 1、校园歌手大奖赛得分表 |n); printf(| 2、校园歌手大奖赛排名表 |n);printf(| 3、校园歌手大奖赛评委评判水平名次表 |n);printf(| 4、查询(按选手编号) |n);printf(| 0、退出 |n);printf(-n);printf(请输入操作代号:);scanf(%d,&c);printf(nnnnn);switch(c)case 1:score(grade,playerscore,m,n);break; case 2:placing(grade,playerscore,playerno,m,n);break; case 3:raterscore(grade,playerscore,raterno,playerno,m,n);break; case 4:find1(grade,playerscore,playerno,m,n);break; case 0:flag=0;printf( 谢谢使用!再见! _ nnn); default:flag=0;printf(nn请继续操作:); scanf(%c,&q); if(q=N) flag=0;/校园歌手大奖赛得分表void score(float g996,float array,int x,int y)int i,j; printf(*校园歌手大奖赛得分表*n); printf(选手编号); for(j=0;jy;j+) printf( 评委%d,j+1); printf( 得分);printf(n); for(i=0;ix;i+) printf( %d,i+1);printf( ); for(j=0;jy;j+) printf( %4.2f,gij);printf( %4.2f,arrayi);printf(n);/校园歌手大奖赛排名表void placing(float g996,float array,long p,int x,int y)float g_1996,array_199;int a,b;for(a=0;a99;a+)array_1a=arraya;for(b=0;b6;b+)g_1ab=gab;printf(*校园歌手大奖赛排名表*n);int i,l,j,k,u;float t,v;for(i=0;ix-1;i+) k=i;for(l=i+1;larray_1k)k=l;t=array_1k;array_1k=array_1i; array_1i=t;u=pk;pk=pi;pi=u;for(j=0;jy;j+)v=g_1kj; g_1kj=g_1ij;g_1ij=v;printf(选手编号);for(j=0;jy;j+)printf( 评委%d,j+1);printf( 得分);printf( 名次);printf(n);int e=0;for(i=0;ix;i+)printf( %ld,pi);printf( );for(j=0;j=0)if(array_1i=array_1i-1)e=e+1;printf( %d,i+1-e);break;else printf( %d,i+1);e=0;break;printf(n);/校园歌手大奖赛评委评判水平名次表void raterscore(float g996,float array,long p,long q,int x,int y)int i,j,k,l,u;float a,c;double raterscore6,b,z;for(j=0;jy;j+) for(i=0;ix;i+)a=(gij-arrayi)*(gij-arrayi); b=sqrt(a/x);raterscorej=10-b;for(j=0;jy-1;j+) k=j;for(l=j+1;lraterscorek)k=l;z=raterscorek;raterscorek=raterscorej; raterscorej=z; u=pk;pk=pj;pj=u;for(i=0;ix;i+)c=gik; gik=gij;gij=c;printf(*校园歌手大奖赛评委评判水平名次表*);printf(评委编号 选手编号 选手得分 评委给分 评委得分 名次);printf(n);int e=0;for(j=0;jy;j+)for(i=0;i=0)if(raterscorej=raterscorej-1)e=e+1;printf( %d,j+1-e);break;else printf( %d,j+1);e=0;break;/查询(按选手编号)void find1(float g996,float array,long p,int x,int y)int i,l,j,k,u,q99;float v;int f;printf(请输入您要查找选手编号:);scanf(%d,&f); printf(n); i=f-1; /输出选手编号、各评委给分和选手得分 printf(选手编号); for(j=0;jy;j+) printf( 评委%d,j+1);printf( 得分 名次); printf(n); printf( %d,f);for(j=0;jy;j+)printf( %4.2f,gij);printf( %4.2f,arrayi);/排名int a,p_199;float array_199;for(a=0;a99;a+)array_1a=arraya; p_1a=pa;for(i=0;ix-1;i+) k=i;for(l=i+1;larrayk)k=l; u=p_1k;p_1k=p_1i;p_1i=u;v=array_1k;array_1k=array_1i;array_1i=v;int e=0;for(i=0;i=0)if(array_1i=array_1i-1)e=e+1;qi=i+1-e;break;else qi=i+1;e=0;break;i=f-1;printf( %ld,qp_1i-1);七、测试数据及结果随机输入测试数据,运行各种功能,经测试,未发现运行不正常。初始界面: 输入纠错:录入成绩:菜单主界面:模块一“得分表”:模块二“排名表”:模块三“评委评判水平名次表”:模块四“查询(按选手编号)”:退出:八、总结和体会在此次程序设计当中,我们遇到了很多困难,特别是“名次表”的模块,难以构建相同成绩排名的数学模型,不过最终还是在我们小组讨论和网上求助后完成了这个模块!我也发现理论付诸实践是一个困难的过程,但是我们体验的就是这样一个过程,作为一名工科学生,最重要的也即是从理论到实践的飞跃,所以这次的设计恰好也是一次“练兵”。团队合作也是这次取得成功的关键,遇到困难我们都没有退缩,相互鼓励最终完成了设计。最后,程序的完成和各位老师的悉心教导也是分不开的,所以感谢各位老师。涂嘉明此程序看似较简单的程序,但在实际编写过程中却遇到许多以前没见过的困难。C语言是一种模块化的结构性语言,编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子商务创业项目策划面试题库及答案全解
- 2025年宠物健康管理师中级笔试题库
- 2025年仓库作业安全测试题库
- 2025年安全员安全技能考试题及答案
- 2025年宠物葬礼主持人才选拔题库
- 课件《云雀》教学课件
- 读懂彼此的心教学课件
- 2025年安全培训教材设计题集
- 2025年村级护路员笔试模拟题解析
- 2025年安全管理知识高频考点题库解析
- IT设备维修申请表
- 郑州市第四中学新初一分班(摸底)语文模拟试题(5套带答案)
- 2-第二章-各向异性材料的应力-应变关系
- 医院防爆反恐应急预案
- 云南省安全员C证考试题库及答案
- 死亡待遇申请表
- 集中供热管网系统一次网的调节方法
- 无线充电技术在汽车上的应用
- 马工程《刑法学(下册)》教学课件 第17章 危害国家安全罪
- 11科室临床路径、单病种管理目录
- 《廉洁从业》企业文化培训课件
评论
0/150
提交评论