毕业设计-数据结构a类停车场管理系统.doc
《毕业设计-数据结构a类停车场管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计-数据结构a类停车场管理系统.doc(46页珍藏版)》请在咨信网上搜索。
东北大学信息科学与工程学院 数据结构课程设计报告 题目 立体化停车场管理 课题组长 张晓峰 课题组成员 曹乔家 王子骄 专业名称 计算机科学与技术 班级 计1307 指导教师 杨雷 2015 年 1月 课程设计任务书 题目: 立体化停车场管理 问题描述: 设停车场有地上和地下两层,统一管理。地下停车场采用单入口和单出口。地上停车场采用南北方向的双口,每个口都有一个入口和出口。停车顺序先地上,后地下。地上入口处各有一个单车道的等候通道,并允许等候的车辆因急事从等候通道直接开走。 设计要求: 设计停车场模拟管理程序。 (1)采用栈、队列和有序表等数据结构。 (2)等候车辆的管理。 (3)地下、地上停车位的管理。 (4)停车计费功能。 (5)其它完善性功能。 指导教师签字: 年 月 日 目录 1 课题概述 1 1.1 课题任务 1 1.2 课题原理 1 1.3 相关知识 1 2 需求分析 1 2.1 课题调研 1 2.2 用户需求分析 1 3 方案设计 2 3.1 总体功能设计 2 3.2 数据结构设计 2 3.3 函数原型设计 3 3.4 主算法设计 4 3.5 用户界面设计 4 4 方案实现 4 4.1 开发环境与工具 4 4.2 程序设计关键技术 4 4.3 个人设计实现 4 4.3.1 张晓峰设计实现 4 4.3.2 曹乔家设计实现 11 4.3.3 王子骄设计实现 15 5 测试与调试 19 5.1 个人测试 19 5.1.1 张晓峰测试 19 5.1.2 曹乔家测试 20 5.1.3 王子骄测试 21 5.2 组装与系统测试 21 5.3 系统运行 22 6 课题总结 24 6.1 课题评价 24 6.2 团队协作 25 6.3 团队协作 25 6.4 个人设计小结 25 6.4.1张晓峰设计小结 25 6.4.2 曹乔家设计小结 25 6.4.3 王子骄设计小结 25 7 附录A 课题任务分工 26 A-1 课题程序设计分工 26 A-2 课题报告分工 27 附录B 课题设计文档(光盘) 28 B-1课程设计报告(电子版) 28 B-2源程序代码(*.H,*.CPP) 28 B-3工程与可执行文件) 28 B-4屏幕演示录像文件(可选) 28 附录C 用户操作手册(可选) 28 C.1 运行环境说明 28 C.2 操作说明 28 1 课题概述 1.1 课题任务 【问题描述】 设停车场有地上和地下两层,统一管理。地下停车场采用单入口和单出口。地上停车场采用南北方向的双口,每个口都有一个入口和出口。停车顺序先地上,后地下。地上入口处各有一个单车道的等候通道,并允许等候的车辆因急事从等待通道直接开走。 【设计要求】 设计停车场模拟管理程序。 (1)采用栈、队列和有序表等数据结构。 (2)等候车辆的管理。 (3)地下、地上停车位的管理。 (4)停车计费功能。 (5)其它完善性功能。 1.2 课题原理 本程序主要运用栈来模拟停车场,建立上下两个栈来模拟上下停车场,一列表模拟车场便道,按照从终端输入的数据序列进行模拟管理,把停车的车位信息保存在新建的链表中,每组输入的数据保存车牌号,自动生成车位号和车辆到达时间保存在链表中,对每一组的数据输出信息,包括车辆到达时间,离开时间,及停车费用,用队列保存便车道停靠的车辆,以及车辆的登记和离开,最后的栈是以顺序栈结构实现,队列和链表以链式结构实现。 1.3 相关知识 本实验主要运用链表、栈、队列等数据结构,运用C语言中的指针、数组字符串等相关知识。 2 需求分析 2.1 课题调研 通过在网上对各个停车场的调查,我们查到停车场有车辆的入场登记,车辆的离开及费用,还有就是车辆的信息保存,每个车辆有车牌号,到达和离开时间及停车费用等等。 2.2 用户需求分析 本程序采用简单的界面,使使用者可以简单可了解软件的使用,界面简单、大方。链表保存的车位信息,只需输入车牌号,其他车位信息自动由系统生成, 可以免去使用的其他操作,为使用者省事,省力。同时本软件的使用达到人性化,方便化,便于使用者的使用。 3 方案设计 3.1 总体功能设计 本软件要实现对进入停车场的车辆登记功能,车辆离开的收费功能,以及车辆进入便车道的等待及从便车道,还有对车辆信息的查询和对车场进入和离开车辆的统计。 3.2 数据结构设计 (1)时间的结构体 struct now_time{ int mday; int hour; int min; } (2)车位信息的结构体 struct information { int setnumber; char num[10]; struct now_time reach; struct now_time leave; }set[MAX*2] (3)便车道队列 typedef struct { char *base; int front; int rear; }SqQueue (4)停车场的栈 typedef struct { int *base; int *top; int stacksize; }SqStack (5)车位信息的链表 typedef struct LNode { struct { int stnumber; char num[10]; struct now_time reach; struct now_time leave; float fee; int totalhour; }data; struct LNode *next; }LNode,*LinkList 3.3 函数原型设计 ()void CreateList_L(LinkList &L) 建立车辆信息链表 ()Status initStack1(SqStack &S) 建立地上停车场的栈 ()Status initStack2(SqStack &S) 建立地下停车场的栈 ()Status Push(SqStack &S,int e) 车辆入栈即出场 ()Status Pop(SqStack &S,int &e) 车辆出栈即入场 ()Status initQueue(SqQueue &Q) 建立便车道的队列 ()Status QueueLength(SqQueue Q) 计算便车道的车辆数量 ()Status stack_empty(SqStack S) 判断停车场是否车满 ()void enterstop( LinkList clist,SqStack &S,char number[10],int *come,int i) 车辆进入停车场 ()Status leavestop(LinkList llist,LinkList clist,SqStack &S,SqQueue &Q,int *come,int*leave,int i) 车辆离开停车场 ()void ccord(LinkList clist,int i,int setnumber) 信息登记 ()Status ListInsert_Link(LinkList &L,int i,int setnumber) 保存车辆到来的信息 ()void copy(char *a,char *b) 进行车位号的比对 ()Status lListInsert_Link(LinkList &llist,int i,int lset,int totalhour,float fee,int day,int hour,int min) 保存车辆离开的信息 ()void showcome(LinkList list) 显示车辆到来时间 ()void showleave(LinkList list) 显示车辆离开时间 3.4 主算法设计 程序运行时,当车辆入场时,车辆信息保存在链表里,并出栈来表示进入一辆车,其车位和时间自动生成,当汽车离场时,输入车位信息,显示时间,费用。并把车辆离开时间等保存在离开的链表里,然后通过车位信息的输入,即出场和离场链表表示输出。 3.5 用户界面设计 主界面分别有车辆登记,车辆离场,车场信息,退出系统四个功能,进入车辆登记窗口输入车牌号,自动生成车位信息显示。车辆离场窗口进入输入车场及 车位信息,即弹出车位信息及停车费用。车位信息即显示地上下停车场进出车辆的车辆信息,包括到达时间、离开时间、车位号、车牌号、停车费用等。退出系统即退出本软件。 4 方案实现 4.1 开发环境与工具 本程序在window7下实现和运行,并使用Visual C++6.0编译的。 4.2 程序设计关键技术 本程序主要用栈来保存车位车位的信息,当车场为空时,栈此时是满的,而当车场满时,栈是空的。所以当车辆入场时是出栈,而车辆进场时时出栈。此外就是车辆信息的保存在链表里。因为是地上下两个停车场,故我们采用两个栈和两个链表来保存其对应的信息,我们还采用了系统时间,减少了使用者的输入。 4.3 个人设计实现 4.3.1 张晓峰设计实现 设计时间车位两个结构体,以及时间函数。主函数的设计。保存车辆到达与离开信息(利用链表) (1)时间与车位信息的结构体源程序: struct now_time { int mday; int hour; int min; }; struct information { int setnumber; char num[10]; struct now_time reach; struct now_time leave; }set[MAX*2]; (2)保存车辆到来信息源程序: 车辆信息,包括车牌号,到达时间。储存在链表中,后续查询车场信息中利用此函数。 Status ListInsert_Link(LinkList &L,int i,int setnumber) { LNode *p,*s; int j; p=L; j=0; while(p&&j<i-1) { p=p->next; ++j; } if(!p||j>i-1) return ERROR; s=(LinkList)malloc(sizeof(LNode)); s->data.stnumber=set[setnumber].setnumber; s->data.reach.hour=set[setnumber].reach.hour; s->data.reach.mday=set[setnumber].reach.mday; s->data.reach.min=set[setnumber].reach.min; copy(s->data.num,set[setnumber].num); s->next=p->next; p->next=s; return OK; } (3)保存车辆离开 离开时,记录离开时间,算出总时间,为后续计算费用做铺垫。同样将信息储存在链表中,在离开停车场函数中利用该函数。 Status lListInsert_Link(LinkList &llist,int i,int lset,int totalhour,float fee,int day,int hour,int min) { LNode *p,*s; int j; p=llist; j=0; while(p&&j<i-1) { p=p->next; ++j; } if(!p||j>i-1) return ERROR; s=(LinkList)malloc(sizeof(LNode)); s->data.fee=fee; s->data.totalhour=totalhour; s->data.stnumber=lset; s->data.leave.mday=day; s->data.leave.hour=hour; s->data.leave.min=min; copy(s->data.num,set[lset].num); s->next=p->next; p->next=s; return OK; } (4)时间函数源代码: 采用系统时间,日小时分钟格式。分为入场时间和出场时间。 void showcome(LinkList list) { LNode *p; p=list->next; while(p) { printf("\n %s\t%d号\t%d日%d时%d分",p->data.num,p->data.stnumber,p->data.reach.mday,p->data.reach.hour,p->data.reach.min); p=p->next; } } void showleave(LinkList list) { LNode *p; p=list->next; while(p) { printf("\n %s\t%d号\t%d日%d时%d分",p->data.num,p->data.stnumber,p->data.leave.mday,p->data.leave.hour,p->data.leave.min); p=p->next; } } (5)主函数: 本程序的关键所在。对所有函数进行调用,并实现界面的显示。登记,离开,查询,退出四个部分。主菜单的建立,界面设计等。 void main() { int choice1,choice2,choice3,wait,ture=1; int i; int come1=0; int leave2=0; int come3=0; int leave4=0; int *p1,*p2,*p3,*p4; p1=&come1; p2=&leave2; p3=&come3; p4=&leave4; char number[10]; SqStack stack_set1; SqStack stack_set2; SqQueue queue_turn; initStack1(stack_set1); initStack2(stack_set2); initQueue(queue_turn); LinkList llist1,llist2,clist1,clist2; CreateList_L(llist1); CreateList_L(clist1); CreateList_L(llist2); CreateList_L(clist2); for(i=1;i<=MAX+1;i++) { set[i].setnumber=i; set[i].num[1]='#'; } system("color 3B"); printf("\n\n\n\n\n\n\n\n\n*******************欢迎使用停车场管理系统,按任意键进入主菜单******************"); do { getchar(); system("cls"); printf(" 欢迎使用停车场管理系统\n\n\n"); printf(" 主菜单\n\n"); printf(" *1* 汽车登记\n"); printf(" *2* 汽车离场\n"); printf(" *3* 车场信息\n"); printf(" *0* 退出系统\n\n"); printf("***请按提示输入:\n"); scanf("%d",&choice1); switch(choice1) { case 1: system("cls"); printf(" ***********************汽车登记******************\n\n\n"); if(!stack_empty(stack_set1))//进入停车场 { printf("\n *请输入您的车牌号(例:辽A3475):"); scanf("%s",number); enterstop(clist1,stack_set1,number,p1,1); } else if(!stack_empty(stack_set2)) { printf("\n *请输入您的车牌号(例:辽A3475):"); scanf("%s",number); enterstop(clist2,stack_set2,number,p3,2); } else//进入便车道等待 { wait=w_total(queue_turn); printf("******您好,当前停车场已满,有%d在等待!*****\n 您是否愿意进入便车道等待:\n",wait); printf(" *1*:愿意等待!\t\t*2*:不愿意等待\n"); while(ture==1) { scanf("%d",&choice3); getchar(); switch(choice3) { case 1: enterlane(queue_turn,wait);//汽车进入便车道 printf("***您好,请进入便车道等待***!"); ture=0; break; case 2: printf("\n***汽车离开!"); ture=0; break; default: printf("\n***您好,输入错误,请重新输入!"); } } ture=1; } break; case 2: system("cls"); printf("***********************汽车离场******************\n\n\n"); printf(" *1* 地上车场\n"); printf(" *2* 地下车场\n"); scanf("%d",&choice2); switch(choice2) { case 1: printf(" ****************地上停车场******************\n "); leavestop(llist1,clist1,stack_set1,queue_turn,p1,p2,1); break; case 2: printf(" *****************地下停车场*****************\n "); leavestop(llist2,clist2,stack_set2,queue_turn,p3,p4,2); break; default: printf("***您输入的有误,请重新输入:"); } break; case 3:/*今天信息的显示*/ system("cls"); printf(" ***********************车场信息******************\n\n"); if((come1+come3)==0) printf("**********无车辆到达!\n"); else { printf("**********到达%d辆车:",come1+come3); printf ("\n**汽车信息*车牌号*\t*车位号*\t*到达时间*\t"); printf ("\n*地上车场*\t"); showcome(clist1); printf ("\n*地下车场*\t"); showcome(clist2); printf("\n"); } if((leave2+leave4)==0) printf("**********无车辆离开!\n"); else { printf("**********离开%d辆车:",leave2+leave4); printf ("\n**汽车信息: **车牌号**\t**车位号**\t**到达时间**\t"); printf ("\n**地上车场:\t"); showleave(llist1); printf ("\n**地下车场:\t"); showleave(llist2); } break; case 0: system("cls"); printf(" ***************退出停车系统!******************\n"); break; default : printf("***您输入的有误,请重新输入:"); } getchar(); } while(choice1!=0); } 4.3.2 曹乔家设计实现 设计进入停车场和离开停车场函数,结合之前栈,链表,队列以及数组。 (1)进入停车场源代码: void enterstop( LinkList clist,SqStack &S,char number[10],int *come,int i) { int e; *come=*come+1; Pop(S,e); set[e].setnumber=e; copy(set[e].num,number); struct tm *newtime; char am_pm[] = "AM"; time_t long_time; time( &long_time ); newtime = localtime( &long_time ); set[e].reach.hour=newtime->tm_hour; set[e].reach.mday=newtime->tm_mday; set[e].reach.min=newtime->tm_min; printf("\n\n ************请核对您的停车信息***************\n"); printf(" *停车牌号*: %s\n",set[e].num); if(i==1) printf(" *地上车场*: %d\n",set[e].setnumber); if(i==2) printf(" *地下车场*: %d\n",set[e].setnumber); printf(" *到达时间*: %d:%d:%d\n", set[e].reach.mday,set[e].reach.hour,set[e].reach.min); ccord(clist,*come,set[e].setnumber); } 利用出栈函数来表示车辆进入停车场,等同于车位出停车场。利用set数组,存储进入车场的车辆信息。包括进入时间,车号等。时间函数的时候,显示到达时间,并按先下后上的顺序,选择上下两个停车场,并输出。 (2)离开停车场源代码: Status leavestop(LinkList llist,LinkList clist,SqStack &S,SqQueue &Q,int *come,int*leave,int i) { char number[10]; int t,lset; int j=1; int totalhour; float fee; printf ("***请输入您的停车位号:"); do { scanf ("%d",&lset); getchar(); for(int i=0;i<=MAX;i++) { if(set[lset].num[1]=='#') j=0; } if(j==0) { printf(" *****车场并没有停车*******\n"); return ERROR; } else { if(lset>MAX ||lset<1) { printf("*****您输入有误,该车号并不存在!*******\n***请重新输入您的车位号:\n"); t=1; } else { if(set[lset].num[1]=='#') { printf("***该车位为空,不能进行离开操作!***\n***请重新输入您的车位号:\n"); t=1; } else { struct tm *newtime; char am_pm[] = "AM"; time_t long_time; time( &long_time ); newtime = localtime( &long_time ); totalhour=(newtime->tm_mday-set[lset].reach.mday)*24*60+(newtime->tm_hour-set[lset].reach.hour)*60+(newtime->tm_min-set[lset].reach.min); fee=price*totalhour; printf(" ***********以下是您本次停车的信息************\n"); printf(" *停车牌号*:%s\n",set[lset].num); printf(" *停车位号*:%d\n",set[lset].setnumber); printf(" *到达时间*:%d:%d:%d\n", set[lset].reach.mday,set[lset].reach.hour,set[lset].reach.min); printf(" *离开时间*:%d:%d:%d\n", newtime->tm_mday,newtime->tm_hour,newtime->tm_min); printf(" *停车费用*:%f",fee); printf("\n\n\n\t*********谢谢您的光临,祝您一路平安********!\n\n"); printf("\n\n\n\n\t\t\tmention:press any key continue!"); getchar(); system("cls"); *leave=*leave+1; lListInsert_Link(llist,*leave,lset,totalhour,fee,newtime->tm_mday,newtime->tm_hour,newtime->tm_min); set[lset].num[1]='#'; Push(S,lset); if(!EmptyQueue(Q)) { DeQueue(Q); printf("\n ***请停在停车便道的客户进入停车场!***\n"); if(i==1)//判断车场 { printf("\n***输入您的车牌号(例:辽A3475):"); scanf("%s",number); enterstop(clist,S,number,come,1); t=0; } if(i==2) { printf("\n***输入您的车牌号(例:辽A3475):"); scanf("%s",number); enterstop(clist,S,number,come,2); t=0; } } else t=0; } } } } while(t==1); return OK; } 离开停车场,包括计费的显示,信息存储在链表中。其中包含出场费用的计算,按分钟计时。实现输入车位号即显示车辆信息(车号,进场时间)离开时,显示所需费用。最后利用一个便车道的判空,判断是否有车辆等待入场,如果有,则停在刚刚空出的车位上。若没有,返回0; 4.3.3 王子骄设计实现 停车场栈的建立,便车道的建立,保存车位信息,地上地下两个车场,判断车场是否已满,便车道上的车辆数目函数。 (1)便车道的建立源代码: 便车道用一队列表示。 typedef struct { char *base; int front; int rear; }SqQueue; (2)代表停车场的栈建立源代码: typedef struct { int *base; int *top; int stacksize; }SqStack; (3)保存车位信息: 在进入停车场时,要把车辆信息保存在链表中,调用此函数可以实现该功能。信息包括车牌号以及入场时间。 typedef struct LNode { struct { int stnumber; char num[10]; struct now_time reach; struct now_time leave; float fee; int totalhour; }data; struct LNode *next; }LNode,*LinkList; void copy(char *a,char *b) { int i; for(i=0;(a[i]=b[i])!='\0';i++) {;} } void CreateList_L(LinkList &L) { L=(LinkL- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 数据结构 停车场 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文