汽车销售管理系统的设计与实现_第1页
汽车销售管理系统的设计与实现_第2页
汽车销售管理系统的设计与实现_第3页
汽车销售管理系统的设计与实现_第4页
汽车销售管理系统的设计与实现_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、引言1.1、 编写目的. 11.2、定义. 2.1.3、 数据库设计步骤. 3二、需求分析2.1、 功能分析. 32.2、 业务活动. 52.3、 数据字典. 72.4、 数据流图. 11三、 结构设计3.1、 概念设计. 113.2、 总体 E-R 图设计. 123.3、 逻辑设计. 143.4、 物理设计. 14四、 运用设计4.1、程序源码与用户界面 . 174.3、系统运行与维护. 19五、 参考文献5.1、参考文献. 201 引言1.1 编写目的目前大多数厂商忽略了汽车销售管理系统的重要性,而本系统专为具有一 定规模和经济条件的大型汽车厂设计。从进货管理:车辆采购、车辆入库,

2、销 售管理到车辆销售、收益统计等,为每个环节明确分工,并通过可视化的软件 支持,有效减小了人为差错的概率,代之以高效、便捷、准确的数字化服务系 统,使汽车销售管理更加规范化。根据所学的数据库原理与程序设计的知识, 能够针对一个小型的数据库管 理系统进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题 目要求的功能, 加深对数据库系统、 软件工程、 程序设计语言的理论知识的理 解和应用水平 ,通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系 统的操作技术,提高动手能力,提高分析问题和解决问题的能力。从而达到掌 握开发一个小型数据库的目的。1.2 定义1、系统名称:汽车销售管理系

3、统2、数据库管理软件: Microsoft SQL Server3、数据库设计人员:洪保江4、使用本数据库的程序: 。5、数据库设计采用软件: Microsoft Office Visio 20036 系统采用 C/S 体系结构:Client (客户端)负责提供表达逻辑、显示用户界 面信息、访问数据库服务器; Server ( 服务器)端用于提供数据服务。7、运行平台: windows 2000/xp/linux1.3、数据库设计步骤2、需求分析2.1 功能分析进行需求分析首先是调查清楚用户的实际要求, 与用户达成共识, 然后分析与 表达这些需求。调查厂商与各部门需求的具体步骤如下:(1).调

4、查厂商组织情况。 包括了解各组织的部门组成情况, 各部门的职责等, 为分析信息流程做准备。(2).调查各部门的业务活动情况。包括了解各个部门和使用什么数据,如何 加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这 些是调查的重点。(3).在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括 信息要求,处理要求,安全性与完整性要求,这是调查的又一重点。(4).确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由 计算机完成或将来准备让计算机完成,哪些活动由人工完成。调查本地从事汽车销售的企业, 根据企业汽车销售的情况, 设计用于汽车销售 的管理系统,主要

5、功能有:1基础信息管理:厂商信息、车型信息和客户信息;2进货管理:车辆采购、车辆入库;3销售管理:车辆销售(处理车辆销售单)、销售代办(处理销售代办单)、车辆查询、销售日记录、销售月记录;4仓库管理:库存车辆、仓库明细、进销存统计;5系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;2.2 业务活动一、市场工作1、 获取订单(有能力可做)A、联络经销商仓管员,了解经销商库存;B、联络经销商采购购一报价;C、结合经销商库存情况,主动争取订单;D、寻找经销商的配货意向进行展异议处理;E、获得订单,并交由分公司助理安排送货;F、跟踪送货员贷物交接情况及协助送贷员解决收款中遇到的困难。

6、二、客户拜访及市场工作第一步 准备工作:A、检查每周工作记事表,确定当日拜记路线;B、准备当日需解决的问题,预约当日需拜访客户;第二步 销售拜访A、接触:问候或自我介绍通过改变交谈环境、车轮话术等方法,确定良好的沟通 氛围;B、收集市场资讯及客户销售资料及填报表;C、了解竞争对手及品牌机型的市场动向;D、进行异议处理、协助客户在销售中存在的问题。第三步总结与调整A、回顾当日工作进展状况,填写每日工作日记;B、总结当时工作中遇到的问题,失误与成就,并及时做出调整;C、根据当时进展状况,对每周工作记事表做出调整。2.3 数据字典1、数据项编号数据项名称说明部分编号数据项名称说明部分1客户姓名文本类

7、型符长度为20字2工作单位文本类型长度为20字符3性别字符串类型男、女4年龄整数类型18-1005客户号字符串类型有唯一性6联系电话整数类型7车型号字符串类型有唯一性8价格浮点型9车辆状态枚举类型被订、未订10厂商名文本类型有唯一性11厂商号字符串类型有唯一性12地址文本类型长度为30字符13生产车辆总数整数类型14厂商状态枚举类型忙、闲15订单号整数类型别订单所属的类16订货日期时间类型*/*17交货日期时间类型*/*18仓库号字符串类型有唯一性19进货车辆数整数类型20岀货车辆数整数类型21库存车辆总数整数类型22岀售车辆数整数类型23车辆总成本整数类型24获取总金额整数类型25利润整数类

8、型26买车时间时间类型27保修期限时间类型28备注文本类型19车辆名称字符串类型长度为20字符2、数据结构编号数据结构名属性1客户客户姓名、性别、年龄、客户号、工作单位、联系电话2车辆车型号、车辆名称、厂商名、价格、车辆状态3厂商厂商名、厂商号、地址、生产车辆总数、厂商状态、备注4订单订单号、客户号、订货日期、交货日期、地址、是否存有、是否已订5仓库仓库号、地址、进货车辆数、出货车辆数、库存车辆总数、6车辆销售车型号、厂商号、出售车辆数、车辆总成本、获取总金额、利润7订货客户、厂商、车辆、买车时间、保修期限3、数据流编号数 据 流 名输入输出1:变更客户变更信息客户信息2查询客户客户号客户信息

9、3变更厂商变更信息厂商信息4P 查询厂商厂商号厂商信息5变更车辆变更信息车辆信息6查询车辆车型号车辆信息7:变更订单变更信息订单信息8查询订单订单号订单信息9变更仓库变更信息仓库信息10仓库仓库号地址11:变更车辆销售变更信息车辆销售信息12查询车辆销售车辆销售数利润13:查询空闲厂商厂商状态限制条件空闲厂商信息:14结账车型号购买信息15提交订货请求客户号、车型号、价格、厂商号车辆信息16:获得订货请求订货信息车型号、厂商号、客户号17提交订单信息车型号、厂商号订单信息18:变更厂商分工信息厂商号、车型号厂商分工信息19预定车辆车型号车辆信息20付款车型号车辆信息、厂商信息4、数据存储数据存

10、储名输入数据流输出数据流说明部分客户信息变更客户查询客户 提交订货请求车辆信息变更车辆查询车辆 获得订货请求厂商信息变更厂商查询房间 提交订货请求 查询空闲厂商车辆销售信息变更车辆销售查询厂商 提交点货请求 查询空闲厂商 提交订货信息 提交订单信息订单信息变更订单结账提交订货请求订货信息提交订货请求提交订单信息结账获得订货请求厂商分工信息变更厂商分工信息5、处理过程处理过程名输入数据流输出数据流说明部分客户登记终端变更车辆 变更厂商订货终端提交订货请求 获得订货请求订货获得订货请求提交订货信息订单提交订货信息提交订单信息客户结账结账2.4 数据流图1、顶层进程一一销售管理子系统第一层数据流图2

11、、第二层(1) 进程 1接受订单订单细节内容车辆标号订单待完成订单准备待完成订单报表待完成订单报表4 生产部门准备发货细节(3)进程 3开发票(4)进程 4- 结帐系统支付记入贷方余额3、结构设计3.1 概念结构设计在概念设计中,通常用四种方法:(1) .自顶向下,首先定义全局概念结构的框架,然后逐步细化.(2) .自底向上,首先定义各局部应用的概念结构,然后将他们集成起来,得到全 局概念结构.(3) .逐步扩张.首先定义最核心的概念结构,然后向外扩充,直至总体概念结 构.(4) .混合策略.即自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设

12、计的各局部概念结构.我在此设计中采用自底向上的方法,逐步实现数据库的设计,得到全局概念.客户结算处理结算信贷+批准信贷调整调整应收金额发票记入贷方余额3.2、总体 E-R 图设计商.、-库存量厂商号厂商名车辆生产商n、零件库存车型号称名C7X1价格仓库地址生产车辆总数q q 所需时间销售部门1职工号职工负责二-、c姓名X J职称订单细节订单规模1折扣与否/ 、4 4 仓库号址客户姓名组成订货日期完整订单交货日期地址客户订货供应量供应1.倉部门经理属于车辆成品11车辆买车时间3.3 逻辑结构设计3. 3. 1 基本表1、客户基本表属性中文名称属性名类型长度说明客户号C_NOCHAR20主码:公司

13、统一编号,具有唯一 性客户姓名User_NAMECHAR20客户名称服务员性别User SEXCHAR4客户性别服务员年龄User AGEINT18 100联系电话User telINT工作单位un itCHAR20客户所在工作场所2、车辆基本表属性中文名称属性名类型长度说明车型号CAR_NOCHAR10主码:厂商统一编号,具有唯一 性车辆名称CAR NAMECHAR20车辆名称厂商名INDUSTTY_NAM ECHAR文本类型有唯一性价格PRICEFLOAT车辆状态STATUSBOOLEAN1枚举类型被订、未订3、厂商基本表属性中文名称属性名类型长度说明厂商号INDUSTTY_NOCHAR1

14、0主码:厂商统一编号,具有唯一 性厂商名INDUSTTY_NAM ECHAR文本类型有唯一性地址addressCHAR10厂商状态STATUSBOOLEAN1忙:1 ;空闲:0生产车辆总数CAR_amou ntINT4、仓库表属性中文名称属性名类型长度说明仓库号BOX_NOCHAR10主码:厂商统一编号,具有唯一 性地址addressCHAR10进货车辆数IN AMOUNTINT仓库开始进车辆的数量出货车辆数OU AMOUNTINT仓库已卖出的车辆数量库存车辆总数REMAIN AMOUN ITNT仓库现存有的车辆数量5、车辆销售基本表属性中文名称属性名类型长度说明车型号CAR NOCHAR10

15、:外码:参照车辆表的车型号厂商号INDUSTTY NC)CHAR10外码:依照厂商表的厂商号出售车辆数Sale am ountINT车辆总成本CAR_MONEYFLOAT车辆进货的成本获取总金额MONEYFLOAT利润beniftFLOAT盈:1亏:06、订单表属性中文名称属性名类型长度说明订单号order_NOINT10订单所属的类别客户号C NOCHAR20外码:参照客户表的客户号订货日期order_datadata订货时间交货日期Han d datadata交货期限厂商号INDUSTTY_NC )CHAR10外码:依据厂商表中的厂商号是否存有MADEBOOLEANJ默认:false (没

16、有)是否已订ordersBOOLEANJ默认:false(未订)3. 3. 2 视图1、空闲厂商(厂商号,厂商名)从厂商基本表导出2、进销存统计(仓库号,进货车辆数,出货车辆数)从仓库基本表导出3、所有车辆销售信息(车型号,厂商号,车辆状态)从车辆和厂商基本表导出4、付款(车型号,厂商号,车辆名,价格)从车辆表、厂商表导出5、订单生成视图订单(订单号,客户号,订货日期,交货日期,地址,是否存有,是否已订)从订单表、客户表导出6、收益统计信息(车型号,出售车辆数,车辆总成本,获取总金额,利润)从车辆表、车辆销售表导出3.4 物理结构设计在物理结构设计阶段首先分两步走:(1) 确定数据库的物理结构

17、,在关系数据库中主要是指存取方法和存储结构。(2) 对物理结构的评价是时间和空间效率。选取正确的关系模式存取方法,常用的有:(1)存取索引方法。(2)聚簇存取。(3)HASH 存取方法等。4 运用设计4.1、程序源码与用户界面#include#include#include#include#include#include#define CAR-NO-LEN 50#define USE-AGE-SEX 5#define CAR-NAME-LEN 50#define DEPART-LEN 100#define CAR-PRICE-LEN 30#define STATUS_LEN 100int ma

18、in()/* Step 1 定义句柄和变量 */ 以 king 开头的表示的是连接 KingbaseES 的变量/ 以 server 开头的表示的是连接 SQLSERVER 变量SQLHENV kinghenv,serverhenv;/环境句柄SQLHDBC kinghdbc,serverhdbc;/连接句柄SQLHSTMT kinghstmt,serverhstmt;/语句句柄SQLRETURN ret;SQLCHAR cNameNAME-LEN,DepartDEPART-LEN,cNONO-LEN,cPricePRICE-LEN,StatusSTATUS-LEN;SQLINTEGER sS

19、ta,sSage;SQLINTEGER cbAge=0,cbSta=0,cbCno=SQL-NTS,cbPrice=SQL-NTS,cbName=SQL-NTS,cbDeopart=SQL-NTS;/*Step 2 初始化环境 */ret=SQLAllocHandle(SQL-HANDLE-ENV,SQL-NULL-HANDLE,&kinghenv);ret=SQLAllocHandle(SQL-HANDLE-ENV,SQL-NULL-HANDLE,&serverhenv);ret=SQLSetEnvAttr(Kinghenv,SQL-ATTR-ODBC-VERSION,(vo

20、id*)SQL-OV-ODBC3,0);ret=SQLSetEnvAttr(serverhenv,SQL-ATTR-ODBC-VERSION,(void*)SQL-OV-ODBC3,0);/*Step 3: 建立连接 */ret=SQLAllocHandle(SQL-HANDLE-DBC,kinghenv,&kinghdbc);ret=SQLAlloocHandle(SQL-HANDLE-DBC,serverhenv,&serverhdbc);ret=SQLConnect(kinghdbc,KingbaseESODBC,SQL-NTS,SYSTEM,SQL-NTS,MANAGE

21、R,SQL-NTS);if(! SQL-SUCCEEDED(ret) return -1; / 连接失败时返回错误值ret=SQLConnect(serverhdbc,SQLServer,SQL-NTS,sa,SQL-NTS,sa,SQL-NTS);if(! SQL-SUCCEEDED(ret) return -1; / 连接失败时返回错误值/* Step 4: 初始化语句句柄 */ret=SQLAllocHandle(SQL-HANDLE-STMT,kinghdbc,&kingstmt);ret=SQLSetStmtAttr(kingstmt,SQL-ATTR-ROW-BIND-BY

22、TE,(SQLPOINTER)SQL-BIND-BY-COLUMN,SQL-IS-INTEGER);ret=SQLAllocHandle(SQL-HANDLE-STMT,serverhdbc,&serverhstmt);/* Step 5: 两种方式执行语句 */* 预编译带有参数的语句 */ret=SQLPREPARE(serverhstmt,INSERT INTO STUDENT(CAR_NO,CAR_NAME ,DEPARTMENT_NAME,PRICE,STATUS )VALUES (?,?,?,?),SQL_NTS);if (ret=SQL_SUCCESS II ret=SQ

23、L_SUCCESS_WITH_INFO)ret=SQLBindParameter(serverhstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL-CHAR,CAR_NO_LEN,0,Car_NO,0,&cbCar_NO);ret=SQLBindParameter(serverhstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL-CHAR,CAR_NAME_LEN,0,CAR_name,0,&cbCAR_name);ret=SQLBindParameter(serverhstmt,3,SQL_PARAM_INPUT,SQL_C_C

24、HAR,SQL-CHAR,2,0,DEPARTMENT_name,0,&cbDEPARTMENT_name);ret=SQLBindParameter(serverhstmt,4,SQL_PARAM_INPUT,SQL_C_FLOAT,SQL-FlOAT,0,0,price,0,&cbprice);ret=SQLBindParameter(serverhstmt,5,SQL_PARAM_INPUT,SQL_C_BOOLEAN,SQL-BOOLEAN,0,Status,0,&cbStatus);/*查询车辆信息的执行 SQ 语句*/ret=SQLExecDirect(ki

25、nghstmt,SELECT * FROM 车辆 ,SQL_NTS);if (ret=SQL_SUCCESSIret=SQL_SUCCESS_WITH_INFO)ret=SQLBindCol(kingghstmt,1,SQL_C_CHAR,Car_NO,CAR_NO_LEN,&cbCar_NO);ret=SQLBindCol(kingghstmt,2,SQL_C_CHAR,CAR_name,CAR_NAME_LEN,cbCAR_name);ret=SQLBindCol(kingghstmt,3,SQL_C_CHAR,DEPARTMENT_name,&cbDEPARTMENT_n

26、ame);ret=SQLBindCol(kingghstmt,4,SQL_C_FLOAT,price,0,&cbprice);ret=SQLBindCol(kingghstmt,5,SQL_C_CHAR,Status,STATUS_LEN,&cbStatus);/* Step 6:两种方式的语句 */* 预编译客户基本表带有参数的语句 */ret=SQLPREPARE(serverhstmt,INSERT INTO STUDENT(C_NO,User_NAME,User_SEX,User_AGE,User_tel,unit) VALUES (?,?,?,?),SQL_NTS);

27、if (ret=SQL_SUCCESSIret=SQL_SUCCESS_WITH_INFO)ret=SQLBindParameter(serverhstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL-CHAR,C_NO_LEN,0,c_NO,0,&cbc_NO);ret=SQLBindParameter(serverhstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL-CHAR,User_NAME_LEN,0,User_name,0,&cbUser_name);ret=SQLBindParameter(serverhstmt,3,

28、SQL_PARAM_INPUT,SQL_C_CHAR,SQL-CHAR,2,0,User_sex,0,&cbUser_sex);ret=SQLBindParameter(serverhstmt,4,SQL_PARAM_INPUT,SQL_C_INT,SQL-INT,0,0,User_age,0,&cbUser_age);ret=SQLBindParameter(serverhstmt,5,SQL_PARAM_INPUT,SQL_C_INT,SQL-INT,User_tel_LEN,0,user_tel,0,&cbuser_tel);ret=SQLBindParamete

29、r(serverhstmt,6,SQL_PARAM_INPUT,SQL_C_CHAR,SQL-CHAR,unit_LEN,0,UNIT,0,&cbUNIT);/* 查询客户信息执行 SQ 语句*/ret=SQLExecDirect(kinghstmt,SELECT * FROM 客户 ,SQL_NTS);if (ret=SQL_SUCCESS II ret=SQL_SUCCESS_WITH_INFO)ret=SQLBindCol(kingghstmt,1,SQL_C_CHAR,sc_NO,C_NO_LEN,&cbc_NO);ret=SQLBindCol(kingghstmt,2

30、,SQL_C_CHAR,User_name,User_NAME_LEN,cbUser_name);ret=SQLBindCol(kingghstmt,3,SQL_C_CHAR,sUser_sex,&cbUser_sex);ret=SQLBindCol(kingghstmt,4,SQL_C_INT,sUser_age,User_AGE_LEN,&cbUser_age);ret=SQLBindCol(kingghstmt,5,SQL_C_INT,suser_tel,User_tel,&cbuser_tel);ret=SQLBindCol(kingghstmt,6,SQL_C

31、_CHAR,sUNIT,User_tel,&cbUNIT);/* Step 7:处理结果集并执行预编译后的语句 */while ( (ret=Fetch(kinghstmt) ) !=SQL_NO_DATA_FOUND)if(ret=SQL_ERROR) prinf(Fetch errorn);else ret=SQL_Execute(serverhstmt);/* Step 8 中止处理 */SQLFreeHandle(SQL_HANDLE_STMT,kinghstmt);SQLDisconnect(kinghdbc);SQLFreeHandle(SQL_HANDLE_DBC,kin

32、ghdbc);SQLFreeHandle(SQL_HANDLE_ENV,kinghenv);SQLFreeHandle(SQL_HANDLE_STMT,serverhstmt);SQLDisconnect(serverhdbc);SQLFreeHandle(SQL_HANDLE_DBC,serverhdbc);SQLFreeHandle(SQL_HANDLE_ENV,serverhenv);return 0;此次数据库的一些操作界面如下采购订单号 I 2008/5/4/001釆购日期| 08/5/9厂商编号 IdlOOOOlIdlOOOOl 3 3 厂商名称 I I 大连第二汽车制造厂联系人

33、I 注经理联系电话 113052468565 邮政编码213000通信地址 I 辽宁省大连第二汽车制楚厂车型代码|吉 A-C00024 二车辆类型陽军厂牌型号|红旗产 地|吉株省长春市第一汽车制造厂央购单价|280, 000?00 业务员 呼制 单 员|邹晴:保存|退岀|;操作员笞理在本对话框中,如果您是系统管理员,那么您可以为请选择操作员申泾江二 1 1本系统添加新用户以及修改它们的密码和操作权限。増删用户密码确认 1 1退出输入用户密码 I*I*;车番采购添加BI3B车辆销售管理添加|储改|删除|查询|打印|退出|诸售单号|客户编号 |客户名球|车型代码|穿糯类垂|厂牌璽号1 1产地404

34、/150001thOOOl长春市金达有限吉 A-C0002 轿车帕斯特上海大众04/150002kh0002长春市鑫诚有限 吉 A-C0002轿车帕斯椅上海大众04/150003kh0003吉林省公主岭市吉 A-C0002 轿车帕斯特上海大众04/150001kh0002长春市裁诚有限 吉 A-D0003 轿车一汽桑塔纳 长春市第一汽14/15C005kh0002长春市鑫诚有限 吉 A-C0102 轿车帕斯特上海大众04/150006khOOOl长春市金达有限 吉 A-C0002轿车帕斯特上海大众04/150007khOOOl长春市金达有限吉 A-C0002 轿车帕斯特上海大众吗丨1;库存车辅

35、4.2、数据库的运行和维护1. 数据库的转储和回复数据库的转储和回复是系统系统正式运行之后最重要的维护工作之一。2. 数据库的安全性,完整性的控制在数据库的运行过程中,由于应用环境的变化,对安全性的要求也会发生变化, 比如有的数据原来是机密的,现在可以是公开查询的了,而新加入的数据又可能机 密的了。3. 数据库性能的监督,分析和改造在数据库的运行过程中,监督系统运行,对检测数据进行分析,找出改进系 统性能的方法是入库单号|厂商编号|厂商名秣|车奎代码|车辆类聖|厂牌塞号j产地r04/150001jsOOOOb 江苏第二汽车制造厂吉 A-E0001 轿年一汽红旗长春市第一汽年|04/160005js00005 江苏第二汽车制造厂吉 A-E0001 轿车一汽红旗长春市第一汽年04/150009JS00005江苏第二汽车制造厂吉 A-E0001 轿车-汽红旗怅春市第一汽年05/140013sh00003 上海大众汽车厂吉 A-C0002 轿车帕斯特上海大众05/140014sh00003 上海大佥汽车厂吉 A-C0002 轿车帕斯将上海大众05/140015J100001大连第二汽车制造厂吉 A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论