C语言编写歌手信息管理系统

1.输入选手信息
2查询选手信息
3删除选定选手信息
4追加选手信息
5按选手总分排序
6退出系统

有偿50

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct _SINGER
{
    int id;
    char name[20];
    float score[5];
    float total;
}SINGER;

#define MAXCOUNT 100    //最大歌手人数
SINGER singer[MAXCOUNT];  //歌手信息数组
int n;    //当前歌手人数

//搜索输入的id是否存在,存在则提示错误,id必须唯一
int findid(int id)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(singer[i].id == id)
            return 1;
    }
    return 0;
}

//从数据存储文件中读取歌手信息
void read()
{
    char buf[100]; 
    int i;
    FILE *fp = fopen("singer.txt","r");
    if(fp == NULL)
        return;
    while(fgets(buf,100,fp) != NULL) //逐行读取歌手信息
    {
        //从每行信息中抽取出歌手数据
        sscanf(buf,"%d\t%s\t%f\t%f\t%f\t%f\t%f",&singer[n].id,singer[n].name,&singer[n].score[0],&singer[n].score[1],&singer[n].score[2],&singer[n].score[3],&singer[n].score[4]);
        singer[n].total  = 0;
        //同时计算出歌手总分,以便后面排序需要
        for(i=0;i<5;i++)
            singer[n].total += singer[n].score[i];
        n++; //歌手数量加1
    }
    fclose(fp);
}

//增加一名新歌手信息
void add()
{
    int id,i;
    while(1)
    {
        printf("请输入新歌手的序号:");
        scanf("%d",&id);
        if(findid(id))
        {
            printf("歌手序号已经存在。");
            continue;
        }
        break;
    }
    singer[n].id = id;
    printf("请输入新歌手的姓名:");
    scanf("%s",singer[n].name);
    printf("请输入新歌手的五个分数:");
    singer[n].total = 0;
    for(i=0;i<5;i++)
    {
        scanf("%f",&singer[n].score[i]);
        singer[n].total += singer[n].score[i];
    }
    n++;
}

这个在c++中用list就能完成。
首先定义struct结构体.
然后根据结构体输入相应数据.
排序输出就行。