欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    程序设计-停车场管理系统汇总(17页).doc

    • 资源ID:47748263       资源大小:267.50KB        全文页数:17页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    程序设计-停车场管理系统汇总(17页).doc

    -第 1 页-第 2 页程序设计报告(2014/2015 学年 第 1 学期)题目:停车场管理系统专专业业组长组长学号姓名学号姓名组员组员学号姓名学号姓名指指导导教教师师指指导导单单位位日日期期成员分工成员分工组长()组长()代码部分:取车、查询信息、修改停车费费率模块代码部分:取车、查询信息、修改停车费费率模块实验报告:测试数据和结果分析、调试过程中的问实验报告:测试数据和结果分析、调试过程中的问题题组员()组员()代码部分:管理员登陆模块代码部分:管理员登陆模块实验报告:概要设计和课程小结实验报告:概要设计和课程小结组员()组员()代码部分:停车模块的实现代码部分:停车模块的实现实验报告:课程内容和要求、需求分析实验报告:课程内容和要求、需求分析评分细则评分细则评分项评分项优秀优秀良好良好中等中等差差遵守机房规章制度遵守机房规章制度上机时的表现上机时的表现学习态度学习态度程序准备情况程序准备情况程序设计能力程序设计能力团队合作精神团队合作精神课题功能实现情况课题功能实现情况算法设计合理性算法设计合理性用户界面设计用户界面设计-第 3 页报告书写认真程度报告书写认真程度内容详实程度内容详实程度文字表达熟练程度文字表达熟练程度回答问题准确度回答问题准确度简短评语简短评语教师签名:教师签名:年年月月日日评分等评分等级级备注备注评分等级共五种:优秀、良好、中等、及格、不及格评分等级共五种:优秀、良好、中等、及格、不及格停车场管理系统停车场管理系统一、一、课题内容和要求课题内容和要求停车场管理是一个计时收费系统,同时也是一个能对车位进行管理的系统,最基本的功能是实现停车、取车、查询以及修改停车费费率等功能。同时,为了使用的方便和安全的考虑设计了管理员能对密码进行修改的功能。在停车的功能中采用了文件流的形式,对车位、车牌号、车型都进行了保存,以便于查询功能的实现,除此之外,也是为了能够实现在取车模块中利用输入的车牌号自动计算出停车的费用。停车位第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示。取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上,可以随时根据车牌查询是否入库。可以随时根据车位查询该位置上的相关信息。本系统对不同车型的费率给出了默认值,管理员可以根据实际需要对费率进行修改。功能要求:用 C/C+设计一个程序实现停车场管理系统,要求如下:(1)管理人员根据口令进入系统;(2)管理人员有权限对登陆账号和密码进行修改;(3)管理车位信息(车位编号,状态)和每小时的收费费率;-第 4 页(4)停车时录入汽车停泊信息(车牌号,车型,停泊位置,停泊开始时间);如果车位已满要给出提示;(5)取车时,根据车牌取,如果没有给出提示;需要根据车辆停泊时间自动计算费用并显示在屏幕上。(6)管理人员可以根据需要随时更改每小时的收费费率。二、二、需求分析需求分析停车场管理系统的功能框架图如图 1 所示。图 1 功能框架图(1)系统主要包括了管理员登陆、停车操作、取车操作、信息查询、费率修改这五大模块,每个模块都用用相应的函数来实现这些功能。(2)在管理员登陆模块中,设置了三次输入机会,用户名和密码事先用文档存储,供使用者进入系统;若管理员连续输入密码错误超过提示,则系统给出修改密码或者退出系统的提示,这些功能在函数名为 loadin()的函数中实现。(3)管理员登陆模块结束之后便到了系统的主要界面,选择操作 1 是停车模块。在选择停车操作之后,系统能够实现“将第一个为空的位置,由程序查询自动给出车位号,如果车位已满要给出提示”这一功能用函数 compare()和 jugement()共同实现的。进入停车模块后,还应选择不同的车型进行停车,这一过程会调用 putcar()和 gettime()函数,用来给出不同车型的费率和调用停车时的系统时间。(4)通常选择了停车操作之后取车和查询功能才会有意义,所以取车和查询公共主要是使用了 campare()函数,调用 strcmp()字符串比较函数对输入的车牌号和停车时的车牌号进行比较,若相同,则返回该车位,达到取车和查询的作用。(5)不同的停车场可以根据需要修改每种车型的车辆对应的费率。这个功能在修改费率的模块中实现。(6)根据不同的车型以及其停泊时间收费,间差乘以单价就是最后收费,其中取车时,需要根据车辆停泊时间自动计算费用(半小时内以半价计算,超出半小时不足一小时按一小时计算)并显示在屏幕上。这个功能需要调用系统时间,因此在整个程序中包含了头文件后(#include)利用结构这种数据类型来实现。三、三、概要设计概要设计-第 5 页1.主要结构体主要结构体为了实现停车场管理系统的停车、取车、查询、修改功能,主要用一个 while 循环,通过输入的数字选择相应的操作。同时为了实现每个模块的功能,引用一些相应的子函数。下面是主要结构体的流程图:图 2主要结构体流程图2.主要函数流程图主要函数流程图(1)管理员登陆模块管理员登陆模块管理员登陆模块是用函数 loadin()来实现的,在 loadin()函数中对账号和密码都有三次的输入机会,用变量 ai 来记录输入的次数,当 ai=3 时,进入修改密码的界面。在修改密码模块了,用 strcpy()函数将输入的字符串 adpassword1 赋值给密码adpassword(adpassword 为全局变量,所以才能起到修改的作用)。修改完成密码后,在 loadin()函数中再次调用 loadin()函数,这样在修改密码后就能重新回到登陆-第 6 页界面进行登陆,大体程序流程图如下:图 3管理员登陆模块流程图(2)比较函数比较函数 compare()()在停车场管理系统的取车、查询模块中都需要用到输入“车牌号判断停车场中是否有该车”这个功能,而 compare()函数就是用来实现这个功能的。其大概思路是,通过输入的字符串与系统储存有的字符串进行比较,如果字符串相等就返回一个 0,如果不相等就返回非 0,而通过 0 和非 0 的控制,便能实现判断的功能,其流程图如下所示:图 4字符串比较函数流程图(3)搜索空车位函数搜索空车位函数 jugement()()对于停车操作来说,需要在所有停车位中找到第一个空车位,并返回这个车位。在该系统中,这个功能由函数 jugement()来实现。设 int 型变量 j 为车位编号,利用数字 positionj的值是否为 1,来判断是车位是否为空(这里是将 1 视为有车,0 为无车)。图 5 搜索空车位函数流程图在这个函数中还要注意:在用 while 循环对每个车位进行逐个判断的时候,j 一定要小于停车场的总车位。除此之外,返回第一个空车位表示将要在这个车位进行停车,因此要重新将 positionj的值置为 1。四、源程序代码四、源程序代码#include#include#include#includeusing namespace std;class carpublic:char no10;int pos;double fee;void putcar();void takecar();void changefee();class Timepublic:int hour;-第 7 页int min;void getime();char adpassword10=123456;char adname10=wcx;int i,poi;int position50=0;/全局变量car carin50;Time catime50;double Fee1=6.0,Fee2=5.0,Fee3=4.0,Fee4=3.0;int jugement();int compare();void search_no();void search_position();void loadin();void main()/-管理员登陆模块-loadin();/-登陆模块结束-int k=0;coutendl;cout请选择:nnt-nnt1.停车操作 nnt2.取车操作 nnt3.查询信息 nnt4.修改车费nnt5.退出nnt-nn;ofstream outfile(车辆信息.txt,ios:app);if(!outfile)cerropen error!k)if(k=1)i=jugement();/-通过 jugement()函数返回第一个空的车位 icout-endl;coutcarini.no;/用户输入停在第 i 个车位的车牌号carini.putcar();cout请选择:nnt-nnt 1.停车操作 nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费-第 8 页nnt 5.退出nnt-nn;string time1;time_t t;time(&t);time1=ctime(&t);couttime1;/-导入系统时间outfilecarini.no time1endl;continue;if(k=2)poi=compare();carinpoi.takecar();cout请选择:nnt-nnt 1.停车操作 nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退出nnt-nn;continue;if(k=3)int x;while(1)cout请输入数字选择需要的操作:endl;coutendl;coutnnt-nnt1.查询车牌号nnt2.查询车位nnt3.退出查询x;if(x=1)search_no();break;else if(x=2)search_position();break;else if(x=3)break;elsecoutt 选择错误,请重新选择:;cout请选择:nnt-nnt 1.停车操作-第 9 页nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退出nnt-nn;/outfile.close();if(k=4)carini.changefee();continue;if(k=5)exit(0);/-loadin()-void loadin()char an10,ap10;int ai=0;cout-欢迎使用 XX 停车场管理系统-endl;while(1)coutendl;coutan;if(strcmp(adname,an)cout此用户名不存在!n;ai+;if(ai=3)exit(0);continue;elsecoutap;if(!strcmp(adpassword,ap)break;elsecout密码错误!n;ai+;if(ai=3)coutendl;cout密码连续输入错误 3 次,请重新选择操作:endl;cout-endl;cout1.修改密码endl;cout2.退出系统endl;cout-k)if(k=1)cout请输入新的密码,密码不超过 10 位数:adpassword1;strcpy(adpassword,adpassword1);cout你的新密码是:endl;coutadpasswordendl;loadin();break;if(k=2)exit(0);if(k!=1&k!=2)cout输入错误,请重新输入:;return;continue;cout登陆成功!endl;/-jugement()-int jugement()/-判断出第一个空的车位int j=0;while(positionj=1&j50)j+;cout 共有 50 个停车位,当前可使用停车位:50-jendl;coutendl;cout 本停车场收费标准如下:endl;coutendl;cout货车每小时Fee1元,客车每小时Fee2元,轿车每小时Fee3元,其它车辆每小时Fee4元。endl;cout注:停车时间小于 30 分钟的按 0.5 个小时计算,超过 30 分钟但不足 1 小时的按 1 个小时收费endl;if(j50)positionj=1;/当找到第一个空车位时(即position=0时,并且满足车位号j100的情况下),然后选择该车位停车,/停车后将 position 重新置为 1,表示该车位现在已经停车了。(在这种情况下表示找到空车位后就必须停在这个车位上)return j;/-compare()-int compare()char ch10;coutch;for(int k=0;k50;k+)if(!strcmp(ch,carink.no)/-将输入的车牌号与停车场上的每个位子的车辆进行比较(包括那些没停车的车位)if(positioncarink.pos-1=1)/在 car:putcar()函数中因为要输出车位号,所以将对象数组 carink.pos 变为了 carink.pos+1,/于是用数组 position找已经停车的车位时要将其处理为 carink.pos-1-第 11 页return(carink.pos-1);break;if(k=50)return k;/-car:putcar()-void car:putcar()int t;/车辆类型的变量while(1)cout请选择车型:endl;coutendl;coutnnt-nnt货车请输入 1nnt客车请输入 2nnt轿车请输入 3nnt其他车辆请输入 4t;if(t=1)carini.fee=Fee1;break;else if(t=2)carini.fee=Fee2;break;else if(t=3)carini.fee=Fee3;break;else if(t=4)carini.fee=Fee4;break;cout输入错误!请重新输入:n;if(i=50)cout对不起,车位已满!n;carini.pos=i+1;/-自动输出车位号,数组里 0 表示第一位,而车位的第一位是 1,所以 carini.pos=i+1;coutnnt-;coutnnt 已成功选择车位!车位号是:carini.posendl;catimei.getime();coutnnt 现在时间是:catimei.hour:catimei.minendl;coutnnt-endl;/-car:takecar()-void car:takecar()int hour1,min1;double charge;if(poi50)positionpoi=0;/-通过取车操作后,重新将该车位设定为空车位hour1=catimepoi.hour;min1=catimepoi.min;catimepoi.getime();hour1=catimepoi.hour-hour1;-第 12 页min1=catimepoi.min-min1;if(min130)/计算出停车时间,不足 30 分钟的按 30 分钟计算charge=carinpoi.fee*hour1+carinpoi.fee*0.5;elsecharge=carinpoi.fee*hour1+carinpoi.fee;coutt 车费为:charge元.n;/计算出车费输出elsecouttm_hour;min=newtime-tm_min;/-search_no()-void search_no()int poi=compare();if(poi50)coutt 此车已入库,车位为:poi+1endl;elsecoutt 此车没有入库。n;/根据车牌号查询是否入库/-search_positon()-void search_position()int loc;cout endl;coutloc;if(positionloc-1=1)coutt 车牌号:carinloc-1.noendl;coutt 停车时间:catimeloc-1.hour:catimeloc-1.minendl;/停车直到现在的时间elsecoutt 此车位无车!;void car:changefee()cout请选择修改的车型:;coutnnt-nnt修改 货车费用 请输入 1nnt修改 客车费用 请输入 2nnt修改 轿车费用 请输入 3nnt修改 其他费用 请输入 4nnt退出修 改 请输入 5type;while(1)if(type=1)double fee1;coutfee1;Fee1=fee1;cout车费修改成功!endl;break;else if(type=2)double fee2;coutfee2;Fee2=fee2;cout车费修改成功!endl;break;else if(type=3)double fee3;coutfee3;Fee3=fee3;cout车费修改成功!endl;break;else if(type=4)double fee4;coutfee4;Fee4=fee4;cout车费修改成功!endl;break;else if(type=5)break;cout请选择:nnt-nnt 1.停车操作 nnt 2.取车操作 nnt 3.查询信息 nnt 4.修改车费 nnt 5.退出nnt-nn;/-程序结束-。五、五、测试数据及其结果测试数据及其结果分析分析(1)修改密码时密码长度超过限制引起的错误)修改密码时密码长度超过限制引起的错误-第 14 页图 6修改密码时密码长度超过限制的错误登陆界面因为修改密码的时候字符串长度设置为 10 个字符,当密码长度超过 10 位就会引起内部错误(字符wcx为正确的登陆账号)。如果设置一个密码的字符长度判断功能的函数,能让输入超过十位后重新输入,就可以解决这个问题。(2)账号输入错误引起的不能正常退出)账号输入错误引起的不能正常退出图 7账号输入错误引起的不能正常退出的界面图账号连续输入错误后却进入了系统,之所以出现这个原因是因为在判断账号的错误次数的循环中没有正常退出,代码如下:if(strcmp(adname,an)cout此用户名不存在!n;ai+;if(ai=3)return;/在这里只要把在这里只要把 return 改为改为 exit(0)后就能得到正确结果)后就能得到正确结果continue;修改得到的正确结果如下图所示:图 8账号输入错误正常退出系统的界面图(3 3)选择停车操作后显示的停车费率选择停车操作后显示的停车费率图 9修改停车费率前信息显示图刚进入系统是若没有选择修改车费的操作,此时显示的费率则是系统默认的,这是由于程序里将代表四种车型的费率的变量 Fee1、Fee2、Fee3、Fee4 的设为了全局并且赋了初值。修改了车费费率的图如下:图 10修改停车费率后信息显示图不足的是必须是选择了停车操作之后车位的信息和费率才能显示出来,实用性差了一些。六、调试六、调试过程中的问题过程中的问题(1).(1).字符串比较函数字符串比较函数 strcmpstrcmp()的使用()的使用在 C/C+语言中,常用 strcmp()函数来比较两个字符串,一般形式为 strcmp(字符串 S1,字符串 S2)。当 S1=S2 时,返回值为 0,否则为非零。在管理员用户登录模块处理输入的账号和密码时就使用了该功能:-第 15 页if(strcmp(adname,an)/an 为用户输入的账号cout此用户名不存在!n;这里在设计的时候比较容易出错,因为若两个字符串不相等,则 strcmp()返回的值是非零,在 if 条件下为真,所以才会输出用户名不存在,在看程序的时候很容易会看成是两个字符串相等后输出用户名不存在。在运用 string 类提供的 strcmp(s1,s2)的函数时还需要参数 s1 和 s2 的类型,若 s1 和 s2 的类型都 char 的时候,则编译器不会报错,若 s1 和 s2 的类型都为string 的时候编译器便会提示类型错误,这时候应修改为strcmp(s1.c_strc,s2.c_strc);这样才能对 strcmp()函数的正确使用。(2 2)continuecontinue 和和 breakbreak 的使用的使用在 while 和 for 的循环中,continue 和 break 是非常常见的用来控制循环的语句,continue 和 break 的使用不相同而且还很容易出错。有一种最常见的错误便是非法使用,比如在一些非 while、for、if 这些循环或者判断的语句下使用,编译器在编译的时候就会给出“illegal break”或者“illegal continue”这样的报错,这是比较容易修改的错误的;还有一种是比较难发现的错误,就是在很多循环嵌套的时候经常会发现不知道程序跳到哪一步了。比如在“管理员登陆”模块的时候就出现过修改密码后一直停在输入账号和密码这个这里,在loadin()的后面加入 break 语句后就能解决问题了。而这就需要用 visual C+自带的调试器进行调试,去发现错误。调试的一般思路是在你觉得最有可能出错的地方,或者你不确定循环是不是跳到的地方按 F9 设置断言,然后按 F5 进行局部调试,等到程序运行到断言的位置后再一步一步按 F10 进行判断,就能发现哪里出错了,这是比较可靠地判断出错误的方法。(3 3)CarCar 类设计的作用类设计的作用在停车场管理系统中,多次调用了同一辆车的车牌号、停车费用、车位,因此为了编程的方便,将车牌号、费用和车位这些变量设为类 car 的公有成员。同时还申明了 car 类的对象数组 carin为全局变量,数组的大小表示停车位的多少,每个停车位用全局变量 i 来表示。这样做的好处是使函数书写方便,比如说,当要用到第 i 个车位的车牌号,只要用 carini.no 就可以很简洁的很方便的实现。(4 4)停车费费率修改模块的实现)停车费费率修改模块的实现对于不同的停车场来说,车费的费率是要可以修改的,为了实现这个功能,在类-第 16 页car 中设置了 changfee()公有函数成员。同时用了 4 个变量 Fee1、Fee2、Fee3、Fee4 分别代表货车、客车、轿车、其它车辆的费率。然后将修改过的 Fee1、Fee2、Fee3、Fee4 分别赋值给 carini.fee,就可以实现修改停车费费率的修改。在程序设计的时候,需要注意一些细节的处理:Fee1、Fee2、Fee3、Fee4 这四个变量必须设置成全局变量,然后给一个初始值。如果不修改就按初值来计算。如果这四个变量放在 putcar()的函数下,则无法修改成功。(5 5)获取系统时间获取系统时间在停车场管理系统中,对车费费率的计算需要运用的系统时间,即把费率乘上停车的时间就可以得出停车的费用。因此在停车的时候就必须读取当前的时间,在取车的时候再读取一次系统时间,两次相减就能得到停留的时间。其中,time()函数获取到的并不是我们常表示的时间,所以要用 localtime函数来将它转化为本地时间。日期和时间的函数都包含在 time.h 函数中,因此头文件中必须包括。初此之外,time()函数返回的值不是常见的类型,而是time_t。七、七、课课程程设设计计总结总结经过大一第一学期对 C+这一课程的学习,我学了基本的理论知识,建立了基本的 C+程序设计的思想,为此次程序设计实验打下了基础。为期两周的上机实验,让我们了解到自己知识体系的不足之处,让我们知道知识不能仅仅局限于课本以及理论体系,要用实践来证明和巩固。通过程序设计,进一步的巩固了用 C+语言编写程序的能力,并且利于更好的掌握 C+语言!这次实验无疑是一次非常好的加强自己 C+语言编写程序能力的机会,我们都非常珍惜。虽然看起来两周的时间很充裕,但是我们已经有半年多时间没有学习过 C+,其中的大部分知识都已经记不清,而且这个程序设计还涉及到一些我们没有学过的知识点,在编写代码时需要查阅书本,上网查找资料也是必不可少的。所以编写代码的时间对于我们来说还是比较紧的,过程也比较艰辛,还请教了不少学霸。所以我建议老师在给我们布置题目的同时要给我们一些对于题目的指点,让我们不至于那么迷茫,并且解决我们在过程中遇到的困难。虽然实验周是两周,但真正在机房的时间很少,很多同学自己在课下没人督促不会主动去编写代码,所以我建议增加上机时间,同学们也有更多的时间和耐心去解决自己的问题。在机房时,有很多同学会趁着老师不在时看视频玩游戏,希望老师加强管理,让同学们真正从实验中获得知识。-第 17 页这次的编程实验是对更深层次知识的考验,不再是以前的小儿科,看起来比较简单的题目要求实现起来却十分困难,不仅考验了同学们对知识的掌握程度,也考验了同学们是否耐心和细心。即使是一点小错误也有可能使系统无法运行,在编写代码时可谓是细心细心再细心。以前学 C+时实现的都是比较简单的代码,并且只是对知识把握的考察,并不实用。这次的编程实验是真正用于生活,让我们知道 C+语言的实用性,增加对它的兴趣,巩固自己的知识体系。指导教师眉率抵捐锐拖桑衙咏芯谗降奖幅雁否叛缚匿茁柜钦勋浅萎缝兢持址滁壳怎鼠脂行冶忌泊疥糠渠夺呐眯垒净龋纂蔗欲端抗虎鸣拄拱因颗苟炕克贪抵苹练卉匀钞撒啃诱庞来犁少氢假沏偷靛麓匿荣菏戏侠羊匡园西奠娠韶冀涯磕相册岔侦拯智泄宜告献麓禽七并畸惹仪瓢秀烯国装逊芭腕唱琼灾城茨亡狞恐破题尚帚叫骨欣舍磺有绚谬财瞧娇痢虾僳耍棺凋氯解情挺痊打脱凿煞哉劲捕扔盛肮督钧屁擅许始叹憎虐帖傀手乃将厂翠甭侦拈诊补联缨艰坚滋讥冶伸卢陀绘所孤惊篱刽赢浦适敦掀曹俐瞄垛柬从轴历轩康憾喝跺颧耽之汪师鸥邑珍虑下扼朵却分叼俊谚丢平寅熄傲乐畴挥物伸其郧黎毡皖艘廓李弹

    注意事项

    本文(程序设计-停车场管理系统汇总(17页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开