C++

C language implements song information management system


This paper shares the specific code of C language song information management system for your reference, the specific content is as follows

System function: the system works by menu, song information includes: song name, singer, lyricist, composition, album, publication date, publishing company. Try to design 1 hall song management system, so that it can provide the following functions: song information input, modify, insert, delete functions; Song sorting browse function; Query by song name, query by singer and other functions.

The complete implementation code is as follows:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
// Song information includes: song title, singer, lyrics, composition, album, publication date, publishing company
typedef struct music
{
  char name[20];  // Da da da
  char singer[20]; // The singer
  char authors[20]; // The lyrics
  char compose[30]; // Composition,
  char album[20];  // Their album
  char time[15];  // Publication date
  char company[30]; // Publishing company
  struct music *next;
}music;
music *head=NULL;
int length;  // The length of the list
void create()
{
  music *p1,*p2;
  length=0;
  p1=(music *)malloc(sizeof(music));
  strcpy(p1->name,"-1");
  if(head==NULL)
    head=p1;
  printf(" Please enter the name of the song, the artist, the lyrics, the composition, the album, the publication date, the publishing company: /n");
  while(1) // As the title 0 Time to quit
  {
    p2=(music *)malloc(sizeof(music));
    // Enter song information
    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(" Linked list creation complete! /n");
      break;
    }
    length++; // The length of the list
    p1->next=p2;
    p2->next=NULL;
    p1=p1->next;
  }
  return ;
}
void ModifymusicInfo()
{
  music *p=head->next;
  char name[20];
  printf(" Please enter the song name of the song you want to modify: ");
  getchar();
  scanf("%s",name);
  while(p!=NULL)
  {
    if(strcmp(p->name,name)==0)
    {
      printf(" Before modification, the song title is %s The song's message is as follows: /n",name);
      printf(" The title of the song, the singer, the lyrics, the composition, the album, the publication date, the publishing company: /n");
      printf("%s %s %s %s %s %s %s/n",p->name,p->singer,p->authors,p->compose,p->album,p->time,p->company);
      printf(" Please enter the new album of the song: ");
      getchar();
      scanf("%s",p->album);
      printf(" Please enter the song of the new publishing company: ");
      getchar();
      scanf("%s",p->company);
      printf(" After modification, the song title is %s The song's message is as follows: /n",name);
      printf(" The title of the song, the singer, the lyrics, the composition, the album, the publication date, the publishing company: /n");
      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(" The song does not exist! /n");
    return ;
  }
}

void display()
{
  music *p=head->next;
  printf(" All the songs in the list are listed below :/n");
  printf(" The title of the song, the singer, the lyrics, the composition, the album, the publication date, the publishing company: /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(" Please select the method of inquiry: /n");
  printf("1 , by song name /t 2 , search by singer /n");
  scanf("%d",&x);
  if(x==1)
  {
    printf(" The song you need to find is called: ");
    getchar();
    scanf("%s",name);
    while(p!=NULL)
    {

      if(strcmp(p->name,name)==0)
      {
        printf(" As the title %s The song's message is as follows: /n",name);
        printf(" The title of the song, the singer, the lyrics, the composition, the album, the publication date, the publishing company: /n");
        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(" There is no record of this song! /n");
  }
  else if(x==2)
  {
    flag=0;
    printf(" The singer to be searched is: ");
    getchar();
    scanf("%s",name);
    p=head->next;
    while(p!=NULL)
    {
      if(strcmp(p->singer,name)==0)
      {
        if(flag==0)
        {
          printf(" The singer is %s The song's message is as follows: /n",name);
          printf(" The title of the song, the singer, the lyrics, the composition, the album, the publication date, the publishing company: /n");
          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(" There is no record of the singer! /n");
      return;
    }
  }
  return ;
}

void insert()
{
  int num,i;
  music *p,*q;
  p=head;

  printf(" Please enter the position you want to insert : ");
  scanf("%d",&num);
  if(num>length)
  {
    printf(" The position to insert cannot be found /n");
    return ;
  }
  else
  {
    printf(" Please enter the name of the song, the artist, the lyrics, the composer, the album, the time of publication, the publishing company of the music you want to insert: /n");
    q=(music *)malloc(sizeof(music));
    // Enter song information
    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(" This song already exists, cannot insert! /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(" Insert successfully! /n");
    return ;
  }
}

void Delete()
{
  char name[20];
  music *p,*q;
  q=head,p=head->next;
  printf(" Please enter the name of the song you want to delete :/n");
  getchar();
  scanf("%s",name);

  while(p!=NULL)
  {
    if(strcmp(p->name,name)==0)
    {
      q->next=p->next;
      free(p);
      length--;
      printf(" Delete successful! /n");
      return ;
    }
    p=p->next;
    q=q->next;
  }
  if(p==NULL)
  {
    printf(" Can't find the song to delete! /n");
    return ;
  }
}
void menu()
{
  printf("________________________________________________________________/n");
  printf("|        Songhall song management system                 |/n");
  printf("|        0 ,   Log out                   |/n");
  printf("|        1 ,   Input song information                 |/n");
  printf("|        2 ,   Display song information                 |/n");
  printf("|        3 ,   Find something in a linked list 1 song            |/n");
  printf("|        4 ,   Deletes the specified song in the linked list              |/n");
  printf("|        5 ,   Inserts at the specified location 1 A new node          |/n");
  printf("|        6 ,   Modify song information                 |/n");
  printf("________________________________________________________________/n");
  return ;
}
int main(void)
{
  int a;
  menu();
  while(1)
  {
    printf(" Please select the corresponding function: ");
    scanf("%d",&a);
    switch(a)
    {
    case 0:
      return 0;
    case 1:
      create();
      menu();
      break;
    case 2:
      if(head)
      {
        display();
        menu();
      }
      else
      {
        printf(" The list is empty, please create the list first! /n");
        menu();
      }
      break;
    case 3:
      if(head)
      {
        search();
        menu();
      }
      else
      {
        printf(" The list is empty, please create the list first! /n");
        menu();
      }
      break;
    case 4:
      if(head)
      {
        Delete();
        menu();
      }
      else
      {
        printf(" The list is empty, please create the list first! /n");
        menu();
      }
      break;
    case 5:
      if(head)
      {
        insert();
        menu();
      }
      else
      {
        printf(" The list is empty, please create the list first! /n");
        menu();
      }
      break;
    case 6:
      if(head)
      {
        ModifymusicInfo();
        menu();
      }
      else
      {
        printf(" The list is empty, please create the list first! /n");
        menu();
      }
      break;
    default:
      break;
    }
  }
  system("pause");
  return 0;
}