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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

软件详细设计报告.docx

1、软件详细设计报告计算机学院实验中心-Android手机客户端学生姓名:宋同煜 张宗森 指导老师:裴斐 专业:计算机科学与技术 102在移动互联网发展迅猛的今天,在Android完全开源及拥有庞大用户群的环境下,迫切需要为计算机学院实验中心网站开发Andriod手机客户端,方便计算机学院师生随时随地查看实验信息、登记实验等。一、系统分析需求分析查询实验:教师及学生可以查询当周及上一周、下一周实验安排登记实验:教师登录后可以登记实验引言为方便计算机学院教师及学生查询、登记实验,因此开发实验中心Android手机端软件编写目的 本文档对计算机学院实验中心网站手机客户端的功能、用户界面、运行环境等作出

2、详细说明。项目背景软件的开发名称:计算机学院实验中心项目需求单位:计算机学院全体师生项目开发单位:宋同煜 张宗森二、系统设计系统目标1.实现需求分析阶段的所有功能2.主界面清晰、简单、操作易行系统功能预览该软件主要包括查询、登录、登记实验3个功能模块,主要操作如下:(1) 运行软件后,首先检查网络连接是否正常,如果正常,获取当周实验安排信息,显示给用户,效果如图(2) 通过“菜单-登记实验”进入等级实验页面,要求输入用户名密码才可继续点击“登录实验” 后,提示登录后才能继续(3)点击登录进入登录页面,如图正确输入用户名密码后点提交(4)用户名密码输入正确,就可以登记实验了,次页面包含实验名、课

3、程名、班级、机房、第几大节、实验日期等信息的填写,如图 (5)正确填写实验信息后,确认登记后点提交,返回登记结果(6)登记成功后,重新打开软件即可看到刚才登记的实验,如下图(7)用户登录后可保存、清除登录信息,不用每次使用都需要登录,并在软件主界面右上角显示当前用户名,效果如下图:清除登录信息:点击后弹出操作结果(8)通过菜单-上周、下周进行上下周跳转查询,(9)检查更新、反馈等功能软件每日启动都会检查是否存在新版本并提示用户下载反馈暂只通过短信方式反馈(10)软件后台运行因移动网络下蜗牛般的网速,故提供后台运行功能,通过手机上的返回键并没有真正退出而是后台运行了,对于手机网络较慢的用户(非W

4、ifi下及3G用户)是完全有必要的,需要通过菜单里的退出才能真正退出。三、软件页头header部分设计1.包括软件名称,用户登录状态,及提示信息2.XML布局文件 -四、软件主显示部分设计1. 采用Viewpager+Listview 实现滑动显示周一到周日实验信息2. 部分XML布局文件 五、主Activity设计Cslab_listviewActivity.java1. onCreate()窗口生成函数Android 软件运行后首先运行主Activity,一个Activity代表一个窗口(一个类)软件的登录及等级实验分别用一个Activity来处理。每一个Activity都有onCreat

5、()函数,用来生成窗口,本软件的主Activity Cslab_listviewActivity.java的oncreatr()函数设计1、设置布局文件 setContentView(R.layout.main);2、获取系统日期时间 SimpleDateFormat formatter = new SimpleDateFormat (yyyy-MM-dd); SimpleDateFormat timef = new SimpleDateFormat (yyyy年MM月dd日); SimpleDateFormat weeknumber = new SimpleDateFormat (EEE);

6、 Date curDate = new Date(System.currentTimeMillis();/获取当前时间 String str = formatter.format(curDate); String weeknumberString=weeknumber.format(curDate); zhouji=weeknumberString; time=timef.format(curDate); 3、检查网络情况,判断系统版本 initStrictMode();/判断系统版本,防止出现NetworkOnMainThreadException 异常处理, if (!CheckNetwo

7、rk() NetError(); return; 4.从服务器获取当前第几周 GetWeekNumber(); 保存到成员变量中。采用多线程,避免ANRThread t = new Thread() Override public void run() 省略部分代码 ; t.start(); /接收子线程消息 handler = new Handler() Override public void handleMessage(Message msg) case 2: 省略部分代码 break; ;5.根据周数获取实验信息private void getExperiment(final Stri

8、ng week)并保存String experiment=WebServiceResult(NAMESPACE,Experiment,1,new Stringweeknumber,new Stringweek); JSONObject JsonExperiment = new JSONObject(experiment); ArrayExperiment=JsonExperiment.getJSONArray(ex);6.显示实验信息public boolean showexperiment()experimentlist1 = buildexperimentListForSimpleAdap

9、ter(星期一);/填充ListView的数据 notes1 = new MyAdapter(this, experimentlist1, R.layout.experimentinfo, new String section, experiment, new int R.id.section, R.id.experimentinfo); mListView1.setAdapter(notes1); mViews.add(mListView1);7.显示本周实验信息private void LoadThisweekExperiment() private void LoadExperiment

10、() Thread Thnextweek = new Thread() Override public void run() ; Thnextweek.start(); nehandler = new Handler() Override public void handleMessage(Message msg) switch (msg.what) case 1: break; ; 8.用变量记录程序运行时用户上下周跳转导致的周数变化,并用private void LoadExperiment() 显示实验信息读取用户保存的账号信息private void getusernamefromse

11、tting() service = new PreferencesService(this); Map params = service.getUsername(); usernameString=params.get(username);9.其他六、登录模块设计loginActivity.java1. 用户名密码输入EditText usernameEdit; EditText passwordEdit;2. 处理登录请求,提交给Webservice服务器,并返回登录结果成功或失败private void login()3.返回主界面public class loginActivity ex

12、tends Activity private PreferencesService service; private static final String NAMESPACE = /Webservice命名空间 private static String URL = / WebService地址 String usernameString=; String passwordString=; EditText usernameEdit; EditText passwordEdit; Handler handler; Override public void onCreate(Bundle sa

13、vedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.login); getusernamefromsetting(); usernameEdit=(EditText)findViewById(R.id.username_edit); passwordEdit=(EditText)findViewById(R.id.password_edit); usernameEdit.setText(usernameString); passwordEdit.setText(passwordString)

14、; usernameEdit.addTextChangedListener(new TextWatcher() 省略代码 ); passwordEdit.addTextChangedListener(new TextWatcher() 省略代码 ); Button login_button=(Button)findViewById(R.id.signin_button); Button clear=(Button)findViewById(R.id.clear); Button Button01=(Button)findViewById(R.id.Button01); Button01.set

15、OnClickListener(new Button.OnClickListener() Override public void onClick(View arg0) / TODO 自动生成的方法存根 省略代码 ); clear.setOnClickListener(new Button.OnClickListener() Override public void onClick(View v) 清除账号信息,省略代码 ); login_button.setOnClickListener(new Button.OnClickListener() Override public void on

16、Click(View v) 验证输入是否正确,省略代码 else login(); ); private void login() / TODO 自动生成的方法存根 Thread t = new Thread() Override public void run() 新线程 处理登录 ; t.start();/ 启动线程 / 接收子线程消息 handler = new Handler() Override public void handleMessage(Message msg) / TODO Auto-generated method stub switch (msg.what) case

17、 1: 处理登录结果,并提示用户,省略代码 break; ; /web服务调用的函数 public String WebServiceResult(String ns,String method,int arg_number,String arg_name,String arg_value) String re =arg_name0+arg_value0; try SoapObject rpc = new SoapObject(ns, method); if (arg_number != 0) for (int i=0;iarg_number;i+) rpc.addProperty(arg_n

18、amei.toString(), arg_valuei.toString(); AndroidHttpTransport ht = new AndroidHttpTransport(URL); ht.debug = true; SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11); envelope.bodyOut = rpc; envelope.dotNet = true; envelope.setOutputSoapObject(rpc); ht.call(ns + m

19、ethod, envelope); SoapObject result = (SoapObject) envelope.bodyIn; re = result.getProperty(0).toString(); catch (Exception e) e.printStackTrace(); return re; 七、登记实验模块设计:1. 检查用户是否登录,若登陆继续,否则返回private void checklogin() 2. 文本输入框(EditView)、列表选择框(spanner)、日期控件设置3. 从服务器获取机房信息private void getTestRoom() 4.

20、 提交实验信息并返回处理结果给用户 private void subExperiment()5. 返回主界面public class addexperiment extends Activity private static final String NAMESPACE = /Webservice命名空间 private static String URL = / WebService地址 Handler handler; private int mYear; private int mMonth; private int mDay; DatePicker dp; String usernam

21、e=; String password=; String room=; String time=; String name=客户端测试; String numberstring=; String teacher=test; String classString=计科101; String coursenameString=客户端测试; EditText experimentname; EditText experimentteacher; EditText experimentclass; EditText coursename; Spinner number; private Prefere

22、ncesService service; String usernameString=; String passwordString=; private Spinner roomSpinner; private List list = new ArrayList(); private List numberlist = new ArrayList(); private ArrayAdapter roomadapter; private ArrayAdapter numberadapter; Override public void onCreate(Bundle savedInstanceSt

23、ate) checklogin(); Calendar c=Calendar.getInstance(); mYear=c.get(Calendar.YEAR); mMonth=c.get(Calendar.MONTH); mDay=c.get(Calendar.DAY_OF_MONTH); time=+mYear+-+(mMonth+1)+-+mDay; super.onCreate(savedInstanceState); setContentView(R.layout.editcourse); /*取得TextView对象,并调用updateDisplay()来设置显示的初始日期时间*/

24、 /tv= (TextView) findViewById(R.id.showTime); /updateDisplay(); /*取得DatePicker对象,以init() 设置初始值与onDateChangeListener() */ dp=(DatePicker)findViewById(R.id.dPicker); dp.init(mYear,mMonth,mDay,new DatePicker.OnDateChangedListener() Override public void onDateChanged(DatePicker view,int year, int monthOfYear,int dayOfMonth) mYear=year; mMonth= monthOfYear+1; mDay=dayOfMonth;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1