《技术预研报告(共16页).doc》由会员分享,可在线阅读,更多相关《技术预研报告(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上海雅缤纷城综合管理系统haiyamaill.Of.System技术预研报告 目 录0. 文档介绍0.1 文档目的提前发现并解决开发过程中将会遇到的技术障碍0.2 文档范围描述海雅缤纷mall开发设计前的技术难点与需求难点。0.3 读者对象与职责项目经理或技术负责人识别项目中的技术难题,指定技术预研人员攻克该问题0.4 参考文档 电信短信网关相关文献0.5 术语与缩写解释缩写、术语解 释1. 背景介绍 帮助开发人员更好地进行需求开发、系统设计和程序设计。 防止开发进程被技术障碍打断,导致大量的相关工作被阻塞。2. 技术预研目标本地预研的内容与目标有一下几点:1. 短信网
2、关2. 商场抽奖3. 商场室内导航4. 虚拟打印机采集数据3. 技术短信网关的研究报告(1)短信网关ISMG全称Internet Short Message Gateway,主要是为了解决各网络、各运营商之间的短信互通和SP的接入问题。它为应用单位收发短信而提供的一个动态数据交换平台系统。通过该系统的接口软件,可以将短信平台与各种系统和软件进行无缝高效相连,将应用单位的系统随时产生的动态信息转变成手机短信。通过电信网关来进行实时中发送和接受短信信息,为各种系统(或软件)建立一个快速的短信双向(或单向)通道,以便手机用户采用短信方式与SP双向通信,接收SP提供的信息服务。(2)技术方案、技术细节
3、a.向当地电信部门申请短信网关b.基于电信网关提供的相关接口开发短信平台3.1 有关广东电信短信网关支持的简介 扩展支持:广东电信提供了强大的短信接入机制。本手册用于指导客户利用广东电信提供的短信接口进行其他需要短信功能的新系统开发或原有系统的短信功能扩展。 通讯支持:广东电信短信接入API是根据广东电信SMGP协议开发的,封装后的用户开发接口。接口可降低用户接入开发的难度,提升接入效率。 接口主要功能包括: 支持MT短信的发送。 支持MO短信的接收。 支持短信回执的接收。 技术支持:可用于各种语言的API调用,支持目前主流的语言,如:C+、DotNet、Java、ASP、VB、PowerBu
4、ilder、Delphi等。3.2 可行性分析电信短信网关、GSM MODEM(短信猫)、各家短信SP代理商(网站实现)对比。A采用电信短信网关,需向电信部门申请网关,不需要额外的设备,利用对方提供的API调用程序发送短信,适用于大型的通信公司。价格相对昂贵,但稳定可靠、性能优越。B采用GSM MODEM短信猫之类的GSMMODEM设备(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人。要实现这种方式必须理解串口通信、AT指令、短信编码、解码。价格便宜、开发难度较高、可靠性一般、性能较差。C短信SP代理商,利用网站实现,由网站代发短信数据,对网站依赖性太高
5、,对网络的要求也比较高,不适于进行项目开发。 相比对之使用电信短信网关符合我司项目中开发短信平台的需要。4. 技术短信网关的研究报告(1)商场通过抽奖互动活动的开展,吸引大量的消费者参与,提供消费者的积极性。(2)技术方案、技术细节a.购物小票打印二维码b.扫描二维码的手机应用app程序 4.1商场新式抽奖活动的技术简介 目前有哪些抽奖方式:1)商场设定抽奖规则,奖品,道具等等,进行线下抽奖,是以购物小票兑换获得抽奖资格进行抽奖。2)网上商场大都是以消费积分抽奖方式来进行抽奖。 海雅缤纷城抽奖设计方案:海雅缤纷城增加对商场购物小票上打印二维条码项,提供海雅缤纷城的手机应用APP程序,消费者可以
6、安装使用。消费者在专柜消费后获得购物小票,使用手机应用app商的抽奖功能,扫描购物小票上的二维条码,以获得抽奖资格。海雅缤纷城后台可设置抽奖的奖品,奖品中奖概率等等设定。当消费者抽到奖品后可到服务台兑换相应的奖品。 技术实施方案:如下程序案例:可实现对奖品的设定,奖品的概率设定。进行抽奖。import java.applet.Applet;import java.awt.Button;import java.awt.Color;import java.awt.Graphics;import java.awt.TextField;import java.awt.event.ActionEvent
7、;import java.util.Random;import java.util.Vector;public class Lottery extends Applet private static final long serialVersionUID = 1L; int w, h; Button ok, out, setup; String msg; TextField gaiLv; TextField jiangPin; int mx, ml; int maxNum; Random ran; Vector fist; Vector sec; Vector third; Vector lu
8、cky; boolean lot = false; boolean iserr = false; boolean issetup = false; String mesg = 输入错误; String priseMsg = 继续努力!; public void init() w = 400; h = 220; mx = 20; ml = 40; ran = new Random(); this.setSize(w, h); this.setLayout(null); ok = new Button(抽奖); out = new Button(退出); setup = new Button(确认
9、设置); msg = new String4; msg0 = 一等奖; msg1 = 二等奖; msg2 = 三等奖; msg3 = 幸运奖; gaiLv = new TextField4; jiangPin = new TextField4; for (int i = 0; i 4; i+) gaiLvi = new TextField(0.0 + (i + 1); this.add(gaiLvi); gaiLvi.setBounds(mx + ml, 75 + i * 26, 60, 18); jiangPini = new TextField(); this.add(jiangPini)
10、; jiangPini.setBounds(mx + ml * 3, 75 + i * 26, 80, 18); this.add(ok); ok.setBounds(260, 180, 60, 28); ok.addActionListener(new LotButtonAction(this); this.add(out); out.setBounds(330, 180, 60, 28); out.addActionListener(new LotButtonAction(this); this.add(setup); setup.setBounds(110, 180, 80, 24);
11、setup.addActionListener(new LotButtonAction(this); public void paint(Graphics g) g.setColor(Color.white); g.fillRect(0, 0, this.getWidth(), this.getHeight(); g.setColor(new Color(230, 255, 230); g.fillRect(0, 0, w, 30); g.setColor(Color.BLUE); g.drawString(JAVA抽奖系统, 130, 20); g.setColor(Color.ORANGE
12、); g.drawRect(10, 40, 230, 170); g.setColor(Color.BLACK); g.drawString(设置, mx, 60); g.drawString(概率, mx + ml, 60); g.drawString(奖品, mx + ml * 3, 60); for (int i = 0; i msg.length; i+) g.setColor(new Color(255 - (i * 30), 45, 89); g.drawString(msgi, 20, 90 + i * 26); if (lot = true) g.setColor(new Co
13、lor(ran.nextInt(255), ran.nextInt(255), ran.nextInt(255); if (priseMsg.length() 1) firu = Float.parseFloat(gaiLv0.getText(); if (firu = 1) iserr = true; return; if (firu 1) secu = Float.parseFloat(gaiLv1.getText(); if (secu = 1) iserr = true; return; if (secu 1) thiu = Float.parseFloat(gaiLv2.getTex
14、t(); if (thiu = 1) iserr = true; return; if (thiu 1) fouu = Float.parseFloat(gaiLv3.getText(); if (fouu = 1) iserr = true; return; if (fouu = 1 | minu = 0) iserr = true; return; float aNum = 1 / minu; maxNum = (int)aNum; int count = (int)(firu / minu); if (firu != 1) fist = getLotteryVec(maxNum, cou
15、nt); else fist.removeAllElements(); count = (int)(secu / minu); if (secu != 1) sec = getLotteryVec(maxNum, count); else sec.removeAllElements(); count = (int)(thiu / minu); if (thiu != 1) third = getLotteryVec(maxNum, count); else third.removeAllElements(); count = (int)(fouu / minu); if (fouu != 1)
16、 lucky = getLotteryVec(maxNum, count); else lucky.removeAllElements(); issetup = true; iserr = false; protected Vector getLotteryVec(int maxNum, int num) Vector result = new Vector(); for (int i = 0; i num; i+) result.add(ran.nextInt(maxNum); return result; protected int getaNum() return ran.nextInt
17、(maxNum); public int isLucky(int pNum) for (int i = 0; i fist.size(); i+) if (fist.get(i) = pNum) return 1; for (int i = 0; i sec.size(); i+) if (sec.get(i) = pNum) return 2; for (int i = 0; i third.size(); i+) if (third.get(i) = pNum) return 3; for (int i = 0; i lucky.size(); i+) if (lucky.get(i) =
18、 pNum) return 4; return -1; public void ButtonActionPerformed(ActionEvent e) String acName = e.getActionCommand(); if (acName.equals(抽奖) if (issetup = false) priseMsg = 请先设置参数!; lot = true; repaint(); lot = false; return; lot = true; priseMsg = getResult(getaNum(); repaint(); / lot=false; else if (a
19、cName.equals(退出) this.setVisible(false); this.stop(); this.destroy(); System.exit(0); else if (acName.equals(确认设置) lot = false; getLucky(); repaint(); public String getResult(int num) int resu = isLucky(num); String result = ; switch (resu) case -1: result = 继续努力!; break; case 1: result = 恭喜你!一等奖!n获
20、得 + jiangPin0.getText(); break; case 2: result = 恭喜你!二等奖!n获得 + jiangPin1.getText(); break; case 3: result = 恭喜你!三等奖!n获得 + jiangPin2.getText(); break; case 4: result = 恭喜你!幸运奖!n获得 + jiangPin3.getText(); break; default: result = 继续努力!; return result + num; class LotButtonAction implements java.awt.event.ActionListener Lottery su; public LotButtonAction(Lottery bun) this.su = bun; Override public void actionPerformed(ActionEvent e) su.ButtonActionPerformed(e); 专心-专注-专业