标题:一个简单的音乐播放器 运行出现错误 求帮帮忙
只看楼主
qq1874571868
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-3-6
结帖率:50%
已结贴  问题点数:11 回复次数:1 
一个简单的音乐播放器 运行出现错误 求帮帮忙
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

unsigned frequency[100];
char hight[100];
unsigned time[100];
unsigned rate;

void main()
{   
    void set(unsigned f[],char h[],unsigned t[],int r,int num);
    void music(unsigned f[],unsigned t[],int num);
    int flag=0;
    FILE *f1;
    int i,n,menu;
    char FileName[30];
    while(1)
    {
        f1=NULL;
        i=n=0;
        printf("本程序采用编码的形式播放音乐。\n");
        printf("\n用记事本编辑乐谱,然后通过输入文件名播放音乐\n");
        printf("乐谱文件可以自创,也可以抄别人的\n");
        printf("\n现在可以先输入数字再按回车播放音乐:\n");
        printf("1 播放指定音乐music1\n");
        printf("2 播放指定音乐music2\n");
        printf("3 通过程序文件名播放音乐\n");
        printf("4 退出\n");
        while(1)
        {
            printf("menu=");
            scanf("%d",&menu);
            if(menu==1)
            {
                strcpy(FileName,"music1.txt");
                break;
            }
            if(menu==2)
            {
                strcpy(FileName,"music2.txt");
                break;
            }
            if(menu==3)
            {
                scanf("%s",FileName);
                break;
            }
            if(menu==4)
                exit(0);
        }
        printf("\n该文件的音乐编码如下:\n");
        if((f1=fopen(FileName,"r"))==NULL)
        {
            printf("不能打开文件!\n");
            exit(1);
        }
        fscanf(f1,"%d",&rate);
        while(!feof(f1)&&flag!=1)
        {
            fscanf(f1,"?%d%c%d",&frequency[i],&hight[i],&time[i]);
            printf("?%d%c%d",frequency[i],hight[i],time[i]);
            if(time[i]!=-1)
            {
                i++;n++;
            }
            else
                flag=1;
        }
        printf("\n");
        set(frequency,hight,time,rate,n);
        music(frequency,time,n);
        fclose(f1);
    }
    getch();
}
void set(unsigned f[],char h[],unsigned t[],int r,int num)
{
    int i,k;
    for(i=0;i<num;i++)
    {
        t[i]=t[i]*r;
        switch(h[i])
        {
        case 'H':k=4;break;
        case 'M':k=2;break;
        case 'L':k=1;
        }
        switch(f[i])
        {
        case 1: f[i]=262*k;break;
        case 2: f[i]=296*k;break;
        case 3: f[i]=330*k;break;
        case 4: f[i]=349*k;break;
        case 5: f[i]=392*k;break;
        case 6: f[i]=440*k;break;
        case 7: f[i]=494*k;break;
        }
    }
}
搜索更多相关主题的帖子: 音乐播放器 frequency include music 
2014-03-26 14:10
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:11 
编译错误  运行错误  运行达不到预期效果  你的预期效果是什么  实际运行的效果是什么  ???

你什么都不说

DO IT YOURSELF !
2014-03-26 14:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429189-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.310487 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved