计算机能力扩展训练任务书
学生姓名: 专业班级:
指导教师: 工作单位:
题 目:
初始条件:
理论:.NET、Java、Linux、Android 或 Windows Phone 环境, Oracle、SQLite、SQL
Server、SQL Server CE 或 MySQL 数据库, C#、Eclipse、C++或其它合适、有效的开发工具,
等等。
实践:计算机科学系实验中心提供计算机及软件开发环境。
要求完成的主要任务:
(1)系统需求分析:使用软件工程所学的知识对拟开发的系统进行数据需求和功能需求分析 ,
确定开发环境和工具软件。
(2)系统设计:根据系统需求分析进行概要设计和详细设计,在确定好的开发环境中利用确
定的工具软件进行系统实现。
(3)编制好程序后,设计若干测试用例,上机测试所设计的原型系统。
(4)设计报告按格式要求书写。设计报告正文的内容应包括:
1)系统描述 包括问题说明、数据需求和功能需求。
2)系统设计 包括总体设计、数据库表结构、输入/输出设计、用户界面设计、处理过程设计。
3)系统测试 包括测试用例的描述、测试方法和测试结果。
4)设计的特点、不足、收获和体会。
时间安排:
1、暑期完成。
2、下学期开学第一周到计算机学院实验中心(三楼)检查程序、交课程设计报告、源程序
(CD 盘)。
指导教师签名: 年 月 日
系主任(或责任教师)签名: 年 月 日
目 录
1. 系统描述.............................................................................................................................................................1
1.1. 问题说明..............................................................................................................................................1
1.2. 数据需求..............................................................................................................................................1
1.3. 功能需求..............................................................................................................................................1
2. 系统设计.............................................................................................................................................................1
2.1. 总体设计..............................................................................................................................................1
2.3. 输入/输出设计.....................................................................................................................................2
2.3.1. 输入设计.......................................................................................................................................2
2.3.2. 输出设计.......................................................................................................................................5
2.4. 用户界面设计......................................................................................................................................6
2.5. 处理过程设计....................................................................................................................................10
2.5.1. 访问 Android 天气 API...............................................................................................................10
2.5.2. 处理 XML...................................................................................................................................11
3. 系统功能测试...................................................................................................................................................15
3.1. 下拉列表选择城市............................................................................................................................15
3.2. 键盘输入城市汉字............................................................................................................................16
4. 设计的特点、不足...........................................................................................................................................19
5. 收获和体会.......................................................................................................................................................19
武汉理工大学能力拓展训练课程设计说明书
基于 Andriod 环境的天气预报系统设计
1. 系统描述
本系统是基于 Android 环境的天气预报服务程序,可以在打开手机数据连接或 WiFi
时,方便快捷的查询国内城市当天及未来三天的天气状况,并且只在用户点击查询时才
会更新天气信息,有效地降低流量的开销。
1.1. 问题说明
随着近年来生活节奏的加快,人们通常穿梭于多个城市之间,这就有必要提前就目的
地的天气情况有所了解。即使生活场所比较固定,及时的了解本地天气情况也是日常生
活的必需。但快速的生活,已不容许人们像刚过去一样,每天雷打不动的端坐在电视机
前等候气象员的播报。人们需要更方便快捷的方法及时了解天气状况,这就需要在近年
来发展迅猛的移动设备上寻求解决方法。Android 作为使用人群最多的手机操作系统,
无疑是开发天气预报应用程序的最好载体。
1.2. 数据需求
查询城市的名称:cityName;
所查询城市的天气预报数据:
实时天气 摄氏温度(℃) 华氏温度(F) 天气状况 湿度 风向 风速
当天及未来
三天的天气
最低温度(℃) 最高温度(℃) 天气状况
1.3. 功能需求
1. 精确查询全国各地城市未来几天内的实时天气状况
2. 系统具有稳定性,且在一定程度上节省流量的开销
3. 系统操作方便快捷,使用简单
2. 系统设计
2.1. 总体设计
1
武汉理工大学能力拓展训练课程设计说明书
系统数据流程图
2.2. 开发及运行环境
Android 的开发语言是 Java,这就需要有由 SUN 公司提供的 Java SDK,同时还需
要 Dalvik 虚拟机。在 Eclipse 安装 ADT,为方便 Android 开发提供开发工具的升级或者
变更,是 Eclipse 下开发工具的升级下载的工具。 同时,Google 公司推荐使用主流的
Java 继 承开 发 环境 Eclipse 。 由于 是 进行 Android 的 应 用 程序 开 发, 所 以需要 有
Google 提供的 Android SDK。
搭建 Android 开发环境,需要以下组件:
1. Eclipse
2. Java SDK
3. ADT
4. Android SDK
2.3. 输入/输出设计
2.3.1. 输入设计
考虑到不同城市的查询频率不同,对于查询频率较高的各省会城市及大城市,采用
下拉列 表 Spinner 输入 ,减少 用户的输 入按键 操作;对 于其他 城市则采 用编辑框
EditText 输入,减少程序代码。
对于用户手动输入城市名称的方式有两种:汉字和拼音。由于程序采用的是 Google
天气的 API,它所需的参数是城市英文名(对于国内城市即汉语拼音)。如果用户输入的
是拼音,则可直接使用。而按照国内用户的使用习惯,则很有可能输入汉字。这就需要
把汉字先转换为拼音,才能使用。根据汉字与 ASCII 码的对应关系,设计出汉字与拼音
的翻译类,以供输入程序调用。
汉字转换为拼音的 CnToSpell 类:
import java.io.UnsupportedEncodingException;
2
武汉理工大学能力拓展训练课程设计说明书
import java.util.LinkedHashMap;
public class CnToSpell {
private static volatile boolean debug = false;
private static LinkedHashMap<String, String> spellMap = null;
static {
if (spellMap == null) {
spellMap = new LinkedHashMap<String, String>(20901);
}
initialize();
}
private CnToSpell() {}
private static void spellPut(String ascii, String spells) {
spellMap.put(ascii, spells);
}
private static void initialize() {
init0();
init1();
……
init114();
init115();
}
private static void init0() {
spellPut("129-64", "kao,qiao,yu");
spellPut("129-65", "shang");
spellPut("129-66", "xia");
spellPut("129-67", "mo ye o ne");
……
spellPut("129-253", "si");
spellPut("129-254", "dai");
}
……
……
private static void init115() {
spellPut("253-64", "hun");
spellPut("253-65", "ju");
spellPut("253-66", "yan");
spellPut("253-67", "tu");
……
……
spellPut("253-153", "jiao");
spellPut("253-154", "xie");
3