




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 音乐演奏程序 语言程序设计课程设计 学院名称 贵州航天职业技术学院 学生姓名 任 悦 专业班级 08 计算机网络班 指导老师 陈 美 成 完成时间 年 月 日 2 一 摘要 C 语言是一种计算机程序设计的一种语言 它既具有高级语言的特点 又具有 汇编语言的特点 它可以作为工作系统设计语言 编写系统应用程序 也可以 作为应用程序设计语言 编写不依赖计算机硬件的应用程序 因此 它的应用 范围广泛 不仅仅是在软件开发上 而且各类科研都需要用到 C 语言 具体应 用比如单片机以及嵌入式系统开发 也正因为这样 C 语言得到飞速的发展 也成为最受欢迎的程序设计语言之一 通过对 C 语言的学习 并将运用所学的知识与现实的生活联系起来 通过 对现实生活中的程序的开发来更深刻地理解 C 语言强大的功能 二 关键字 打开音乐 播放音乐 退出 三 正文部分 引言 音乐是现实生活中很重要的娱乐方式 并且好的音乐 可以让人忘记忧伤 灵舒畅 得到一种美得享受 是音乐让现代社会的人生活变得多姿多彩 开发 个音乐演奏程序 有利于对音乐的进一步了解 同时也能感受到 C 语言与生活 联 系的紧密性 对这次的程序设计 可以对 C 语言中的基础知识的进一步学习 算法分析 要确定一种算法并说明原因 1 首先要定义一些与音乐相关的量 如节拍 音调等相关的常量 并 输入几首曲的编曲代码 2 编写播放的程序 MusicPlay int song 函数是用来播放音乐的 通过 while 循环语句来控制 if 语句来判断条件 函数返回最近所敲的按键 Outportb 函数是用来输出字节到端口的 outportb 0 x42 char fre 8 outportb 0 x42 char fre 8 通过左移与右移来实现输入一个字节与返回 一个字节 3 3 主函数 main 主要是用来实现界面的显示 以及对歌曲的选择 通过 switch case 来实现选择功能 其中嵌套 if 来判断输入情况 这样来可 以确定你的选择 如果选择的超出范围 则输入错误 3 技术难点及解决的方案 首先对音乐的一些常量的定义 需要有一定的音乐基础 拍子包括一拍 半拍 四分之一拍 八分之一拍 以及十六分之一拍 以及对音调的声明 这些都有 一定的难度 还有就是每首曲子的代码是自己编不出来的 是在网上找到的 在这里只是用了四首曲子 3 对于播放程序的设计更是难上加难 这里面涉及的算法是从未碰到过的 还会 涉及到硬件方面的输出 这些控制起来都有难度 这些方面的知识都是可以参看网上的一些资料 边学习便解决一面迎来的问题 但还是有些问题尚未得到解决 或是不够完善 1 操作界面没有怎么设计 同时也是不知道怎么去设计 这样的话造成界面单 调 2 这个程序播放的音乐只能是四首 想播放更多的音乐没有得到实现 更就没 法谈随心所欲地播放自己想听的音乐了 其实也是可以通过 C 语言中打开文件 的方式来实现打开自己想听的音乐 3 这个程序的功能显得十分简单 不能够实现一些复杂的操作 4 功能框图和程序流程图 功能图 功能图 开始 播 放 第 一 首 歌 曲 播 放 第 二 首 歌 曲 播 放 第 三 首 歌 曲 播 放 第 四 首 歌 曲 退 出 4 流程图流程图 5 while song note 0 fre song note dur song note 1 if kbhit if fre Break N Y while goal clock if fre outportb 0 x61 control goal clock t 0 note note 2 结束 6 if scanf d song2 C10 N1 D10 N1 E10 N1 F10 N1 G10 N1 A10 N1 B10 N1 C10 N2 D10 N2 E10 N2 F10 N2 G10 N2 A10 N2 B10 N2 C10 N4 D10 N4 E10 N4 F10 N4 G10 N4 A10 N4 B10 N4 C10 N8 D10 N8 E10 N8 F10 N8 G10 N8 A10 N8 B10 N8 C10 N16 D10 N16 E10 N16 F10 N16 G10 N16 A10 N16 B10 N16 C0 N1 D0 N1 E0 N1 F0 N1 G0 N1 A0 N1 B0 N1 C0 N2 D0 N2 E0 N2 F0 N2 G0 N2 A0 N2 B0 N2 C0 N4 D0 N4 E0 N4 F0 N4 G0 N4 A0 N4 B0 N4 C0 N8 D0 N8 E0 N8 F0 N8 G0 N8 A0 N8 B0 N8 C0 N16 D0 N16 E0 N16 F0 N16 G0 N16 A0 N16 B0 N16 C1 N1 D1 N1 E1 N1 F1 N1 G1 N1 A1 N1 B1 N1 C1 N2 D1 N2 E1 N2 F1 N2 G1 N2 A1 N2 B1 N2 C1 N4 D1 N4 E1 N4 F1 N4 G1 N4 A1 N4 B1 N4 C1 N8 D1 N8 E1 N8 F1 N8 G1 N8 A1 N8 B1 N8 C1 N16 D1 N16 E1 N16 F1 N16 G1 N16 A1 N16 B1 N16 C2 N1 D2 N1 E2 N1 F2 N1 G2 N1 A2 N1 B2 N1 C2 N2 D2 N2 E2 N2 F2 N2 G2 N2 A2 N2 B2 N2 C2 N4 D2 N4 E2 N4 F2 N4 G2 N4 A2 N4 B2 N4 C2 N8 D2 N8 E2 N8 F2 N8 G2 N8 A2 N8 B2 N8 C2 N16 D2 N16 E2 N16 F2 N16 G2 N16 A2 N16 B2 N16 END 以上是音符测试代码 你可以通过系统发出的音调选择你需要的音符 注意 数组中的偶数元素代表音符奇数元素代表拍长 song3 C0 N8 C0 N8 G0 N8 G0 N8 A0 N8 A0 N8 G0 N4 F0 N8 F0 N8 E0 N8 E0 N8 D0 N8 D0 N8 C0 N4 G0 N8 G0 N8 F0 N4 E0 N8 E0 N8 D0 N4 G0 N8 G0 N8 F0 N8 F0 N8 E0 N8 E0 N8 D0 N4 C0 N8 9 E0 N8 G0 N4 A0 N8 C1 N8 G0 N4 F0 N8 F0 N8 E0 N8 E0 N4 D0 N8 D0 N8 C0 N4 C0 N8 C0 N8 G0 N8 G0 N8 A0 N8 A0 N8 G0 N4 F0 N8 F0 N8 E0 N8 E0 N8 D0 N8 D0 N8 C0 N4 G0 N8 G0 N8 F0 N4 E0 N8 E0 N8 D0 N4 G0 N8 G0 N8 F0 N8 F0 N8 E0 N8 E0 N8 D0 N4 C0 N8 E0 N8 G0 N4 A0 N8 C1 N8 G0 N4 F0 N8 F0 N8 E0 N8 E0 N4 D0 N8 D0 N8 C0 N4 END 以上是曲子代码 你可以嵌入自己喜欢的歌曲代码 注意 数组中的偶数元素代表音符奇数元素代表拍长 song4 C10 N4 B0 N4 G0 N8 A0 N4 E0 N16 D0 N8 C0 N8 D0 N8 G0 N8 E0 N8 E0 N4 E0 N8 G0 N8 E0 N8 D0 N8 D0 N4 A0 N8 A0 N8 G0 N8 A0 N8 B0 N8 G0 N8 G0 N8 E0 N4 C10 N8 B0 N8 G0 N8 A0 N4 E0 N8 D0 N8 C0 N8 D0 N8 G0 N8 E0 N4 C0 N8 D0 N8 E0 N4 G0 N8 E0 N8 D0 N4 C0 N8 B10 N8 C0 N8 B10 N8 A10 N4 A0 N8 A0 N8 A0 N8 C1 N8 D1 N8 E1 N8 E1 N8 C1 N8 A0 N8 A0 N8 B0 N16 A0 N16 G0 N8 E0 N8 A0 N8 A0 N8 C1 N8 D1 N8 E1 N8 E1 N8 C1 N8 A0 N8 A0 N8 B0 N8 A0 N8 B0 N16 A0 N16 G0 N8 E0 N8 D1 N16 D1 N16 D1 N8 D1 N8 A0 N16 B0 N16 A0 N8 G0 N8 E0 N8 D1 N16 D1 N16 D1 N8 A0 N16 B0 N16 A0 N8 G0 N8 E0 N8 A0 N8 A0 N8 A0 N4 A0 N8 A0 N8 A0 N4 C10 N8 B0 N8 G0 N8 A0 N4 E0 N16 D0 N16 C0 N8 D0 N8 G0 N8 E0 N4 E0 N4 E0 N16 G0 N16 E0 N16 D0 N16 D0 N4 A0 N16 A0 N16 G0 N8 A0 N8 B0 N8 G0 N16 G0 N16 E0 N4 C10 N8 B0 N8 G0 N8 A0 N4 E0 N16 D0 N16 C0 N8 D0 N8 G0 N8 E0 N4 C0 N16 D0 N16 E0 N4 G0 N8 E0 N8 D0 N4 C0 N8 B10 N8 C0 N16 B10 N16 A10 N4 END 以下是播放程序代码 void MusicPlay int song int note 0 fre dur control clock t goal while song note 0 fre song note dur song note 1 if kbhit break int kbhit 函数返回最近所敲的按键 if fre 10 outportb 0 x43 0 xB6 函数 void outportb int port char byte 将字节 byte 写入指定的输出端口 port fre unsigned 1193180L fre outportb 0 x42 char fre 8 outportb 0 x42 char fre 8 control inportb 0 x61 函数 int inportb int port 从指定的 输入端口读入一个字节 并返回这个字节 outportb 0 x61 control 0 x3 goal clock t dur clock while goal clock if fre outportb 0 x61 control goal clock t 0 note note 2 void main void int n do printf If you want to listen music please input a number 1 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林服装店课件
- 桥梁线描课件
- 初级汽车驾驶员职业技能鉴定理论考核试题及答案
- 2025年数字人造型师中级面试题预测及解析
- 生产安全事故综合应急救援预案演练方案(一)
- 2025年交安B(公路水运)学习资料题库及答案
- 2025年政府部门文秘岗位笔试模拟题及答案集
- 2025年油气储运行业初级考试题库与
- 2025年全科医师转岗培训理论知识题库及参考答案
- 2025年大学入学英语水平测试预测试题集及答案详解
- 会计研究方法论 第4版 课件全套 吴溪 第1-20章 导论- 中国会计学术研究成果的国际发表
- 《水库大坝安全管理条例》知识培训
- 父女关系断绝书
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 《晚期肾癌新视点》课件
- 三年级 人教版 数学 第六单元《两位数乘一位数(不进位)口算》课件
- 民爆信息系统网络服务平台
- 2025年度智慧企业ERP系统集成与运维服务合同模板2篇
- 2024年优居房产全国加盟手册3篇
- 污水处理工程施工工程组织设计
- 氨基酸作为药物靶点
评论
0/150
提交评论