读书人

c课程设计:歌厅歌曲管理系统设计,该如

发布时间: 2012-02-10 21:27:42 作者: rapoo

c课程设计:歌厅歌曲管理系统设计
功能:该系统以菜单方式工作,歌曲信息包括:歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司。试设计一歌厅歌曲管理系统,使之能提供以下功能:歌曲信息录入、修改、插入、删除功能;歌曲排序浏览功能;按歌名查询、按演唱者查询等功能。

[解决办法]
只供参考,自己完善,并修改为你需要的内容
http://blog.csdn.net/bdmh/archive/2011/01/02/6112631.aspx
[解决办法]
http://blog.sina.com.cn/s/blog_4da6b5570100acmn.html
楼主 这些就是修改。
呵呵
[解决办法]
楼主可以结贴了。。。

C/C++ code
#include "stdio.h"#include "stdlib.h"#include "string.h"//歌曲信息包括:歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司typedef struct music{    char name[20];    //歌名    char singer[20];  //演唱者    char authors[20]; //作词    char compose[30]; //作曲    char album[20];   //所属专辑    char time[15];    //出版时间    char company[30]; //出版公司    struct music *next;}music;music *head=NULL;int length;   //链表的长度void create(){    music *p1,*p2;    length=0;    p1=(music *)malloc(sizeof(music));    strcpy(p1->name,"-1");    if(head==NULL)        head=p1;    printf("请输入音乐的歌名、演唱者、作词、作曲、所属专辑、出版时间、出版公司:\n");    while(1)  //歌名为0的时候退出    {        p2=(music *)malloc(sizeof(music));        //输入歌曲信息        scanf("%s %s %s %s %s %s %s",p2->name,p2->singer,p2->authors,p2->compose,p2->album,p2->time,p2->company);        if(strcmp(p2->name,"0")==0)        {            printf("链表创建完成!\n");            break;        }        length++; //链表的长度        p1->next=p2;        p2->next=NULL;        p1=p1->next;    }    return ;}void ModifymusicInfo(){    music *p=head->next;    char name[20];    printf("请输入要修改的歌曲的歌名:");    getchar();    scanf("%s",name);    while(p!=NULL)    {        if(strcmp(p->name,name)==0)        {            printf("修改前,歌名为%s的歌曲的信息如下:\n",name);            printf("%s %s %s %s %s %s %s\n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p->company);            printf("请输入歌曲的新的所属专辑:");            getchar();            scanf("%s",p->album);            printf("请输入歌曲的新出版公司:");            getchar();            scanf("%s",p->company);            printf("修改后,歌名为%s的歌曲的信息如下:\n",name);            printf("%s %s %s %s %s %s %s\n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p->company);            return ;        }        p=p->next;    }    if(p==NULL)    {        printf("该歌曲不存在!\n");        return ;    }}void display(){    music *p=head->next;    printf("链表中所有的歌曲信息如下:\n");    while(p!=NULL)    {        printf("%s %s %s %s %s %s %s\n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p->company);        p=p->next;    }    return ;}void search(){    int num,x,flag;    char name[20];    music *p=head->next;    printf("请选择查询的方式:\n");    printf("1、按歌名查询\t 2、按演唱者查询\n");    scanf("%d",&x);    if(x==1)    {        printf("需要查找的歌曲歌名为:");        getchar();        scanf("%s",name);        while(p!=NULL)        {            if(strcmp(p->name,name)==0)            {                printf("歌名为%s的歌曲的信息如下:\n",name);                printf("%s %s %s %s %s %s %s\n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p->company);                return ;            }               p=p->next;        }        if(p==NULL)            printf("无此记录!\n");    }    else if(x==2)    {        flag=0;        printf("需要查找的演唱者为:");        getchar();        scanf("%s",name);        p=head->next;        while(p!=NULL)        {            if(strcmp(p->singer,name)==0)            {                if(flag==0)                {                    printf("演唱者为%s的歌曲的信息如下:\n",name);                    flag=1;                }                printf("%s %s %s %s %s %s %s\n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p->company);            }               p=p->next;        }        if(p==NULL && flag==0)        {            printf("无此记录!\n");            return;        }    }    return ;}void insert(){    int num,i;    music *p,*q;    p=head;    printf("请输入你要插入位置: ");    scanf("%d",&num);    if(num>length)    {        printf("找不到要插入的位置\n");        return ;    }    else    {        printf("请输入你要插入的歌曲的信息:\n");        q=(music *)malloc(sizeof(music));        //输入歌曲信息        scanf("%s %s %s %s %s %s %s",q->name,q->singer,q->authors,q->compose,q->album,q->time,q->company);        while(p!=NULL)        {            if(strcmp(p->name,q->name)==0)            {                printf("该歌曲已经存在,无法插入!\n");                return ;            }            p=p->next;        }        p=head;        for(i=0;i<num;i++)            p=p->next;        q->next=p->next;        p->next=q;        length++;        printf("插入成功!\n");        return ;    }}  void Delete(){    char name[20];    music *p,*q;    q=head,p=head->next;    printf("请输入要删除的歌曲的歌名:\n");    getchar();    scanf("%s",name);    while(p!=NULL)    {        if(strcmp(p->name,name)==0)        {            q->next=p->next;            free(p);            length--;            printf("删除成功!\n");            return ;        }        p=p->next;        q=q->next;    }    if(p==NULL)    {        printf("找不到要删除的歌曲!\n");        return ;    }}void menu(){    printf("________________________________________________________________\n");    printf("|              歌厅歌曲管理系统                                |\n");    printf("|               0、 退出系统                                   |\n");    printf("|               1、 录入歌曲信息                               |\n");    printf("|               2、 显示歌曲信息                               |\n");    printf("|               3、 查找链表中的某一首歌曲                     |\n");    printf("|               4、 删除链表中指定歌曲                         |\n");    printf("|               5、 指定的位置上插入一个新结点                 |\n");    printf("|               6、 修改歌曲信息                               |\n");    printf("________________________________________________________________\n");    return ;}int main(void){    int a;    menu();    while(1)    {        printf("请选择相应的功能:");        scanf("%d",&a);        switch(a)        {        case 0:            return 0;        case 1:            create();            menu();            break;        case 2:            if(head)            {                display();                menu();            }            else            {                printf("链表为空,请先建立链表!\n");                menu();            }            break;        case 3:            if(head)            {                search();                menu();            }            else            {                printf("链表为空,请先建立链表!\n");                menu();            }            break;        case 4:            if(head)            {                Delete();                menu();            }            else            {                printf("链表为空,请先建立链表!\n");                menu();            }            break;        case 5:            if(head)            {                insert();                menu();            }            else            {                printf("链表为空,请先建立链表!\n");                menu();            }            break;        case 6:            if(head)            {                ModifymusicInfo();                menu();            }            else            {                printf("链表为空,请先建立链表!\n");                menu();            }            break;        default:            break;        }    }    system("pause");    return 0;} 

读书人网 >C++

热点推荐