zoukankan      html  css  js  c++  java
  • KTV点歌系统

    /*模拟 KTV 点歌系统。用户可按歌名查找某首歌曲或按歌手名查找其所有歌曲,点歌后显示所点歌曲歌词。
    管理员可添加和删除歌曲,每个歌曲的歌词用一个单独的文件存储。*/

    //该系统成功运行的前提是创建两个文件夹,1、sier  2、song

    //该系统成功运行的前提是创建两个文件夹,1、sier  2、song

    //该系统成功运行的前提是创建两个文件夹,1、sier  2、song

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

    int maker(int i,char a[])//函数功能:加文件路径和后缀。i 为类型:1 是歌曲文件;2 是歌手文件; a 为歌曲或歌手的名称
    {
    char x[100];
    int n,j;
    if(i==1)
    {
    strcpy(x,a);
    strcpy(a,"song//");
    strcpy(&a[6],x);
    n=strlen(a);
    strcpy(&a[n],".txt");
    }
    else
    {
    strcpy(x,a);
    strcpy(a,"sier//");
    strcpy(&a[6],x);
    n=strlen(a);
    strcpy(&a[n],".txt");
    }
    }

    int add() //管理员添加歌曲功能
    {
    FILE *fp1,*fp2;
    int k=0;
    char sier[80],song[80],f1[100];
    printf("请输入添加的歌手名:");
    scanf("%s",sier);
    maker(2,sier);
    fp1=fopen(sier,"a");
    printf("请输入添加歌曲:");
    scanf("%s",song);
    fputs(song,fp1);
    fputs(" ",fp1);
    fclose(fp1);
    maker(1,song);
    fp1=fopen(song,"w");
    printf("请输入歌词,结束输入1 ");
    scanf("%s",f1);
    do
    {
    fputs(f1,fp1);
    fputs(" ",fp1);
    scanf("%s",f1);
    }while(f1[0]!='1'&&f1!='');
    fclose(fp1);
    }

    int del() //管理员删除歌曲的功能
    {
    FILE *fp,*copy;
    char song[100],sier[100],f1[100],f2[100];
    printf("请输入删除的歌手名:");
    scanf("%s",sier);
    maker(2,sier);
    if((fp=fopen(sier,"r"))==NULL)
    {
    printf("不存在此歌手 ");
    return 0;
    }
    copy=fopen("copy.txt","w");
    for(;;)
    {
    if(fgets(f1,500,fp)==NULL)break;
    fputs(f1,copy);
    }
    fclose(fp);
    fclose(copy);
    printf("请输入删除的歌曲:");
    scanf("%s",song);
    strcpy(f2,song);
    strcat(song," ");
    fp=fopen(sier,"w");
    copy=fopen("copy.txt","r");
    for(;;)
    {
    if(fgets(f1,500,copy)==NULL)break;
    if(strcmp(f1,song)==0)continue;
    fputs(f1,fp);
    printf("a ");
    }
    fclose(fp);
    fclose(copy);
    maker(1,f2);
    DeleteFile(f2);
    }

    void manager() //管理员函数
    {
    int n;
    printf("************************************************* ");
    printf(" KTV 管理员系统 添加歌曲请输入1 删除歌曲输入2 ");
    printf(" 输入3退出 ");
    printf("************************************************* ");
    scanf("%d",&n);
    if(n==1)add();
    else if(n==2)del();
    else exit(0);
    }


    int user() //用户函数
    {
    FILE *fp1,*fp2;
    int a;
    char filename1[10],filename2[10],f1[80],f2[80];
    printf("************************************************* ");
    printf(" KTV 点歌系统 歌名点歌请输入1 歌手点歌请输入 2 ");
    printf(" 输入3退出 ");
    printf("************************************************* ");
    scanf("%d",&a);
    if(a==1)
    {
    printf("请输入歌曲名:");
    scanf("%s",filename1);
    maker(a,filename1);
    if((fp1=fopen(filename1,"r"))==NULL)
    {
    printf("不存在这首歌曲请联系管理员 ");
    return 0;
    }
    printf("############################################# ");
    printf(" 正在播放 ");
    while(fgets(f1,81,fp1)!=NULL)
    {
    printf("%s",f1);
    }
    printf("############################################# ");
    fclose(fp1);
    }
    else if(a==2)
    {
    printf("请输入歌手名:");
    scanf("%s",filename2);
    maker(a,filename2);
    if((fp2=fopen(filename2,"r"))==NULL)
    {
    printf("不存在歌手请联系管理员 ");
    return 0;
    }
    printf("歌手全部歌曲如下: ");
    while(fgets(f2,81,fp2)!=NULL)
    {
    printf("%s",f2);
    }
    fclose(fp2);
    printf(" ");
    printf("请输入歌曲名:" );
    scanf("%s",filename1);
    maker(1,filename1);
    if((fp1=fopen(filename1,"r"))==NULL)
    {
    printf("不存在这首歌请联系管理员 ");
    return 0 ;
    }
    printf("############################################# ");
    printf(" 正在播放 ");
    while(fgets(f1,81,fp1)!=NULL)
    {
    printf("%s",f1);
    }
    printf("############################################# ");
    fclose(fp1);
    }
    else exit(0);

    }


    int main()
    {
    int n;
    printf("*************************************************** ");
    printf(" 管理员请输入1 ; 用户请输入 2 ");
    printf("*************************************************** ");
    scanf("%d",&n);
    if(n==1)while(1) manager();
    else while(1)user();
    }

  • 相关阅读:
    ASP.Net MVC-Web API使用Entity Framework时遇到Loop Reference
    springboot-32-使用mvc测试
    docker-dockerfile使用
    java-jmx使用
    docker-使用ali云加速
    docker-基础命令
    centos7-使用nginx做ftp站
    maven-插件-不同的开发环境指定
    maven
    mysql-定时对表分区
  • 原文地址:https://www.cnblogs.com/yayizi/p/4509391.html
Copyright © 2011-2022 走看看