《安卓课程设计报告(共15页).docx》由会员分享,可在线阅读,更多相关《安卓课程设计报告(共15页).docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上Android平台软件开发课程设计报告题 目 基于安卓的计算标准体重的应用程序 专 业 计算机科学与技术 学生姓名 学 号 二一六年 六 月 五 日目 录1背景介绍12需求分析13设计目的24技术介绍24.1 Android Studio-开发软件24.2 java+Android类库+xml2 4.2.1 java2 4.2.2 xml25 设计思路25.1功能分析25.2模块划分25.3程序流程图36 程序实现及代码分析36.1用户登录界面36.2输入和提交信息程序界面86.3显示计算结果程序界面107 总结12参考文献13专心-专注-专业基于安卓的计算标准体重的
2、应用程序周超南京信息工程大学滨江学院计算机系,江苏 南京 摘要:本报告主要阐述的是根据身高计算标准体重的应用程序。本应用程序是以安卓技术、Java开发语和android studio开发平台为背景来进行设计的。本应用程序包含了用户登录功能、背景音乐播放功能和计算标准体重功能。关键词:Java;android studio;安卓;1 背景介绍随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,WindowsMobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(
3、3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此于2007年11月推出了一个专为移动设备设计的软件平台Android。Android是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制
4、定自己的特色化的产品。因此,它具有很大的市场发展潜力。2 需求分析如今,伴随着GoogleAndroid操作系统的盛行,基于AndroidSDK的系统开发和基于Android应用的开发等已倍受大家关注。Android应用面向的是普通个体用户,这些用户往往会更加关注用户体验,因此Android应用增加多媒体功能十分必要。就目前的手机发展趋势来看,手机已经不再是单一的通讯工具,更多的手机用户希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。而且近年来,由于人们生活水平的提高,越来越多的人开始关注人体健康,而体重也成为了人们关注的重点,尤其是女性。因此为了迎合众多用户的需求并适应现在的手机的
5、规模,我设计了一个计算标准体重的应用程序。3 设计目的本设计是在学习Android平台软件开发的课程的基础上进行的一次综合实践。通过本课程设计,让学生们巩固下有关Android平台软件开发的知识,也考查学生们的学习情况。4 技术简介4.1 Android Studio-开发软件Android Studio 是一个Android开发环境,基于. 类似 ,Android Studio 提供了集成的 Android 开发工具用于开发和调试。4,2 java+Android类库+xml-开发语言4.2.1 javajava是在计算机史上影响深远的编程语言,它是一门编程语言,不仅吸收了语言的各种优点,还
6、摒弃了C+里难以理解的、等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程1 。Java具有简单性、面向对象、平台独立与可移植性、动态性等特点 。Java可以编写、和应用程序等。4.2.1 xml可扩展标记语言XML(eXtensible Markup Language)是一种简单灵活的文本格式的可扩展标记语言,起源于SGML(Standard Generalized Markup Language),是SGML的一个子集合,也就是SGML的一个简化版本,非常适合于在Web上或者
7、其它多种数据源间进行数据的交换。5 设计思路5.1 功能分析该设计实现了一个可计算输出标准体重功能的应用程序。根据世界卫生组织推荐的计算标准体重的方法为:男性标准体重=(身高-80)*0.7;女性标准体重=(身高-70)*0.6”。因此需要输入的信息有性别、身高。用户在登录界面里,输入用户名和密码后,点击“登录”按钮,便可进入计算标准体重功能的应用程序。然后,在该程序中输入对应的信息后,点击“提交”按钮,接着,会跳转到结果界面,显示计算结果。我还在登录界面中设计了背景音乐播放功能,点击“开启背景音乐”按钮,就会播放音乐;只有点击“关闭播放音乐”按钮,音乐才会停止,否则会一直播放。5.2 模块划
8、分我设计了三个模块,即三个Activity,分别为用户登录(activity_Login)、输入和提交信息(activity_main)和显示计算结果(activity_result)。(1) 用户登录(activity_Login)模块:一个图片控件(ImageView)用于加载图片,两个文本框(TextView)分别是用户名和密码,两个编辑框(EditText)用于输入用户名和密码,三个按钮(Button)分别为“登录”、“开启背景音乐”和“关闭播放音乐”,以及一些标题文本。(2) 输入和提交信息(activity_main)模块:一个图片控件(ImageView)用于加载图片一个Radi
9、oGroup组件,三个编辑框(EditText)分别是性别、身高和cm,两个单选框(RadioButton)分别是“男”和“女”,一个“提交”按钮(Button),以及一些标题文本。(3) 显示计算结果(activity_result)模块:一个图片控件(ImageView)用于加载图片,三个文本框(TextView),以及一些标题文本。5.3 程序流程图根据以上的分析,可画出相应的程序流程图,如图5-1所示。图5-1 程序流程图6 程序实现及代码分析6.1 用户登录界面用户登录程序界面(activity_Login)的功能是实现用户登录,并可以开启背景音乐功能。用户必须输入正确的用户名和密码
10、,才可进入计算标准体重界面,否则,会出现“输入不正确”的提示信息,程序界面如图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;imp
11、ort 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
12、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
13、() public void onClick(View view) if (name.getText().toString().equals(zc) & password.getText().toString().equals() Intent intent = new Intent(); intent.setAction(com.example.zc.action.LOGIN); startActivity(intent); Toast.makeText(getApplicationContext(), 正在登录中., Toast.LENGTH_SHORT).show(); else Toa
14、st.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) /显
15、示指定 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
16、.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 Strin
17、g 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 onSt
18、art(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()
19、; 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时该方法被调用 O
20、verride 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)的功能是输入人的性别和身高信息,并提交信息。用户只有输入的相应的信息,点击“提交”按钮,才会计算出结果,否则
21、,会出现“输入不正确”的提示信息,程序界面如图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.widge
22、t.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.activit
23、y_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).s
24、how(); return; int stature=Integer.parseInt(EditText)findViewById (R.id.edtStature).getText().toString(); RadioGroup sex=(RadioGroup)findViewById(R.id.ragSex); for (int i=0;isex.getChildCount();i+) RadioButton r=(RadioButton)sex.getChildAt(i); if(r.isChecked() user.setSex(r.getText().toString(); bre
25、ak; 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所示。
26、图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.Nu
27、mberFormat;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);
28、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.get
29、Stature()+公斤); 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行的代码,
30、应用至少由两个Activity类构成,至少需要有一个Service组件和与数据存取相关的功能就可以了;不简单,是因为有关用Android Studio作为开发软件的案例和书籍实在是很少,所以还是有点难度。从确定课程设计内容,到程序设计规划,查找相关资料,具体实施等,在整个过程中,花了不少时间和精力,并且还遇到一些问题。首先,是在用户登录功能上,我想利用Intent隐式方式打开,但一开始怎么也行不通,后来发现在xml文件中总缺少Intent隐式方式的代码。接着,我想使用service实现一个背景音乐的功能,但是,在我所借的书籍中有关service的内容本来就少,更不用说有关service的案例了
31、。因此,我在网上寻找一些有用service实现一个背景音乐功能的关资料,然后选择了一个比较靠谱点的代码,挪用到用户登录界面上来。经过一番修改和调试,成功实现了背景音乐播放功能。虽然这程序挺简单的,但是,可以从各个界面的布局和设计看出,我还是花不少心思和精力的。不管怎么样,都毕竟是自己亲手制作的,虽然有点缺陷,但是,当把它完成的那一刻,我还挺开心的。总之,通过这次课程设计,我不仅巩固了所学到的知识,而且还学到了一些新知识,可以说是受益匪浅。参考文献 1 李刚.疯狂Android讲义(第三版).北京:电子工业出版社.2015. 2 丁伟雄.宋晓光.李伟平.Android程序设计与应用.北京:清华大学出版社.2014. 3 毋建军.徐振东.林瀚.Android应用开发案例教程.北京:清华大学出版社.2013. 4 胡文.金雪松.陈铭.Android嵌入式系统程序开发.北京:机械工业出版社.2015.