電信增值業(yè)務(wù)及軟件開發(fā)一實(shí)踐報(bào)告_第1頁(yè)
電信增值業(yè)務(wù)及軟件開發(fā)一實(shí)踐報(bào)告_第2頁(yè)
電信增值業(yè)務(wù)及軟件開發(fā)一實(shí)踐報(bào)告_第3頁(yè)
電信增值業(yè)務(wù)及軟件開發(fā)一實(shí)踐報(bào)告_第4頁(yè)
電信增值業(yè)務(wù)及軟件開發(fā)一實(shí)踐報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、電信增值業(yè)務(wù)及軟件開發(fā)一實(shí)踐報(bào)告學(xué) 院: 軟件學(xué)院 專 業(yè): 軟件工程 班 級(jí): 學(xué) 號(hào): 姓 名2: 指導(dǎo)老師: 2013年 06月 22日實(shí)驗(yàn)一:短消息MO指令匹配算法一、 實(shí)驗(yàn)步驟及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)代碼:#include<iostream.h>#include<string.h>void main()char S100;char T50; cin>>S;cin>>T;int len1,len2;int len;int next100;int i,j;int k;int count=0;len1=strlen(S); len2=strlen(T)

2、;len=len1-len2;j=1,k=0;next1=0;while(j<len2) if(k=0|Tj-1=Tk-1)j+;k+;nextj=k;else k=nextk;i=0;j=0;while(j!=len2&&i<len1)count+; if(Si!=Tj) if(j=0) i+; elsej=nextj+1-1;elsei+; j+; cout<<len1<<endl;cout<<i<<endl;cout<<j<<endl;if(j=len2) cout<<&quo

3、t;匹配成功,初始匹配成功的位置為第:"<<i-len2+1<<"個(gè)字符"<<endl;cout<<"匹配次數(shù)為:"<<count<<endl;elsecout<<"匹配次數(shù)為:"<<count<<endl;cout<<"匹配失敗"<<endl;二、實(shí)驗(yàn)截圖:二、 心得:通過這次實(shí)驗(yàn),用C/C+/C#或Java編程實(shí)現(xiàn)短消息MO指令匹配算法,該算法能夠?qū)崿F(xiàn)短消息MO指令的長(zhǎng)號(hào)

4、碼和指令內(nèi)容的模糊和精確匹配、空指令匹配功能。實(shí)驗(yàn)二:短消息增值業(yè)務(wù)軟件開發(fā)平臺(tái)及接口一、實(shí)驗(yàn)步驟及實(shí)驗(yàn)結(jié)果( 1 )實(shí)驗(yàn)內(nèi)容“根據(jù)短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)的操作手冊(cè)熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)”的實(shí)驗(yàn)步驟如下:登陸短信增值業(yè)務(wù)平臺(tái)創(chuàng)建一個(gè)屬于自己的業(yè)務(wù),按需求和格式定義業(yè)務(wù)名稱、指令類型、匹配方式、資費(fèi)、處理方式、通道并送發(fā)審核。實(shí)驗(yàn)結(jié)果 短信成功接收到,并且程序返回值為“0”結(jié)果分析通過平臺(tái)下發(fā)的測(cè)試短信最終預(yù)期收到。說明在平臺(tái)上創(chuàng)建的業(yè)務(wù)通道,格式正確。并且已經(jīng)通過管理員的審核,能夠合法的使用平臺(tái)提供的通道資源。測(cè)試代碼的發(fā)送成功還說明在程序中調(diào)用平臺(tái)接口的方式是正確的。( 2 )實(shí)驗(yàn)內(nèi)

5、容“根據(jù)短消息增值業(yè)務(wù)軟件開發(fā)平臺(tái)的接口手冊(cè),熟悉短消息增值業(yè)務(wù)軟件開發(fā)平臺(tái)的HTTP接口、API接口、Web Service接口等的使用方法”的實(shí)驗(yàn)步驟如下:http接口的參數(shù)定義格式:在程序中調(diào)用已通過審核的業(yè)務(wù)String url = ""/ 讀取接口傳遞過來的參數(shù)并封裝數(shù)據(jù)RequestData rd = new RequestData();rd.setPhone("");rd.setServiceId("2");rd.setChannelId("1");rd.setDestNumber("1&q

6、uot;);rd.setLinkId("");rd.setMoId("");rd.setSpNumber("");rd.setFunctionType("");rd.setType("");通過程序來實(shí)現(xiàn)短信的下發(fā)代碼實(shí)現(xiàn):MainClass.javapackage com.cqupt.http;public class MainClass String phone = ""public MainClass() String mtMsg = ""Strin

7、g commString = ""String url = ""/ 讀取接口傳遞過來的參數(shù)并封裝數(shù)據(jù)RequestData rd = new RequestData();rd.setPhone("");rd.setServiceId("2");rd.setChannelId("1");rd.setDestNumber("1");rd.setLinkId("");rd.setMoId("");rd.setSpNumber("&q

8、uot;);rd.setFunctionType("");rd.setType("");/ 業(yè)務(wù)邏輯判斷mtMsg = "第二條測(cè)試信息"rd.setMtMsg(mtMsg);/ 拼接數(shù)據(jù)commString = RequestUtil.getInstance().commString(rd);/ 轉(zhuǎn)發(fā)到重郵平臺(tái)RequestUtil.getInstance().requestURL(commString, url);public static void main(String args) MainClass mainClass =

9、new MainClass();RequestData.javapackage com.cqupt.http;public class RequestData private String phone;private String destNumber;private String serviceId;private String channelId;private String linkId;private String moId;private String spNumber;private String functionType;private String type;private S

10、tring content;private String mtMsg;public String getPhone() return phone;public void setPhone(String phone) this.phone = phone;public String getDestNumber() return destNumber;public void setDestNumber(String destNumber) this.destNumber = destNumber;public String getServiceId() return serviceId;publi

11、c void setServiceId(String serviceId) this.serviceId = serviceId;public String getChannelId() return channelId;public void setChannelId(String channelId) this.channelId = channelId;public String getLinkId() return linkId;public void setLinkId(String linkId) this.linkId = linkId;public String getMoId

12、() return moId;public void setMoId(String moId) this.moId = moId;public String getSpNumber() return spNumber;public void setSpNumber(String spNumber) this.spNumber = spNumber;public String getFunctionType() return functionType;public void setFunctionType(String functionType) this.functionType = func

13、tionType;public String getType() return type;public void setType(String type) this.type = type;public String getContent() return content;public void setContent(String content) this.content = content;public String getMtMsg() return mtMsg;public void setMtMsg(String mtMsg) this.mtMsg = mtMsg;RequestUt

14、il.javapackage com.cqupt.http;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;impor.HttpURLConnection;impor.URL;impor.URLEncoder;public class RequestUtil private RequestUtil() private static RequestUtil requestUti

15、l = null;/* * 單例模式,返回RequestUtil的實(shí)例化對(duì)象 * * return requestUtil */public static RequestUtil getInstance() if (requestUtil = null) requestUtil = new RequestUtil();/ 需要的時(shí)候才new,節(jié)省空間。return requestUtil;/* * 拼接字符串 * param rd 傳遞的參數(shù)封裝成的包信息 * return commString 拼接好的請(qǐng)求信息字符串 */public String commString(RequestDat

16、a rd) String commString = ""try commString = "userName=2012123667&password=123&phone=" + rd.getPhone() + "&destNumber=" + rd.getDestNumber() + "&serviceId=" + rd.getServiceId()+ "&channelId=" + rd.getChannelId() + "&linkI

17、d=" + rd.getLinkId() + "&moId=" + rd.getMoId() + "&spNumber=" + rd.getSpNumber() + "&content="+ URLEncoder.encode(rd.getMtMsg(), "UTF-8") + "&functionType=" + rd.getFunctionType() + "&type=" + rd.getType() + "&

18、amp; =3" catch (UnsupportedEncodingException e) e.printStackTrace();return commString;/* * 將結(jié)果短信轉(zhuǎn)發(fā)到指定的平臺(tái) * param commString 請(qǐng)求字符串 * param address 信息發(fā)送的目的URL地址 * return rec_string 發(fā)送結(jié)果內(nèi)容 */public String requestURL(String commString, String address) String rec_string = ""URL url = null;

19、HttpURLConnection urlConn = null;try url = new URL(address);urlConn = (HttpURLConnection) url.openConnection();urlConn.setConnectTimeout(30000);urlConn.setReadTimeout(30000);urlConn.setRequestMethod("POST");urlConn.setDoOutput(true);OutputStream out = urlConn.getOutputStream();out.write(co

20、mmString.getBytes("GBK");out.flush();out.close();BufferedReader rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8");StringBuffer sb = new StringBuffer();int ch;while (ch = rd.read() > -1) sb.append(char) ch);System.out.println(sb.toString();rec_str

21、ing = sb.toString().trim();rd.close(); catch (Exception e) e.printStackTrace(); finally if (urlConn != null) urlConn.disconnect();return rec_string;1.根據(jù)短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)的接口手冊(cè)熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)的HTTP接口等。2.調(diào)用短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)的HTTP接口,編寫一個(gè)Web程序?qū)崿F(xiàn)“趣味答題”短信增值業(yè)務(wù)。實(shí)驗(yàn)步驟創(chuàng)建業(yè)務(wù)因?yàn)楸敬螌?shí)驗(yàn)要調(diào)用HTTP接口,所以我們?cè)谶x在處理方式的時(shí)候要選擇HTTP轉(zhuǎn)發(fā)提交審核審核通過業(yè)務(wù)實(shí)現(xiàn)數(shù)

22、據(jù)庫(kù)設(shè)計(jì)根據(jù)整個(gè)項(xiàng)目情況可以看出這個(gè)業(yè)務(wù)平臺(tái)需要的數(shù)據(jù)表:用戶答題信息表User_message、題目信息表title_message。title_message表結(jié)構(gòu)字段類型默認(rèn)值描述IdNumber(10)主鍵titleTypeVarchar2(30)題目類型consequenceVarchar2(10)題目答案titleNumberNumber(10)題目題號(hào)contentVarchar2(100)題目?jī)?nèi)容user_message表結(jié)構(gòu)字段類型默認(rèn)值描述IdVarchar2(100)主鍵phoneNumber(10)手機(jī)號(hào)碼titleTypeNumber(10)回答題目類型countNu

23、mberNumber(10)回答題目數(shù)successNumberNumber(10)答對(duì)題目數(shù)errorNumberNumber(10)答錯(cuò)題目數(shù)三、 心得通過本次實(shí)驗(yàn)熟悉了大漢三通公司的短信增值業(yè)務(wù)軟件開發(fā)平臺(tái),掌握了短息增值業(yè)務(wù)軟件的入門知識(shí)。但目前還只是初步會(huì)使用大漢三通公司封裝打包提供的功能,自己對(duì)于底層的實(shí)現(xiàn)還不能夠明確掌握。實(shí)驗(yàn)三:基于HTTP接口的短消息編程一、 實(shí)驗(yàn)步驟及實(shí)驗(yàn)結(jié)果1、將文件mpay_sms_http導(dǎo)入Myeclipse中2、 配置web.xml如圖3、發(fā)布工程及修改路徑4、訪問工程在地址欄中輸U(kuò)RL: mpay_sms_http/http/httpTest 回

24、車得到發(fā)布工程中在<host></host>中加入代碼<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/mpay_sms_http" docBase="C:Documents

25、 and SettingsAdministratorWorkspacesMyEclipse 8.xmpay_sms_httpWebRoot"></Context> <!- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html -> <!- <Valve className="talina.authenticator.SingleSignOn" /> ->

26、; <!- Access log processes all example. Documentation at: /docs/config/valve.html -> <!- <Valve className="talina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="fal

27、se"/> -> </Host>創(chuàng)建數(shù)據(jù)庫(kù)輸入密碼進(jìn)入配置界面輸入show databases;命令查看已經(jīng)存在的數(shù)據(jù)庫(kù)輸入create database test 得到5、使用navicat新建數(shù)據(jù)庫(kù)將答題的數(shù)據(jù)輸入,如圖上傳提交二、心得熟悉短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)HTTP接口等,掌握短信增值業(yè)務(wù)軟件開發(fā)的HTTP接口編程。實(shí)驗(yàn)四:基于API接口的短消息編程一、 實(shí)驗(yàn)步驟及實(shí)驗(yàn)結(jié)果本次試驗(yàn)是建立在“短信增值業(yè)務(wù)軟件開發(fā)平臺(tái)HTTP接口程序設(shè)計(jì)”的基礎(chǔ)上,本次試驗(yàn)中的信息處理類和DAO是在第七次實(shí)驗(yàn)的基礎(chǔ)上稍加修改,這里我們就不做過多的解釋。1.創(chuàng)建一個(gè)業(yè)務(wù)2

28、.提交審核3.審核通過4.業(yè)務(wù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)整個(gè)項(xiàng)目情況可以看出這個(gè)業(yè)務(wù)平臺(tái)需要的數(shù)據(jù)表:用戶答題信息表User_message、題目信息表title_message。title_message表結(jié)構(gòu)字段類型默認(rèn)值描述IdNumber(10)主鍵titleTypeVarchar2(30)題目類型consequenceVarchar2(10)題目答案titleNumberNumber(10)題目題號(hào)contentVarchar2(100)題目?jī)?nèi)容user_message表結(jié)構(gòu)字段類型默認(rèn)值描述IdVarchar2(100)主鍵phoneNumber(10)手機(jī)號(hào)碼titleTypeNumbe

29、r(10)回答題目類型countNumberNumber(10)回答題目數(shù)successNumberNumber(10)答對(duì)題目數(shù)errorNumberNumber(10)答錯(cuò)題目數(shù) 創(chuàng)建API接口測(cè)試類http_api.javapackage com.dahantc.api;import com.dahantc.utils.channelUtils;public class api_Demo public static void main(String args) String host = "85"/ 短信實(shí)驗(yàn)平臺(tái)地址int port = 28020

30、;/ 短信實(shí)驗(yàn)平臺(tái)的服務(wù)端口(ctc端口)-默認(rèn)為28020String user = "student"/ 用戶賬號(hào)String passwd = "123"/ 用戶密碼int serviceId = 1;/ 業(yè)務(wù)ID-自己申請(qǐng)的業(yè)務(wù)ID號(hào)int channelId = 1;/ 通道ID-根據(jù)實(shí)際情況填寫channelUtils.getInstance().initChannel(host, port, user, passwd, channelId, serviceId); 創(chuàng)建一個(gè)MD5.java來提供上行業(yè)務(wù)MD5的加密方式package com

31、.dahantc.utilsimport java.security.MessageDigest;public class MD5 public static final String encode(String sourceString) String resultString = null;try resultString = new String(sourceString);MessageDigest md = MessageDigest.getInstance("MD5");resultString = byte2hexString(md.digest(result

32、String.getBytes(); catch (Exception ex) return resultString;private static final String byte2hexString(byte bytes) StringBuffer bf = new StringBuffer(bytes.length * 2);for (int i = 0; i < bytes.length; i+) if (bytesi & 0xff) < 0x10) bf.append("0");bf.append(Long.toString(bytesi &

33、amp; 0xff, 16);return bf.toString();創(chuàng)建一個(gè)SMSCallBackImpl.java類處理上行短息,下行狀態(tài)報(bào)告和響應(yīng)報(bào)告的功能package com.dahantc.utils;import com.chinatricom.message.IDeliverMsg;import com.chinatricom.message.IReportMsg;import com.chinatricom.message.ISubmitMsg;import com.chinatricom.slidewindow.SMSCallback;import com.chinatr

34、icom.smsclient.message.DeliverMsg;import com.chinatricom.smsclient.message.ReportMsg;import com.chinatricom.smsclient.message.SubmitMsg;/* * 該類提供處理上行短信、下行狀態(tài)報(bào)告和響應(yīng)報(bào)告的功能,實(shí)現(xiàn)SMSCallback接口的相應(yīng)方法即可,程序會(huì)自動(dòng)調(diào)用相應(yīng)的方法進(jìn)行處理 * * author dahantc*/public class SMSCallbackImpl implements SMSCallback Overridepublic boolea

35、n onDeliverSMS(IDeliverMsg arg0) / 處理上行短信DeliverMsg msg = (DeliverMsg) arg0;if (msg != null) String from = msg.getFrom();/ 手機(jī)號(hào)String to = msg.getTo();/ 上行服務(wù)號(hào)String content = msg.getMsg();/ 短信內(nèi)容int mtTypeId = msg.getMtTypeId();/ 短信類型1:點(diǎn)播2:定制3:退訂4:普通路由參數(shù)System.out.println("收到deliverMsg:phone=&quo

36、t; + from + ",內(nèi)容=" + content + ",to=" + to + ",mtTypeId=" + mtTypeId);System.out.println("開始進(jìn)行業(yè)務(wù)邏輯處理.");String _command = PropReadUtil.getInstance().getResources("command");/ 命令if (!content.trim().equals(_command) content = content.substring(_command

37、.length(), content.length();String _msg = LogicUtil.getInstance().judgment(content, from);System.out.println("開始發(fā)送短信:" + _msg);/* * 此處發(fā)送短信在下一步進(jìn)行創(chuàng)建,暫時(shí)先寫在這里 */boolean _ret = channelUtils.getInstance().sendSMS(msg.getChanId(), msg.getServiceId(), from, _msg);System.out.println("result:&q

38、uot; + _ret);return true;Overridepublic boolean onSubmitedSMS(ISubmitMsg arg0) / 處理下行響應(yīng)SubmitMsg msg = (SubmitMsg) arg0;if (msg != null) String smsID = msg.getReserve();String msgID = msg.getMsgId();int result = msg.getResult();String to = msg.getTo();System.out.println("收到submit response,to=&q

39、uot; + to + ",smsID=" + smsID+ ",msgID=" + msgID + ",result=" + result);return true;Overridepublic boolean onMTReportSMS(IReportMsg arg0) / 處理狀態(tài)報(bào)告ReportMsg msg = (ReportMsg) arg0;if (msg != null) String msgID = msg.getMsgid();/ msgIdint result = msg.getResult();/ 0:成功1:

40、等待發(fā)送2:失敗System.out.println("收到repot,msgID=" + msgID + ",result=" + result);return true;二、結(jié)果 用eclipse運(yùn)行工程,如果返回”hello word” 就說明項(xiàng)目成功。三、結(jié)果分析 用eclipse運(yùn)行工程,??吹饺缦聝?nèi)容:說明在平臺(tái)上創(chuàng)建的業(yè)務(wù)通道,格式正確。并且已經(jīng)通過管理員的審核,能夠合法的使用平臺(tái)提供的通道資源。API調(diào)用方式正確,并且成功調(diào)用API接口連接到短信平臺(tái)。過程中配置的數(shù)據(jù)庫(kù)等配置文件和創(chuàng)建的工具類都沒有發(fā)生邏輯和語(yǔ)法錯(cuò)誤。四、心得熟悉短信增值

41、業(yè)務(wù)軟件開發(fā)平臺(tái)API接口,掌握短信增值業(yè)務(wù)軟件開發(fā)的API接口編程。實(shí)驗(yàn)過程中還掌握通過類庫(kù)來實(shí)現(xiàn)MD5的創(chuàng)建和編寫,能夠在以后的程序編程中提供加密的功能。實(shí)驗(yàn)五:短消息增值業(yè)務(wù)編程一、 實(shí)驗(yàn)步驟及實(shí)驗(yàn)結(jié)果創(chuàng)建一個(gè)業(yè)務(wù)3.提交審核4.審核通過二、實(shí)現(xiàn)平臺(tái)的數(shù)據(jù)表:用戶答題信息表User_message、投票選手信息Person_message。Person_message表結(jié)構(gòu)字段類型默認(rèn)值描述IdNumber(10)主鍵NameVarchar2(30)選手姓名RankVarchar2(10)選手排名user_message表結(jié)構(gòu)字段類型默認(rèn)值描述IdVarchar2(100)主鍵phone

42、Number(10)手機(jī)號(hào)碼數(shù)據(jù)庫(kù)鏈接功能package com.dahantc.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.PreparedStatement;public class JdbcUtil private static String DB_DRIVER = PropReadUtil.getInstance().getResources("dbDri

43、ver");private static String DB_URL = PropReadUtil.getInstance().getResources("dbURL");private static String DB_USER = PropReadUtil.getInstance().getResources("dbUser");private static String DB_PASSWORD = PropReadUtil.getInstance().getResources("dbPassword");private

44、 static JdbcUtil _jdbcUtil = null;private JdbcUtil() public static JdbcUtil getInstance() if (null = _jdbcUtil) _jdbcUtil = new JdbcUtil();return _jdbcUtil;public Connection getConnection() throws ClassNotFoundException, SQLException Class.forName(DB_DRIVER);/ 注冊(cè)驅(qū)動(dòng);return DriverManager.getConnection

45、(DB_URL, DB_USER, DB_PASSWORD);/ 獲取數(shù)據(jù)庫(kù)連接;public void close(ResultSet rs, PreparedStatement stmt, Connection conn) try if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close(); catch (SQLException e) e.printStackTrace(); MD5加密類public class MD5 public static final Strin

46、g encode(String sourceString) String resultString = null;try resultString = new String(sourceString);MessageDigest md = MessageDigest.getInstance("MD5");resultString = byte2hexString(md.digest(resultString.getBytes(); catch (Exception ex) return resultString;private static final String byt

47、e2hexString(byte bytes) StringBuffer bf = new StringBuffer(bytes.length * 2);for (int i = 0; i < bytes.length; i+) if (bytesi & 0xff) < 0x10) bf.append("0");bf.append(Long.toString(bytesi & 0xff, 16);return bf.toString();業(yè)務(wù)邏輯類 public class LogicUtil private LogicUtil() private static LogicUtil logicUtil = null;public static LogicUtil getInstance() if (logicUtil = null) logicUtil = new LogicUtil();/ 需要的時(shí)候才new,節(jié)省空間。return logicUtil;public String judgment(String smsContent, String phone) String result = "

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論