Android台软件开发课程设计报告
题 目 基安卓计算标准体重应程序
专 业 计算机科学技术
学生姓名
学 号
二O六年 X月 X 日
目 录
1背景介绍 1
2需求分析 1
3设计目 2
4技术介绍 2
41 Android Studio开发软件 2
42 java+Android类库+xml 2
421 java 2
422 xml 2
5 设计思路 2
51功分析 2
52模块划分 2
53程序流程图 3
6 程序实现代码分析 3
61户登录界面 3
62输入提交信息程序界面 8
63显示计算结果程序界面 10
7 总结 12
参考文献 13
基安卓计算标准体重应程序
周超
南京信息工程学滨江学院计算机系江苏 南京 210044
摘:报告阐述根身高计算标准体重应程序应程序安卓技术Java开发语android studio开发台背景进行设计应程序包含户登录功背景音乐播放功计算标准体重功
关键词:Javaandroid studio安卓
1 背景介绍
着移动通信Internet移动终端普网络户移动终端求越越高SymbianWindows MobilePalmOS等手机台封闭满足户需求市场迫切需开发性强台年发展第三代数字通信(3G)技术活动广泛接受移动终端户带更快数传输速率着3G网络移动终端仅通讯网络终端成互联网终端移动终端应软件需服务会发展空间Google2007年11月推出专移动设备设计软件台——Android
Android套真正意义开发性移动设备综合台包括操作系统中间件关键台应AndroidLinux+Java构成开源软件允许厂商基础进行开发Android台开放性等特点促进技术(包括台身)创新助降低开发成运营商非常方便制定特色化产品具市场发展潜力
2 需求分析
伴着Google Android操作系统盛行基Android SDK系统开发基Android应开发等已倍受家关注Android应面普通体户户会更加关注户体验Android应增加媒体功十分必目前手机发展趋势手机已单通讯工具更手机户希工作学余通方便灵巧身携带仪器休闲娱乐
年生活水提高越越开始关注体健康体重成关注重点尤女性迎合众户需求适应现手机规模设计计算标准体重应程序
3 设计目
设计学Android台软件开发课程基础进行次综合实践通课程设计学生巩固关Android台软件开发知识考查学生学情况
4 技术简介
41 Android Studio开发软件
Android Studio Android开发环境基IntelliJ IDEA 类似 Eclipse ADTAndroid Studio 提供集成 Android 开发工具开发调试
42 java+Android类库+xml开发语言
421 java
java计算机史影响深远编程语言门面象编程语言仅吸收C++语言种优点摒弃C++里难理解继承指针等概念Java语言具功强简单易两特征Java语言作静态面象编程语言代表极实现面象理允许程序员优雅思维方式进行复杂编程[1]
Java具简单性面象分布式健壮性安全性台独立移植性线程动态性等特点 Java编写桌面应程序Web应程序分布式系统嵌入式系统应程序等
421 xml
扩展标记语言XML(eXtensible Markup Language)种简单灵活文格式扩展标记语言起源SGML(Standard Generalized Markup Language)SGML子集合SGML简化版非常适合Web者种数源间进行数交换
5 设计思路
51 功分析
该设计实现计算输出标准体重功应程序根世界卫生组织推荐计算标准体重方法:男性标准体重(身高 80)*07女性标准体重(身高70)*06需输入信息性身高
户登录界面里输入户名密码点击登录钮便进入计算标准体重功应程序然该程序中输入应信息点击提交钮接着会跳转结果界面显示计算结果
登录界面中设计背景音乐播放功点击开启背景音乐钮会播放音乐点击关闭播放音乐钮音乐会停止否会直播放
52 模块划分
设计三模块三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)标题文
53 程序流程图
根分析画出相应程序流程图图51示
图51 程序流程图
6 程序实现代码分析
61 户登录界面
户登录程序界面(activity_Login)功实现户登录开启背景音乐功户必须输入正确户名密码进入计算标准体重界面否会出现输入正确提示信息程序界面图61示
图61 户登录程序界面
功代码:
activity_Loginjava(实现户登录功)
package comexamplezcmyfirstapplication
import androidcontentIntent
import androidsupportv7appAppCompatActivity
import androidosBundle
import androidwidgetButton
import androidwidgetEditText
import androidviewView
import androidwidgetToast
import androidviewViewOnClickListener
public class LoginActivity extends AppCompatActivity {
private EditText namenull
private EditText passwordnull
Button login
private static String TAG MusicService
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState)
setContentView(Rlayoutactivity_login)
name(EditText)findViewById(RidedtName)
password(EditText)findViewById(RidedtPassword)
login(Button)findViewById(RidbtnLogin)
initlizeViews()
loginsetOnClickListener(new ViewOnClickListener(){
public void onClick(View view) {
if (namegetText()toString()equals(zc) &&
passwordgetText()toString()equals(666666)) {
Intent intent new Intent()
intentsetAction(comexamplezcactionLOGIN)
startActivity(intent)
ToastmakeText(getApplicationContext() 正登录中
ToastLENGTH_SHORT)show()
}
else {
ToastmakeText(getApplicationContext() 户名密码错误
ToastLENGTH_SHORT)show()
}
}
})
}
private void initlizeViews() {
Button btnStart (Button) findViewById(RidbtnStart)
Button btnStop (Button) findViewById(RidbtnStop)
OnClickListener ocl new OnClickListener() {
@Override
public void onClick(View v) {
显示指定 intent指象 service
Intent intent new
Intent(LoginActivitythis MusicServiceclass)
switch (vgetId()) {
case RidbtnStart
startService(intent) 开启服务
break
case RidbtnStop
stopService(intent) 停止服务
break
}
}
}
btnStartsetOnClickListener(ocl)
btnStopsetOnClickListener(ocl)
}
}
MusicServiceJava(实现背景音乐播放功)
package comexamplezcmyfirstapplication
import androidappService
import androidcontentIntent
import androidmediaMediaPlayer
import androidosIBinder
import androidutilLog
import androidwidgetToast
public class MusicService extends Service{
日志工具设置标签
private static String TAG MusicService
定义音乐播放器变量
private MediaPlayer mPlayer
该服务存需创建时调startService()bindService()会启动时调该方法
@Override
public void onCreate() {
mPlayer MediaPlayercreate(getApplicationContext() Rrawmusic)
设置重复播放
mPlayersetLooping(true)
superonCreate()
}
@Override
public void onStart(Intent intent int startId) {
ToastmakeText(this 开始播放音乐
ToastLENGTH_SHORT)show()
Loge(TAG MusicService onStart())
mPlayerstart()
superonStart(intent startId)
}
@Override
public void onDestroy() {
ToastmakeText(this 停止播放音乐
ToastLENGTH_SHORT)show()
Loge(TAG MusicService onDestroy())
mPlayerstop()
superonDestroy()
}
象通bindService 方法通知该Service时该方法调
@Override
public IBinder onBind(Intent intent) {
ToastmakeText(this MusicService onBind()
ToastLENGTH_SHORT)show()
Loge(TAG MusicService onBind())
mPlayerstart()
return null
}
象通unbindService方法通知该Service时该方法调
@Override
public boolean onUnbind(Intent intent) {
ToastmakeText(this MusicService onUnbind()
ToastLENGTH_SHORT)show()
Loge(TAG MusicService onUnbind())
mPlayerstop()
return superonUnbind(intent)
}
}
62 输入提交信息程序界面
输入提交信息程序界面(activity_main)功输入性身高信息提交信息户输入相应信息点击提交钮会计算出结果否会出现输入正确提示信息程序界面图62示
图62 输入提交信息程序界面
功代码:
package comexamplezcmyfirstapplication
import androidcontentIntent
import androidosBundle
import androidsupportv7appAppCompatActivity
import androidviewView
import androidwidgetButton
import androidwidgetEditText
import androidwidgetRadioButton
import androidwidgetRadioGroup
import androidwidgetTextView
import androidwidgetToast
public class MainActivity extends AppCompatActivity{
Button submit
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState)
setContentView(Rlayoutactivity_main)
submit(Button)findViewById(RidbtnSubmit)
submitsetOnClickListener(new ViewOnClickListener() {
public void onClick(View view) {
User usernew User()
if(equals(((EditText)findViewById
(RidedtStature))getText()toString())){
ToastmakeText(MainActivitythis
输入正确请重新输入ToastLENGTH_SHORT)show()
return
}
int statureIntegerparseInt(((EditText)findViewById
(RidedtStature))getText()toString())
RadioGroup sex(RadioGroup)findViewById(RidragSex)
for (int i0i
if(risChecked()) {
usersetSex(rgetText()toString())
break
}
}
usersetStature(stature)
Bundle bundlenew Bundle()
bundleputSerializable(useruser)
Intent intentnew Intent(MainActivitythis
ResultActivityclass)
intentputExtras(bundle)
startActivity(intent)
}
})
}
}
63 显示计算结果程序界面
显示计算结果程序界面(activity_result)功根提交信息进行进行计算显示出计算结果标语程序界面图63示
图63 显示计算结果程序界面
功代码:
package comexamplezcmyfirstapplication
import androidcontentIntent
import androidosBundle
import androidsupportv7appAppCompatActivity
import androidviewView
import androidwidgetButton
import androidwidgetTextView
import javatextDecimalFormat
import javatextNumberFormat
public class ResultActivity extends AppCompatActivity
{
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState)
setContentView(Rlayoutactivity_result)
TextView sex(TextView)findViewById(RidtvSex)
TextView stature(TextView)findViewById(RidtvStature)
TextView weight(TextView)findViewById(RidtvWeight)
Intent intentgetIntent()
Bundle bundleintentgetExtras()
User user(User)bundlegetSerializable(user)
sexsetText(您性:+usergetSex()+性)
staturesetText(您身高:+usergetStature()+cm)
weightsetText(标准体重:+getWeight
(usergetSex()usergetStature())+公斤)
}
private String getWeight(String sexfloat stature)
{
String weight
NumberFormat formatnew DecimalFormat()
if(sexequals(男))
{
weightformatformat((stature80)*07)
}
else
{
weightformatformat((stature70)*06)
}
return weight
}
}
7 总结
次课程设计感受难简单什说呢难课程设计求高少300行代码应少两Activity类构成少需Service组件数存取相关功简单关Android Studio作开发软件案例书籍实少点难度
确定课程设计容程序设计规划查找相关资料具体实施等整程中花少时间精力遇问题首先户登录功想利Intent隐式方式开开始行通发现xml文件中总缺少Intent隐式方式代码接着想service实现背景音乐功书籍中关service容少更说关service案例网寻找service实现背景音乐功关资料然选择较谱点代码挪户登录界面番修改调试成功实现背景音乐播放功
然程序挺简单界面布局设计出花少心思精力样毕竟亲手制作然点缺陷完成刻挺开心
总通次课程设计仅巩固学知识学新知识说受益匪浅
参考文献
[1] 李刚疯狂Android讲义(第三版)北京:电子工业出版社2015
[2] 丁伟雄宋晓光李伟Android程序设计应北京:清华学出版社2014
[3] 毋建军徐振东林瀚Android应开发案例教程北京:清华学出版社2013
[4] 胡文金雪松陈铭Android嵌入式系统程序开发北京:机械工业出版社2015
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档