毕业答辩-基于Android的天气预报软件的设计与实现

上传人:QQ15****706 文档编号:98446547 上传时间:2019-09-11 格式:PPT 页数:18 大小:2.97MB
返回 下载 相关 举报
毕业答辩-基于Android的天气预报软件的设计与实现_第1页
第1页 / 共18页
毕业答辩-基于Android的天气预报软件的设计与实现_第2页
第2页 / 共18页
毕业答辩-基于Android的天气预报软件的设计与实现_第3页
第3页 / 共18页
毕业答辩-基于Android的天气预报软件的设计与实现_第4页
第4页 / 共18页
毕业答辩-基于Android的天气预报软件的设计与实现_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《毕业答辩-基于Android的天气预报软件的设计与实现》由会员分享,可在线阅读,更多相关《毕业答辩-基于Android的天气预报软件的设计与实现(18页珍藏版)》请在金锄头文库上搜索。

1、,,基于Android天气预报软件的设计与实现,专业班级:软件1016班 学生姓名: 指导老师:,,1 项目背景,2 概要设计,3 详细设计,4 测试及其他,开发背景,目的及意义,可行性分析,平台介绍,系统流程图,主界面,更换城市界面,测试,总结,功能框架,数据库,致谢,内容简介,开发背景,1Android是一种开放源码操作系统。 22013年,Android在全球市场份达到75%。 3Android在中国的前景十分广阔。 4随着人们生活节奏的加快,精确地掌握每天的天气情况已成为一个人早上出门前的必修课。,目的及意义,1提供准确的实时天气数据。 2进一步扩大天气信息的覆盖面。 3完善公共服务体

2、系,更好地发挥气象事业对经济社会发展的现实性作用。,平台介绍,Android平台的基本框架如下:,在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。,在Android平台上,集成了一个嵌入式关系型数据库SQLite。它占用的资源非常低,同时能够跟很多程序语言相结合,处理速度非常快。,可行性分析,经济可行性,技术可行性,法律可行性,总结,操作可行性,需求低 平台成熟 周期短,环境完善 人员多能 掌握核心,设备充足 操作简便,遵守法

3、规 绿色环保,综上,本系统可以进行研发,系统流程图,本系统的流程比较清晰,首先天气数据每更新一次,系统就会通过HTTP向指定的地址发出数据请求,若请求成功,则返回天气数据并通过JSON格式来解析数据,最终把解析到的数据显示在手机界面上,这样就完成了一次天气数据的更新。,功能框架,软件的功能框架如上图所示: 实时天气信息:用户可以查看指定城市的实时天气,包括温度、湿度、风力和穿衣指数等; 未来三天预报:用户可以查看到未来三天的天气情况; 更换城市:用户可以根据自己的实际情况选择自己想要查询的城市。 自动定位:可以获得当前用户所在的城市。,主界面,该界面综合使用了Android平台的各种常用组件,

4、包括Button、TextView、ImageView等,界面的顶部显示当前选择的城市和天气数据刷新按钮,用户可以根据自己的需要随时通过该按钮来刷新数据,右边为一个“更换城市”按钮,用户可以通过该按钮来更改其它城市。 首先,进入的是界面的主体部分,显示了当前城市的实时天气情况,包括时间、天气、温度、风力和湿度等信息。 其次,显示了未来三天的天气情况和穿衣指数提醒。 最后,显示了当前天气数据的发布时间和最近一次刷新时间。,private void SetWeatherJson(String sNowWeatherString, String s6Detil) try jsonObject = n

5、ew JSONObject(sNowWeatherString); jsonObject = jsonObject.getJSONObject(“weatherinfo“); tvCityName.setText(jsonObject.getString(“city“); tvNowTemp.setText(jsonObject.getString(“temp“) + “); tvTodayWindSD.setText(jsonObject.getString(“WD“) + jsonObject.getString(“WS“) + “ “ + “湿度:“ + jsonObject.getSt

6、ring(“SD“);/ 风力 jsonObject = new JSONObject(s6Detil); jsonObject = jsonObject.getJSONObject(“weatherinfo“); sdate_y = jsonObject.getString(“date_y“); tvIssueTime.setText(sdate_y.substring(5) + “ “ + jsonObject.getString(“fchh“) + “:00“);/ 设置发布时间 tvToday.setText(sdate_y + “ “ + jsonObject.getString(“

7、week“);/ 设置今天日期 String img_title = jsonObject.getString(“img_title1“);/ 天气图标 int weather_icon = getWeatherBitMapResource(img_title); imageView1.setImageResource(weather_icon); tvPrompt.setText(jsonObject.getString(“index_d“);/ 穿衣提醒,主界面核心代码:,更换城市界面,该界面包括两部分,分别是热门城市和所有城市,热门城市模块列举了国内主要的大城市,目的是方便用户选择,而所

8、有城市则是显示了国内所有的城市数据,用户可以先选择省份,接着选择城市,最后选择县(区)这种显示来选择。选择完毕后可以通过确定按钮来提交设置。,更换城市界面核心代码:,public List getCitSet(int pro_id) cityList.clear(); / 打开数据库 SQLiteDatabase db1 = SQLiteDatabase.openOrCreateDatabase(DATABASE_PATH + dbName, null); Cursor cursor = db1.query(“citys“, null, “province_id=“ + pro_id, nul

9、l, null, null, “city_num“); List cityListTemp = new ArrayList(); while (cursor.moveToNext() String cityid = cursor.getString(cursor .getColumnIndexOrThrow(“city_num“); String cityn = cursor.getString(cursor .getColumnIndexOrThrow(“name“); cityList.add(new CityInfo(cityid, cityn); for (int i = 0; i c

10、ityList.size(); i+) if (!cityList.get(i).getName().contains(“.“) cityListTemp.add(new CityInfo(cityList.get(i).getCity_num(), cityList.get(i).getName(); cursor.close(); db1.close(); return cityListTemp; ,自动定位,调用安卓SDK的定位中的LocationClient和BDLocation等类以及BDLocationListener等接口,通过gps和网络来返回百度坐标系的定位结果。,自动定位功

11、能的核心代码:,public class MyLocationListenner implements BDLocationListener Override public void onReceiveLocation(final BDLocation location) dialog.dismiss(); mIsStart = false; if (location = null) toastUtil.show(“定位失败“); return; AlertDialog.Builder build = new AlertDialog.Builder( WeatherChangeCityActi

12、vity.this); build.setTitle(“定位成功“) .setMessage( “当前城市:“ + location.getProvince() + “-“ + location.getCity() + “-“ + location.getDistrict() .setPositiveButton(“确定“, new DialogInterface.OnClickListener() Override public void onClick(DialogInterface dialog, int which) CityInfo cityInfo = getCityByLoc(

13、location.getCity(), location.getDistrict();,数据库,Android平台上,集成了一个嵌入式关系型数据库SQLite。它占用资源非常的低,可能几百K就够了。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比Mysql、PostgreSQL这两款数据库管理系统快。,本数据库支持功能如下: 1.自动建表; 2.自动支持增删改操作; 3.查询方式灵活; 4.查询结果对象化; 5.查询结果灵活:查询结果支持对象化,也支持结果为List形式。,测试,本测试

14、我们测试的是主界面、更换城市界面和网络接口这三个模块,测试目的是验证修改城市后系统能否自动更新天气数据,从而验证系统功能的完整性,首先我们点击主界面右上角的“更改城市”按钮,把当前城市修改成昆山,点击确定按钮后系统当前的城市已经切换到昆山了,并且当前显示的天气数据也是昆山的数据,所以这三个模块的功能及测试结果都是是正常的。,总结,本次毕业设计是我在大学学习的最后一个阶段,这三个多月以来,从拿到题目的毫无头绪,到在网上查找各种相关资料,再到一个个功能逐步实现,最后终于能完整连贯的呈现,这中间经历了种种磨难与挣扎,当然也有兴奋与喜悦相间。 虽然该天气预报软件的基本功能已经实现,可以实时更新天气数据并且可以选择自己需要的城市的天气信息。但是由于本人水平有限,本软件也存在许多可以改进的地方,敬请谅解,欢迎指正。,Thank you!,感谢理工大软件学院对我的培养! 感谢各任课老师对我的教导! 感谢赵彦涛老师、李建林老师对我的指导! 感谢各位评审的审议!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 论文指导/设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号