C语言-飞机订票系统.doc
《C语言-飞机订票系统.doc》由会员分享,可在线阅读,更多相关《C语言-飞机订票系统.doc(25页珍藏版)》请在咨信网上搜索。
______________________________________________________________________________________________________________ 飞机订票系统 一、课程设计目的 (1)了解并掌握算法的设计方法,具备初步的独立分析和设计能力; (2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 二、课程设计的内容和要求 本程序主要用于机票的管理,甩以提供了以下功能,行班信息输入输出保 存、航线查询、订票,退票,和修改航班信息。 创建航班信息:包括航班号、起飞时间、降落时间、起飞抵达城市、航班票价、及票价的折扣,票数等信息.录入的信息应该保存在一个文件里。 浏览航班信息:通过浏览系统,客户可以根据自己时间、金钱等多方面的因素选择适合自己的航班。 修改航班信息:当航班信息改变可以修改航班数据文件。 查询航班信息:可通过航班号查询,可通过飞机终点站查询,也可以按航线查询。 删除航班信息:可通过航班号删除,也可以按航线删除。 添加航班信息:按添加的航班数量依次添加航班信息 订票:可以订票,如果该航班已经无票,可以推荐相关航班 退票:不满意所订的票时可进行退票 三、算法的基本思想 1.涉及到的数据结构 typedef struct flightnode //定义结构体数组 { int num; //航班号 char start[20]; //起始城市 char over[20]; //终点城市 char Stime[10]; //起始时间 har Etime[10]; int Price; int Discount; //折扣 int count; //机票数 struct flightnode *next; } NODE; 2.基本功能模块 飞机票管理系统 修改航班信息 订票 退票 添加航班信息 删除航班信息 查找航班信息 浏览航班信息 创建航班信息 主函数模块。 1) 函数原形:void main(); 2) 功能:调用initlist(&h) 函数和menu()函数,初始化函数和显示主界面 创建航班信息模块 1) 函数原形:void creat(); 2) 功能:本模块是对程序中的create()函数和save()函数的详细说明——链表的存储结构,对该创建的链表调用save()函数,存储到数据文件中去 浏览航班信息模块 1) 函数原形: void print(); 2) 功能:输出航班信息 修改航班信息模块 1)函数原形: void change() 2) 功能:当航班信息改变可以修改航班数据文件 20查找航班信息模块 1)函数原形: NODE *search():查找航班信息数据 2) 功能:由于航班的录入和保存是由链表存储结构进行的,所以此查询就可通过链表对该文件进行查看或者查询,查询我们可根据航班号和航班抵达的城市和航线匹配查询,在查询中将需要查询的航班号 no和文件阅读时指针所指的值num进行比较,而按抵达城市查找则利用函数strcmp(p->next->start,name1)若匹配则输出; 删除航班信息模块 1)函数原形: void del() 2) 功能:选择按什么方式删除,然后按该方式删除 添加航班信息模块 1)函数原形: void add(); 2) 功能:按添加的航班数量依次添加航班信息 订票信息模块 1)函数原形: int book_tickets() 2) 功能:先根据search()函数查询要订票的航班,在订票时应先按乘客想要定的航班号或者抵达城市或航线查询,并按乘客欲定的票的数目与查询数目进行比较,若订票的票数小于该航班票数,则输出订票成功,,且在整个定票系统中,所有的定票都用链表进行存储管理 退票信息模块 1)函数原形: int tuipiao() 2) 功能:在退票系统中即对航班票的数据文件进行管理,所以可先按照查询航班票的方法,若查询到的票的信息和乘客此时要求退票的信息相匹配,则在该定票数据文件中删除相应的该票的节点,再修改其航班信息 。 3.主要功能模块流程图 输出界面 开始 选择操作 结束 按航班号或航线 退票信息 退出 选择0 选择8 选择7 订票信息 添加航班信息 删除航班信息 查找航班信息 选择6 选择5 选择4 选择3 修改航班信息 浏览航班信息 选择2 选择1 创建航班信息 按航班或终点站或航线 四、系统测试 1.选择1,运行界面如下: 2.选择2,运行界面如下: 3.选择3,运行界面如下: 4.选择4,运行界面如下: 5.选择5,运行界面如下: 6.选择6,运行界面如下: 7.选择7,运行界面如下: 8.选择8,运行界面如下: 9.选择0,运行界面如下: 五.结论 本次程序设计主要用到了结构体、调用函数、文件的保存、输入以及输出等功能。使我对数据结构有了更深一层的认识,特别是对动态链表和文件的运用得到了很大的提高。 在本次实验中程序曾多次编译、运行出错,多亏了王帅老师的指导才将错误找出并改正,通过本次实验,我认识到实践和动手的重要性。 六.源程序及系统文件使用说明 程序清单 #include<stdio.h> //标准输入、输出头文件 #include<string.h> //包含字符串函数处理头文件 #include<stdlib.h> //包含动态存储与释放函数头文件 typedef struct flightnode //定义结构体数组 { int num; //航班号 char start[20]; //起始城市 char over[20]; //终点城市 char Stime[10]; //起始时间 char Etime[10]; int Price; float Discount; //折扣 int count; //机票数 struct flightnode *next; } NODE; #define PRINT "%4d %9.6s %9.6s %9.6s %9.6s %9d %.1f %9d \n",p->next->num,p->next->start,p->next->over,p->next->Stime,p->next->Etime,p->next->Price,p->next->Discount,p->next->count //定义输出格式 void creat(); //创建航班信息文件 void print(); //输出航班信息 void save(); //保存航班信息 int read(); //读取航班信息 NODE *search(); //查找航班信息 void del(); //删除航班信息 int book_tickets(); //订票信息 int tuipiao(); //退票信息 void change(); //修改信息 void menu(); //菜单 void initlist(NODE **); //初始化函数 void add(); //添加信息函数 NODE *h=NULL; //建立全局变量,存链表头指针 int m=0; //航班数量 void initlist(NODE **h) { *h=(NODE *)malloc(sizeof(NODE)); (*h)->next=NULL; } void creat() //打印模块程序 { FILE *fp; NODE *p=NULL; //定义移动指针 int i,flightnum; char y; p=h; if((fp=fopen("air.dat","rb"))!=NULL)//打开文件,并判断是否出错 { printf(" 信息文件已经存在,不必创建!按任意键后回车返回\n\n\n");//打印出错提示 fclose(fp); fflush(stdin); getchar(); return ; } p=h; printf("请输入要输入的航班数量:"); fflush(stdin); //清除文件缓冲区 scanf("%d",&flightnum); //读取航班数 system("cls"); //清屏 printf(" 请依次输入航班信息:\n\n"); //打印提示信息 printf("--------------------------------------------------------------------------\n"); for(i=0;i<flightnum;i++) { p->next=(NODE *)malloc(sizeof(NODE)); p->next->next=NULL; printf("航班号:"); fflush(stdin); scanf("%d",&p->next->num); //读取航班号 printf("起始站:"); fflush(stdin); scanf("%10s",&p->next->start);//读取起飞城市 printf("终点站:"); fflush(stdin); scanf("%10s",&p->next->over);//读取抵达城市 printf("起始时间:"); fflush(stdin); scanf("%10s",&p->next->Stime);//读取起飞时间 printf("抵达时间:"); fflush(stdin); scanf("%10s",&p->next->Etime);//读取抵达时间 printf("航班票价:"); fflush(stdin); scanf("%d",&p->next->Price);//读取航班票价 printf("票价折扣:"); fflush(stdin); scanf("%10f",&p->next->Discount);//读取票价折扣 printf("机票数:",m); fflush(stdin); scanf("%d",&p->next->count);//读取机票数 printf(" 第%d个信息已经输完\n",i+1); p=p->next; m++; } printf("信息输入完毕,是否存盘:存盘按0,不存盘按其他任意键"); fflush(stdin); y=getchar(); if(y=='0') { save();//将结构体信息存盘 print();//输出输入的航班信息 } } void save()//保存模块程序 { NODE *p=NULL;//定义移动指针 FILE *fp,*fp1;//定义指向文件指针 p=h; if((fp=fopen("air.dat","wb"))==NULL)//打开文件并判断是否出错 { printf(" 创建文件失败!\n\n\n");//打印出错提示 fflush(stdin); getchar(); return; } if((fp1=fopen("num.dat","wb"))==NULL)//打开文件并判断是否出错 { printf(" 创建文件失败!\n\n\n");//打印出错提示 fflush(stdin); getchar(); return; } while(p->next!=NULL) { if(fwrite(p->next,sizeof(NODE),1,fp)==0)//向文件写入数据,并判断是否出错 { printf(" 向文件输入数据失败!\n\n\n"); break; } else p=p->next; } fprintf(fp1,"%d",m); //按指定的格式输出到fp1所指定的文件中 fclose(fp);//关闭文件 fclose(fp1);//关闭文件 } int read()//从文件读取信息模块 { FILE *fp,*fp1;//定义文件指针 NODE *p=NULL; int i; initlist(&h); p=h; if((fp=fopen("air.dat","rb"))==NULL)//打开文件,并判断是否出错 { printf("出错,请检查信息文件是否存在,按任意键后回车返回住菜单\n\n\n");//打印出错提示 fflush(stdin); getchar(); return 0; } if((fp1=fopen("num.dat","rb"))==NULL)//打开文件并判断是否出错 { printf(" 创建文件失败!\\n\n\n");//打印出错提示 fflush(stdin); getchar(); return 0; } fscanf(fp1,"%d",&m); //从fp1所指定的文件中按给定的格式将输入数据送内存中 fclose(fp1);//关闭文件 printf("\n 总共%d个航班信息\n",m); for(i=0;i<m;i++) { p->next=(NODE *)malloc(sizeof(NODE)); p->next->next=NULL; fread(p->next,sizeof(NODE),1,fp);//从文件中读取信息 p=p->next; } fclose(fp);//关闭文件 return 1; } void print()//打印模块 { NODE *p=NULL; if(read()==0)return;//调用读取文件函数,并判断是否文件存在。 p=h; printf("═══════════════════════════════════════\n"); printf("航班号 起始站 终点站 起始时间 抵达时间 航班票价 票价折扣 票数 \n"); while(p->next!=NULL) { printf(PRINT);//打印信息 p=p->next; } printf("═══════════════════════════════════════"); printf("\n\n\n\n\n\n请按任意键后回车结束返回上层菜单:\n"); fflush(stdin); getchar(); } NODE *search()//查询模块 { NODE *p=NULL; NODE *x=NULL; /*用于记录查询到的记录*/ char name1[20]; char name2[20]; char ii[10]; int n,no; int flag=0; if(read()==0)return 0; p=h; do { printf(" 请选择查找方式:\n\n"); //打印查询方式菜单 printf("--------------------------------------------------------------------------\n"); printf(" 1.按航班号查找\n\n" " 2.按终点站查找\n\n" " 3.按航线查找\n\n" " 0.返回\n\n"); printf(" 请在0-3中选择:\n\n" " 按其他键后回车返回主菜单:\n\n\n\n\n"); fflush(stdin); scanf("%d",&n);//读取查找方式 if(n==0) break; switch(n) { case 1: printf(" 请输入航班号:\n"); fflush(stdin); scanf("%d",&no);//航班号 break; case 2: printf(" 请输入终点站名称:\n"); fflush(stdin); scanf("%10s",name2);//读取终点站 break; case 3: printf(" 请输入起始站名称:\n"); fflush(stdin); scanf("%10s",name1);//读取起始站 printf(" 请输入终点站名称:\n"); fflush(stdin); scanf("%10s",name2);//终点站 break; default: printf(" 请选择有效查询方式!\n\n\n"); } while(p->next!=NULL) { if(strcmp(p->next->start,name1)==0||strcmp(p->next->over,name2)==0) //按终点站起始站判断输出条件 { printf(" \n查找航班信息成功!\n\n\n"); printf("航班号 起始站 终点站 起始时间 抵达时间 航班票价 票价折扣 票数\n"); printf(PRINT);//打印信息 x=p->next; flag=1; break; } if(p->next->num==no)//按航班号判断输出条件 { printf(" \n查找航班信息成功!\n\n\n"); printf("航班号 起始站 终点站 起始时间 抵达时间 航班票价 票价折扣 票数\n"); printf(PRINT);//打印信息 x=p->next; flag=1; break; } p=p->next; } if(!flag) printf("查找失败!:\n\n\n\n\n"); printf ( "\n\n\n" " 是否重新查找?\n" " 请键入yes或no\n" " 后回车键结束 \n" "------------------------------------------------- \n\n\n\n\n"); no=0;//将航班号赋值为0 p=h; flag=0; fflush(stdin); scanf("%10s",ii); }while(strcmp(ii,"yes")==0);//判断结束 return(x); } void add() { int flightnum; int i,y; NODE*p=NULL; i=read(); if(i==0)return; p=h; while(p->next!=NULL)p=p->next; printf("请输入要输入的航班数量:"); fflush(stdin); scanf("%d",&flightnum); //读取航班数 system("cls"); printf(" 请依次输入航班信息:\n\n"); //打印提示信息 printf("--------------------------------------------------------------------------\n"); for(i=0;i<flightnum;i++) { p->next=(NODE *)malloc(sizeof(NODE)); p->next->next=NULL; printf("航班号:"); fflush(stdin); scanf("%d",&p->next->num); //读取航班号 printf("起飞城市:"); fflush(stdin); scanf("%10s",&p->next->start);//读取起飞城市 printf("抵达城市:"); fflush(stdin); scanf("%10s",&p->next->over);//读取抵达城市 printf("起飞时间:"); fflush(stdin); scanf("%10s",&p->next->Stime);//读取起飞时间 printf("抵达时间:"); fflush(stdin); scanf("%10s",&p->next->Etime);//读取抵达时间 printf("航班票价:"); fflush(stdin); scanf("%d",&p->next->Price);//读取航班票价 printf("票价折扣:"); fflush(stdin); scanf("%10f",&p->next->Discount);//读取票价折扣 printf("机票数:",m); fflush(stdin); scanf("%d",&p->next->count);//读取机票数 printf(" 第%d个信息已经输完\n",i+1); p=p->next; m++; } printf("信息输入完毕,是否存盘:存盘按0,不存盘按其他任意键后回车"); fflush(stdin); scanf("%d",&y); if(y==0) { save();//将结构体信息存盘 print();//输出输入的航班信息 } } void del()//删除模块 { NODE *p=NULL; NODE *temp=NULL; char name1[20]; char name2[20]; char ii[10]; int no,n; int flag=0; if(read()==0)return;;//调用读取函数 do { printf(" 请选择删除以方式回车键结束:\n\n"); printf(" *1.按航班号删除\n\n" " *2.按航线删除\n\n" " *0.返回\n\n"); printf(" 请在0-2中选择以回车键结束:\n\n\n"); fflush(stdin); scanf("%d",&n);//读取删除方式 if(n==0) break; //跳出循环 switch(n) { case 1: printf(" 航班号:\n"); fflush(stdin); scanf("%d",&no); //读取航班号 p=h; break; //跳出循环 case 2: printf(" 起始站名称:\n"); fflush(stdin); scanf("%10s",name1);//读取起始站 printf(" 终点站名称:\n"); fflush(stdin); scanf("%10s",name2); //读取终点站 p=h; break; //跳出循环 default: printf(" 请选择有效的选项:\n"); continue; } while(p->next!=NULL) { if(p->next->num==no||(strcmp(p->next->start,name1)==0&&strcmp(p->next->over,name2)==0)) .//判断输入信息是否存在 { temp= p->next->next; p->next=temp; m--; flag=1; printf(" 删除成功!剩余%d条信息\n\n\n\n\n",m); break; } p= p->next; } if(!flag)printf(" 没有这个信息!\n\n\n\n\n"); printf(" 是否继续删除\n" " 请键入yes或no以回车键结束\n"); fflush(stdin); scanf("%10s",ii); //读取是否继续信息 save(); //调用存储函数 if(!strcmp(ii,"yes")) //判断是否继续删除 printf(" 请按任意键后回车结束返回上层菜单:\n\n\n\n\n\n"); break; }while(1); //判断结束 } int book_tickets()//订票模块 { int n; char a[10]; NODE *x=NULL; NODE *p=NULL; do { printf("查找要订票的航班:\n"); x = search();//调用查询模块 if(x!=NULL) { printf("请输入您要订的机票数以回车键结束:\n"); fflush(stdin); scanf("%d",&n); //读取所订机票数 } else return (0); if(n<0) { printf(" 请输入有效的机票数!\n\n\n\n\n\n");//判断机票数是否出错 break; } if(x->count!=0&&x->count>=n)//判断是否出错 { x->count=x->count-n; save();//调用保存函数 printf(" 订票成功!\n\n"); break; } if(x->count<n)//判断是否出错 { printf("该航班机票已被定完,请预定其他航班:\n\n\n\n\n\n"); break; } printf("是否继续?请输入yes或no以回车键结束:\n\n\n\n\n\n");//判断是否继续订票 fflush(stdin); scanf("%10s",a); }while(!strcmp(a,"yes")); //判断结束 return(1); } int tuipiao() //退票模块 { int n; char a[10]; NODE *p=NULL; NODE *x=NULL; do { printf(" 查找要退票的航班\n"); x= search(); //调用查询模块 if(x!=NULL) { printf(" 请输入您要退的机票数目:\n"); fflush(stdin); scanf("%d",&n); //输入所退票数 } else return (0); while(n<0) //判断票数是否有效 { printf(" 请输入有效的机票数!\n\n\n\n\n\n"); fflush(stdin); scanf("%d",&n); } x->count= x->count+n; save(); //调用保存模块 printf("退票成功!\n\n\n\n\n"); printf("是否继续退票?请键入yes或no以回车键结束:\n\n\n");//判断是否继续退票 fflush(stdin); scanf("%10s",a); }while(!strcmp(a,"yes"));//判断并跳出循环 return (1); fflush(stdin); getchar(); } void change() //修改模块 { char j[10]; NODE *x=NULL; NODE *p=NULL; if(read()==0)return; do { x=search(); if(x!=NULL) { printf( " 请重新输入本条信息\n\n\n\n\n"); printf("航班号:\n"); fflush(stdin); scanf("%d",&x->num); //读取航班号 printf("起始站:\n"); fflush(stdin); scanf("%10s",&x->start);//读取起始站 printf("终点站:\n"); fflush(stdin); scanf("%10s",&x->over);//读取终点站 printf("起始时间:\n"); fflush(stdin); scanf("%10s",&x->Stime);//读取起始时间 printf("抵达时间:\n"); fflush(stdin); scanf("%10s",&x->Etime);//读取抵达时间 printf("航班票价:\n"); fflush(stdin); scanf("%d",&x->Price);//读取航班票价 printf("票价折扣:\n"); fflush(stdin); scanf("%10f",&x->Discount);//读取票价折扣 printf("机票数:\n"); fflush(stdin); scanf("%d",&x->count);//读取机票数 } save();//调用保存模块 printf(" 是否继续修改?- 配套讲稿:
如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。
关于本文