溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)

發(fā)布時(shí)間:2022-05-30 13:44:13 來源:億速云 閱讀:281 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)”吧!

一、項(xiàng)目簡(jiǎn)介

對(duì)一次歌手比賽的成績(jī)進(jìn)行管理
輸入每個(gè)選手的數(shù)據(jù)包括編號(hào)、姓名、十個(gè)評(píng)委的成績(jī),根據(jù)輸入計(jì)算出總成績(jī)和平均成績(jī)(去掉最高分,去掉最低分)。

二、任務(wù)概述

要求歌手比賽系統(tǒng)實(shí)現(xiàn)對(duì)學(xué)生基本信息(如編號(hào)、姓名、性別等)及十個(gè)評(píng)委的成績(jī)的管理(增加、刪除、修改或更新、查詢、統(tǒng)計(jì)、保存到文件、從文件裝載等操作)。

三、功能展示

C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)

C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)

C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)

C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)

四、思維導(dǎo)圖

C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)

五、程序源碼

#include<stdio.h>
#include<stdlib.h>
struct singer/*定義結(jié)構(gòu)體*/ 
{

    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("請(qǐng)輸入選手編號(hào):");
        scanf("%d",&singer[i].num);
        printf("請(qǐng)輸入選手姓名:");
        scanf("%s",&singer[i].name);
    } 
}


int singer_score(int b)    
{
    int j,c;
    float a[50];
    for(j=1;j<=b;j++)
            {
                printf("\n請(qǐng)輸入評(píng)委1對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[1]);
                printf("請(qǐng)輸入評(píng)委2對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[2]);
                printf("請(qǐng)輸入評(píng)委3對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[3]);
                printf("請(qǐng)輸入評(píng)委4對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[4]);
                printf("請(qǐng)輸入評(píng)委5對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[5]);
                printf("請(qǐng)輸入評(píng)委6對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[6]);
                printf("請(qǐng)輸入評(píng)委7對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[7]);
                printf("請(qǐng)輸入評(píng)委8對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[8]);
                printf("請(qǐng)輸入評(píng)委9對(duì)歌手%d的打分",j);
                scanf("%f",&singer[j].score[9]);
                printf("請(qǐng)輸入評(píng)委10對(duì)歌手%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)/* 歌手總成績(jī) */
{
    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)/*成績(jī)排序*/ 
{
    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)/*數(shù)據(jù)查詢*/ 
{
    printf("所查選手的數(shù)據(jù):編號(hào)%d    姓名%s   平均成績(jī)%f   總成績(jī)%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].score[c]);    
} 

 
 
 int addition(int i)/*數(shù)據(jù)追加*/
 {
     printf("請(qǐng)輸入選手編號(hào)及姓名:");
    scanf("%d,%s/n",&singer[i+1].num,&singer[i+1].name);
    
    printf("請(qǐng)輸入評(píng)委1對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[1]);
    printf("請(qǐng)輸入評(píng)委2對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[2]);
    printf("請(qǐng)輸入評(píng)委3對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[3]);
    printf("請(qǐng)輸入評(píng)委4對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[4]);
    printf("請(qǐng)輸入評(píng)委5對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[5]);
    printf("請(qǐng)輸入評(píng)委6對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[6]);
    printf("請(qǐng)輸入評(píng)委7對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[7]);
    printf("請(qǐng)輸入評(píng)委8對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[8]);
    printf("請(qǐng)輸入評(píng)委9對(duì)歌手%d的打分",i+1);
    scanf("%d",&singer[i+1].score[9]);
    printf("請(qǐng)輸入評(píng)委10對(duì)歌手%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("     歌手比賽系統(tǒng)   \n");
     printf("*********************\n");
     printf("* 1)輸入選手?jǐn)?shù)據(jù)   *\n"); 
     printf("* 2)評(píng)委打分       *\n");
     printf("* 3)成績(jī)排序       *\n");
     printf("* 4)數(shù)據(jù)查詢       *\n");
     printf("* 5)追加學(xué)生數(shù)據(jù)   *\n");
     printf("* 6)寫入數(shù)據(jù)文件   *\n");      
     printf("* 7)退出系統(tǒng)       *\n");
     printf("*********************\n");
    while(n)
    {
    printf("你想進(jìn)行的操作: ");
    scanf("%d",&a);
    printf("\n\n");
    switch(a)
    {
        case 1: 
                printf("你想進(jìn)行的操作:輸入選手?jǐn)?shù)據(jù)\n "); 
                printf("請(qǐng)輸入選手個(gè)數(shù)");
                scanf("%d",&b);
                singer_information(b);
                printf("----------------------\n");
            
        break;
        case 2: 
                printf("你想進(jìn)行的操作:評(píng)委打分\n ");
                singer_score(b);
                printf("-----------------------\n");
                
         break;
        case 3:  
                printf("你想進(jìn)行的操作:成績(jī)排序(按平均分)\n ");
                singer_grade(b);
                order(b);
                printf("-------------------------\n");
                
          break;
        case 4:
                printf("你想進(jìn)行的操作:數(shù)據(jù)查詢\n ");
                 printf("請(qǐng)輸入要查詢選手編號(hào):"); 
                 scanf("%d",&c);
                 printf("所查選手的數(shù)據(jù):編號(hào)%d    姓名%s   平均成績(jī)%f   總成績(jī)%f\n",singer[c].num,singer[c].name,singer[c].aver,singer[c].sum);
                 
                printf("--------------------------\n");
          break;
        case 5:
                printf("你想進(jìn)行的操作:追加學(xué)生數(shù)據(jù)\n ");  
               addition(b);
                   printf("---------------------------\n");
                
          break;
        case 6: 
                printf("你想進(jìn)行的操作:寫入數(shù)據(jù)文件\n ");
                printf("將數(shù)據(jù)寫入文件中:\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("輸入錯(cuò)誤請(qǐng)重新輸入!\n");
    }
    }
}

感謝各位的閱讀,以上就是“C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C語(yǔ)言如何實(shí)現(xiàn)歌手比賽系統(tǒng)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI