




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
廉价融资融券或QFII系统建设思路1. 题记32. 总体构想43. 搭建思路53.1 总思路53.2 平台定位54. 具体功能74.1系统特点74.2 系统功能94.2.1总后台功能9 客户管理9 代理商管理10 留仓股票查询10 交割清单查询11 股票设置11 财务管理11 总账查询12 资金变动查询12 管理员设置124.2.2 PC代理商功能12 用户管理13 交割清单13 出入金记录13 总账查询144.2.3 PC客户端功能14 股票查询14 股票交易14 资金转账15 留仓查询16 交割单查询16 其他功能164.3.4安卓客户端164.2.5 IOS客户端164.2.6 商城164.2.7股价监听程序16 自动监听股价17 采集历史股价数据17 根据股价波动自动平仓17 自动收取过夜费17 超过六个工作日自动售出股票185. 技术要点185.1 开发技术和语言185.2 服务端接口技术185.3 数据库技术235.4 高并发技术265.5 转账接口285.6 股票接口305.7 自动处理技术335.8 分页技术335.9 手机端开发技术391. 题记把看似复杂的事情想透彻了,就会变得很简单。我没事喜欢将一件事情研究透彻,证券市场平台是我突发灵感,感觉一向神秘的证券平台或许门槛没有这么高,如是开始着手研究,我研究证券平台有三个目的:1. 证券平台一向神秘,没有工作经验的人很难窥其真容,这对我是一个诱惑,我想从网上搜集资料,整理一下。2. 一直认为技术大数据的分析可以降低投资风险,如果拥有这个大数据,加上先进的分析模型,肯定可以大幅降低理财风险,形成群狼效应。3. 互联网资源丰富,依靠廉价的互联网自建为大家服务是我的爱好。 历时接近三个月的测试,已经形成一部分成果:一种小型、实用的A股融资融券平台搭建思路。可以很少量的投资就可以窥探证券动向,并可以对外提供一些增值服务。2. 总体构想总部代理分部客户客户代理分部客户客户客户 系统是一个小规模的生态,有三种用户:总部、代理分部和客户。总部负责运维整个系统,包括股票设置、用户账号管理、虚拟资金统计分析、真实资金管理等;代理商可以依靠这个平台搭建小型的运营生态,包括开设自己下面的客户账号、归属自己的资金分析、和总部进行真实资金结算等;客户就是股民了,可以在平台开仓、平仓、资金转账等等。平台建成之后,“总部”可以按照自己的“运作”特点,精选一些股票,在平台设置一下,客户就可以放心的按照我们的“指导”够买了。总部贡献技巧,代理商做大市场,客户分享收益,一个良好的生态。3. 搭建思路3.1 总思路总后台服务端PC客户端安卓客户端IOS客户端股价监听器PC代理端商城 有人可能会说,你个大骗子,不是说好的廉价平台吗?则么搞这么多东东?道理很简单:您误会我了。据我了解,一套成熟的融资融券系统,造价在1000多万甚至几千万,而且是在中国的价格,现在美国的很多系统都交给中国开发,因为中国开发便宜。这样的整个系统互相依托运作,笔者估计大概仅需要30-60万,是不是很“廉价”呢?那么我们看看每一个系统都是干什么的吧?3.2 平台定位n 服务端整个系统的中心,位于我们的中心机房为各个系统提供网络服务,让我们的总后台、代理端和客户端都能在它的服务下互相协作。n 总后台 顾名思义是整个系统的最高权力机构,负责管理整个系统的运作,这个程序运行在运行这个平台的个人电脑上面,依靠服务端进行设置,整个系统在这个总后台的指导下运作。n PC代理端 代理端负责发展客户,给自己的客户开户,开户以后客户端就可以立即使用客户端了,但这个时候是不能立即开仓的,需要客户自己登录到PC客户端进行充值,有了资金以后客户可以开仓了。客户操作所收取的费用,代理端可以查看自己的利润。n PC客户端 PC客户端提供给客户使用,客户进行股票查询、开仓、留仓股票查询、平仓、资金转账等操作。n Android客户端 功能参照PC客户端,去掉了资金转账功能,因为移动支付开发相对麻烦,我没有做相关研究。n IOS客户端 功能参照PC客户端,去掉了资金转账功能,因为移动支付开发相对麻烦,我没有做相关研究。n 监听器这也是系统的重点之一。首先因为我们整个系统需要实时股价作为支撑,这个监听器就负责从网上拉取最新股价信息放到我们系统,供开仓、平仓和风险控制等操作;其次我们系统作为指导性强的系统,应该指导用户操作,包括是否当日留仓、股价波动到一定幅度自动平仓等等,因为这些操作需要我们的客户端不打开也能够做到的。n 商城之所以要建立一个商城是因为我们的平台资金账号,因为这样的系统,即使是玩票,估计也很难申请到,但是商城就比较容易申请了,建议公司开通一个商城,利用商城的资金账号进行模拟交易。4. 具体功能终于到了重点,这样一个系统是怎么实现的呢?我们先分析系统的特点和特色,然后根据这个脉络继续向下分析。4.1系统特点n 一种独立的系统它不依靠大型券商系统,形成自己的交易生态,所有交易规则自己来定n 独立的用户体系账号管理是独立的,系统和第三方支付平台对接实现资金转账n 高价值用户服务包括优选股票、开仓和平仓风险控制、股价波动风险控制、T+0等服务项目。n 双向支持开多仓和开空仓。n 透明灵活的计费计费是运营的基础,系统应该计费透明而且合理才更有竞争力。n 杠杆可以放大可用资金,用户以小博大。n 快速这是所有系统的共性了,股价瞬息万变,股民肯定要求根据最新的股价操作,我们不是大券商,股价数据比大券商言辞1-2秒还是很靠谱的吧。n 广泛支持沪深股票、股指期货、贵金属交易。n 安全可靠整个系统并不是基于网页实现,而是基于客户端服务器技术,客户、代理商、总后台的功能均通过安装包安装应用程序实现,和服务器通信快速,安全可靠,整个实现和大券商客户端相同。4.2 系统功能4.2.1总后台功能融资融券总后台客户管理代理商管理留仓股票查询交割单查询股票设置财务管理总账查询资金变动查询管理员设置客户管理客户管理负责对所有客户账号进行管理,主要功能有客户列表、客户统计、资金调整、账号冻结和解冻、客户信息修改等。n 客户列表显示所有客户的信息,可以根据客户姓名、账号、所属代理商、注册时间来查询某些客户信息。n 客户统计可以按照区域、代理商、注册时段、开户行来统计客户分布情况。n 资金调整修改某一个客户的账户资金,该功能是为了系统机动处理某些特殊账户资金的预留功能。n 账号冻结、解冻冻结一个客户,冻结后该客户将不能使用客户端功能,包括交易。解冻是指恢复一个客户账号的正常状态。n 客户信息修改修改客户的信息,包括银行账号、初始化密码等。代理商管理该模块负责代理商所有管理功能,开设代理商账号、冻结代理商账号、代理商资金结算等。n 开设代理商账号开设一个代理商账号,将可以使用该账号登录PC代理端。n 冻结代理商账号冻结代理商账号的功能是指关闭该代理商的管理功能,冻结以后该代理商无法开设账号,其下面的客户仍然可以使用客户端交易。n 代理商资金结算平台结算给代理商利润是分期结算的,平台提供简单的结算功能即可:平台实时计算应计算的金额,并可以根据时间查询应结算总额,总后台不提供网银转账结算功能,通过网银直接转账或线下方式结算,完成以后到平台标记结算金额,下次结算的时候系统统计待结算金额(扣除以前结算的金额),直接结算即可。留仓股票查询查询所有客户当前持仓的股票信息,包括客户信息、股票信息、购买时间、当前盈亏、各种费用收取和待收取情况等,可以强平客户的持仓股票,强平客户持仓股票是指在任意时间点,后台可以指定一个价格强行将该股票售出。交割清单查询查询客户已经平仓的股票信息,包括客户信息、股票信息、购买时的股票价格,售出时的股票价格,盈利情况,平台费用收取情况等信息。股票设置设置系统支持操作的股票,在此登记的股票,在客户端才可以进行交易。功能包括添加股票信息、删除股票信息、快速导入多支股票信息、导出股票信息、设置是否允许开多仓或开空仓、是否禁止交易、是否启用风险控制。股票设置的信息会立即体现在每一个客户的客户端,当禁止交易或者修改了股票信息,客户端要立即禁止相关操作或显示最新内容。股票设置的基本信息仅仅包括股票代码和股票名称即可,信息一定要和A股一定要一致,否则后面提到的获取股价功能将无法实现。财务管理该功能实际值出入金的管理,用于财务查看客户入金的明细情况、按月统计入金报表,财务出金转账登记,出金汇总等。n 入金管理 客户转账到平台称为入金,系统可以开通资金账号,PC客户端直接调用网银功能实现立即转账,平台可以收到转账成功后的各种信息。入金管理是指统计客户转账到平台的时间、资金情况等信息。n 出金管理 平台转账给客户称为出金。出金不通过平台,客户从PC客户端发起出金请求,平台审核通过以后,在当日将资金通过其他平台转账,系统只需登记即可,登记完成后,用户的可用资金将减少。总账查询 查询平台目前的资金情况、客户的收益情况、平台的收益情况、客户预期收益情况、平台预期收益情况、代理商收益和预期收益情况等信息。资金变动查询 用于查看客户的资金变动历史,包括客户的各种操作引发的资金变动:入金、出金、开仓、平仓、后台强制平仓、系统自动平仓、后台修改资金等。 管理员设置包括开通管理员账号、修改管理员账号等功能。4.2.2 PC代理商功能PC代理端用户管理交割清单出入金记录总账查询 PC代理端提供给代理商使用,包括代理商管理自己的客户、交割清单、出入金记录、总账查询。用户管理 用户管理包括客户管理负责对所有客户账号进行管理,主要功能有客户列表、客户统计、资金调整、账号冻结和解冻、客户信息修改等。n 客户列表 显示所有客户的信息,可以根据客户姓名、账号、所属代理商、注册时间来查询某些客户信息。n 账号冻结、解冻 冻结一个客户,冻结后该客户将不能使用客户端功能,包括交易。解冻是指恢复一个客户账号的正常状态。n 客户信息修改 修改客户的信息,包括银行账号、初始化密码等。交割清单查询所有客户当前持仓的股票信息,包括客户信息、股票信息、购买时间、当前盈亏、各种费用收取和待收取情况等。出入金记录该功能实际值出入金的管理,用于财务查看客户入金的明细情况、按月统计入金报表,财务出金转账登记,出金汇总等。n 入金管理 统计该代理商的客户转账到平台的时间、资金情况等信息。n 出金管理 统计该代理商的客户从平台提取资金的时间、资金情况等信息。 总账查询 查询平台目前的资金情况、客户的收益情况、平台的收益情况、客户预期收益情况、平台预期收益情况、代理商收益和预期收益情况等信息。4.2.3 PC客户端功能PC客户端是客户进行股票交易的客户端软件。包括股票查询、股票交易、资金转账、修改密码、留仓查询、交割单查询等功能。PC客户端股票查询股票交易资金转账修改密码留仓查询交割单查询 股票查询股票查询功能是指为客户端提供可以交易的股票列表,用户可以按照股票代码和股票名称查询某一只股票。股票查询所包括的信息包括股票代码、股票名称、是否允许多开、是否允许空开、是否禁止交易等。 股票交易股票交易是指进行股票开仓和交割两类操作。n 开仓开仓是指用户购入某一只股票,包括股票查询、购买和刷新留仓四个环节。股票查询负责从服务器查询股票信息,包括获取股票代码、股票名称、多空开仓限制、是否禁止交易、根据开盘停盘时间停止交易、根据节假日停止交易、根据股价波动停止交易、查询最新的股价信息、显示平台规定的交易价格等信息。购买包括对用户输入的手数进行判断是否允许交易,执行购买同时扣除用户的资金。刷新留仓是指刷新客户端的留仓信息,看到自己的开仓成功,开仓后30分钟不允许交易,防止客户频繁刷单。开仓分为开多仓和开空仓,开多仓是指股价涨的时候盈利,开空仓是指股价跌的时候盈利。n 交割交割是指出售一只股票交割的交割的操作包括出售股票和返还资金两部分。 资金转账资金转账包括银证转账和证银转账。n 银证转账银证转账是指从客户的银行账号到平台的资金账号转账,客户发起银证转账以后,系统调用平台开通的网银页面,用户输入转账的金额,将客户的银行资金转入到平台,转账成功后用户的信用资金立即增加。n 证银转账证银转账是指平台资金转入到客户的银行账号,用户从客户端发起证银转账,后台收到转账请求以后,财务通过其他渠道转给用户资金,转出以后在系统中确认订单完成,客户的使用资金降低。留仓查询留仓查询用于查询留仓信息,所查询信息包括自己所留仓的股票,信息包括股票基本信息、当前股价、当前盈亏、费用收取情况、即将收取的费用情况、是否允许平仓等。可以对留仓股票出仓。交割单查询交割单查询用于查询已经交割的股票情况,包括股票基本信息、交割盈亏情况、费用收取情况等信息。 其他功能包括修改密码、锁定客户端等功能。4.3.4安卓客户端参见PC客户端功能。比客户端少了资金转账功能。4.2.5 IOS客户端参见PC客户端功能。比客户端少了资金转账功能。4.2.6 商城商城负责在申请平台的资金账号的时候使用,用户银证转账的时候也可以使用商城的商品名称进行交易,这里没有什么技术含量。4.2.7股价监听程序股价监听程序负责从互联网拉取最新的股价信息,供平台所用,并且提供平台服务端自动化处理的功能。 自动监听股价 自动监听股价的功能是根据系统设定的股价范围,从互联网拉取股价,提供给系统使用。我们优先选用新浪财经的股价接口,因为这个接口包含的信息是相当齐全的,而且响应速度快,非常稳定。据我测试2000只股票,获取时间最长2秒,当然如果我们的服务器够好,应该能做到1秒以内,这就完全够我们使用了。采集历史股价数据前面提到我们希望平台具有“分析功能”,根据股价波动来分析风险,从而自动平仓或者自动禁止开仓,这个新浪接口不能直接帮我们实现,因为它没有查询历史股价的能力,我们系统可以做一个补偿设计,就是每日扫描一次股价信息,保存在我们系统中,供查询使用,这也是“大数据”哦。我们可以采集的信息包括“最近一周的最高价波动情况”、“近期开盘就涨停情况”,“近期涨停和跌停次数”等等。根据股价波动自动平仓系统有一个功能:当股价波动到一定幅度以后,系统会自动止损或者止盈平仓。该功能是平台自动的,因此需要靠监听程序来实现。监听程序首先遍历所有留仓中的股票,然后对比当前的股价,如果股价波动超过一定的比例,自动按照当前的股价出仓,并且将利润返回给当前账号。自动收取过夜费 如果平台开启收取过夜费的收费项目,那么过夜费在第一个交易日结束或者第一日收盘的时候开始自动收取。该功能也是系统主动+主动的行为,按照行规,过夜费收取的时候,如果用户的账户资金不够,则自动出售该股票,将该股票的资金用于过夜费,如果股票卖出以后仍然不够,则出售其他股票收取。超过六个工作日自动售出股票 如果系统系统中的留仓股票超过6个工作日仍未手动出仓,系统将强制自动出仓。5. 技术要点既然需求已经分析,我们一起看看要完成这样的系统所需要的技术。5.1 开发技术和语言 前端技术是为操作本系统的人提供的交互界面开发技术。包括PC客户端、代理商客户端、总后台和股价监听系统的界面,考虑数据交换的及时性、系统安全性和交互体验,系统需要采用C/S的架构,这也是绝大多数大型券商系统的通用格式。 那么我们应该采用什么技术实现呢?目前主流的服务端技术有java、.net等,其中java不适合做前端开发,因此我们应该选用.net作为开发语言,前端采用Winform技术开发,后台采用.net WebAPI技术。Winform研发所用到的技术包括控件技术、排版布局技术,当然如果要做得更好,需要用到自定义控件技术、多线程预加载技术、进度条交互技术。5.2 服务端接口技术服务端接口技术主要是服务端的处理业务逻辑以及和客户端API对接的技术,刚讲到主要是使用.net WEBAPI技术,建议接口采用restful规范,主要约束如下:由于系统接口不多,建议只使用get 和post两类接口方式,一般向服务端上报数据采用post方式,从服务端拉取数据采用get方式。服务端收到客户端的请求以后,开始进行业务处理,完毕以后返回数据,举例:webAPI 首先需要初始化一些参数,对WebAPIConfig改造一下。using CacheCow.Server;using Newtonsoft.Json.Serialization;using System.Linq;using System.Net.Http.Formatting;using System.Web.Http;namespace FundAPI public static class WebApiConfig public static void Register(HttpConfiguration config) / 去掉json序列化时的循环引用 var json = config.Formatters.JsonFormatter; json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc; / 去掉XML序列化器 config.Formatters.Remove(config.Formatters.XmlFormatter); var jsonFormatter = config.Formatters.OfType().First(); jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); /服务端缓存器 GlobalConfiguration.Configuration.MessageHandlers.Add(new CachingHandler(GlobalConfiguration.Configuration); / Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: DefaultApi, routeTemplate: fstock/v2/api/controller/action/id, defaults: new id = RouteParameter.Optional ); 然后在API层进行接口代码编写,首先一个API的代码文件存放一块业务逻辑,例如节假日设置的API,我们可以按照如下编写:using FundAPI.Models;using FundAPI.Models.vo;using FundAPI.Services;using System;using System.Collections.Generic;using System.Web.Http;namespace FundAPI.Controllers public class SyslogController : ApiController / / 获取一个客户在指定日期的操作资金变动日志 / / / HttpPost public IHttpActionResult AllSyslogByCustomerAndDate(DeliveryQueryVO vo) DateTime dtBegin = DateTime.Parse(vo.begindate); DateTime dtEnd = DateTime.Parse(vo.enddate); List ret = new List(); ret.Add(new SyslogService().GetByCustomerId(vo.u_loginname); ret.Add(new Info(获取成功); return Ok(ret); / / 获取该日所有用户的资金变动日志 / / / HttpPost public IHttpActionResult AllSyslogByDate(DeliveryQueryVO vo) DateTime dtBegin = DateTime.Parse(vo.begindate); DateTime dtEnd = DateTime.Parse(vo.enddate); List ret = new List(); ret.Add(new SyslogService().GetAllByDate( dtBegin, dtEnd); ret.Add(new Info(获取成功); return Ok(ret); / / 所有客户的总变动日志 / / HttpPost public IHttpActionResult AllSyslog() List ret = new List(); ret.Add(new SyslogService().SelectAll(); ret.Add(new Info(获取成功); return Ok(ret); 在服务层,我们需要书写具体的实现代码:using FundAPI.commons;using FundAPI.Models;using FundDB;using MongoDB;using System;using System.Collections.Generic;using System.Linq;namespace FundAPI.Services public class SyslogService public void ADD(SysLog item) using (FundMongoDB mdb = new FundMongoDB() var collection = mdb.GetCollection(); collection.Insert(item); public IEnumerable SelectAll() using (FundMongoDB mdb = new FundMongoDB() var collection = mdb.GetCollection(); var query = from deliveryStock in collection.Linq() select deliveryStock; IEnumerable deliveryStockIEnumerator = query.AsEnumerable(); deliveryStockIEnumerator = StructClone.CloneList(deliveryStockIEnumerator); return deliveryStockIEnumerator; / / 根据客户查找 / / / public IEnumerable GetByCustomerId(string loginname) using (FundMongoDB mdb = new FundMongoDB() var collection = mdb.GetCollection(); IEnumerable deliveryStockIEnumerable = collection.Find(c = c.u_loginname = loginname).Documents; deliveryStockIEnumerable = StructClone.CloneList(deliveryStockIEnumerable); return deliveryStockIEnumerable; / / 根据客户查找 / / / public IEnumerable GetAllByDate(DateTime dtBegin, DateTime dtEnd) using (FundMongoDB mdb = new FundMongoDB() var collection = mdb.GetCollection(); IEnumerable deliveryStockIEnumerable = collection.Find(c = c.date dtBegin & c.date dtEnd).Documents; deliveryStockIEnumerable = StructClone.CloneList(deliveryStockIEnumerable); return deliveryStockIEnumerable; public void Save(SysLog item) using (FundMongoDB mdb = new FundMongoDB() var collection = mdb.GetCollection(); collection.Save(item); 5.3 数据库技术选用数据库涉及到很多地方,本文选中了Mongodb数据库,肯定很多人都说了,为什么选用一种大家都不熟悉的数据库呢?原因如下:1. Mongodb到3.0版本以后还是很稳定的,内置的缓存使查询速度非常快,这样服务器会降低很多压力。2. Mongodb没有SQL语言,这样可以让我们的业务逻辑更清晰,大家都希望自己的代码很干净。3. 我们的系统知识规划的第一步,将来要做大数据分析,Mongodb作为非关系型数据库,在多版本迭代、多版本数据并存分析方面还是非常有实力的。MondoDB基础封装如下:using System;using MongoDB;namespace FundDB public class FundMongoDB: IDisposable private Mongo _mongo; private IMongoDatabase _db; private static string connectionString = Server=;JD_DB; private static readonly string _connectionString = connectionString.Split(;)0;/ Server=; private static readonly string _dbName = connectionString.Split(;)1; public FundMongoDB() : this(_connectionString, _dbName) public FundMongoDB(string dbName) : this(_connectionString, dbName) / / 构造函数。根据指定连接字符串和数据库名 / / 连接字符串 / 数据库名,可为空,但必须在任何操作数据库之前要调用UseDb()方法 public FundMongoDB(string connectionString, string dbName) if (string.IsNullOrEmpty(connectionString) throw new ArgumentNullException(connectionString); _mongo = new Mongo(connectionString); / 立即连接 MongoDB _mongo.Connect(); if (string.IsNullOrEmpty(dbName) = false) _db = _mongo.GetDatabase(dbName); / / 切换到指定的数据库 / / / public IMongoDatabase UseDb(string dbName) if (string.IsNullOrEmpty(dbName) throw new ArgumentNullException(dbName); _db = _mongo.GetDatabase(dbName); return _db; / / 获取当前连接的数据库 / public IMongoDatabase CurrentDb get if (_db = null) throw new Exception(当前连接没有指定任何数据库。); return _db; / / 获取当前连接数据库的指定集合【依据类型】 / / / public IMongoCollection GetCollection() where T : class return this.CurrentDb.GetCollection(); / / 获取当前连接数据库的指定集合【根据指定名称】 / / / 集合名称 / public IMongoCollection GetCollection(string name) where T : class return this.CurrentDb.GetCollection(name); public void Dispose() if (_mongo != null) _mongo.Dispose(); _mongo = null; 5.4 高并发技术基于IIS的.net技术作为服务端,那么怎么做到很高的并发,能让APP有更流畅的访问速度,并且不会因为客户多速度而明显降低,我们应该怎么做呢?1. 设置IIS,能接受更多的请求;定期回收资源,保证在健康的状况下运行。2. 多使用缓存,采用数据库会损耗服务器性能,而且通常存放在数据库中的内容越多,越有利于并发。例如股价的访问一定要快,我们放在内存中,保障客户端只要是访问,就能立即返回。我们用的是Memcache作为缓存服务,当然我更倾向于用Redis。using FundAPI.Models;using FundAPI.Services;using System;using System.Collections.Generic;using System.Web;namespace FundAPI.App_Catche public class StockPriceHistoryCache private static int CACHEDDAYS = 7; /缓存7个工作日的股票价格 public static void CacheStockPriceHistory() IEnumerable holidays = new CloseDaysService().getWorkDaysBefore(CACHEDDAYS); CacheStockPriceHistory(holidays); private static void CacheStockPriceHistory(IEnumerable days) if (days = null) return; IEnumerable catchedDays = (IEnumerable)HttpRuntime.CacheSTOCKPRICE_HISTORYDAYS; if (c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源汽车技术与应用考试试卷及答案
- 2025年汽车驾驶员(高级)证考试题库及答案
- 阿坝藏族羌族自治州2025-2026学年七年级上学期语文月考模拟试卷
- 安徽省淮北市杜集区2023-2024学年高一下学期期末考试历史题库及答案
- 安徽省安庆市宿松县2024-2025学年高一下学期期末考试化学题库及答案
- 2025 年小升初哈尔滨市初一新生分班考试语文试卷(带答案解析)-(人教版)
- 2025年教师节感恩老师演讲稿13篇
- 社区消防知识培训课件要点
- 上海市上海师范大学附属金山前京中学2024-2025学年七年级下学期期中考试英语试题(含答案无听力音频及原文)
- 福建省龙岩市非一级达标校2024-2025学年高一上学期11月期中考试历史试卷(含答案)
- 住院病人防止走失课件
- 2024年重庆永川区招聘社区工作者后备人选笔试真题
- 医学技术专业讲解
- 2025年临床助理医师考试试题及答案
- 唯奋斗最青春+课件-2026届跨入高三第一课主题班会
- 2025民办中学教师劳务合同模板
- 2025年南康面试题目及答案
- 2025年事业单位考试贵州省毕节地区纳雍县《公共基础知识》考前冲刺试题含解析
- 高中喀斯特地貌说课课件
- 黄冈初一上数学试卷
- 2025年中国花盆人参行业市场发展前景及发展趋势与投资战略研究报告
评论
0/150
提交评论