《基于android系统的网上购物防沉迷系统毕业论文.doc》由会员分享,可在线阅读,更多相关《基于android系统的网上购物防沉迷系统毕业论文.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于android系统的网上购物防沉迷系统摘要随着互联网的快速发展,电子商务的发展越来越迅速。中国网络无的用户规模不断上升,低价作为竞争力也成为网上购物迅速发展的原因。足不出户,便可享受购物带来的乐趣。但正是因为商品的繁多,价格的低廉,付款的方便,很多人沉迷于此。本文首先介绍了网购的背景,及系统能够实现提醒人们及时停止网购行为的功能,其中具体的详述了实现过程,使用的开发语言及环境,配套插件,最后实现了统计购物金额,并提醒用户的功能。关键词: android,网购,网银,提醒 With the rapid development of the Internet, the development
2、of e-commerce is growing rapidly. Chinese network without the user scale rising cheap as the rapid development of online shopping has also become competitive. Stay at home, you can enjoy the fun of shopping. But precisely because of the variety of goods, low prices, convenient payment, many people a
3、ddicted to it. In this paper, first of all introduced the online shopping background, and the system can be achieved to remind people to stop net purchase behavior in a timely manner, which specifically detailed in the implementation process, the development language and environment, supporting plug
4、-ins, the last to achieve the amount of statistics shopping, and to remind the user function.Keywords: Android, online shopping, online banking, remind目录1 引言 1.1 网上购物的市场趋势2 1.2 网上购物的市场优势2 1.3 网上购物的弊端22 系统开发技术简介 2.1系统开发语言3 2.2 系统开发工具及插件4 3系统总体设计 3.1 确定系统的综合要求4 3.1.1功能需求4 3.1.2性能需求4 3.1.3可靠性和可用性需求5 3.
5、1.4出错处理需求5 3.1.5接口需求 5 3.1.6逆向需求11 3.2系统数据要求11 3.3系统逻辑模型4系统功能模块 4.2 浏览短信记录 4.3 添加系统号码 4.4 网站导航 结束 参考文献 致谢 声明 1.引言 高新科技和计算机的飞速发展,给人们带来了更多的便利电脑普及时代即将到来,网络技术也在逐渐完善,人们的生活已经开始发生重要的变革,效率已经成为各个企业生存的首要条件,更好更快的使用和了解相关的信息,以及处理更多更繁琐的事物便是我们设计网上购物系统的初衷。由于互联网发展已深入家庭,电子商务在飞速发展,网上购物越来越深入到网络生活,然而很多人却沉迷于此,每天花费很多时间和金钱
6、在网购上,干扰了正常的生活作息,也给紧急带来不小的压力。为了是人们能对网络购物有一个控制,本系统根据购物支付的方式虚拟于网络之上,使人们通过网络进行支付时系统会有相应的记录,并且做出提醒。系统的完成不仅可以记录用户的购物记录,还能在此基础上提供更多的,更贴心的服务。信息技术的发展将更快的推动互联网的发展,对于网购的防沉迷的重要性也将越显其强大的作用。1.1 网上购物的趋势 随着科学技术的发展,电子商务越来越受到人们的欢迎,小到针线,大到房子,都可以在网上找到自己心满意足的,不仅有网购,还有团购,玲琅满目的商品,价格低廉的实在,优质的客服服务,不出门即可在家享受购物的乐趣,所以,越来越多的人选择
7、在家网购,网购可以买到我们在一般超市买不到的东西,连实物都可以贴心的送到家门口。现代人生活节奏紧凑,每天忙于工作,那么闲暇时光里上网,买东西就成了最好的选择。网络购物直观,多样,低廉,方便,快捷等优点已经使它成为互联网行业最耀眼的一颗明星。各大电商巨头都发布自己的销售额,每年以几倍甚至几十倍的速度增长,网购已然是当下最流行,最有发展前景的行业之一。谁早一步创新,在电商方面给用户提供最好的体验,谁就能把握住行业的命脉。1.2 网上购物的优势 网络购物可充通过色彩、图片、说明、设置动画加强了产品了宣传,大大达零售业的“色型”要求。实现产品管理方便,起到立竿见影的效果,不用因为更改货品而重新印刷。只
8、要在后台鼠标轻轻一点,全线马上更新。采用B/S模式,订单订餐信息更加准确。避免口头传递信息的错误,优化服务。网络不会跟电话一样占线,在高峰期对订单的处理更是游刃有余,只看着屏幕点打印即可,就可下仓库配送。地址永远不会丢失,是一个永远存在的电子订单单,甚至还可以通过我们的推广而让更多的客人认识,不用派人派宣传单,省去一笔宣传和人工费用。订餐途径有了更好的改善,网络购物成为实体店购物的又一有力补充,扩大客流,从而整体提高业务量。倡导了一种时尚,网店的定位更是网络化,时尚化,多样化,具备更为勃勃的生机。缓解了实体店的拥挤不变的困境,解决了实体店价格偏高商品偏少的问题。企业创新,跟得上市场的需要。 1
9、.3 网上购物的弊端 第一,实物和照片上的差距太大: 网购只能是看到照片,到货物真的到达你手里,你会感觉和实物有不一样。这就不如在商场里买到的放心。 第二,不能试穿: 网购只是看到照片及对物品的简单的介绍,像衣服或鞋子之类的,你就不能直接的看出适不适合你,而如果在商场购买,你可以试穿,合自己的身,就马上买下,不用考虑那么多,但是,网购就比较麻烦了。 第三,网络支付不安全: 可能被偷窥,密码被盗。网上购物最为担心的一点就是他需要用到银行账户,有些朋友的电脑中存在着盗号木马等,会造成账号丢失等一些严重的情况发生,所以大家在购物的时候尽量不要选择网吧等公共场所,自己的电脑也要保证杀毒软件的正常安装才
10、能进行网络交易。 第四,诚信问题: 就是店主的信用程度,如果碰到过服务质量差的店主,问几个问题就显得不耐烦。还有在网上购物出现上当受骗时常发生。 第五,配送的速度问题: 在网上所购来的物品,还要经过配送的环节,快则一两天,慢则要一个星期或更久,有时候,配送的过程还会出现一些问题,还有,如果对物品不满意,又要经过配送的环节,换一下物品,这样比较麻烦;而在商场上,看到自己想要,就直接到手,如果不满意,直接拿去换。 第六,退货不方便的问题: 虽然现实中购物退货也需要很复杂的程序,甚至对产品要有保护的要求,可是网上退货就相对更加困难。甚至提出百般无理要求拒绝退货和推卸责任。最重要的是,会形成“网购依赖
11、症”,年龄在20岁至30岁的上班族,是网购成瘾的高发群体。他们经济收入一般,喜欢接受新鲜事物,而自制能力又较差。最初网购的原因是为了省钱,习惯以后又慢慢上瘾了,看到喜欢的东西,即便不实用,头脑一热就下单。网购成瘾的原因很多,与现代人的工作和生活环境,以及个人的性格都有关。有的人把购物当成一种释放压力的手段,心理压力过大、心里不痛快就通过购物来舒缓情绪。网购成瘾的现象较为普遍,之前就有很多市民前来做相关心理咨询。成瘾是强迫症的前兆,一旦演变成了强迫症,就需要相关的治疗。所以在这种趋势有越演越烈的趋势下,我们研究了一种系统,这种系统可以将用户每次网购的金额统计下来,每月达到一定的数量以后就发出提示
12、,从而使人们警觉。2 系统开发技术介绍 2.1系统开发语言 1、linux平台下的开发环境2、Java 语言核心技术:Java语言基础、Java面向对象编程、JDK核心API、Java集合框架、Java网络编 程、JavaI/O编程、Java多线程编程、Java异常机制、Java安全、JDBC、XML3、软件工程和设计模式:软件工程概述、配置管理及SVN、UML、基本设计模式4、Android应用开发基础:Android开发平台、Eclipse+ADT开发环境、AVD及传感模拟器调试、Android核心组件、Android常用组件、Android高级组件、文件及网络访问、SQLite数据库编程
13、、后台服务编程5、互联网核心技术: HTML、CSS、JavaScript、JQuery、Ajax应用6、Android高级应用开发:音频视频摄像头、互联网应用、GPS和位置服务、Google Map、2D3D绘制、传感器开发、游戏开发、电话及SMS服务、网络BluetoothWi-Fi等。7、Android系统级开发:移植、驱动、NDK(C方向)。8、JavaEE核心技术:Servlet核心技术、JSP核心技术、Struts、Spring、Hibernate框架。 2.2 系统开发工具及插件 1.Eclipse Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,
14、它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都件,对于具有同等的发挥场所。Eclipse核心很小,其它所有功
15、能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API (SWT/Jface), Java开发环境插件(JDT ),插件开发环境(PDE)等。 2 ADT插件ADT作为android开发工具,简称,实在是强大的,集成的环境EclipseIDE中构建Android应用程序插件。ADT扩展了Eclipse的功能,让我们快速建立新的Android项目,创建一个应用程序的用户界面,加上Andorid框架的API组件,调试应用程序使用ANDROID SDK工具,以便APK分发给应用程序。 3 开发硬件介绍联想Y540笔记本,具体参数:intel core I5-2450Mc
16、pu,2.5GHZ 2.49GHZ,2.94GB内存,500GB硬盘。 MicroSoft Windows XP 版本2002 Service Pack 33.系统总体设计一 确定对系统的综合要求 1. 功能需求 本系统是针对网购系统防沉迷,必须达到能读取短信中购物金额的功能,然后系统自动的进行累计,当达到预定的金额时,系统发出提醒,从而是用户对购物有一定的警醒作用。并且为了以后能更好的使用这款软件,它可以手动添加新的银行系统号码的信息。斌且同时也提供了手机版各大购物网站的导航信息,此功能并不是促进用户购物,而是实现可以及时收货等功能。 2. 性能需求本系统的原理是实时统计手机短信中的购物金额
17、,所以必须在银行系统的短信到达的第一时间将短信内容提取,并过滤掉重复,无用的信息。它可以被修改,增添以及删除系统内的短信号码库,可以修改预订的上限金额。可以快速链接到各大购物网站上面。对于可靠性方面由于没有涉及到密码,所以不需要过多考虑。3. 可靠性和可用性需求 可靠性需求定量地指定系统的可靠性。本系统具有较强的可靠性,在各大银行改革自己的网银系统之前,都是可靠能用的,并且由于添加了可以人工输入系统号码的功能,本系统将遭未来较长一段时间内持续可用。 可用性与可靠性密切相关,它量化了用户可以使用系统的程度。本系统不需要任何操作,仅仅在第一次使用时输入上限金额即可,它能够在后台工作,从而不打扰用户
18、使用手机。当网银消费金额达到了上限之后,系统会发出提示,但不会影响用户继续使用本系统和网银系统,这样让用户不会感到怒烦。 4. 出错处理需求 这类需求说明本系统对环境错误应该怎样响应。例如,如果它接收到从另一个非系统指定号码发送的消息的时候不会进行短信的内容提取。如果遇到违反协议格式的消息,也会进行提示并不作提取的处理。 5. 接口需求接口需求描述本系统与它的环境通信的格式。本系统的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。下文为本系统中所使用到的接口。设置金额上限窗口public class settingActivity extends Activity impl
19、ements OnClickListenerprivate Button btn_ok;private Button btn_cal;private EditText edit_money,edit_phone;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.setting);btn_ok=(Button) findViewById(R.id.ok);btn_cal=(Button) findViewById(R.id.ca
20、ncel);edit_money=(EditText) findViewById(R.id.maxvalue);edit_phone=(EditText) findViewById(R.id.phonenumbr);btn_ok.setOnClickListener(this);btn_cal.setOnClickListener(this);/mydata存储电话号码和金额上限的文件名SharedPreferences sp=getSharedPreferences(mydata,Context.MODE_PRIVATE);edit_money.setText(sp.getString(mo
21、ney, );edit_money.setText(sp.getString(phone, ); /*Intent intent=getIntent();Bundle b=intent.getExtras();String s=b.getString(value);edit.setText(s);*/响应单击按钮信息public void onClick(View v) / TODO Auto-generated method stubif(v.getId() = R.id.ok)String s=13296500990,13554326034;SharedPreferences sp = g
22、etSharedPreferences(data, Context.MODE_PRIVATE);setSharedPreference(data,s);Intent backIntent=new Intent();Bundle b=new Bundle();b.putString(value, edit_money.getText().toString();backIntent.putExtras(b);setResult(RESULT_OK, backIntent);/返回Activity结果码finish();else Intent intent=getIntent();settingAc
23、tivity.this.setResult(0, intent);settingActivity.this.finish();/将设置信息写入存储文件中private void setSharedPreference(String key, String values) / TODO Auto-generated method stub String regularEx = #; String str = ; SharedPreferences sp = getSharedPreferences(data, Context.MODE_PRIVATE); if (values != null &
24、 values.length 0) for (String value : values) str += value; str += regularEx; Editor et = sp.edit(); et.putString(key, str); mit(); /从存储文件中读取存储信息 public String getSharedPreference(String key) String regularEx = #; String str = null; SharedPreferences sp = getSharedPreferences(data, Context.MODE_PRIV
25、ATE); String values; values = sp.getString(key, ); str = values.split(regularEx); return str; /短信统计主界面public class MainActivity extends Activity implements OnClickListener, OnItemClickListener private PopMenu popMenu;private String maxvalue; double sumvalue;private static final String LOG_TAG = Sms
26、Query; /显示窗口protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);findViewById(R.id.btn_title_popmenu).setOnClickListener(this);/ 初始化弹出菜单popMenu = new PopMenu(this);popMenu.addItems(new String设置金额, 购物导航);popMenu.setOnItemClickListener(thi
27、s);ListView list = (ListView) findViewById(R.id.list); TextView tv=(TextView) findViewById(R.id.value); /生成动态数组,加入数据sumvalue=0.00; listShow(list); tv.setText(总金额:+sumvalue+元); SharedPreferences ps=getSharedPreferences(login,Context.MODE_PRIVATE);/login是存储文件 maxvalue=ps.getString(money, ); /显示短信的list
28、viewpublic void listShow(ListView list)ArrayListHashMap listItem = new ArrayListHashMap(); String projection = new String _id, address, date, body; try Cursor myCursor = managedQuery(Uri.parse(content:/sms),projection, null, null, date desc); if (myCursor.moveToFirst() String phoneNumber; String sms
29、; String time; int phoneColumn =myCursor.getColumnIndex(address); int smsColumn = myCursor.getColumnIndex(body); int dateColum = myCursor.getColumnIndex(date); do / Get the field values HashMap item = new HashMap(); phoneNumber = myCursor.getString(phoneColumn); sms = myCursor.getString(smsColumn);
30、sumvalue=sumvalue+ getSumMoney(sms); / date = myCursor.getInt(dateColum); / time=formatTimeStampString(this,date,false); time=myCursor.getString(dateColum); SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); Date d = new Date(Long.parseLong(time); time = dateFormat.format(d); i
31、tem.put(number, phoneNumber); item.put(msg, sms); item.put(date, time); listItem.add(item); while (myCursor.moveToNext(); catch (SQLiteException ex) Log.d(LOG_TAG, ex.getMessage(); SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,/数据源 R.layout.list_item,new String number,date,msg, new
32、 int R.id.number,R.id.date,R.id.sms ); list.setAdapter(listItemAdapter); /计算并统计金额上限public double getSumMoney(String msg)String RMB=人民币元 ; String JE=金额; String DinDan=订单号; if(msg.indexOf(DinDan)=0) return 0.0; double d=0.00;int start=0,end=0;int n1=msg.indexOf(RMB);int n2=msg.indexOf(JE);if(n10)|(n20
33、) if(n10) start=n1+RMB.length();if(n20) start=n2+JE.length();char c=msg.toCharArray();if(cstart+1=0&cstart+1=9)start+;for(int i=start;i=0&ci=9)|ci=.)i+;else end=i;break;d=Double.parseDouble(msg.substring(start,end);return d;/响应按钮单击信息public void onClick(View v) if(v.getId() = R.id.btn_title_popmenu)p
34、opMenu.showAsDropDown(v);/响应菜单项单击信息public void onItemClick(int index) if(index=0)Bundle b=new Bundle();b.putString(value, maxvalue);Intent intent=new Intent(MainActivity.this,settingActivity.class);intent.putExtras(b);startActivityForResult(intent,0);if(index=1)/Toast.makeText(this, item clicked + i
35、ndex + !, Toast.LENGTH_SHORT).show();/该接口的主要功能是与设置窗口交互protected void onActivityResult(int requestCode,int resultCode, Intent data) / TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if(requestCode=0)if(resultCode=RESULT_CANCELED)setTitle(Cancel*);else if(resultCod
36、e=RESULT_OK)Bundle b=data.getExtras();/从返回的Intent中获得Bundlemaxvalue=b.getString(value);/从bundle中获得相应数据setTitle(maxvalue);/菜单窗口构造函数public PopMenu(Context context) this.context = context;itemList = new ArrayList(5);inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);Vi
37、ew view = inflater.inflate(R.layout.popmenu, null);listView = (ListView) view.findViewById(R.id.listView);listView.setAdapter(new PopAdapter();listView.setOnItemClickListener(this);popupWindow = new PopupWindow(view, context.getResources().getDimensionPixelSize(R.dimen.popmenu_width), popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT);/响应菜单窗口消息public void onItemClick(AdapterView parent, View view, i