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");
    }
    }
}

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

(0)

相关推荐

  • c语言实现足球比赛积分统计系统

    本文实例为大家分享了c语言实现足球比赛积分统计系统的具体代码,供大家参考,具体内容如下 /* 足球比赛积分统计系统    作者:施瑞文    时间:2018.2 */   //为简单化,这里没有加上文件的操作  #include <stdio.h> #include <stdlib.h> #include <string.h> #include<windows.h> #include<conio.h> #define LEN sizeof(mat

  • C语言实现魔方比赛管理系统

    本文实例为大家分享了C语言实现魔方比赛管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #define AVAILABLE 0 #define UNAVAILABLE 1 #define MAXNAME 30 #define CLEAR "cls"   typedef struct match{     char *name;     i

  • C语言实现歌手比赛系统

    本文实例为大家分享了C语言实现歌手比赛系统的具体代码,供大家参考,具体内容如下 一.项目简介 对一次歌手比赛的成绩进行管理输入每个选手的数据包括编号.姓名.十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分). 二.任务概述 要求歌手比赛系统实现对学生基本信息(如编号.姓名.性别等)及十个评委的成绩的管理(增加.删除.修改或更新.查询.统计.保存到文件.从文件装载等操作). 三.功能展示 四.思维导图 五.程序源码 #include<stdio.h> #include<

  • C语言链表实现歌手评分系统

    本文实例为大家分享了C语言链表实现歌手评分系统的具体代码,供大家参考,具体内容如下 此程序可以添加文件操作用于保存歌手得分等信息,此程序实现了链表的增删查和链表冒泡排序交换节点功能 #include <stdio.h> #include <stdlib.h> #include <string.h> //创建结构体及其成员 typedef struct Node { int num;//编号 char name[20];//姓名 float grade[10];//评委评

  • C++实现歌手比赛评分系统

    本文实例为大家分享了C++实现歌手比赛评分系统的具体代码,供大家参考,具体内容如下 (一) 需求和规格说明 对一次歌手比赛的成绩进行管理,功能要求: 1.输入每个选手的数据包括编号.姓名.十个评委的成绩,根据输入计算 出总成绩和平均成绩(去掉最高分,去掉最低分). 2.显示主菜单如下: 1)输入选手数据 2)评委打分 3)成绩排序(按平均分) 4)数据查询 5)追加选手数据 6)写入数据文件 7)退出系统. (二) 设计 根据上述需求,运用链表存储歌手的数据, 1.数据的生成 歌手比赛选手首先我

  • C语言实现小学生考试系统

    本文实例为大家分享了C语言实现小学生考试系统的具体代码,供大家参考,具体内容如下 问题及代码: /*烟台大学计算机学院 题目描述:做一个小学生考试系统,功能包括: (1)利用随机数出10道加法题: (2)小学生用户答题给出每道题的答案: (3)对小学生的答题进行评判: (4)计算出小学生答题正确率. 作者:景怡乐 完成时间:2016年12月29日 */ #include <stdio.h> #include <stdlib.h> #include <time.h> in

  • C语言实现歌手大奖赛计分程序

    本文实例为大家分享了C语言实现歌手大奖赛计分程序的具体代码,供大家参考,具体内容如下 1. 题目描述 编写一个程序,用户输入评委人数和分数后,程序可以计算去掉一个最高分和最低分后的平均成绩.可多次输入选手成绩,输入N时退出程序. 2. 源代码 #include <stdio.h> #include <stdlib.h> float score[99];//成绩数据 int num=0;//评委数目 float sum=0;//总分 //输入打分数据并输出结果 void inputS

  • C语言实现学生选课系统完整版

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> int N1,N2,kk1,kk2,kk3; struct couse * head1; struct student * head2; struct couse//课程信息结构体 { int num1; char name1[20]; int score; int nelepeo;//课程已选人数 int Melepeo;//课

  • C语言实现学生选课系统

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #define CLASS_CLS

  • C语言实现文本编辑器系统

    本文实例为大家分享了C语言实现文本编辑器系统的具体代码,供大家参考,具体内容如下 /*文本编辑器editor源代码*/ #include <stdio.h> #include <conio.h> #include <bios.h> #include <math.h> #define LEFT 0x4b00 /*←:光标左移*/ #define RIGHT 0x4d00 /*→:光标右移*/ #define DOWN 0x5000 /*↓键:光标下移*/ #d

  • C语言实现乒乓球比赛

    本文实例为大家分享了C语言实现乒乓球比赛的具体代码,供大家参考,具体内容如下 1).基本要求 用8个LED发光管(红黄绿)的来回滚动显示来模拟打乒乓球时乒乓球在两边球台上的来回运动.比赛双方用按钮/开关(双方各用1个按钮/开关)的方法来模拟发球与接球,即发球方按动其控制的按钮/开关/健,球从发球方一侧向对方运动(LED发光管从发球方到对方逐个点亮,滚动显示),当球运动至接球方时,接球方立即按动其控制的按钮/开关/键,"击球"使球"弹回"发球方一侧,如此周而复始,直至

随机推荐