单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 619|回复: 1
打印 上一主题 下一主题
收起左侧

Android天气课程表设计资料

[复制链接]
跳转到指定楼层
楼主
九九九九 发表于 2019-6-19 08:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Android设计天气表,word文档里是整个设计说明书。
目录
1、需求分析
2、总体设计
3、详细设计
3.1、开始界面
3.2、主界面
3.3、添加界面
3.4、显示界面
3.5、编辑界面
3.6、周显示界面
4、程序运行结果测试与分析

1、需求分析
走进大学,上课的方式和地点都和以前的高中不一样了。鉴于大学上课教室分散,学生经常会忘记自己的或是上课的教室。这在一定程度上促进学生课表软件的开发。使其可以帮助学生记录自己的和对自己的掌握。因为手机相对笔记本电脑更加具有便携性,可以随时随地的打开并使用它。相对于笔记本电脑的开机并打开软件所用的时间,其需要的时间更短,所以手机端的学生课表备受学生用户的青睐。
该款软件就是基于Android平台开发的一款学生课表软件。当学生上课途中却不知道教室地点的时候,大多数人选择发短信或者打电话询问同学。这对学生的造成了一定的花费。通过这款软件完全避免了这些不必要的开销。而且通过手机管理课表也是目前比较流行的方式,也具备实用、方便和免费等优点。开发这样一个学生课表软件,涉及到的技术不会太多,用到的主要技术就是Sqlite数据库编程、适配器的运用、Android XML的布局和UI特效以及对Android各种组件的运用。开发采用Android SDK与Eclipse开发的插件ADT,数据库采用Android自带的Sqlite数据库
所有我们要开发一个可查看自己学期的课表,并添加了天气预报的功能
通过分析得出,其要实现的功能为:
1.天气表主界面:可在该界面中查看天气、城市、。
2.添加界面:可在该界面中添加。
3.点击查看界面:可在该界面中查看所添加的。
4.编辑界面:可在该界面中修改所添加的。
5.整周界面:查看每一周的。
6.Widget界面。
2、总体设计
(1)总体设计思路:
根据该问题的需求,需要在程序中建立五个界面:天气表主界面、添加界面、查看界面、编辑界面、整周界面。以及一个可在手机上桌面上建立一个4×4的小插件的Widget界面。各界面主要功能:
1.天气表主界面:可在该界面中查看天气,城市等信息,还需可查看每周每天的。
2.添加界面:可在该界面中添加名称、教师姓名、上课地点、上课节数、上课周数、上课星期。
3.点击查看界面:可在该界面中查看所添加的名称、教师姓名、上课地点、上课节数、上课周数、上课星期。
4.编辑界面:可在该界面中修改所添加的名称、教师姓名、上课地点、上课节数、上课周数、上课星期。
5.整周界面:可在该界面中调整软件的背景,查看每一周的。
6.Widget界面:需要在手机桌面上建立一个4×4的小插件。


(2)系统模块图:
3、详细设计3.1、开始界面
设计思路:首先创建一个开始界面another,使用LinearLaout布局,在该界面可设置开始时间,并使用SQLite数据库创建cource表用来存放和开始时间。给下一步按钮添加事件,点击进入主界面。
开始界面模块图:
                     
3.1开始界面模块图    流程图


部分代码:
public static String StringData(){
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
mYear = String.valueOf(c.get(Calendar.YEAR)); // 获取当前年份  
mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 获取当前月份  
mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前月份的日期号  
mHour=(c.get(Calendar.HOUR_OF_DAY)<10?"0":"")+String.valueOf(c.get(Calendar.HOUR_OF_DAY));
mMinute=(c.get(Calendar.MINUTE)<10?"0":"")+String.valueOf(c.get(Calendar.MINUTE));
return mYear + "年" + mMonth + "月" + mDay+"日 \t\t"+mHour+":"+mMinute; }
3.2主界面
设计思路:创建一个主界面odd_days,使用LinearLayout布局,在该界面显示城市,从获取当地天气并显示,然后从数据库默认显示当天,给周一至周日按钮添加事件。最后在为添课和整周显示按钮分别添加事件。
模块图:

3.2 主界面模块图
部分代码:
                                          public void onClick(DialogInterface dialog, int which)
                                                                                         {
                                                                                                      index=which;
                                                                                                     city.setText(cities[which]);
                                                                                                     msg=city.getText().toString();
                                                                      Intent intents = new Intent("wyf.action.city");
                                                                                                     intents.putExtra("ccity", msg);
                                          OddDaysActivity.this.sendBroadcast(intents);
                                                                                                      try{
                                                                                                                   initThread();//从网络获取天气信息
                                                                                                       }catch(Exception e){
                                                                                                                   e.printStackTrace();
                                                                                                       }
                                                                                             dialog.dismiss();
                                                                                          }
                                                                                       })
                                                                                    .setNegativeButton("取消", null)
                                                                                    .show();
                                                                      }
3.3添加界面
设计思路:创建添加界面addcource_activity,使用TextView显示添加的的信息,并在EditText中输入需要添加的信息,并给添加按钮设置事件,当添加的不存在并且每项内容不为空,添加此到数据库提示添加成功。当添加的存在并且有一项内容为空,就提示添加的不符合要求,请重新添加!
模块图:
                       3.3添加界面模块图
部分代码:
if(SQLiteUtil.QueryCourseIfExist(insertCourse[0])||((!insertCourse[0].trim().equals(""))&&                                                                                                               (!insertCourse[1].trim().equals(""))&&(!insertCourse[2].trim().equals("")))){                                                                                   SQLiteUtil.insertCourceMess(insertCourse);//添加此进数据库
                                                                                                  bb1=true;
                                                                                    }
              insertTime=new String[3];//获得时间新型
              insertTime[0]=et4.getText().toString();
              insertTime[1]=Constant.editText;
              insertTime[2]=et6.getText().toString();
if(insertTime[0].trim().equals("请输入上课节数")||insertTime[1].trim().equals("请输入上课周数")||
                                                                                    insertTime[2].trim().equals("请输入上课星期")||insertTime[0].trim().equals("")||                                                       insertTime[1].trim().equals("")||insertTime[2].trim().equals(""){
Toast.makeText(AddCourseActivity.this, "添加的不符合要求,请重新添加!", Toast.LENGTH_SHORT).show();
                                                                                                  bb2=false;
                                                                                    }
3.4显示界面
设计思路:创建显示界面odd_list_selected,使用LinearLayout布局,并从数据库读取的信息后使用TextView显示。为返回,编辑和删除本节课按钮添加事件。点击删除本节课,从数据库删除。
模块图:
3.4显示界面模块图
从  
部分代码:            
value=bundle.getString("info");
names=value.split("<#>");
Constant.showWeeks=AddCourseActivity.DivideString(names[4]);
title.setText(names[0]);//标题
tv1.append(":  "+names[0]);//名称
tv2.append(":  "+names[1]);//教师
tv3.append(":  "+names[2]);//地点
tv4.append(":  "+names[3]);//节数
tv5.append(":  "+Constant.showWeeks);//周数
tv6.append(":  "+names[5]);//星期

3.5编辑界面
设计思路:创建编辑界面edit_course,使用使用LinearLayout布局,,使用TextView显示编辑的的属性,先在中EditText显示没有改变的,在输入需要编辑的的信息。为确定按钮添加事件,点击后将数据存入数据库并提示此已经更新。
模块图:
3.5 编辑界面模块图
部分代码:
new OnClickListener()
                                                        {
                                                                      public void onClick(View v)
                                                                      {
                                                                                    updateMess[0]=et1.getText().toString();
                                                                                    updateMess[1]=et2.getText().toString();
                                                                                    updateMess[2]=et3.getText().toString();

                                                                                    updateTime[0]=et4.getText().toString();
                                                                                    updateTime[1]=Constant.editText;
                                                                                    updateTime[2]=et6.getText().toString();
                                                                                    SQLiteUtil.ReSetCource(firstName,updateMess,updateTime);
                                                                                    Toast.makeText(EditCourseActivity.this, "此已经更新!", Toast.LENGTH_SHORT).show();
                                          MondayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期一"));
                                          TuesdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期二"));
                                          WednesdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期三"));
                                          ThursdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期四"));
                                          FridayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期五"));
                                          SaturdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期六"));
                                          SundayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期日"));}});
3.6周显示界面
设计思路:创建整周显示whole_week,使用LinearLayout布局,在界面中创建一个Spinner,选择显示那一周的,并使用ListView,显示整周的。
模块图:
3.6周显示界面模块图
部分代码:
oddDays=(Button)this.findViewById(R.id.odddays);
                            //监听,切换到整周
                            oddDays.setOnClickListener(
                                                        new OnClickListener()
                                                        {
                                                                      public void onClick(View v)
                                                                      {
                                                                                    Intent intent=new Intent();
                                                                                    intent.setClass(WholeWeekActivity.this, OddDaysActivity.class);
                                                                                    WholeWeekActivity.this.startActivity(intent);
                                                                      }
                                                        }
4、程序运行结果测试与分析
程序调试完毕后,在手机上开始运行程序。

点击天气表程序图标,将进入如图4.1所示界面。
图4.1 程序开始运行图

在进入开始界面后,选择好你开始的时间,然后点击下一步,进入程序的主界面,如图4.2所示。主界面中可查看当地城市天气,和当天。

图4.2程序主界面


在程序主界面中如果你想查看其他周的,可以点击中间的第一周下拉按钮如图4.3所示,在下拉列表中你可选择你所想要查看的周次。
图4.3 周次选择

在程序主界面中如你想查看本周所有,可点击整周按钮,将进入图4.4所示界面,在该界面中你可以查看本周星期一到星期五的所有。

图4.4 整周显示界面


若是想添加属于自己的,可在主界面中点击添课按钮,将进入如图4.5所示界面,在该界面中你可以添加名称、老师、地点、节数、周数、星期等属性。添加完成属性以后点击确认按钮,则该建立完毕。
图4.5 添加界面

若想查看异界的详细信息,可以点击该,将进入查看界面如图4.6所示,改界面中会将的所有属性显示在屏幕上。

图4.6 查看界面

在查看界面,你可以删除本节,只需点击删除本节课即可,若想修改属性,可点击编辑按钮,进入编辑界面如图4.7所示,在该界面你可重新输入属性。完成输入后点击确认按钮,则修改完毕。
图4.7 编辑界面


若想修改程序的背景皮肤,可在整周显示界面,点击皮肤按钮如图4.8所示,可选择所喜欢的背景,进行更换。更换背景后如图4.9所示。
图4.8 换肤界面                              图4.9 换肤后界面



5、结论与心得
本次设计是一个基于 Android的天气表设计,完成这个项目之后,以前觉得复杂的布局文件,现在变得简单易懂。从之前面对一个项目的无从下手,到现在一步步的分析项目。实践检验问题,在做项目中,一点点理清上课时模糊不清的知识点。提高了自己对编程的兴趣也加深了对所学知识的理解。巩固了listview的使用。 还有就是SQLite数据库的使用,比如将数据存入数据库,读取数据库中数据等。
我学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而精确、让用户能够尽量简单地进行操作。但是在检测过程中,还是出现了很多的不足之处,这些都是要在今后的工作中需要努力改进和完善的。期间我学到了非常多的andrio专业知识,体会了其中的乐趣,当我自己解决问题,运行成功时,那种成就感,非常的好。我对andrio充满了兴趣。于个人而言,在程序设计的过程中,我深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我定将“认真严谨”时刻作为自的谨言。与此同时,我们小组成员的互帮互助,让我体会到了团结的力量,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。这次设计本来是纯粹的Android端的开发,但是进入这样的开发一段时间之后,我就感觉到这个的魅力所在。通过这次的设计亲切的感受到Android开发的魅力。我现在对这门课真的很感兴趣,如果这样的开发多了我相信以后的经验的积累会更快。但是这次设计里也是有很多不懂的问题,这样其实也就是按部就班的进行开发,对于一些技术还掌握不到位,说明自己的功底以及相应知识还是不熟,欠练。这次设计是我自己选的素材,也是我想要追寻的方向,虽然不能达到像工程师那样熟练,但是起码给了我自己这样一个学习方向。互联网其实是现代接触最为接近的核心网络技术之一,掌握这样的技术无论是以后找工作,还是以想开发自己想要的服务都是一个莫大的帮助。我现在正在往这方面进行发展,等到学好这门技术我希望能开发出一个完全属于自己的项目。总之,此次设计在我的学习生涯中启上了至关重要的作用

完整的Word格式文档51黑下载地址:
Android天气课程表.docx (731.91 KB, 下载次数: 5)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶1 踩
沙发
BunnySuicide 发表于 2019-12-26 11:26 | 只看该作者
没有源代码吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表