安卓专业课程设计方案报告完整版.doc
《安卓专业课程设计方案报告完整版.doc》由会员分享,可在线阅读,更多相关《安卓专业课程设计方案报告完整版.doc(18页珍藏版)》请在咨信网上搜索。
《Android平台软件开发》课程设计报告 题 目 基于安卓计算原则体重应用程序 专 业 计算机科学与技术 学生姓名 学 号 二O一六年 六 月 五 日 目 录 1背景简介 1 2需求分析 1 3设计目 2 4技术简介 2 4.1 Android Studio--开发软件 2 4.2 java+Android类库+xml 2 4.2.1 java 2 4.2.2 xml 2 5 设计思路 2 5.1功能分析 2 5.2模块划分 2 5.3程序流程图 3 6 程序实现及代码分析 3 6.1顾客登录界面 3 6.2输入和提交信息程序界面 8 6.3显示计算成果程序界面 10 7 总结 12 参照文献 13 基于安卓计算原则体重应用程序 周超 南京信息工程大学滨江学院计算机系,江苏 南京 210044 摘要:本报告重要阐述是依照身高计算原则体重应用程序。本应用程序是以安卓技术、Java开发语和android studio开发平台为背景来进行设计。本应用程序包括了顾客登录功能、背景音乐播放功能和计算原则体重功能。 核心词:Java;android studio;安卓; 1 背景简介 随着移动通信与Internet向移动终端普及,网络和顾客对移动终端规定越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能较好满足顾客需求,因而市场迫切需要一种开发性很强平台。通过近年发展,第三代数字通信(3G)技术活动了广泛接受,它为移动终端顾客带来了更快数据传播速率。随着3G网络使用,移动终端不再仅是通讯网络终端,还将成为互联网终端。因而,移动终端应用软件和需要服务将会有很大发展空间。Google为此于11月推出了一种专为移动设备设计软件平台——Android。 Android是一套真正意义上开发性移动设备综合平台,它涉及操作系统、中间件和某些核心平台应用。Android是由Linux+Java构成开源软件,容许所有厂商和个人在其基本上进行开发。Android平台开放性等特点既能增进技术(涉及平台自身)创新,又有助于减少开发成本,还可以是运营商能非常以便地制定自己特色化产品。因而,它具备很大市场发展潜力。 2 需求分析 如今,随着着Google Android操作系统盛行,基于Android SDK系统开发和基于Android应用开发等已倍受人们关注。Android应用面向是普通个体顾客,这些顾客往往会更加关注顾客体验,因而Android应用增长多媒体功能十分必要。就当前手机发展趋势来看,手机已经不再是单一通讯工具,更多手机顾客但愿在工作、学习之余通过以便机灵可随身携带仪器休闲娱乐。 并且近年来,由于人们生活水平提高,越来越多人开始关注人体健康,而体重也成为了人们关注重点,特别是女性。因而为了迎合众多顾客需求并适应当前手机规模,我设计了一种计算原则体重应用程序。 3 设计目 本设计是在学习Android平台软件开发课程基本上进行一次综合实践。通过本课程设计,让学生们巩固下关于Android平台软件开发知识,也考查学生们学习状况。 4 技术简介 4.1 Android Studio--开发软件 Android Studio 是一种Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成 Android 开发工具用于开发和调试。 4,2 java+Android类库+xml--开发语言 4.2.1 java java是在计算机史上影响深远编程语言,它是一门面向对象编程语言,不但吸取了C++语言各种长处,还摒弃了C++里难以理解多继承、指针等概念,因而Java语言具备功能强大和简朴易用两个特性。Java语言作为静态面向对象编程语言代表,极好地实现了面向对象理论,容许程序员以优雅思维方式进行复杂编程[1] 。 Java具备简朴性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。 4.2.1 xml 可扩展标记语言XML(eXtensible Markup Language)是一种简朴灵活文本格式可扩展标记语言,来源于SGML(Standard Generalized Markup Language),是SGML一种子集合,也就是SGML一种简化版本,非常适合于在Web上或者其他各种数据源间进行数据互换。 5 设计思路 5.1 功能分析 该设计实现了一种可计算输出原则体重功能应用程序。依照世界卫生组织推荐计算原则体重办法为:男性原则体重=(身高- 80)*0.7;女性原则体重=(身高-70)*0.6”。因而需要输入信息有性别、身高。 顾客在登录界面里,输入顾客名和密码后,点击“登录”按钮,便可进入计算原则体重功能应用程序。然后,在该程序中输入相应信息后,点击“提交”按钮,接着,会跳转到成果界面,显示计算成果。 我还在登录界面中设计了背景音乐播放功能,点击“启动背景音乐”按钮,就会播放音乐;只有点击“关闭播放音乐”按钮,音乐才会停止,否则会始终播放。 5.2 模块划分 我设计了三个模块,即三个Activity,分别为顾客登录(activity_Login)、输入和提交信息(activity_main)和显示计算成果(activity_result)。 (1) 顾客登录(activity_Login)模块:一种图片控件(ImageView)用于加载图片,两个文本框(TextView)分别是顾客名和密码,两个编辑框(EditText)用于输入顾客名和密码,三个按钮(Button)分别为“登录”、“启动背景音乐”和“关闭播放音乐”,以及某些标题文本。 (2) 输入和提交信息(activity_main)模块:一种图片控件(ImageView)用于加载图片一种RadioGroup组件,三个编辑框(EditText)分别是性别、身高和cm,两个单选框(RadioButton)分别是“男”和“女”,一种“提交”按钮(Button),以及某些标题文本。 (3) 显示计算成果(activity_result)模块:一种图片控件(ImageView)用于加载图片,三个文本框(TextView),以及某些标题文本。 5.3 程序流程图 依照以上分析,可画出相应程序流程图,如图5-1所示。 图5-1 程序流程图 6 程序实现及代码分析 6.1 顾客登录界面 顾客登录程序界面(activity_Login)功能是实现顾客登录,并可以启动背景音乐功能。顾客必要输入对的顾客名和密码,才可进入计算原则体重界面,否则,会浮现“输入不对的”提示信息,程序界面如图6-1所示。 图6-1 顾客登录程序界面 功能代码: activity_Login.java(实现顾客登录功能) package com.example.zc.myfirstapplication; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.view.View; import android.widget.Toast; import android.view.View.OnClickListener; public class LoginActivity extends AppCompatActivity { private EditText name=null; private EditText password=null; Button login; private static String TAG = "MusicService"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); name=(EditText)findViewById(R.id.edtName); password=(EditText)findViewById(R.id.edtPassword); login=(Button)findViewById(R.id.btnLogin); initlizeViews(); login.setOnClickListener(new View.OnClickListener(){ public void onClick(View view) { if (name.getText().toString().equals("zc") && password.getText().toString().equals("666666")) { Intent intent = new Intent(); intent.setAction("com.example.zc.action.LOGIN"); startActivity(intent); Toast.makeText(getApplicationContext(),"正在登录中...", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(),"顾客名或密码错误!" Toast.LENGTH_SHORT).show(); } } }); } private void initlizeViews() { Button btnStart = (Button) findViewById(R.id.btnStart); Button btnStop = (Button) findViewById(R.id.btnStop); OnClickListener ocl = new OnClickListener() { @Override public void onClick(View v) { //显示指定 intent所指对象是个 service Intent intent = new Intent(LoginActivity.this,MusicService.class); switch (v.getId()) { case R.id.btnStart: startService(intent); //启动服务 break; case R.id.btnStop: stopService(intent); //停止服务 break; } } }; btnStart.setOnClickListener(ocl); btnStop.setOnClickListener(ocl); } } MusicService.Java(实现背景音乐播放功能) package com.example.zc.myfirstapplication; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.IBinder; import android.util.Log; import android.widget.Toast; public class MusicService extends Service{ //为日记工具设立标签 private static String TAG = "MusicService"; //定义音乐播放器变量 private MediaPlayer mPlayer; //该服务不存在需要被创立时被调用,不论startService()还是bindService()都会启动时调用该办法 @Override public void onCreate() { mPlayer = MediaPlayer.create(getApplicationContext(),R.raw.music); //设立可以重复播放 mPlayer.setLooping(true); super.onCreate(); } @Override public void onStart(Intent intent,int startId) { Toast.makeText(this,"开始播放音乐" ,Toast.LENGTH_SHORT).show(); Log.e(TAG,"MusicService onStart()"); mPlayer.start(); super.onStart(intent,startId); } @Override public void onDestroy() { Toast.makeText(this,"停止播放音乐" ,Toast.LENGTH_SHORT).show(); Log.e(TAG,"MusicService onDestroy()"); mPlayer.stop(); super.onDestroy(); } //其她对象通过bindService 办法告知该Service时该办法被调用 @Override public IBinder onBind(Intent intent) { Toast.makeText(this,"MusicService onBind()" ,Toast.LENGTH_SHORT).show(); Log.e(TAG,"MusicService onBind()"); mPlayer.start(); return null; } //其他对象通过unbindService办法告知该Service时该办法被调用 @Override public boolean onUnbind(Intent intent) { Toast.makeText(this,"MusicService onUnbind()" ,Toast.LENGTH_SHORT).show(); Log.e(TAG,"MusicService onUnbind()"); mPlayer.stop(); return super.onUnbind(intent); } } 6.2 输入和提交信息程序界面 输入和提交信息程序界面(activity_main)功能是输入人性别和身高信息,并提交信息。顾客只有输入相应信息,点击“提交”按钮,才会计算出成果,否则,会浮现“输入不对的”提示信息,程序界面如图6-2所示。 图6-2 输入和提交信息程序界面 功能代码: package com.example.zc.myfirstapplication; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity{ Button submit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); submit=(Button)findViewById(R.id.btnSubmit); submit.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { User user=new User(); if("".equals(((EditText)findViewById (R.id.edtStature)).getText().toString())){ Toast.makeText(MainActivity.this, "输入不对的,请重新输入!",Toast.LENGTH_SHORT).show(); return; } int stature=Integer.parseInt(((EditText)findViewById (R.id.edtStature)).getText().toString()); RadioGroup sex=(RadioGroup)findViewById(R.id.ragSex); for (int i=0;i<sex.getChildCount();i++){ RadioButton r=(RadioButton)sex.getChildAt(i); if(r.isChecked()) { user.setSex(r.getText().toString()); break; } } user.setStature(stature); Bundle bundle=new Bundle(); bundle.putSerializable("user",user); Intent intent=new Intent(MainActivity.this ,ResultActivity.class); intent.putExtras(bundle); startActivity(intent); } }); } } 6.3 显示计算成果程序界面 显示计算成果程序界面(activity_result)功能是依照提交过来信息来进行进行计算,并显示出计算成果和某些标语,程序界面如图6-3所示。 图6-3 显示计算成果程序界面 功能代码: package com.example.zc.myfirstapplication; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.text.DecimalFormat; import java.text.NumberFormat; public class ResultActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); TextView sex=(TextView)findViewById(R.id.tvSex); TextView stature=(TextView)findViewById(R.id.tvStature); TextView weight=(TextView)findViewById(R.id.tvWeight); Intent intent=getIntent(); Bundle bundle=intent.getExtras(); User user=(User)bundle.getSerializable("user"); sex.setText("您性别是:"+user.getSex()+"性"); stature.setText("您身高是:"+user.getStature()+"cm"); weight.setText("原则体重为:"+getWeight (user.getSex(),user.getStature())+"公斤"); } private String getWeight(String sex,float stature) { String weight=""; NumberFormat format=new DecimalFormat(); if(sex.equals("男")) { weight=format.format((stature-80)*0.7); } else { weight=format.format((stature-70)*0.6); } return weight; } } 7 总结 对于这次课程设计,我感受是不难,但也不简朴,为什么这样说呢。不难,是由于课程设计规定不高,不少于300行代码,应用至少由两个Activity类构成,至少需要有一种Service组件和与数据存取有关功能就可以了;不简朴,是由于关于用Android Studio作为开发软件案例和书籍实在是很少,因此还是有点难度。 从拟定课程设计内容,到程序设计规划,查找有关资料,详细实行等,在整个过程中,花了不少时间和精力,并且还遇到某些问题。一方面,是在顾客登录功能上,我想运用Intent隐式方式打开,但一开始怎么也行不通,日后发当前xml文献中总缺少Intent隐式方式代码。接着,我想使用service实现一种背景音乐功能,但是,在我所借书籍中关于service内容本来就少,更不用说关于service案例了。因而,我在网上寻找某些有用service实现一种背景音乐功能关资料,然后选取了一种比较靠谱点代码,挪用到顾客登录界面上来。通过一番修改和调试,成功实现了背景音乐播放功能。 虽然这程序挺简朴,但是,可以从各个界面布局和设计看出,我还是花不少心思和精力。不论怎么样,都毕竟是自己亲手制作,虽然有点缺陷,但是,当把它完毕那一刻,我还挺开心。 总之,通过这次课程设计,我不但巩固了所学到知识,并且还学到了某些新知识,可以说是受益匪浅。 参照文献 [1] 李刚.疯狂Android讲义(第三版).北京:电子工业出版社.. [2] 丁伟雄.宋晓光.李伟平.Android程序设计与应用.北京:清华大学出版社.. [3] 毋建军.徐振东.林瀚.Android应用开发案例教程.北京:清华大学出版社.. [4] 胡文.金雪松.陈铭.Android嵌入式系统程序开发.北京:机械工业出版社..- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业课程 设计方案 报告 完整版
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文