版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浙 江 师 范 大 学本科生课程论文封面课程名称:android手机程序开发论文名称:软件开发文档学 院数理与信息工程学院专业 通信工程学号 14900110姓名王晓洁任课教师熊继平成绩评阅教师签名浙江师范大学数理信息学院基于加速度传感器的计步而实验目的:利用加速度传感器实现计步器的功能。实验过程一、组件设计图1界面设计二、相关代码【1】全局变量“step ”用来记录行走步数。【2】定义过程将标签1的文本设置为步数值。【3】核心算法当加速度传感器被晃动时,step加1.并且调用过程。最后有一个清除步数的功能。实验感想第一次接触这样拼图类的代码编写方法,感觉很有趣,适合青少年起步学习,不 枯燥。
2、这个app虽然功能简单,但是要做到精确计步却不容易。 在算法上有很大 需要改进。基于蓝牙的手机通信软件实验目的:根据app inventor 2 提供的两个蓝牙通信组件:蓝牙客户端、蓝牙服务器,将这两个组件配合使用,实现简单的即时通信功能。实验过程:一、组件设置图1界面设计二、与蓝牙服务器相关的代码【1】全局变量“角色”用来表明当前设备在通信中的角色:服务器或客户端。【2】“在线”设置如图2所示,当选中“在线”复选框时,表明本设备现在充当服务器 的角色,可以接受来自其他设备的连接请求。一旦该设备成为服务器,“选择列表”及“断开连接”组件将不可用。图2修改蓝牙设备的角色【3】接收连接事件当蓝牙服
3、务器收到连接请求时,将触发该事件。如果连接成功,即连 接状态值为真,则向所连接的设备发送“已连接到服务器,可以开始 聊天了 . ”,并开始启用计时器,随时监听客户端发来的消息;如果 连接不成功,则不启用计时器。如图 3所示。图3蓝牙服务器“接收连接”事件处理程序三、与蓝牙客户端相关的代码【1】当“选择列表”准备选择时当用户点击“选择列表”时,将打开一个列表,里面列出了所有已配对的蓝牙设备,用户可以选择其一进行连接。图4准备连接【2】当“选择列表”完成选择时当用户选择了 一个蓝牙设备,意味着用户向所选设备发出了连接请求, “让蓝牙客户端连接设备”的结果可能是真(连接成功),也可能是 假(连接失败
4、)。如果成功,则设全局变量“角色”值为“客户端” 并启动计时器;如果失败,则不启动计时器。执行t如果e让貂环一。连接设备 参数:地址,霹冢则,浚fengw.占为77 “西言设崎溟鳗皿 的时费际为 : “ 3部厕航卫加 设用a繇0的一脆加1为市a否则 设 陪闭却1 的蜗痂注为 “ 婢与海利度重逢“宾,疏的胸:能电1为申函图5进行连接【3】断开连接断开己连接设备图6断开连接四、发送消息【1】全局变量“聊天内容”与自定义过程“拼字符串”:以适当的方 式来呈现聊天记录,即,为聊天内容添加换行符,并表明发言者身份。图7对聊天内容的记录与组织【2】发送一条消息图8角色不同使用不同蓝牙组件来发送消息五、接收
5、消息图9不同角色使用不同蓝牙组件来接收消息六、清空聊天记录 图10清空聊天记录实验结果:实验感想:我们的app仍然需要改进,比如接收消息可以加上语音提示, 添 加聊天记录保存功能,添加共享音频图片文件功能,这个小app距离 微信这些聊天工具还有很大的上升空间。通过此次实验,我们了解了蓝牙客户端服务器计时器等非可视组件的相关功能,对两个角色的切换有了更深刻的认识, 虽然程序是参 照网上的例程,但是收获良多,希望以后有更多这样的机会。木琴实验目的使用单一的声音组件来播放不同的音频文件,使用clock组件来计算并实现两个音符之间的延迟, 在创建一个过程时做判断,创建能 够自我调节的过程;学习列表的高
6、级应用,包括添加、删除及读取项。 如图,这个应用可以做到:1 .通过触摸屏幕上的彩色按钮播放八个不同的音符;2 .按“播放”按钮,回放之前弹奏的音符;3 .按“重置”按钮清除 之前弹过的音符,以便输入新曲。图1木琴的用户界面实验过程一、设计组件创建键盘用户界面中包含了低音c到高音c的打掉五声(七音符)音阶 的八个音符键盘,本节将创建这样的音乐键盘。首先创建前八个木琴键,用按扭来实现,设置 text属性,width属性,hight属性,backgroundcolor属性,使其效果如图2,图2组件设计添加sound组件我们要弹奏美妙的音符,就需要创建一个声音组件,设置最小间隔属性为0,这个不要忘记
7、咯,是为了弹奏要多快有多快,我已开始没有设,默认值是半秒钟,就会有很大延迟。下载1.wav到8.wav,并加载到项目。声音与按钮的连接button1被点击时,播放1.wav,切换到编辑块,这时候如果能有一 个调用的过程会更加方便,然后当每一个按钮被点击是,就调用过程, 播放对应的音频。则进行如下设置图3创建过程来演奏仅仅这样在测试时会失望,第一次按键时会出现错误。因为系统是在 程序运行后才加载声音,这个过程需要时间。所以我们需要在程序启 动时立刻加载声音。图4应用启动时加载声音经过这些步骤我们就可以弹奏出一些简单的曲子了!记录并回放音符为了实现回放功能,需要记录弹奏的音符并加以保存。 除了要记
8、录弹 奏的音高(声音文件),还要记录两个音符之间的时间长度。我们需要维护两个列表,每弹奏一个音符,两个列表中都会各自添加一条记录:notes :包含与演奏的音符相对应的声音文件名,按照演奏顺序排列; times :记录音符演奏时的时间点。我们可以从clock组件中得到计时信息,因此也可以用来正确地设定 音符的回放速度。添加组件在设计器中添加一个clock组件及“播放”和“重置”按钮,按钮放在 horizontalarrangement 中。记录音符及时间回到块编辑器中,为组件添加正确的行为。我们需要维护两个列表:notes与times ,每次用户按下一个按钮,就向列表中添加一项:1 .从 va
9、riables 抽屉中拖出一个 initialize global name to 块来 定义一个新的变量;2 .单击“nams将变量命名为“notes”;3 .打开lists 抽屉,拖动一个 makea list 块,将其放置在变量notes 的插梢中;这样就定义了一个名为“ notes”的空列表。重复上述步骤定义另一个变量,命名为“times。块的样子图5创建列表块的功能每演奏一个音符,需要保存两项数据:声音文件名(保存到notes列表),以及演奏瞬间的时刻(保存到times列表)。用clock1.now块来记录时刻,它返回当前时刻的时间值(例如,2011年3月12日上午8时33分14秒)
10、,精确到毫秒。这些数据可以通过 soundl.source和clockl.now块获得,将分别被添加到notes及times列表中,如图5所示。i定义过程p1aynotenuitber执行语句逐曰0 . 痂为 5台并文本 取而那加列表项列表取global notesninntiernitem.2添加列表项列表 itemglobal tlm.es调用朝眼芹0 .求当前时间图6将演奏声音添加到列表中当用户按下“重置”按钮时,我们希望清空这两个列表。由于用户看不到清空带来的任何变化,因此添加一个sound1.vibrate块,通过振动来告知用户按键生效了,这种设 置对用户来说是非常友好的。图 9-1
11、2显示了这一功能用到的块。图9-12 为用户的“重置”操作提供反馈音符的回放 作为一个思想实验,先来考虑如何实现音符的回放,而暂时忽略回放速度。我们可以(但不会)通过创建 图9-13中的那块来实现这个暂时的目标:块的功能这是计算机科学中一个非常重要的概念:强大的递归为了更好地了解递归的工作原理,我们来一步一步地探究,当用户演奏了三个音符(1.wav、3.wav和6.wav),然后按下“播放”按钮 时,都发生了什么。playbutton.click首先判断列表中是否保存了音符:由于notes列表长度30,列表不空,因此设定count等于1,并调 用 playbacknote :1 .在第一次调用
12、 playbacknote 时,count= 1 :soundl.source被设置为在notes中的第1项,即1.wav;调用 sound1.play,播放 1.wav;由于count值(1)小于notes的长度(3),因此count递增为2, 并再次调用playbacknote ;2 .第二次调用 playbacknote 时,count=2 :sound1.source被设置为notes中的第2项,即3.wav;调用 sound1.play,播放 3.wav;由于count (2)小于notes的长度(3),因此count递增为3,并再 次调用 playbacknote;3 .第三次调用
13、 playbacknote 时,count=3 :app inventor 编程实例及指南本文档使用 看云 构建-154 -sound1.source被设置为notes中的第3项,即6.wav;调用 sound1.play,播放 6.wav;由于count (3)不小于notes的长度(3),因此跳出if块,回放结 束。实验结果实现木琴弹奏,回放,重置的功能。改进下面是一些可供探讨的备选方案:目前,在回放过程中,没有对用户点击resetbutton做任何限制, 这将导致程序的崩溃(错误提示:select list item: attempt to getitem number 4 of a l
14、ist of lengh 0。)修改 playbutton.click ,让resetbutton在回放期间禁用,回放完成后再重新启用。将 playbacknote中的if块改为ifelse 块,并在“ else”中重新启用 resetbutton。类似问题也发生在playbutton上,用户可以在回放过程中再次 点击该按钮。(想象一下会发生什么。)在playbutton.click 中禁用 playbutton ,并将其text属性改为“播放中”,并像resetbutton 一样,在playbacknote的ifelse 块中重新启用该按钮, 并重置text属性。实验感想编写一个能自我调用的过程不仅是可能的,有时也是必要的。这种强大的技术称为递归。在编写递归过程时,一定要确保为程序的退 出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理伦理决策课程教案设计
- 客户投诉响应与整改方案的承诺书(3篇)
- 数据安全保障与网络安全防护承诺书4篇
- 生态项目可持续性承诺书7篇
- 《分数的再认识》教学设计讲义教材
- 客户信息收集标准化模板需求分析与满意度双评估版
- 感染控制法律法规解读
- 公司发展态势稳定承诺书5篇
- 二年级上册口算练习题(1)教学材料
- 制造业供应链优化管理实施手册
- 医疗卫生信息数据安全与隐私保护规范(标准版)
- 2026年合肥职业技术学院单招职业适应性测试题库含答案详解(基础题)
- 2026年装饰装修劳务分包合同(1篇)
- OpenClaw发展研究报告
- 2026年春节后工地复工复产专项施工方案二
- 2025中国东方资产管理股份有限公司总部部门分公司高级管理人员社会招聘笔试历年典型考题及考点剖析附带答案详解2套试卷
- 制造业生产安全操作规范
- GB∕T 13331-2014 土方机械 液压挖掘机 起重量
- 新教材教科版五年级下册科学全册单元测试卷(含期中期末试卷)
- 3小升初数学课程设置
- DB43∕T 359-2007 鱼卵孵化技术规范
评论
0/150
提交评论