钢琴模拟器
  • 板块灌水区
  • 楼主Minecraft_lq
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/3/8 09:37
  • 上次更新2023/10/28 07:03:18
查看原帖
钢琴模拟器
525456
Minecraft_lq楼主2022/3/8 09:37

钢琴蜂鸣模拟器

闲着无聊,用Beep写了个代码,额。。。。。。(只会乱叫)。 用了很多if,while,拜托,这样超酷easy的欸,毕竟我只是个蒟蒻。 还请大佬不要嫌弃。 (头文件是我复制的,懒得打)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <windows.h>
#include <ctime>
#include <fstream>
#include <conio.h>
#include <io.h>
#include <cmath>//pow(平方)
#include <algorithm>//sort排序
#define n 20
#define STDOUT 1
#define do 123
#define re 178
#define mi 259
#define fa 298
#define so 384
#define la 480
#define si 588
int oldstdout = dup(STDOUT);
using namespace std;
int zhuanhuan(char pd,int i)
{
	if(pd=='q')
	{
		i=0;
	}
	if(pd=='w')
	{
		i=1;
	}
	if(pd=='e')
	{
		i=2;
	}
	if(pd=='r')
	{
		i=3;
	}
	if(pd=='t')
	{
		i=4;
	}
	if(pd=='y')
	{
		i=5;
	}
	if(pd=='u')
	{
		i=6;
	}
	if(pd=='i')
	{
		i=7;
	}
	return i;
}
int zhuanhuan2(char pd,int i1)
{
	if(pd=='z')
	{
		i1=100;
	}
	if(pd=='x')
	{
		i1=200;
	}
	if(pd=='c')
	{
		i1=300;
	}
	if(pd=='v')
	{
		i1=400;
	}
	if(pd=='b')
	{
		i1=500;
	}
	return i1;
}
int main()
{
	char pd;
	int i=4,i1=300;
	char dq[1000];
	int i3=0,i4=0,pd2;
	cout<<"钢琴模拟器\n\n\n\n";
	cout<<"d,f,g,h,j,k,l分别代表do,re,mi,fa,so,la,si\n\n"; 
	cout<<"q,w,e,r,t,y,u,i代表不同声调\n\n";
	cout<<"z,x,c,v,b代表不同间隔时长\n";
	Sleep(5000);
	while(1)
	{
		system("cls");
		cout<<"选择  (1)正常  (2)录音  (3)放音   (0)退出\n";
		pd2=getch();
		system("cls");
		if(pd2=='1')
		{
			while(1)
			{
				cout<<"声调:"<<i<<endl;
				cout<<"间隔:"<<i1<<endl;
				cout<<"输入0退出\n";
				pd=getch();
				system("cls");
				if(pd=='q'||pd=='w'||pd=='e'||pd=='r'||pd=='t'||pd=='y'||pd=='u'||pd=='i')
				{
					i=zhuanhuan(pd,i);
				}
				if(pd=='z'||pd=='x'||pd=='c'||pd=='v'||pd=='b')
				{
					i1=zhuanhuan2(pd,i1);
				}
				if(pd=='d')
				{
					Beep(do+(i*100),i1); 
					cout<<"音符:do"<<endl;
				}
				if(pd=='f')
				{
					Beep(re+(i*100),i1); 
					cout<<"音符:re"<<endl;
				}
				if(pd=='g')
				{
					Beep(mi+(i*100),i1); 
					cout<<"音符:mi"<<endl;
				}
				if(pd=='h')
				{
					Beep(fa+(i*100),i1); 
					cout<<"音符:fa"<<endl;
				}
				if(pd=='j')
				{
					Beep(so+(i*100),i1); 
					cout<<"音符:so"<<endl;
				}
				if(pd=='k')
				{
					Beep(la+(i*100),i1); 
					cout<<"音符:la"<<endl;
				}
				if(pd=='l')
				{
					Beep(si+(i*100),i1); 
					cout<<"音符:si"<<endl;
				}
				if(pd=='0')
				{
					break;
				}
			}
		}
		if(pd2=='2')
		{
			while(1)
			{
				cout<<"声调:"<<i<<endl;
				cout<<"间隔:"<<i1<<endl;
				cout<<"输入0录音结束\n";
				pd=getch();
				dq[i3]=pd;
				system("cls");
				if(pd=='q'||pd=='w'||pd=='e'||pd=='r'||pd=='t'||pd=='y'||pd=='u'||pd=='i')
				{
					i=zhuanhuan(pd,i);
				}
				if(pd=='z'||pd=='x'||pd=='c'||pd=='v'||pd=='b')
				{
					i1=zhuanhuan2(pd,i1);
				}
				if(pd=='d')
				{
					Beep(do+(i*100),i1); 
					cout<<"音符:do"<<endl;
				}
				if(pd=='f')
				{
					Beep(re+(i*100),i1); 
					cout<<"音符:re"<<endl;
				}
				if(pd=='g')
				{
					Beep(mi+(i*100),i1); 
					cout<<"音符:mi"<<endl;
				}
				if(pd=='h')
				{
					Beep(fa+(i*100),i1); 
					cout<<"音符:fa"<<endl;
				}
				if(pd=='j')
				{
					Beep(so+(i*100),i1); 
					cout<<"音符:so"<<endl;
				}
				if(pd=='k')
				{
					Beep(la+(i*100),i1); 
					cout<<"音符:la"<<endl;
				}
				if(pd=='l')
				{
					Beep(si+(i*100),i1); 
					cout<<"音符:si"<<endl;
				}
				if(pd=='0')
				{
					break;
				}
				i3++;
			}
			freopen("录音.txt","w",stdout);
			for(int j=0;j<i3;j++)
			{
				cout<<dq[j]<<" ";
			}
			freopen("CON", "w", stdout);
			dup2(oldstdout,STDOUT);
		}
		if(pd2=='3')
		{
			freopen("录音.txt","r",stdin);
			for(int j=0;j<1000;j++)
			{
				cin>>dq[j];
			}
			freopen("CON", "r", stdin);
			while(1)
			{
				cout<<"声调:"<<i<<endl;
				cout<<"间隔:"<<i1<<endl;
				cout<<"输入0退出\n";
				pd=dq[i4];
				system("cls");
				if(pd=='q'||pd=='w'||pd=='e'||pd=='r'||pd=='t'||pd=='y'||pd=='u'||pd=='i')
				{
					i=zhuanhuan(pd,i);
				}
				if(pd=='z'||pd=='x'||pd=='c'||pd=='v'||pd=='b')
				{
					i1=zhuanhuan2(pd,i1);
				}
				if(pd=='d')
				{
					Beep(do+(i*100),i1); 
					cout<<"音符:do"<<endl;
				}
				if(pd=='f')
				{
					Beep(re+(i*100),i1); 
					cout<<"音符:re"<<endl;
				}
				if(pd=='g')
				{
					Beep(mi+(i*100),i1); 
					cout<<"音符:mi"<<endl;
				}
				if(pd=='h')
				{
					Beep(fa+(i*100),i1); 
					cout<<"音符:fa"<<endl;
				}
				if(pd=='j')
				{
					Beep(so+(i*100),i1); 
					cout<<"音符:so"<<endl;
				}
				if(pd=='k')
				{
					Beep(la+(i*100),i1); 
					cout<<"音符:la"<<endl;
				}
				if(pd=='l')
				{
					Beep(si+(i*100),i1); 
					cout<<"音符:si"<<endl;
				}
				if(pd=='0')
				{
					break;
				}
				i4++;
			}
			i4=0;
		}
		if(pd2=='0')
		{
			break;
		}
	}
	
	
	return 0;
}
2022/3/8 09:37
加载中...