ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:1.38MB ,
资源ID:17631535      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17631535.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件设计实践报告.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件设计实践报告.docx

1、软件设计实践报告软件设计实践报告单 位: 信息工程学院班 级:计算机科学与技术二班学 号: xxxxxxxxxxxxxx 姓 名: xx xx任课教师: xxxxxxxxxxxxx 湘 潭 大 学2011年8月软件设计实践项目名称:ERP移动扩展手机版通讯录湘潭大学信息工程学院 七组一、项目概述1.概述 针对各公司或(商业)机构与外界联系将更为广泛和密切,传统的手工通讯录、地址簿已经难以满足快节奏、高效率的现代生活的需求。经常发生要在几十甚至上百张名片中找出某一张名片的情况,若由手工完成效率十分低。为了满足快节奏、高效率的现代生活的需求,需要开发出高效的通讯录管理软件2.目的和用途本文档的编制

2、,为了使用户和软件开发者双方对项目所涉及的需求范围、需求的含义有一个共同约定和理解,使之成为后续软件设计、软件开发和系统实施工作的基础。为公司职员提供公司的通讯录,并实现按照姓名和部门的智能查询功能,提供安全而便捷的办公。3.需求概述 3.1用户需求列表用户当前需求如图所示:编号需求名称描述优先级1登陆安全用户每次登陆时要求验证ERP帐号和密码P02自动更新用户登录之后,系统自动更新数据库P03手动更新用户可以根据需要手动对数据库进行更新P04分部门查询按照部门返回查询信息P05按姓名查询根据用户输入的联系人姓名返回查询的信息P06按号码查询根据用户输入的联系人号码返回查询的信息P07模糊查询

3、根据用户输入的不完整信息返回查询的信息P08首字母查询用户输入姓名的首字母查询返回查询的信息P09语音查询根据用户语音查询联系人信息P210错误近似查询根据用户输入的错误信息,返回最近似的信息P211查询结果操作对查询结果进行操作,打电话或者发短信P0(注:P0级为必须实现,P1级为尽可能实现,P2级为希望实现)3.2需求分析功能1:登陆安全。用户每次登陆时要求验证用户的ERP账号和密码组合。如果身份验证正确,方才允许用户的后续操作;否则,拒绝,留在当前登陆页面。功能2:自动更新。用户在登陆成功之后,系统自动从服务器下载最新数据,更新本地数据库。功能3:手动更新。用户可以根据需要,点击同步更新

4、按钮,随时从服务器下载最新的数据,以更新本地数据库。功能4:分部门查询。用户在查询联系人的时候,可以根据联系人所在的部门查询。用户点击分部门查询,查询返回部门列表,然后再根据子部门向下查询。功能5:按姓名查询。在查询时,用户输入联系人的中文姓名,系统返回匹配的结果。功能6:按号码查询。用户输入用户的号码,点击查询,系统能返回正确的匹配信息。功能7:模糊查询。当用户输入不完整的信息时,系统能进行模糊查询,返回所有跟当前不完整信息吻合的联系人信息。功能8:首字母查询。用户在查询输入时,可以只输入联系人姓名的首字母。当首字母与英文名字首字母相同时,应同时返回匹配结果,按照在数据库中的排列顺序排列查询

5、结果。功能9:语音查询。系统根据用户语音指令查询用户信息。功能10:错误近似查询。当用户输入的信息错误时,系统能够返回与错误信息最相近的结果供用户进行选择。功能11:对查询结果进行操作。用户点击查询结果,系统弹出对话框,供用户选择操作,打电话或者发短信。4.环境要求1、联想台式机 一台2、windows平台和android平台。Eclipse编程软件,Android SDK ,TFT插件。二 系统分析与设计用例图图2.1用例图分析类图图2.2分析类图:登陆,查询,更新:远程验证或本地验证,查询部门或联系人,更新数据:远程服务器,SharePerferences,本地服务器时序图图2.3时序图1

6、图2.4时序图2图2.5时序图31、系统设计1.用户界面1)登陆界面2)查询界面3)信息界面4)更新界面5)拨号界面6)发短息界面2.模块设计采用工厂模式,总体截图Com.surekam包中的infor.java,Login.java,progress.java,Search.java为用户界面类,MyDBhelper.java为自定义本地数据库类;Cmon包中的文件为自定义的数据结构;Com.surekam.controller包中的文件为控制类;Com.surekam.data包中的文件为数据库操作类;Com.surekam.service包中的文件为连接服务器类。控制类:数据库操作类:

7、连接服务器类:本地数据库:模块联系图:2、模块/函数设计数据库表结构:登陆界面数据结构:功能:用户界面类 - 显示设计好的界面布局,监听用户事件,如按钮事件,输入事件等,并传递给控制类。控制类 - 接收从用户界面类传来的事件,做部分处理,使之能直接用于数据库操作,然后交给数据库操作类。数据库操作类 - 根据控制类传来的事件,进行数据库插入,更新,查找等操作。可以直接对本地数据库进行操作,也可以访问远程服务器。连接服务器类 - 连接远程服务器,下载数据。本地数据库类 - 管理本地数据库,包括重置,最后连接远程数据库时间记录等。3、测试方案采用黑盒测试。三、系统实现a)连接远程数据库类packag

8、e com.surekam.service;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apach

9、e.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.protocol.HTTP;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.ksoap2.SoapEnvelope;import org.ksoap2.seri

10、alization.PropertyInfo;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import android.content.Context;import mon.Member;public class ServiceImpl implements IService private Context context; String NAMESP

11、ACE = http:/tempuri.org/; String SERVICE_URL= String validateMethod=AuthenticateUser; String getContactsMethod=GetContacts; String soapAction1=http:/tempuri.org/IContactService/AuthenticateUser; String soapAction2=http:/tempuri.org/IContactService/GetContacts; String SERVICE_URL1=http:/58.20.0.21:81

12、/restepmservice; String url = SERVICE_URL1+/authenticateuser; String getContactURL; /* protected ServiceImpl(Context context) this.context = context; Override public String validate(String userName, String passwd) String returnResult = netError; /Post 方式 Map map = new HashMap(); map.put(UserId, user

13、Name); map.put(Password, passwd); JSONObject json = new JSONObject(map); /String json2 = UserId:string,Password:string returnResult = getPostResponse(url,json.toString();/true/false return returnResult; */ protected ServiceImpl(Context context) this.context = context; Override public String validate

14、(String userName, String passwd) String returnResult = netError; try SoapObject soapObject = new SoapObject(NAMESPACE,validateMethod); PropertyInfo info = new PropertyInfo(); info.name = userId; PropertyInfo info2 = new PropertyInfo(); info2.name = password; soapObject.addProperty(info, userName); s

15、oapObject.addProperty(info2, passwd); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.bodyOut = soapObject; envelope.dotNet = true; HttpTransportSE ht = new HttpTransportSE(SERVICE_URL); ht.call(soapAction1, envelope); String result = envelope.getResp

16、onse().toString(); if(Boolean.parseBoolean(result) returnResult = true; else returnResult = false; catch (Exception e) e.printStackTrace(); return returnResult; Override public List getContacts(String userName,String pwd,String lastUpdateTime, int start, int end) /GET 方式 Member contact = new Member(

17、); List returnList = new ArrayList(); getContactURL =SERVICE_URL1+ /read/contactlist?userId= + userName+ &password=+ pwd+ &start=+ start + &end=+ end + ×tamp= + lastUpdateTime; String response = getGetResponse(getContactURL); try JSONObject json = new JSONObject(response); int count = json.getI

18、nt(Count); int lp=count/end; for(int j=0;j=lp;j+) /*int temp=end; start=temp*j; end=temp*(j+1); getContactURL =SERVICE_URL1+ /read/contactlist?userId= + userName+ &password=+ pwd+ &start=+ start + &end=+ end + ×tamp= + lastUpdateTime; String response1 = getGetResponse(getContactURL); JSONObject

19、 json1 = new JSONObject(response1);*/ JSONArray array = json.getJSONArray(Contacts); for(int i=0;iarray.length();i+) contact = new Member(); JSONObject jsonObject = array.getJSONObject(i);/ for(Iterator iter = jsonObject.keys();iter.hasNext();)/ String key = iter.next();/ jsonObject.get(key);/ conta

20、ct.setRdept(jsonObject.getString(DepartmentName); contact.setDept(jsonObject.getString(GroupName); contact.setTelephone(jsonObject.getString(MobilePhone); contact.setUsername(jsonObject.getString(UserName); contact.setUserid(jsonObject.getString(UserId); contact.setIsactive(jsonObject.getString(IsAc

21、tive); contact.setPosition(jsonObject.getString(Position); /其他属性自己添加吧!如:职位、是否离职(是否离职是必须的,做本地数据库时需要根据该属性来增删联系人) returnList.add(contact); catch (JSONException e) e.printStackTrace(); return returnList; /用POST方式提交数据给webService private String getGetResponse(String url) StringBuffer result = new StringBu

22、ffer(); try HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); HttpResponse response = client.execute(get); InputStream input = response.getEntity().getContent(); InputStreamReader reader = new InputStreamReader(input); BufferedReader bfReader = new BufferedReader(reader);

23、String temp; while(temp = bfReader.readLine()!=null) result.append(temp); catch (Exception e) e.printStackTrace(); return result.toString(); /用GET方式获取webservice数据 private String getPostResponse(String url,String json) /post (fangshi) String result = false; try / HttpClient client = new DefaultHttpCl

24、ient(); HttpPost post = new HttpPost(url); StringEntity entity = new StringEntity(json,HTTP.UTF_8); entity.setContentType(text/xml); post.setHeader(Content-Type,application/json;charset=UTF-8); post.setEntity(entity); HttpResponse response = client.execute(post); InputStream inputStream = response.g

25、etEntity().getContent(); InputStreamReader reader = new InputStreamReader(inputStream); BufferedReader bfReader = new BufferedReader(reader); String temp; StringBuffer bs = new StringBuffer(); while(temp=bfReader.readLine()!=null) bs.append(temp); result = bs.toString();/true(String) /Content-Type,a

26、pplication/json;charset=UTF-8 catch (Exception e) e.printStackTrace(); return result; b)本地数据库类package com.surekam;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlit

27、e.SQLiteOpenHelper;import mon.Member;public class MyDBhelper extends SQLiteOpenHelper private ArrayList user=new ArrayList(); private ArrayList ls; private Member people=new Member(); private static final String CREATE_TABLE_SQL=create table TempTbl(id text primary key,name text,rdept text,dept text

28、,tel text,isactive text,position text); public MyDBhelper(Context c) super(c,text1.db,null,2); / TODO Auto-generated constructor stub Override public void onCreate(SQLiteDatabase db) / TODO Auto-generated method stub db.execSQL(CREATE_TABLE_SQL); Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) / TODO Auto-generated method stub /* public void

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2