基于Android的网上商城商店在线交易APP系统

基于Android的网上商城商店在线交易APP系统在进行业务流程分析时,需要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、

目 录
基于Android的商店在线交易APP I
摘要 I
Abstract II
第一章 绪论 1
1.1 研究内容 1
1.2 研究意义 1
1.3研究现状和发展趋势 1
第二章 系统分析 3
2.1 研究目标 3
2.2 需求分析 3
2.3业务流程分析 3
2.4数据流图 4
2.5数据字典 5
2.6性能分析 6
第三章 系统开发环境及相关技术 7
3.1开发环境 7
3.2 Java SDK 7
3.3 Eclipse 8
3.4 ADT 9
3.5 Android SDK 9
3.6 Tomcat服务器 13
3.7 JSP技术 14
3.8 JSON 14
3.9 Android开发平台搭建 17
第四章 程序设计 19
4.1 功能设计 19
4.2 数据库设计 19
4.2.1概念结构设计 20
4.2.2数据库表设计 21
第五章 程序开发 23
5.1 文件结构与用途 23
5.2 系统实现 24
5.2.1登录页 24
5.2.2后台页 27
5.2.3查看商品 29
5.2.4管理员管理商品功能 33
第六章 系统测试 37
6.1 软件测试的重要性 37
6.2 测试实例的研究与选择 37
6.3 测试环境与测试条件 38
6.4 系统运行情况 38
6.5 系统评价 38
第七章 总结 39
参考文献 40
致 谢 41
第二章 系统分析
2.1 研究目标
(1) 了解Android应用程序的设计和开发过程;
(2) 使用多种组件进行基于Android 平台的网上商城系统的软件开发。
本软件是基于Eclipse的开发环境,依托Tomcat服务器上的后台数据,开发出了针对Android平台的网上商城系统。
2.2 需求分析
经过对网上商城系统的了解、以及体验了购物的流程,总结出本系统需要的功能如下:
登录功能。使用系统之前必须登录系统,登录过程通过无线网络,在后台数据库通过用户名称和密码进行查询,注册用户方才可以使用该系统。
系统主菜单。系统登录成功后进入系统主菜单,主菜单通过图形菜单的方式来展现系统的功能,单击某个选项便进入该功能的操作界面。
购物功能。此功能可以根据用户需要对商品商品信息进行添加、修改、查询、删除。并且在添加商品信息时可为每个自动生成商品编号。
订单功能。此功能可以根据用户的需要进行购物,并能计算出顾客的商品数及总金额。
从上面的描述中可以基本了解软件的功能需求:
本软件是一个Android 客户端+JSP Servlet服务端应用程序,启动Android上的应用程序后可以登录、查看商品等。Android客户端上的信息数据是通过后台JSP Servlet服务端应用程序获取的,这个后台服务可以根据客户端发出的请求,返回信息。 图片和文字这些信息都保存在数据库中。
2.3业务流程分析
在进行业务流程分析时,需要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、报单、屏幕显示)等。
业务流程分析可以帮助开发者了解该业务处理过程,发现和处理系统调查工作中的错误和疏漏。业务流程分析是通过业务流程图来进行,即用一些规定的符号及连线来表示某个具体业务处理过程。
具体业务流程如图3.1所示。
在这里插入图片描述
图3.1业务流程图
2.4数据流图
数据流程是指数据在系统中产生、传输、加工处理、使用、存储的过程[6]。数据流程分析是把数据在现行系统内部的流动抽象的独立起来,舍去了具体组织机构、信息载体、处理工具、物质、材料等,单从数据流动过程来考查实际业务的数据处理模式。
数据流程与数据流程分析是今后建立数据库系统和设计功能模块处理过程的基础。描述数据流程的工具是数据流程图以及其附带的数据字典、处理逻辑等图表。其中数据流程图是描述系统逻辑模型的主要工具,它以少数几种符号综合地反映出信息在系统中的流动、存储和传递[7]。
在业务流程分析的基础上,本文转载自http://www.biyezuopin.vip/onews.asp?id=13799对数据流进行了分析,从数据流动过程考察了实际业务的数据处理模式。该系统的数据流图分为顶层、一层、二层。现行的顶层数据流图如图3.2所示。
在这里插入图片描述
图3.2顶层数据流图
由于论文的篇幅限制不能一一列举数据流图,只给出了部分数据流图,其他的数据流图基本一致。

package edu.self;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.protocol.HTTP;

import com.bb.R;
import com.bb.ui.MainActivity;
import com.bb.util.Constants;
import com.bb.util.HttpUtil;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;


/** * 登录页面 * @author mzba * */
public class LoginActivity extends Activity { 
   
	
	private EditText et_id;
	private EditText et_password;
	private ProgressDialog dialog;
	
    @Override
    public void onCreate(Bundle savedInstanceState) { 
   
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.loginpage);
        
        SharedPreferences preferences = getSharedPreferences(
    			Constants.Preferences_user,
    			Activity.MODE_APPEND);
        
        et_id = (EditText) findViewById(R.id.login_edit_account);
        et_id.setText(preferences.getString(Constants.Preferences_userid, ""));
		et_password = (EditText) findViewById(R.id.login_edit_pwd);
		
		final CheckBox cbSavePw = (CheckBox) findViewById(R.id.save_password);
		final CheckBox cbAutoLogin = (CheckBox) findViewById(R.id.login_automatic);
		
		if (preferences.getBoolean(Constants.Preferences_savepassword, false)) { 
   
			Log.i(LoginActivity.class.getCanonicalName(), preferences.getString(Constants.Preferences_password, ""));
			et_password.setText(preferences.getString(Constants.Preferences_password, ""));
			cbSavePw.setSelected(true);
		}
		if (preferences.getBoolean(Constants.Preferences_autologin, false)) { 
   
			cbAutoLogin.setSelected(true);
			login();
		}
		
		((ImageButton) findViewById(R.id.login_btn))
		.setOnClickListener(new OnClickListener() { 
   
			@Override
			public void onClick(View v) { 
   
				SharedPreferences preferences = getSharedPreferences(
		    			Constants.Preferences_user,
		    			Activity.MODE_APPEND);
				Editor editor = preferences.edit();
				if (cbAutoLogin.isChecked()) { 
   
					editor.putBoolean(Constants.Preferences_autologin, true);
					editor.putBoolean(Constants.Preferences_savepassword, true);
					cbSavePw.setSelected(true);
					editor.commit();
				} else { 
   
					editor.putBoolean(Constants.Preferences_autologin, false);
					editor.commit();
				}
				if (cbSavePw.isChecked()) { 
   
					editor.putBoolean(Constants.Preferences_savepassword, true);
					editor.putString(Constants.Preferences_password, et_password.getText().toString());
					editor.commit();
				} else { 
   
					editor.putBoolean(Constants.Preferences_savepassword, false);
					editor.putString(Constants.Preferences_password, "");
					editor.commit();
				}
				String uin = et_id.getText().toString().trim();
				String pwd = et_password.getText().toString().trim();
				if ((uin.length() == 0) || (pwd.length() == 0)) { 
   
					Toast.makeText(LoginActivity.this, "用户名或者密码不能为空",
							Toast.LENGTH_LONG).show();
					return;
				}
				editor.putString(Constants.Preferences_userid, et_id.getText().toString());
				editor.commit();
				login();
			}
		});
		
		((ImageButton) findViewById(R.id.login_option)).setOnClickListener(new OnClickListener() { 
   
			
			@Override
			public void onClick(View v) { 
   
				openOptionsMenu();
			}
		});
    }
    
    public void login() { 
   
    	dialog = new ProgressDialog(this);
		dialog.setMessage("登录中...请稍候");
		dialog.show();
    	new Thread(){ 
   
			public void run() { 
   
				if (HttpUtil.isConnectInternet(LoginActivity.this)) { 
   
					HttpPost post = new HttpPost(Constants.SERVER + Constants.SERVER_LOGIN);
					List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
					params.add(new BasicNameValuePair("userId", et_id.getText().toString()));
					params.add(new BasicNameValuePair("password", et_password.getText().toString()));
					try { 
   
						post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
						post.getParams().setBooleanParameter(
								CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
						HttpResponse response = (HttpResponse) new DefaultHttpClient().execute(post);;
						if (response != null) { 
   
							if (200 == response.getStatusLine().getStatusCode()) { 
   
								InputStream is = response.getEntity().getContent();
								Reader reader = new BufferedReader(new InputStreamReader(is));
								StringBuilder builder = new StringBuilder((int) response.getEntity().getContentLength());
								char[] temp = new char[4000];
								int len = 0;
								while ((len = reader.read(temp)) != -1) { 
   
									builder.append(temp, 0, len);
								}
								reader.close();
								is.close();
								String content = builder.toString();
								response.getEntity().consumeContent();
								if (content.equals("true")) { 
   
									runOnUiThread(new Runnable() { 
   
										public void run() { 
   
											Intent intent = new Intent();
											intent.setClass(LoginActivity.this, MainActivity.class);
											intent.putExtra("userId", et_id.getText().toString());
											
											Constants.userId =  et_id.getText().toString() ;
											System.out.println( " Constants.userId :::::" + Constants.userId ); 
											
											startActivity(intent);
											dialog.dismiss();
											LoginActivity.this.finish();
										}
									});
								} else if (content.equals("false")) { 
   
									runOnUiThread(new Runnable() { 
   
										public void run() { 
   
											dialog.dismiss();
											Toast.makeText(LoginActivity.this, "帐号不存在或用户名密码错误!", Toast.LENGTH_LONG).show();
										}
									});
								} else { 
   
									runOnUiThread(new Runnable() { 
   
										public void run() { 
   
											dialog.dismiss();
											Toast.makeText(LoginActivity.this, "登录失败,请稍后再试!", Toast.LENGTH_LONG).show();
										}
									});
								}
							}
						}
					} catch (UnsupportedEncodingException e) { 
   
						e.printStackTrace();
					} catch (ClientProtocolException e) { 
   
						e.printStackTrace();
					} catch (IOException e) { 
   
						e.printStackTrace();
					}
				}
			};
		}.start();
    }
    
    @Override
	public boolean onCreateOptionsMenu(Menu menu) { 
   
		menu.clear();
		getMenuInflater().inflate(R.menu.login_menu, menu);
		return true;
	}
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) { 
   
		switch (item.getItemId()) { 
   
		case R.id.register_account:
			startActivity(new Intent(this, RegisterAccountActivity.class));
			finish();
			break;
		case R.id.net_setting:
			startActivity(new Intent("android.settings.WIRELESS_SETTINGS"));
			break;
		
			
			
		case R.id.exit:
			finish();
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}
	
	
	protected void onDestroy() { 
   
		super.onDestroy();
		SharedPreferences preferences = getSharedPreferences(
    			Constants.Preferences_user,
    			Activity.MODE_APPEND);
		Editor editor = preferences.edit();
		editor.putString(Constants.Preferences_userid, et_id.getText().toString());
		editor.commit();
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

今天的文章基于Android的网上商城商店在线交易APP系统分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64922.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注