C语言程序设计综合性设计报告
C语言程序设计综合性设计报告
一、设计题目
校园歌手大奖赛大奖统计
程序的主要功能是录入各选手的得分信息,包括选手编号、各评委编号以及相应给分。然后选择性输出得分表、名次表、评委得分表和查询。
二、综合设计分工说明
组长:涂嘉明 222009322210184;
组员:王星君 222009322210188
王定超 222009322210186
小组各成员的分工如下:
涂嘉明:总体设计方向和功能的确定,分配组员任务;
程序的主控模块:输入选手信息并计算,利用switch语句调用函数以及退出;
王星君:函数部分:“校园歌手大奖赛得分表”和“校园歌手大奖赛排名表”;
王定超:函数部分:“校园歌手大奖赛评委评判水平名次表”和“查询(按选手编号)”;
三、问题概述
1、建立成绩输入、按“playerscore[i]=(playerscore[i]-max-min)/(n-2)”计算以及主控函数模块;
2、输出选手信息(包括选手编号、各评委给分、最后成绩);
3、输出排名信息(对2中已有信息进行排名、输出名次);
4、按照
计算评委评判水平,输出评委得分以及排名;
5、根据选手编号进行成绩以及相关信息的查询。
四、问题分析
1、将各功能按照带编号的菜单形式编辑在主控模块里,通过输入编号实现相应功能,并且显示菜单的代码处于循环当中,实现一个功能后,就又回到主菜单,直到选择退出。
①“校园歌手大奖赛得分表”
利用主程序中已有的数据,如“选手编号、评委给分、选手得分”,进行循环输出;
②“校园歌手大奖赛排名表”
利用主程序中已有的数据,如“选手编号、评委给分、选手得分”,对这些数据进行排序,建立新数组保存名次(多个相同成绩的名次输出已经实现,详见源程序),循环输出以上数据。
③“校园歌手大奖赛评委评判水平名次表”
利用主程序中已有的数据,如“选手编号、评委给分、选手得分”计算评委得分,存入新建的数组,循环输出数据。
④“查询(按选手编号)”
输入选手编号,利用数组实现查找。
五、功能模块描述及功能模块图
六、源程序清单
#include "stdio.h"
#include"math.h"
void main()
{
int quit=0,c,m,n;
char q='N';
int flag=1;
void score(float g[99][6],float array[],int x,int y);
void placing(float g[99][6],float array[],long p[],int x,int y);
void raterscore(float g[99][6],float array[],long p[],long q[],int x,int y);
void find1(float g[99][6],float array[],long p[],int x,int y);
printf("*********************************************************************\n");
printf("********************** 综合性实验设计 ***********************\n");
printf("*********************************************************************\n");
printf("\n\n\n\n");
printf("请输入歌手人数(小于99):");
scanf("%d",&m);
while(m>99||m<0)
{
printf("输入有误,请重新输入歌手人数(小于99):");
scanf("%d",&m);
}
printf("请输入评委人数(3~6):");
scanf("%d",&n);
while(n>6||n<3)
{
printf("输入有误,请从新输入评委人数(3~6):");
scanf("%d",&n);
}
printf("\n");
long i,j,playerno[99],raterno[6];
float grade[99][6],playerscore[99];