当前位置:首页 > 开发教程 > C语言 >

C语言实现歌手比赛系统

时间:2022-05-30 15:32 来源:未知 作者:Believe yourself 收藏

这篇文章主要为大家详细介绍了C语言实现歌手比赛系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现歌手比赛系统的具体代码,供大家参考,具体内容如下

一、项目简介

对一次歌手比赛的成绩进行管理
输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。

二、任务概述

要求歌手比赛系统实现对学生基本信息(如编号、姓名、性别等)及十个评委的成绩的管理(增加、删除、修改或更新、查询、统计、保存到文件、从文件装载等操作)。

三、功能展示

C语言实现歌手比赛系统

C语言实现歌手比赛系统

C语言实现歌手比赛系统

C语言实现歌手比赛系统

四、思维导图

C语言实现歌手比赛系统

五、程序源码

#include<stdio.h>
#include<stdlib.h>
struct singer/*定义结构体*/
{

 int num;
 char name[10];
 float score[20];
 float aver;
 float sum;
 int ord;

}singer[100];


void singer_information(int b)
/*输入选手信息*/
{
 int i;


 for(i=1;i<=b;i++)
 {
  printf("请输入选手编号:");
  scanf("%d",&singer[i].num);
  printf("请输入选手姓名:");
  scanf("%s",&singer[i].name);
 }
}


int singer_score(int b)  
{
 int j,c;
 float a[50];
 for(j=1;j<=b;j++)
   {
    printf("\n请输入评委1对歌手%d的打分",j);
    scanf("%f",&singer[j].score[1]);
    printf("请输入评委2对歌手%d的打分",j);
    scanf("%f",&singer[j].score[2]);
    printf("请输入评委3对歌手%d的打分",j);
    scanf("%f",&singer[j].score[3]);
    printf("请输入评委4对歌手%d的打分",j);
    scanf("%f",&singer[j].score[4]);
    printf("请输入评委5对歌手%d的打分",j);
    scanf("%f",&singer[j].score[5]);
    printf("请输入评委6对歌手%d的打分",j);
    scanf("%f",&singer[j].score[6]);
    printf("请输入评委7对歌手%d的打分",j);
    scanf("%f",&singer[j].score[7]);
    printf("请输入评委8对歌手%d的打分",j);
    scanf("%f",&singer[j].score[8]);
    printf("请输入评委9对歌手%d的打分",j);
    scanf("%f",&singer[j].score[9]);
    printf("请输入评委10对歌手%d的打分",j);
    scanf("%f",&singer[j].score[10]);
    a[j]=singer[j].score[1]+singer[j].score[2]+singer[j].score[3]+singer[j].score[4]+singer[j].score[5]+singer[j].score[6]+singer[j].score[7]+singer[j].score[8]+singer[j].score[9]+singer[j].score[10];
    singer[j].sum=a[j];
   }
    
}


int singer_grade(int b)/* 歌手总成绩 */
{
 int a,c;
 float n[50],max,min;
 for(a=1;a<=b;a++)
 {
  max=singer[a].score[1];
  min=singer[a].score[1];
  for(c=1;c<=10;c++)
   {
    if(max<singer[a].score[c])  max=singer[a].score[c];
    if(min>singer[a].score[c])  min=singer[a].score[c];
   }
  n[a]=(singer[a].sum-max-min)/8.0;
  singer[a].aver=n[a];  
 }  
}

int order(int b)/*成绩排序*/
{
 int j,t,i;

  for(i=1;i<=b;i++)
    {
    for(j=1,t=1;j<=b;j++)
    {
    if(singer[i].aver<singer[j].aver)
    {
    t=t+1;
    }
    }
    singer[i].ord=t;
    }
    for(i=1;i<=b;i++)
    {
     for(j=1;j<=b;j++)
     {
      if(i==singer[j].ord)
       printf("%s是第%d   得分为%15.2f\n",singer[j].name,i,singer[j].aver);
     }
     printf("\n\n\n");
    }
   
}

int search(int c)/*数据查询*/
{
 printf("所查选手的数据:编号%d  姓名%s  平均成绩%f  总成绩%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].score[c]); 
}



int addition(int i)/*数据追加*/
{
  printf("请输入选手编号及姓名:");
 scanf("%d,%s/n",&singer[i+1].num,&singer[i+1].name);
 
 printf("请输入评委1对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[1]);
 printf("请输入评委2对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[2]);
 printf("请输入评委3对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[3]);
 printf("请输入评委4对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[4]);
 printf("请输入评委5对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[5]);
 printf("请输入评委6对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[6]);
 printf("请输入评委7对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[7]);
 printf("请输入评委8对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[8]);
 printf("请输入评委9对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[9]);
 printf("请输入评委10对歌手%d的打分",i+1);
 scanf("%d",&singer[i+1].score[10]);
}


main()
{
 int a,b,c,i,n=1;
 FILE *fp;
 fp = fopen("歌手.txt","wt+");
 
  printf("   歌手比赛系统  \n");
  printf("*********************\n");
  printf("* 1)输入选手数据  *\n");
  printf("* 2)评委打分    *\n");
  printf("* 3)成绩排序    *\n");
  printf("* 4)数据查询    *\n");
  printf("* 5)追加学生数据  *\n");
  printf("* 6)写入数据文件  *\n");   
  printf("* 7)退出系统    *\n");
  printf("*********************\n");
 while(n)
 {
 printf("你想进行的操作: ");
 scanf("%d",&a);
 printf("\n\n");
 switch(a)
 {
  case 1:
    printf("你想进行的操作:输入选手数据\n ");
    printf("请输入选手个数");
    scanf("%d",&b);
    singer_information(b);
    printf("----------------------\n");
   
  break;
  case 2:
    printf("你想进行的操作:评委打分\n ");
    singer_score(b);
    printf("-----------------------\n");
    
   break;
  case 3: 
    printf("你想进行的操作:成绩排序(按平均分)\n ");
    singer_grade(b);
    order(b);
    printf("-------------------------\n");
    
   break;
  case 4:
    printf("你想进行的操作:数据查询\n ");
     printf("请输入要查询选手编号:");
     scanf("%d",&c);
     printf("所查选手的数据:编号%d  姓名%s  平均成绩%f  总成绩%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].sum);
     
    printf("--------------------------\n");
   break;
  case 5:
    printf("你想进行的操作:追加学生数据\n "); 
     addition(b);
      printf("---------------------------\n");
    
   break;
  case 6:
    printf("你想进行的操作:写入数据文件\n ");
    printf("将数据写入文件中:\n");
      for (i = 0 ; i <=b ; i++)
      {
        fprintf(fp,"%d ",singer[i].num);
        fprintf(fp,"%s ",singer[i].name);
        fprintf(fp,"%d\n",singer[i].aver);
       }
   break;
  case 7: exit(0);
  default :printf("输入错误请重新输入!\n");
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持源码搜藏网。


下一篇:没有了

C语言阅读排行

最新文章