0

0

分享控制台中的钢琴发音小程序

高洛峰

高洛峰

发布时间:2018-05-10 14:44:39

|

3123人浏览过

|

来源于php中文网

原创

想一下,平时那些好听的音符在程序中怎么实现呢?这个是不是很有意思呀!如果我们自己可以做一个小程序来模拟音乐中七个音符的发音,你是否能够做的到?

接下来,我们就一起去看看这个神奇的声音的来源。。。

首先,我们建一个控制台的项目。这个程序的核心是怎样让系统发音,这就用到了Console类中的Beep()这个方法,它呢,有两个参数,第一个是来控制声音的频率,第二个是来控制时间的长短。

还有一个方法是ReadKey(),它呢,每次读一个字符,它有一个bool型参数,用来控制按下的键是否显示在控制台窗口中。

极限网络办公Office Automation
极限网络办公Office Automation

专为中小型企业定制的网络办公软件,富有竞争力的十大特性: 1、独创 web服务器、数据库和应用程序全部自动傻瓜安装,建立企业信息中枢 只需3分钟。 2、客户机无需安装专用软件,使用浏览器即可实现全球办公。 3、集成Internet邮件管理组件,提供web方式的远程邮件服务。 4、集成语音会议组件,节省长途话费开支。 5、集成手机短信组件,重要信息可直接发送到员工手机。 6、集成网络硬

下载

其中,比较有意思的是,我们还可以对输入的音符进行记录,用于录制我们自己刚刚弹的音乐。这里呢,我们用到了timespan 的类型  ,用来计算时间间隔,还有用到了线程的停顿(Thread.Sheep)。

下面呢,是整个程序的代码,以供参考。

  /// 
        /// 获取声音及改变背景颜色
        /// 
        /// 
        static void Sound(int i)
        {
            int fre=(Convert.ToInt32(i) + 13) * 37;
            switch (i)
            {
                case '1':
                    Console.Beep(fre, 300);//第一个参数指定声音的频率,第二个参数指定声音的持续时间
                    Console.BackgroundColor = ConsoleColor.Blue;
                    Console.Clear();
                    break;
                case '2':
                    Console.Beep(fre, 300);
                    Console.BackgroundColor = ConsoleColor.Cyan;
                    Console.Clear();
                    break;
                case '3':
                    Console.Beep(fre, 300);
                    Console.BackgroundColor = ConsoleColor.Green;
                    Console.Clear();
                    break;
                case '4':
                    Console.Beep(fre, 300);
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.Clear();
                    break;
                case '5':
                    Console.Beep(fre, 300);
                    Console.BackgroundColor = ConsoleColor.Yellow;
                    Console.Clear();
                    break;
                case '6':
                    Console.Beep(fre, 300);
                    Console.BackgroundColor = ConsoleColor.White;
                    Console.Clear();
                    break;
                case '7':
                    Console.Beep(fre, 300);
                    Console.BackgroundColor = ConsoleColor.Blue;
                    Console.Clear();
                    break;
                default:
                    break;
            }
        }
        //该类定义记录输入的字符以及时间间隔
        class LL
        {
            public char c;//字符
            public DateTime d;//时间间隔
        }
        static void Main(string[] args)
        {
            Console.SetWindowSize(100,30);
            List record = new List();
            while (true)
            {
                ConsoleKeyInfo cki = Console.ReadKey(true);
                char i = cki.KeyChar;
                
                if (i != 'q')//如果输入q,则开始按录制的播放
                {
                    LL l = new LL();
                    l.c = i;
                    l.d = DateTime.Now;
                    record.Add(l);
                    Sound(i);
                }
                else
                {
                    for (int k = 0; k < record.Count;k++ )
                    {
                        
                        TimeSpan tspan;
                        if (k != 0)//如果是第一个,则计算时间间隔
                        {
                            tspan=record[k].d - record[k-1].d;//计算输入的时间间隔
                            Console.WriteLine(tspan);
                            Thread.Sleep(tspan);//将当前线程阻塞指定的时间。
                        }
                        Sound(record[k].c);
                    }
                    record.Clear();//将记录清空
                }

            }

        }

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.7万人学习

Excel 教程
Excel 教程

共162课时 | 14.5万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号