android实验报告(共12篇)
实验名称
音乐播放器
班
级
学
号
姓
名
指导教师
实验成绩
2016 年04月
一、实验目的
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。
二、实验内容及要求
在其中写清楚这个实验具体要你做什么,怎么做,要达到什么样的效果等。本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,下一首,上一首播放列等基本播放控制功能,界面简明,操作简单。
三、实验方案设计
在其中写清楚你的程序的详细设计,用流程图配文字的形式描述。如果其中涉及到算法,一定要把算法阐述清楚。
3.1.1假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下
图2.1 播放器基本用例图
3.1.2用例分析 用例名称:启动软件 参与者:用户
目标:使得用户启动软件并加载手机和sd卡上的音频文件到播放列表 前置条件:无
基本事件流:1.用户启动软件
2.播放器将播放列表中的当前的歌曲
用例名称:播放 参与者:用户
目标:使得用户可以播放在播放列表中选中的歌曲 前置条件:播放器正在运行
基本事件流:1.用户单击“播放”按钮
2.播放器将播放列表中的当前的歌曲
用例名称:暂停 参与者:用户
目标:使得用户可以暂停正在播放的歌曲 前置条件:歌曲正在播放且未停止和暂停 基本事件流:1.用户单击“暂停”按钮
2.播放器将暂停当前的歌曲
④用例名称:停止 参与者:用户
目标:使得用户可以停止正在播放的歌曲 前置条件:歌曲正在播放或暂停 基本事件流:1.用户单击“停止”按钮
2.播放器将停止当前播放的歌曲
⑤用例名称:推出 参与者:用户
目标:使得用户退出或者后台播放音乐 前置条件:程序在运行
基本事件流:1.用户按返回键
2.播放器退出或者进入后台播放
四、实验测试
Step1.启动软件后,软件自动检索手机和sd卡的音频文件,并组织显示成列表.Step2.点击列表的歌曲名字。
Step3.播放音乐。
Step4.点击暂停,音乐暂停
Step5.点击播放 转到step3 Step6.点击停止 停止播放音乐
Step7.点击退出,若音乐处于播放状态,则音乐转向后台播放,界面退出。
Step8.点击退户,若音乐处于暂停或者停止状态,直接退出。
音乐播放器流程图
4.1MusicInfoController类
这个类继承于service,是播放音乐的服务类。播放音乐,暂停音乐,停止播放等操作都封装在这个类中。
主要的执行动作有:
4.1.1.类启动 onCreate(){
mMediaPlayer = new MediaPlayer();//分配一个播放对象
mMediaPlayer.setOnPreparedListener(mPrepareListener);//绑定之前
mMediaPlayer.setOnCompletionListener(mCompleteListener);//绑定之 后
}
4.1.2.服务绑定activity
MediaPlayer.OnCompletionListener mCompleteListener = new
MediaPlayer.OnCompletionListener()//实例化一个绑定监听器的匿名类
{
public void onCompletion(MediaPlayer mp)//完成绑定后
{
broadcastEvent(PLAY_COMPLETED);//广播消息
}
};
4.2MusicInfoController类
这个类主要用于获取android系统中的音频文件,并提供访问接口,它是一个单例类。
4.2.1获得播放文件列表
private Cursor query(Uri uri, String[] prjs, String selections, String[] selectArgs, String order){ ContentResolver resolver = pApp.getContentResolver();//取得一个连接对象if(resolver == null){
return null;
}
return resolver.query(uri, prjs, selections, selectArgs, order);} public Cursor getAllSongs(){
return query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);//查询ContentResolver 的所有音频文件
} 4.3MusicList类
改类继承于ListActivity,主要用于显示歌曲列表,并且封装部分操作,以及与父级目标通信。
4.3.1播放
protected void onListItemClick(ListView l, View v, int position, long id){ //歌曲列表的某项被点击
super.onListItemClick(l, v, position, id);
if(mCursor == null ||mCursor.getCount()== 0){
return;
}
mCursor.moveToPosition(position);//游标移动到当前路径
String url = mCursor.getString(mCursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));//取得绝对路径
mMusicPlayerService.setDataSource(url);//传递绝对路径
mMusicPlayerService.start();//播放音乐
}
4.3.2暂停/播放
mPlayPauseButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
if(mMusicPlayerService!= null &&
mMusicPlayerService.isPlaying()){
mMusicPlayerService.pause();//音乐播放的服务暂停
mPlayPauseButton.setText(R.string.play);//改变按钮文字
} else if(mMusicPlayerService!= null){
mMusicPlayerService.start();//如果已经是暂停,则播放音乐
mPlayPauseButton.setText(R.string.pause);//改变文字
}
}
});
4.3.3停止
mStopButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
// Perform action on click
if(mMusicPlayerService!= null){
mTextView.setVisibility(View.VISIBLE);//改变文字状态
mPlayPauseButton.setVisibility(View.INVISIBLE);//隐藏按钮
mStopButton.setVisibility(View.INVISIBLE);//隐藏停止按钮
mMusicPlayerService.stop();//后台音乐停止播放
}
}
});4.4MusicPlayerApp类
该类继承与Application,是程序的生存类。可以标识音乐播放器的生命周期,包括音乐在后台播放等。
4.4.1单例模式
public void onCreate(){
super.onCreate();
mMusicInfoController = MusicInfoController.getInstance(this);//返回该类的一个唯一实例
}
public MusicInfoController getMusicInfoController(){
return mMusicInfoController;}
五、程序的使用手册
系统编译生成apk文件,将apk文件拷到手机或者sd卡中,直接打开即可安装,或者安装360手机助手通过usb调试的方式进行安装。
启动软件后,加载歌曲列表现在这个界面上,如01表示歌曲名,unknown表示歌曲的演唱者
软件启动界面
从加载的歌曲列表中点击要播放的歌曲,开始播放
音乐播放界面
六、心得体会
关键词:Android,实验室管理,Web Service
1 高校机房管理现状
当前,高校计算机实验室的管理一般都由专职的实验室管理人员负责。机房的使用主要包括:教务处安排的实验课程,师生开展的课外研究,学生的自由上机等。由于教务处、师生对实验室的具体情况不熟悉,所以在安排机房时,会出现偏差。比如说教务处为某个班安排一个机房上课时,由于采用了自动排课系统,所以排课时选择的条件可能就是机器的台数。只要某个机房的机器台数大于学生人数,就可能会选择它作为上课机房。但是每门实验课程所需的软硬件配置要求是不一样的。对于机房的机器来说时,由于采购时间不同,硬件配置有高低之分,安装的操作系统、实验软件等软件环境也有所不同。另外,计算机实验室越来越专业化,比如网络工程实验室、物联网实验室、综合布线实验室、云计算实验室都拥有大量复杂且贵重的实验设备。在实验室的使用安排上,师生还必须要与实验室管理人员配合。所以为了减少安排的偏差,提高实验室的管理、师生的学习及工作效率。有必要开发一套信息管理系统,既方便实验室管理人员安排机房的使用,又方便师生能实时获得实验室的使用现状,能申请实验室或者设备的使用权限。
2 系统功能设计
实验室管理平台的操作界面可分为两部分,一个是PC端的窗体操作界面,主要是供实验室管理人员对相关数据的批量处理,比如实验室使用信息更新,课程安排,申请审核等。另一个移动端APP界面,师生、管理员都可在这个界面进行相关信息的查询、服务的申请或处理等。
系统的用户角色主要包括:系统管理员,机房管理员,教师,学生等。其中系统管理员主要对系统进行宏观管理,包括注册用户的审核,系统的初始化、备份,数据的导入与导出等。机房管理员要与自己所管理的机房建立关联,定期更新机房的使用现状,审核并安排师生的申请,处理师生在机房使用过程中反馈的信息。教师可以查询机房课程安排,对需要使用的机房或设备进行预约,也可以对预约的时间、机房等信息进行调整。学生可以查询机房的课程安排、自由上机安排,可以向机房管理员报告机器的故障信息。如果学生需要开展课外研究,同样也可以对所需机房或设备进行申请。师生移动APP操作端的功能模块图如图1所示。
(1)登录/注册模块:师生可以通过此模块输入帐号及密码,通过网络将身份信息传递给服务器端的Web Service接口,由Web Service接口查询数据库,如果帐号不存在,则提示进行注册。注册时师生需提供工号或者学号进行身份的绑定。如果忘记密码,还提供以注册手机或邮箱的方式进行密码找回的功能。
(2)机房使用状况查询:师生可以查询当前机房使用情况,如机房在某学期的课程安排表,公共机房的开放时间,机房的软硬件环境,机房的管理员信息等。
(3)机房/设备使用预约模块:可以提交预约机房/设备的使用申请,可以查询审核的进度,可以对预约进行管理,如变更,删除等。
(4)设备报障模块:师生在机房/设备的使用过程中,如果遇到设备故障,或者需要机房管理员协助的状况,可以通过此模块与相关管理员以实时、留言方式进行交流。
3 系统的实现
系统主要由运行于移动设备上APP端,运行在服务器IIS上的Web Service,以及运行在PC端的管理员操作窗体程序,以及数据库服务器组成。系统架构图如图2所示。
移动APP端采用Java语言开发,开发工具是Eclipse+Android SDK+ADT插件。PC端的窗体程序采用ASP.NET的Windows Form进行开发。与移动APP端进行的通信,是通过服务器上IIS发布Web Service来实现,首先要为它设置一个接口,如8080。移动APP客户端发送数据时,需要通过IO流里面的Output Stream将请求发送给服务器端Web Service接口,再由Web Service通过请求调用相应函数对数据库进行操作,最后把处理结果以XML文件形式返回给客户端,客户端通过InputStream读取服务器传来的数据并进行解析。数据库则采用了SQL Server,里面存放了用户表、申请信息表、机房使用信息表等系统需要用到的数据表。
本系统利用HTTP协议的post请求来调用Web Service接口,通过Web Service接口对数据库进行操作,最后将处理结果返回到客户端。移动APP端向Web Service发送post请求的函数被封装在一个Http Conn Soap类中,部分代码如下所示:
Web Service的调用接口界面如图3所示。
4 小结
本文根据高校机房管理现状,设计并开发了一个基于Android的实验室管理平台。教师、学生、机房管理员都可以通过这个平台进行信息交流,使机房管理、师生获取机房服务的效率都得到了较大的提高。
参考文献
[1]陈净宇等,高校校园APP发展现状初探,中国传媒科技,2014年3月下:84-85
[2]韩文智等,Android平台的移动APP开发方法与应用研究[J],四川理工学院学报(自然科学版),2015年第28卷第3期:22-25
实验器材:试管三支,“金钱”溶液、“名利”溶液、“爱心”溶液各50mL,“友情”粉末少许。
实验目的:当今社会,友情在人们生活中所占的分量似乎越来越轻,然而,人们的生活、工作和学习其实都离不开友情。本实验可测出“友情”粉末与不同物质在一起时所产生的不同反应,让人们进一步了解友情的重要性。
实验步骤:取出三支试管,放进相同质量的“友情”粉末,然后分别倒入“金钱”“名利”“爱心”三种溶液,观察三支试管内发生的不同的化学反应现象。
实验现象:①倒入“金钱”溶液的试管中,原来光芒四射的友情粉末,顿时变得混浊,释放出一种具有刺激性气味的气体,并有黑色固体物质生成。
②倒入“名利”溶液的试管中,“友情”粉末立刻“灰飞烟灭”,留下一种叫做“仇恨”的血红色物质。
③倒入“爱心”溶液的试管里,立刻生成一颗颗叫做“挚友”的固体物质。
实验结果:友情+金钱=狂风+暴雨+有害物质
友情+名利=仇恨+烦恼+有害物质
友情+爱心=挚友+快乐+有益物质
实验结论:友情不是靠金钱、名利来维护的,而要用爱心去催生。在心与心的交流中产生感应,友情才能地久天长。
注意:“金钱”和“名利”两种溶液与“友情”发生反应后生成的物质,若不经过处理,对人类健康、对环境的危害极大,应及时处理。
(指导老师:鲁作富)
【简评】从实验名称到实验器材,再到实验步骤和实验结论,乍一看,这不就是一份规范的实验报告么?你若真那么认为,就大错特错了。作者借用实验报告这种形式巧妙地诠释了自己对友情的理解。实验器材和实验步骤都是作者精心设计的,既与常见的化学实验有着相似之处,又很容易让人体味到其用意。实验结论点明意旨,引人深思。
学 院: 专 业: 学 号: 学生姓名: 指导教师: 日 期:
电子信息工程学院 计算机应用 11033801135
郎红 黄炜 2013年11月13
一、项目背景
现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。
本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。通过Web Service等技术让用户体验到前所未有的移动计算。
二、需求分析
(一)功能需求
在这个综合示例中,有一个显示天气情况的用户界面,可以通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向和雨雪情况等。这些天气数据是通过后台服务获取的,这个后台服务按照一定时间间隔,从搜索引擎上获取天气预报信息,并将天气信息保存在后台服务中。示例还需要提供基于SMS短信的天气数据服务,其他手机用户可以向本示例所在的手机上发送SMS短信,在短信中包含特定的关键字,则可以将已有的天气情况通过SMS短信回复给用户。最后,每个被发送的SMS短信都会被记录下来,用户可以浏览或删除这些记录信息。
(二)界面需求
从上面的描述中可以基本了解软件的功能需求,但为了将需求分析过程变得简单明了,首先找出用户界面上需要显示的内容。功能描述中有“显示天气情况的用户界面”和“用户可以浏览或删除这些记录信息”,除此以外,一般应用软件还应有显示配置信息的界面。因此,本示例应该包含三个用户界面: 显示天气预报的用户界面、显示已发送SMS短信的用户界面、浏览和设置配置信息的用户界面
(三)内部功能
从用户界面出发,分析隐藏在界面后面的内部功能,这些功能则是程序正常运行的基础(1)显示天气预报的用户界面 ;
①获取搜索引擎的天气数据 ②保存天气数据信息(2)显示SMS短信的用户界面
①根据关键字监视SMS短信 ②发送包含天气信息的SMS短信 ③将发送SMS短信的相关信息写入数据库(3)浏览和设置配置信息的用户界面
①将用户设置的配置信息保存到数据库 ②启动时读取数据库中的配置信息 ③支持恢复缺省设置
三、程序设计
(一)用户界面设计
根据需求中的用户界面分析,应用程序应包含三个主要的用户界面,每个用户界面的显示内容
在“显示天气预报的用户界面”中,显示目标城市的当前的天气状况,包括城市名称、温度、湿度、风向、雨雪情况和获取数据时间等信息。在界面的下方显示未来四天的天气状况,但仅包括温度和雨雪情况
在“显示已发送SMS短信的用户界面”中,显示每个回复短信的时间、目标手机号码、城市名称、当天的天气状况和未来一天的天气状况
在“浏览和设置配置信息的用户界面”中,显示希望获取天气预报的城市名称、获取数据的频率和短信监视的关键字,并允许用户设置是否提供短信服务,以及是否记录回复短信信息
用户界面草图:
(二)数据库设计
本示例主要有两种数据需要存储
配置信息:因为配置信息的数据量很小,从Android支持的存储方式上分析,可以保存在SharedPreference、文件或SQLite数据库中
SMS短信服务信息: SMS短信服务信息是一个随着时间推移而不断增加的数据,属于文本信息,而且有固定的格式,因此适合使用SQLite数据库进行存储
综合分析这两个需要存储的数据,选择SQLite数据库作为存储数据的方法(1)配置信息:
配置信息中主要保存目标城市的名称,访问搜索引擎更新天气信息的频率,请求天气信息服务短信的关键字,以及是否提供短信服务和是否记录短信服务内容,配置信息的数据库表结构
(2)SMS短信服务信息:
SMS短信服务信息主要保存请求天气服务短信的发送者、短信内容、接收时间和回复信息的内容,SMS短信服务信息的数据库表结构
(三)程序设计
程序模块设计:
从功能需求上分析,可以将整个应用程序划分为4个模块,分别是用户界面、后台服务、数据库适配器和短信监听器。下图是模块结构图
从模块结构图中不难看出,后台服务是整个应用程序的核心,主要包含数据获取子模块和短信服务子模块。数据获取子模块负责周期性的从搜索引擎获取天气信息;短信服务子模块则负责处理接收到的服务请求短信,并发送包含天气信息的短信。
后台服务由用户界面通过Intent启动,启动后的后台服务可以在用户界面关闭后仍然保持运行状态,直到用户通过用户界面发送Intent停止服务,或系统因资源不足而强行关闭服务。
用户界面从后台服务获取天气信息,而没有直接通过网络访问搜索引擎的天气数据。一方面是因为后台服务使用了工作线程,通过后台服务获取天气数据可以避免因网络通信不畅造成界面失去响应。另一方面,在用户关闭界面后,后台服务仍然需要更新天气信息,以保证短信服务数据的准确性。用户界面通过直接调用数据库适配器,向SQLite数据库中读写配置信息,或对SMS短信服务信息进行操作。
短信监听器是一个BroadcastReceiver,监视所有接收到的短信。如果短信中包含用户自定义的关键字,短信监听器则会认为这条短信是天气服务请求短信,将短信的相关信息写入后台服务的短信服务队列。如果用户在配置信息中选择无需提供短信服务,短信监听器仍然继续监听所有短信,只是后台服务不再允许将服务请求短信写入服务队列。
数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它实现数据库操作。
四、项目功能描述
(一)系统主要功能
本软件要完成在android手机上实现天气的即时预报。所涉及的功能有: 1.启动程序后可以进行城市、更新频率的设置;
2.可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。使用效果图实现与相应天气的结合。
3.这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过搜索引擎提供的公共接口获取天气预报信息,并将天气信息保存在本地数据库中。(二)工程结构
在程序开发阶段,首先确定“天气预报软件”的工程名称为WeatherDemo,包名称为edu.hrbeu.WeatherDemo。然后根据程序模块设计的内容,建立WeatherDemo示例,WeatherDemo示例源代码的文件结构:
为了使源代码文件的结构更加清晰,WeatherDemo示例设置了多个命名空间中,分别用来保存用户界面、数据库、后台服务、SMS短信和天气数据的源代码文件,WeatherDemo示例的命名空间
WeatherDemo示例将不同用途的源代码文件放置在不同的命名空间中。WeatherDemo示例的文件用途说明
Android资源文件保存在/res的子目录中。/res/drawable目录中保存的是图像文件,/res/layout目录中保存的是布局文件,/res/values目录中保存的是用来定义字符串和颜色的文件,/res/xml目录保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,资源文件名称与用途:
(三)数据库适配器
数据库适配器是最底层的模块,主要用于封装用户界面和后台服务对SQLite数据库的操作。数据库适配器的核心代码主要在DBAdapter.java文件中 用户保存配置信息的类文件Config.java Config.java文件的全部代码如下: package edu.hrbeu.WeatherDemo.DB;2 3 public class Config { 4 public static String CityName;5 public static String RefreshSpeed;6 public static String ProvideSmsService;7 public static String SaveSmsInfo;8 public static String KeyWord;9 10 public static void LoadDefaultConfig(){ 11 CityName = “New York”;12 RefreshSpeed = “60”;13 ProvideSmsService = “true”;14 SaveSmsInfo = “true”;15 KeyWord = “NY”;16 }17 } 从代码中不难看出,公有静态属性CityName、RefreshSpeed、ProvideSmsService、SaveSmsInfo和KeyWord,完全对应数据库中保存配置信息表的属性(参照表12.1)。在程序启动后,保存在数据库中的城市名称、更新频率、是否提供短信服务、是否保存短信信息和关键字等内容,将被读取到这个Config类中,供其它模块做逻辑判断时使用。
代码第10行的LoadDefaultConfig()函数,保存了程序内置的配置参数此函数会在两个情况下被调用,用户主动选择“恢复缺省设置”;首次启动程序时,用来初始化保存配置参数的数据库,DBAdapter类与以往介绍过的数据库适配器类相似,都具有继承SQLiteOpenHelper的帮助类DBOpenHelper。DBOpenHelper在建立数据库时,同时建立两个数据库表,并对保存配置信息的表进行了初始化。
在DBAdapter类中,用户界面会调用SaveConfig()和LoadConfig(),从SQLite数据库中保存和读取配置信息。保存配置信息时,SaveConfig()函数会将Config类中的公有静态属性写入数据库;反之,LoadConfig()会将数据库中的配置信息写入Config类中的公有静态属性。
另一个会调用DBAdapter类的是后台服务,即WeatherService类。后台服务主要调用SaveOneSms(SimpleSms sms)、DeleteAllSms()和GetAllSms()函数,分别用来保存SMS短信记录、删除所有SMS数据记录和获取所有SMS数据记录。在GetAllSms()函数中,调用了一个私有函数ToSimpleSms(Cursor cursor),用来将从数据库获取的数据转换为SimpleSms实例数组。
(四)短信监听器
短信监听器本质上是BroadcastReceiver,用于监听Android系统所接收到的所有SMS短消息,可以在应用程序关闭后仍然继续运行,核心代码在SmsReceiver.java文件中。在介绍SmsReceiver类前,先说明用来保存SMS短信内容和相关信息的SimpleSms类。android.telephony.SmsMessage是Android提供的短信类,但这里需要一个更精简、小巧的类,保存少量的信息,因此构造了SimpleSms类,仅用来保存短信的发送者、内容、接收时间和返回结果。这里的“返回结果”指的是返回包含天气信息的短信内容。
SimpleSms.java文件完整代码: package edu.hrbeu.WeatherDemo.SMS;2 import java.text.SimpleDateFormat;3 4 public class SimpleSms { 5 public String Sender;6 public String Body;7 public String ReceiveTime;8 public String ReturnResult;9 10 public SimpleSms(){ 11 } 12 public SimpleSms(String sender, String body){ 13 this.Sender = sender;14 this.Body = body;15
SimpleDateFormat tempDate = new SimpleDateFormat(“yyyy-MM-dd” + “ ” + “hh:mm:ss”);16 this.ReceiveTime = tempDate.format(new java.util.Date());17 this.ReturnResult = “";18 } 19 } 代码第5行到第8行的属性Sender、Body、ReceiveTime和ReturnResult,分别表示SMS短信的发送者、内容、接收时间和返回结果。第15行和第16行在SimpleSms类的构造函数中,直接将系统时间以“年-月-日 小时:分:秒”的格式保存在ReceiveTime属性中。
SmsReceiver类继承BroadcastReceiver,重载了onReceive()函数。系统消息的识别和关键字的识别并不复杂,只要接收android.provider.Telephony.SMS_RECEIVED类型的系统消息,则表明是Android系统接收到了短信。将短信的内容拆分后,判断消息内容是否包含用户定义的关键字,则可判断该短信是否为天气服务请求短信。
最后,在AndroidManifest.xml文件中注册短信监听器SmsReceiver,并声明可接收短信的用户许可android.permission.RECEIVE_SMS。如果注册的组件不在根命名空间中,则需要将子命名空间写在类的前面,例如下面在代码第1行中,因为SmsReceiver.java文件在edu.hrbeu.WeatherDemo.Service命名空间下,而不在根命名空间edu.hrbeu.WeatherDemo下,因此注册组件时需要在类名SmsReceiver前添加.Service。
后台服务是WeatherDemo示例的核心模块,在用户启动后持续在后台运行,直到用户手动停止服务,后台服务功能,发送包含天气信息的SMS短信(短信发送子模块,周期性的获取搜索引擎的天气数据(数据获取子模块)。
1.短信发送子模块
后台服务在单独的线程上运行,首先调用ProcessSmsList()函数,检查短信队列中是否有需要回复的短信,然后调用Get搜索引擎WeatherData()函数获取天气数据,最后线程暂停1秒,以释放CPU资源,WeatherDemo示例后台服务的核心代码在WeatherService.java文件中。下面是线程调用函数的部分代码 :
private static ArrayList
private void ProcessSmsList(){ 2 if(smsList.size()==0){ 3 return;4 } 5 SmsManager smsManager = SmsManager.getDefault();6 PendingIntent mPi = PendingIntent.getBroadcast(this, 0, new Intent(), 0);7 while(smsList.size()>0){ 8 SimpleSms sms = smsList.get(0);9 smsList.remove(0);10
smsManager.sendTextMessage(sms.Sender, null, Weather.GetSmsMsg(), mPi, null);11 sms.ReturnResult = Weather.GetSmsMsg();12 SaveSmsData(sms);13 }14 } 发送短信是使用SmsManager对象的sendTextMessage()方法,该方法一共需要5个参数,第1个参数是收件人地址,第2个参数是发件人地址,第3个参数是短信正文,第4个参数是发送服务,第5个参数是送达服。sendTextMessage()方法的收件人地址和短信正文是不可为空的参数,而且一般GSM规范要求短信内容要控制在70个汉字以内。代码第8行的Weather.GetSmsMsg(),用来获得供回复短信使用的天气信息,因为考虑到短信的字数限制,仅返回当天和未来一天的天气状况。
2.数据获取模块
天气数据是从搜索引擎提供的Web Service中获取的,调试WeatherDemo示例时需要网络环境,数据的获取地址是 http:///ig/api?hl=en&weather=New%20York。New%20York表示获取纽约(New York)的天气数据,%20表示一个空格。读者可以将上面提供的地址输入到Web浏览器,在浏览器中直接看到XML格式的天气数据。
WeatherAdapter类实现了利用URL获取位图的私有函数GetURLBitmap(),以及用来下载和解析XML数据的公有函数GetWeatherData()。后台服务在调用GetWeatherData()函数解析搜索引擎提供的天气数据时,会不断调用GetURLBitmap()函数,将XML数据中的天气图标根据图标地址下载到本地保存。GetURLBitmap()函数的代码如下 :
private static Bitmap GetURLBitmap(String urlString){ 2 URL url = null;3 Bitmap bitmap = null;4 try { 5 url = new URL(”http://" + urlString);6 } 7 catch(MalformedURLException e){ 8 e.printStackTrace();9 }10 11 try{ 12 HttpURLConnection conn =(HttpURLConnection)url.openConnection();13 conn.connect();14 InputStream is = conn.getInputStream();bitmap = BitmapFactory.decodeStream(is);16 is.close();17 }catch(IOException e){ 18 e.printStackTrace();19 } 20 return bitmap;21 } 第12行代码构造了支持HTTP功能的URLConnection,第14行返回字节流,第15行使用字节流产生位图,第16行关闭字节流。
GetWeatherData()函数首先根据指定的URL地址,从网络获取字节流数据,然后调用轻量级XML解析器XmlPullParser对天气数据进行解析,并将解析结果保存在Weather类的公有静态属性中。
(六)用户界面
在用户界面设计上,采用可多分页快速切换的TabHost控件。WeatherDemo示例TabHost控件的每个标签页与一个Activity相关联,这样就可以将不同标签页的代码放在不同的文件中,而且每个标签页都可以有独立的选项菜单。
WeatherDemo类是继承TabActivity的Tab标签页,共设置3个标签页 TAB1的标题为“天气预报”,关联的Activity为WeatherActivity,TAB2的标题为“历史数据”,关联Activity为HistoryActivity,TAB2的标题为“系统设置”,关联Activity为SetupActivity。
WeatherDemo.java中的代码只是用户界面的框架,设置了Tab标签页的图标、标题和所关联的Activity,标签页中的具体显示内容还要依赖于每个Activity所设置的界面布局
界面布局包含 WeatherActivity、HistoryActivity、SetupActivity 1.WeatherActivity用户界面
WeatherActivity在启动时并不能直接显示最新的天气信息,用户需要通过选项菜单的“启动服务”开启后台服务,然后点击“刷新”获取最新的天气状况。
选项菜单还提供“停止服务”和“退出”选项。WeatherActivity使用的布局文件是tab_weather.xml,这是个较为繁琐的界面布局,多次使用了垂直和水平的线性布局。
2.historyActivity界面
HistoryActivity主要用来显示SQLite数据库中的短信服务信息,显示的内容包括发送者的手机号码、时间和回复短信内容。为了能够以列表的形式显示多行数据,并且定制每行数据的显示布局,这里使用了以往章节没有介绍过的ListActivity(Android.app.ListActivity)。
ListActivity可以不通过setContentView()设置布局,也不必重载onCreate()函数,而直接将显示列表加载到ListActivity,增加了使用的便利性。在WeatherDemo示例中,仍然使用setContentView()设置布局,这样做的好处是可以在界面中设置更为复杂的显示元素,例如在列表上方增加了提示信息“SQLite数据库中的短信服务信息”。下方的代码是HistoryActivity.java文件的onCreate()函数中的设置布局和加载适配器的关键代码。1.setContentView(R.layout.tab_history);2 setListAdapter(dataAdapter);3.SetupActivity界面
SetupActivity主要用来保存和恢复用户设置的运行参数,第一次启动或恢复缺省设置(在选项菜单中)后,界面上会显示系统的缺省设置,包括城市名称、更新频率、是否提供短信服务、是否记录短信服务数据信息和短信服务的关键字。
SetupActivity.java文件中,主要功能集中在RestoreDefaultSetup()、UpdateUI()和SaveConfig()三个函数上。RestoreDefaultSetup()用来恢复系统的缺省配置 ;UpdateUI()会根据保存在Config类中的数据更新SetupActivity的界面控件,SaveConfig()根据界面配置更改Config类,然后调用数据库适配器的DBAdapter.SaveConfig()函数,将Config类中的配置数据写入数据库。
五、总结
通过该项目的实战演练让我受益匪浅,在这个过程中,我学会了很多知识,比如Android环境的搭建、Activity、Service、ContentProvider、SQLite的用法等,但我学会的最重要的一点是,利用现有的资源去解决问题,在图书馆、网络上寻找答案。
二、课题研究的主要内容 本软件包含新闻资讯的展示、图片的显示、根据所选择的分类实现不同新闻的阅读、新闻的收藏、分享到微信等第三方软件以及夜间模式、无图阅读等。
根据课题所需的模块,论文的提纲如下:
第一部分:主要阐明课题内容,涉及到课题研究的目的和意义、发展前景。第二部分:针对该软件所使用的技术的介绍。
第三部分:针对该软件开发的可行性、需求分析以及详细设计等介绍。第四部分:针对该软件功能概况的介绍,包括功能的设计、界面框架的设计、数据库存储的设计等。
第五部分:主要介绍软件各项功能的具体实现。第六部分:主要是参考文献和致谢。
三、文献检索以及参考文献目录
1.《Android应用开发实战》第一版 李宁 机械工业出版社 2.《Android技术内幕:系统卷》 杨丰盛 机械工业出版社 3.《Android开发精要》 范怀宇 机械工业出版社 4.《Android开发权威指南》 李宁 人民邮电出版社 5.《Android Developer 文档》
6.《Google Android SDK开发范例大全》 余志龙等著,王世江改编 人民邮电出版社
7.基于Android的手机应用开发研究 付宇 河南经贸职业学院 2014年09期 数据库名称:中国期刊全文数据库 检索策略:Android开发 8.基于Android平台的移动应用开发研究 白文江
太原大学计算机工程系数据库名称:中国期刊全文数据库 检索策略:Android开发
9.Android安全综述 张玉清
王凯
杨欢
方喆君
王志强
曹琛
中国科学院大学国家计算机网络入侵防范中心
2014年07期
数据库名称:中国期刊全文数据库 检索策略:Android安全 10.基于安卓手机的高效数据库访问机制 彭凤凌
庹先国
王洪辉
钟佳讯
蒲建华 成都理工大学地质灾害防治与地质环境保护国家重点实验室;西南科技大学核废物与环境安全国防重点学科实验室 2013年12期
数据库名称:中国期刊全文数据库 检索策略:Android数据库 11.基于Google Android智能手机平台的研究与应用 党李成 安徽大学2010-4论文 数据库名称:中国博硕士论文库 检索策略:Android应用 12.基于Android开发的数据存储 伊京花;王华军 数字通信2012-12-25期刊 数据库名称:中国博硕士论文库 检索策略:Android开发 13.基于Android系统的移动学习的平台的设计与实现 熊水柔
北京邮电大学
数据库名称:中国博硕士论文库 检索策略:Android 14.应用开发中的UI设计 赵晓影 劳动保障世界(理论版)2013-12-20 期刊 数据库名称:中国期刊全文数据库 检索策略:Android 15.基于Android系统的移动学习的平台的设计与实现 熊水柔 北京邮电大学 数据库名称:中国期刊全文数据库 检索策略:Android系统
16.四、课题研究的基础、现状与趋势
现在是一个资讯爆炸的年代,人们对于都希望能够随时随地获取各种有用的信息。随着科技的发展,手机作为一种非常重要的通讯工具,其功能越来越强大,相对电 视、互联网络等方式,手机凭借它可以随时随地获取和处理信息的优势,逐渐成为人们获取信息的一种重要手段。但是不是所有手机都能满足这种复杂的功能要就,而智能手机由于其强大的功能无疑是所有手机中最好的选择。现今主流的智能移动操作系统有:阿里OS、Windows Phone、iOS、黑莓、Android等等。而其中,由于Android系统器有良好的开放性和平台的便携性等特点,采用Android操作系统的手机越来越受到人们的青睐,也在智能手机领域中所扮演的角色也越来越重要。近年无论是国内还是国外,移动互联网发展迅猛,有大批的智能移动平台诞生,尤其Android平台对手机软件行业和移动手机平台将发挥极大地推动作用,而在未来的几年或者一段时间内,Android将越发的凸显自己的重要性。基于Android手机终端的新闻客户端就是这样一款随时随地获取到新闻资讯的Android应用。要实现这样一款应用,有必要通过进行相关的研究来了解Android平台,来了解开发Android相关的知识和内容,了解移动软件设计,进而了解 未来移动互联网的发展趋势,从而更好的适应时代的需要,能够与时俱进,通过研究和着手实施开发,了解Android API以及数据库的使用,同时也通过此来增强自身的编程和设计能力,这正是本研究课题研究意义。现如今,在国内比较流行的新闻软件有网易、今日头条、新浪新闻以及凤凰新闻等。这些软件都是抓住了安卓新闻软件类型的先机,得以能快速发展,获得了一大批用户。他们的界面大都简洁美观,将新闻分成了各种类别,你可以个性化定制自己所喜欢的专题。对于每篇新闻的报道,你可以跟帖及发表自己的评论。并且,服务器会实时的推送最新的新闻资讯到新闻客户端。然而,新闻客户端软件不可能仅仅止步于此,在保证功能的实现的前提下,越来越多的软件开发商开始把目光投向用户体验上,开发商们已经清楚地认识到好的用户体验对于吸引用户的重要性。所以新闻客户端软件开始增加了更多的小功能,比如离线阅读、夜间模式、视频、天气、热点搜索等,用户只需要打开软件就可以获取天气信息,可以搜索最新的热点话题,让自己不脱离社会生活的节奏。新闻客户端软件开始更加贴近人们的生活 纵观安卓新闻客户端的发展,争取用户的关键在于界面的美化设计,新闻的质量以及是否及时,同时应该增加更加精致小巧的功能,比如增加更多的手势操作,淡化按钮触控的劣质体验。最让用户关心的一点还有流量方面,一款好的软件还应该更加节省流量,通过较低的网络访问来实现一样的显示效果。这些都是未来值得考虑的问题。
五、本课题解决思路或实验方法
根据周边人对于一款好的新闻客户端软件的要求及意见,我会用自己所学的Android知识开发一款基于Android的新闻软件,具体设计方案如下:
1.需求分析:
手机已经成为现代人二十四小时不离身的一种电子产品,新闻软件几乎是没个用户必装的软件,成为了人们生活的一部分。调查发现绝大部分用户希望能使用一款有着简介界面和优异功能的新闻软件。所以界面方面成为了大众的一种需求。
2.功能设计:
首先,该软件具备正常的新闻显示阅读功能,再其次它还能离线阅读、收藏、搜索热点话题、夜间模式、记录查询、内容分享等功能。
3.界面设计:
界面设计应包含头条显示、新闻主体的显示、收藏界面。各项设置界面、搜索界面等,在这些界面中视具体情况灵活设计。4.编码:
根据自己的需求文档及详细设计书编写新闻软件,注重界面切换时的体验。
5.软件测试:
[实验器材]
取自罗伯特先生遗体的“感恩之心”(已装在适当容器和液体中)、各种资料(将在后面具体步骤中提到)、情感抑制液。
[实验步骤]
1. 对着“感恩之心”,朗读罗伯特先生子女的真挚祝福,观察其反应。
2. 对着“感恩之心”,朗读古人关于“亲情”、“友情”等感情的故事或诗歌,如“羔羊跪乳”、“落叶归根”、《赠汪伦》、《送元二使安西》等,观察其反应。
3. 向容器中加入情感抑制液,此时“感恩之心”将变成和现在人一样的心,重复1、2步骤。
[实验现象]
l. “感恩之心”跳动加速并表现出想要报答的欲望。
2. “感恩之心”的跳动更快了,并且在朗读到高潮部分时,产生了一种特殊液体,经实验测定,是一种叫做“泪”的稀有物质。
3. 此时的“心”反应迟缓,几近停止。但是,经多次朗读,“心”的反应又开始出现,到最后,终于出现了l、2的现象。
[实验结论]
l. “感恩之心”有别于一般心的活力并且产生奉献自己、报答别人的冲动。
2. 一般的心经过良好的熏陶,并且是持之以恒的熏陶,也能变为“感恩之心”。
就此,我们得出了治疗麻木、冷漠之心的方法:多多接受美好的、有感情的事物的感染和陶冶,所有人都可以变得情感丰富,拥有一颗感恩之心!
[实验时间] 2974年11月
班级
姓名
学号
总成绩
任课老师
护理职业学院医学基础部解剖教研室
实践技能训练一
一、实验内容
显微镜的使用、细胞的观察
二、实验要点
1.认识显微镜的构造,熟练使用光学显微镜。
2.能在镜下辨认细胞。
三、实验材料
1.显微镜。2.单层立方上皮(肾切片,HE染色)。
四、实验方法
(一)显微镜的使用(示教、学生自己操作)
(二)细胞(学生自己观察)
五、作业
用红蓝铅笔绘高倍镜下的细胞图,注明细胞质、细胞核。
图:细胞
级软件工程班
候梅洁 1 404702 1 【 实验目得 】
1.掌握气垫导轨得水平调整、光电门及电脑通用计数器得使用。
2.学会使用物理天平. 3.用对心碰撞特例检验动量守恒定律。
4.了解动量守恒定律与动能守恒得条件.
碰撞前后得动量关系为: mu=(m+m)v
动能变化为: ΔE=1/2(m+m)v-1/2mu 【实验步骤】
1.用物理天平校验两滑块得(连同挡光物)得质量 m 及m,经测量 m=136、60g、m=344、02g 2.用游标卡尺测出两挡光物得有效遮光宽度,本实验中Δs=Δs=5、00cm 3.将气垫导轨调水平.(1)粗调:调节导轨下得三只底脚螺丝,使导轨大致水平(观察导轨上得气泡,若气泡位于最中央,说明已调平).(2)静态调平:接通气源,将滑块放在导轨上,这时滑块在导轨上自由运动,调节导轨得单脚底螺丝,使滑块基本静止(不会一直向单一方向运动)(3)动态调平:将两个安装在到导轨上得光电门相距60cm 左右.在滑块上安放u型挡光片,接电脑通用计数器得电源,打开电源开关,将电脑计数器功能置于“s2”挡.轻轻推动滑块,分别读出遮光片通过两个光电门得时间Δt 与Δt,它们不等,则反复强调单脚螺丝,使它们相差不超过千分之几秒,此时可认为气垫导轨基本水平。
4.完全弹性碰撞
适当放置光电门得位置,使它能顺利测出两个滑块碰撞前后得速度,并在可能得情况下,使两个光电门得距离小些。每次碰撞时,大滑块得速度不要太大,让两个滑块完全碰撞两次,分别记录每次得滑块得速度并结算出:(注意速度方向)动量得变化大小C=(mv+mv)/(mu+mu)恢复系数 e=(v—v)/(u—u)
(v—v 为两物体碰撞后相互分离得相对速度,u-u则为碰撞前彼此接近得相对速度)
【注意事项】
1.严格按照在操作规范使用物理天平; 2.严格按照气垫导轨操作规则; 3.给滑块速度时速度要平稳,不应使滑块产生摆动;挡光框应与滑块运动方向一致,且其遮光边缘应与滑块运动方向垂直;
4.挡光框应与滑块之间应固定牢固,防止碰撞时相对位置改变,影响测量精度.【思考题】
1.动量守恒定律成立得条件就是什么?
系统所受得外力之与为 0 2、滑块距光电门近些好还就是远些好?两光电门间近些好还就是远些好?为什么?
滑块距光电门近些好,两光电门间近些好,因为气垫导轨上仍然就是存在微小得摩擦得,滑块与光电门之间、两光电门之间得距离尽可能得小,可以减小实验误差。
【实验结果与分析】
((均以轻滑块得初速度方向为正方向))
第一组实验:
m :
u=14、52cm/s
v=—16、00cm/s m :
u=—8、63cm/s
u=6、22cm/s
计算得:
e=0、99
c=0、89 第二组实验: m :u=20、66cm/s
v=—27、42cm/s m :u=—13、04cm/s
v=4、96cm/s 计算得:
e=0、96
c=0、75 根据完全弹性碰撞得定义,理论上所求得 e、c、e、c 都应该等于 1、实验出现这样得结果,原因可能就是:
1.由于气轨上各处气流分布不均匀导致滑块受阻力 2.室内空气流动导致滑块受空气阻力 3.气垫导轨未调平,滑块得重力做功 4.实验仪器存在故障 5.测量误差,因为无论就是再精良得仪器总就是会有误差得,不可能做到绝对准确
6.操作误差,两滑块接触面粗糙 7.两滑块不就是正面碰撞 【实验心得】
在我们小组得实验过程中,第一次实验得两组测量值出现较大偏差,表现为计算得出得e与 c 远小于1,我们在同一台仪器上再次进行多次测量,得出得结果仍然存在比较大得误差。
教材分析:《血染的实验报告》主要写了美国芝加哥著名的动物学家卡尔·施密特博士以生命为代价,完成了一次特殊的实验的故事。他以一份血染的实验报告,为人类的科学研究事业留下了宝贵的资料,使人类对抢救被毒蛇咬伤的人的科学研究前进了一大步。文章赞颂了施密特博士为了科学事业、为人类健康认真求实的品格和勇于牺牲的伟大精神。
教学目标:
1.理解课文内容,学习老科学家为科学事业无私奉献的伟大精神。
2.正确、流利、有感情地朗读课文。
3.认识10个生字,会写16个生字。
教学重、难点:
1.通过对文章细节描写的理解,体会老科学家无私奉献的伟大精神。
2.理解“透、盘、吐、蜷抬”几个动词,并能准确运用。
教学准备:课件。
教学过程:
一、 导入
师:这节课我们来学习《血染的实验报告》,请同学们伸出手和老师一起写课题。(师板书课题。)谁知道什么是实验报告?(学生答。)
(出示一份完整的实验报告。)
师:把实验的目的、方法、过程、结果等记录下来,经过整理写成书面的汇报,就是实验报告。那么实验报告的前面加上“血染”一词后,你能够体会到这是一份怎样的实验报告呢?
师:这份实验报告背后又有着怎样的感人故事呢?这节课让我们一起走进课文。
二、 初读课文
师:请同学们自由读文,读准字音、读通句子。
师:刚才同学们读文非常地认真,那么老师就要考考大家了。
师:这是一个表示什么的词语?
学:表示动作的词语。
师:在本文中是表示谁的动作?
生:蛇的动作。
师:对了。来,我们继续看词语。(出示:恐惧、殷红。)其实这个字是多音字,在表示颜色时我们读yān,其他情况一般读yīn。当它表示富裕、富足时可以说是殷实。
(出示:趁、四肢、腋下、嗓音、花岗石。)
师:老师表扬你,这个岗字的读音真准确。卡尔·施密特,外国人名一般都是音译过来的,所以我们在读的时候,可以轻声一点儿。你们来试试。
师:生字我们都通过读解决了,相信你们一定能把语文读得更流利。请同学们快速读文,边读边思考:课文主要写了一件什么事?
(生汇报:写了卡尔·施密特博士在研究毒蛇时被蛇咬伤了,最后以生命为代价,完成了一份特殊的实验报告的事情。)
三、读中感悟
师:(出示卡尔·施密特博士的图片。)同学们,看,这就是芝加哥自然博物馆研究员、著名的动物学家卡尔·施密特博士,是千千万万为科学事业捐躯的人中的一个。67岁的他以生命为代价完成了一份特殊的实验报告。请同学们默读课文,找一找哪些语句是描述实验报告里的内容。并用“ ”画出来。(生找,汇报。)
(课件出示实验报告单的内容,出示三段话。)
师:谁来读一读?
师:读了这份实验报告的内容,我们发现它和我们刚才看到的实验报告是不同的。
师:你从中能感受到卡尔·施密特是一个怎样的人呢?来,我们一句一句地说。(课件出示:“体温很快升到了39.5……胃剧痛……”)
师:你能结合39.5和剧痛这两个词说一说你的体会吗?
师:你有过这样的感受吗?当时觉得怎么样?
生:很难受,有气无力的。什么都做不了,迷迷糊糊的。
生:而施密特在高烧的同时还有胃剧痛带给他的痛苦,所以此时他承受着双重的痛苦。
师:是啊, 67岁的老人在身体经受巨大痛苦的时候却写下了这样的文字内容,是什么原因使他做到的呢?请你联系上文中的语句再来谈谈。
生:他想:“完了,难道就这么死去吗?不!我应该再做些什么……”
师:把这句话改成陈述句。你们觉得哪一种更好呢?
师:老师觉得上文中还有2个词也能帮助我们认识这位科学家的伟大之处。
生:认真、仔细。
师:是啊,都已经烧到39.5摄氏度了,胃已经剧痛了。还在坚持写,多伟大的一个人!多令人敬佩的一个人!
师:你能带着你的感受再来读读这句话吗?
师:同学们,我们再看这句话,出现了省略号,你知道此处省略号的作用吗?从这儿你能感受到什么?
生:感受到博士此时很痛苦。
生:感受到此刻博士在记录实验报告时写写停停,一定很难受。
师:是啊!同学们,无论是阅读还是写作,我们不单单只通过文字来体会情感,有时也通过标点符号来体会。因此,在阅读和写作时,我们要恰当准确地使用标点符号来表达自己的情感。那么就带着你的体会再来读读这句话吧!
(生读。)
师:我们再来看看下一句。(课件出示:“睁开眼时,眼皮疼……快4个小时了……)一名学生读。
师:睁开眼睛时,眼睛疼。闭上眼睛呢?
生:也很疼。
师:其他的部位呢?体温呢?胃呢?(让学生用一段话完整地叙述。)
30分钟过去了,我发烧39.5摄氏度了,感觉头昏,胃像针扎一样痛……
一个小时过去了,我( )
二个小时过去了,我( )
三个小时过去了,我( )
四个小时过去了,我( )
师:是啊,时间一分一秒地过去了,他承受了巨大的痛苦与煎熬,
师:4个小时,对于一个中蛇毒的老人来说,既是一段短暂的时间,又是漫长的。
师:带着你的体会来读读这句话。(课件出示:睁开眼时,眼皮疼……快4个小时了……)
师:这种痛苦是无以言表的!
师:来,我们再来看看最后一处报告内容。(课件出示:“我已经看不见体温计了,情况十分严重……血从鼻子和嘴里淌出来,疼痛消失了,软弱无力,我想脑部开始充血了……)你来读一读。
(生读。)
师:这里用了什么修辞方法?
生:比喻。
师:(课件出示:他艰难地握着笔,一笔一画,费力地在纸上写道)我这里不用比喻句写行不行?用比喻句有什么好处呢?
生:不行。运用比喻句写出了老人顽强的精神。
师:同学们,老人像在石头上费力地、用尽力气地刻字说明此时毒液已侵蚀了他的神经系统。
生:老人连拿笔的力气都没有了。
师:是啊,浑身无力,却仍旧在记录着。
生:运用比喻句说明老人坚毅的精神,无私奉献的精神。
师:多么让人敬佩啊!
师:那么请你带着自己感受读一读这句话。
师:多么希望时间停下来,可是时间还是不紧不慢地走着,鲜血顺着他的口和鼻子淌了下来。滴在那份实验报告上。
(师引读:课件出示:在被蛇咬伤的5个小时后,卡尔·施密特博士手中的笔掉落到地上,他停止了呼吸。这位可敬的老人去世了。)
师:同学们,老人还是离我们而去了,我们再来看看这份实验报告。带着你的体会再来读读。此时你看到了一位怎样的老人呢?
生:一位无私奉献、勇于牺牲的老人。
生:一位认真求实的老人。
师:从文字中我们认识了一位为科学事业捐躯的动物学家,他让我们深深地感动着。学到这儿,老师还有一个问题请教大家,作者向我们介绍卡尔·施密特的同时,在第二自然段还写了蛇,这部分内容可以不写吗?我们来读读这一段。
师:那么这段在文中起了什么作用呢?
生:起到了铺垫、衬托的作用。
师:就是这样的描写衬托了博士从事的工作很危险,他是一位随时准备为事业而献身的人。为下文老人献出生命作了铺垫。
四、课堂总结
师:同学们,他留下的仅仅是一份实验报告吗?他为我们写下了对待科学求实认真的精神,勇于献身的精神。正是这种精神激励着一代又一代科学家为科学事业献身。我们也为这种精神感动着。现在之所以有成千上个被毒蛇咬伤的人能够救治,正是这位可敬了老人留下的这份——血染的实验报告起了非常重要的作用。好,下课!
实验二 循环结构程序设计
班级 2012196 学号 201219628 姓名 李明月
一、实验目的
(1)掌握用while语句,do-while语句和for语句实现循环的方法;(2)掌握循环结构的嵌套;
(3)掌握break语句和continue语句的使用方法。
二、实验内容及步骤
1.相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。国王能兑现他的许诺吗?
程序1:试编程计算舍罕王共要多少粒麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)总粒数为:sum=1+2+22+23+„+263 程序代码:
#include
for(i=1;i<=63;i++)//用for循环语句实现循环运算 { t=t*2;sum+=t;//循环表达式 } printf(“总麦粒数为:%fn”,sum);v=sum/1.42e8;printf(“折合体积为: %f立方米n”,v);//对结果进行输出
return 0;} 运行结果:
2.求完数。
程序2:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出所有的完数(要求:一行显示6个数);
程序代码:
#include
sum=0;for(j=1;j
if(i%j==0)
{
sum=sum+j;
} } if(sum==i)
{ printf(“ %d”,i);
n=n+1;
if(n%2==0)
printf(“n”);
} } printf(“n”);return 0;} 运行结果:
3.打印九九乘法表
程序3:编程输出如下上三角形式的九九乘法表。2 3 4 5 6 7 8 9-------n“);for(i=1;i<10;i++)//i { for(j=1;j<=i;j++)// printf(” “);for(j=i;j<10;j++)//j printf(”%-2d “,i*j);// printf(”n“);}
代表行 输出空格达到来使得向右对齐代表列
输出行与列的乘积 3 1 2 3 4 5 6 7 8 9
运行结果:
三、问题讨论
break语句和continue语句在循环结构中使用时有何区别?举例说明。
break语句是跳出整个循环过程,不再判断执行循环的田间是否成立,并且break语句不能用于循环语句和switch语句之外的任何其他语句中。而continue语句则只是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
例子:
#include
printf(”%d“,i);} printf(”n");return 0;} 输出:
但是换成break之后:
四、实验心得
第1次实验:
实验1 C程序的运行环境
实验报告:
四、实验项目
第2次实验:
FTP上的 实验2数据类型、运算符和表达式
书上的实验2 暂时不做
实验报告:2.4 完善程序【实验2.7】【实验2.8】,2.5 改错程序【实验2.10】,2.6 自己练习.1第3次实验:
实验书上:实验2数据类型、运算符和表达式
请填写电子实验报告
第4次实验:
FTP上的 实验3 顺序和选择结构程序设计
请填写电子实验报告
第5次实验:
实验书上:实验3顺序和选择结构程序设计
实验报告:P12:2代码,(1)~(9)运行结果及分析
P14:四:
1、2第6次实验:
FTP上的 实验4 循环结构程序设计(1)
实验报告:
4.4 完善程序【实验4.5】【实验4.6】
4.5 改错程序【实验4.7】
4.6 自己练习
1.编写程序,从键盘输入一行以回车结束的字符,统计并输出输入字符的个数。
第7次实验:
实验书上:实验四
第8次实验:
FTP上的实验5 数组程序设计(1)
实验报告:
6.4 完善程序
6.5 改错程序
6.6 自己练习1、2
第9次实验:
实验书上实验5
第10次实验:
FTP上的 实验8 函数程序设计(1)
8.4 完善程序
8.5 改错程序
8.6 自己练习
1.编写程序,输出1~100之间各位数的乘积大于各位数的和的数。要求判断各位数的乘积大于各位数的和用函数实现。
3.编写程序,输出100以内的正整数中包含数字3,5,7中的一个的数。要求判断一个数中包含数字3,5,7中的一个的数用函数实现。
第11次实验:
绿叶在光下制造的有机物是不是淀粉?
二、作出假设
绿叶在光下制造的有机物是淀粉。
三、小组实验设计
采用水浴锅进行隔水加热,避免了课本实验装置的不安全因素。
四、实验内容
五、实验目的:
1、检验绿叶在光下制造有机物是不是淀粉。
2、探究光是不是绿叶制造有机物不可缺少的条件。
六、实验器材
課本必备的材料用具
小组设计需要的材料用具
盆栽天竺葵、黑纸片、别针、酒精(70~80%),碘液、小烧杯、大烧杯、培养皿、酒精灯、三脚架、石棉网、镊子、火柴、清水、防火培养皿、防火湿布等。
盆栽黑纸片、别针、酒精(70~80%),碘液、小烧杯、大烧杯、培养皿、酒精灯、三脚架、石棉网、镊子、火柴、清水、防火培养皿、防火湿布等。另外,配备水浴锅、大红花叶等
七、实验安全注意事项
1、注意正确使用火柴:采用易燃的木材做成火柴梗,在其一端蘸以蜡油和含氯酸钾的药料(火柴头),制成火柴;在包装盒上涂以含赤磷的磷面。使用时,将火柴在磷面上擦划,即能引燃。使用时将火柴棒取出,火柴头紧贴包装盒上磷面,使火柴棒成45-60度角,从下往上(下往上也可)擦划即可点燃。点燃酒精灯后,把它放进有水的收集垃圾的烧杯中,使其熄灭。
2、正确使用酒精灯:
(1)检查灯芯,灯芯顶端不平或已烧焦,需要剪去少许使其平整;(2)检查酒精量,灯里酒精应大于灯容积的1/4,少于2/3;(3)禁止事项:绝对禁止用酒精灯引烧另一盏酒精灯,不可用嘴去吹灭,不要碰倒酒精灯。
3、正确使用水浴锅:
工作时,按要求接通电源,开启电源开关,按下调温按钮(调温到100℃),待红灯灭,绿灯亮表示恒温。水温高,注意安全。
八、实验步骤
课本实验步骤
小组实验步骤
1、把盆栽天竺葵放到黑暗处一昼夜;
2、用黑纸片把叶片的一部分从上下两面遮盖起来,然后移到阳光下照射;
3、几小时后,摘下叶片,去掉遮光的纸片;
4、把叶片放入盛有酒精的小烧杯中,隔水加热,使叶片含有的叶绿素溶解到酒精中,叶片变成黄色;
5、用清水漂洗叶片,再把叶片放到培养皿里,向叶片滴加碘液;
6、稍停片刻,用清水冲洗掉碘液,观察叶片发生了什么变化。
1、把盆栽天竺葵放到黑暗处一昼夜;
2、用黑纸片把叶片的一部分从上下两面遮盖起来,然后移到阳光下照射;
3、几小时后,摘下叶片,去掉遮光的纸片;
4、把叶片放入盛有酒精的小烧杯中,用水浴锅隔水加热,使叶片含有的叶绿素溶解到酒精中,叶片变成黄色;
5、用清水漂洗叶片,再把叶片放到培养皿里,向叶片滴加碘液;
6、稍停片刻,用清水冲洗掉碘液,观察叶片发生了什么变化。
九、实验记录
实验文字记录
实验作品展示(用胶水张贴)
遮光部分叶片颜色是黄色,没有遮光部分是深蓝色。
十、实验结果
绿叶在光下制造有机物(淀粉)。
十一、分析和结论
通过实验,你可以得出什么结论?与你的假设一致吗?如果不一致,请分析原因
十二、交流与讨论
1、绿色植物制造的有机物是什么?
答:是淀粉。
2、为什么要用黑纸片把叶片的一部分遮盖起来?
答:因为这是对照实验,避免其他因素的影响,只能是光这个单一因素作为变量。
3、为什么要提前一昼夜把天竺葵放到黑暗处一昼夜?
答:把以前光合作用产生的有机物消耗或转移。
【android实验报告】推荐阅读:
android实习报告12-19
计算机系Android实习报告11-30
android实习日记07-15
android商品管理07-19
Android 个人总结07-19
android实习总结11-07
android面试宝典02-08
android 高级面试题10-24
android开发案例教程11-24
android蓝牙开发简介12-22