员工综合管理系统.doc
《员工综合管理系统.doc》由会员分享,可在线阅读,更多相关《员工综合管理系统.doc(30页珍藏版)》请在咨信网上搜索。
洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称 数据结构 设计题目 职员管理系统 课 程 设 计 任 务 书 设计题目: 职员管理系统 _________________________________________________________ 设计内容和要求:[问题描述] 每个职员信息包含:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成职员信息查询、更新、插入、删除、排序等功效。 [基础要求] (1) 排序:按不一样关键字,对全部职员信息进行排序。 (2) 查询:按特定条件查找职员。 (3) 更新:按编号对某个职员某项信息进行修改。 (4) 插入:加入新职员信息。 (5) 删除:按编号删除已离职职员信息。 课 程 设 计 评 语 成绩: 指导老师:_______________ 年 月 日 序言 职员管理系统是一个工作单位不可缺乏管理工具,它管理数据对于企业决议者和管理者来说全部至关关键,所以职员管理系统应该能够为用户提供充足信息和快捷查询手段。但一直以来各个企业基础上全部是靠传统人工方法来管理职员信息,这种管理方法存在着很多缺点,如:效率低、保密性差,另外时间一长,将产生大量文件和数据,这对于信息查找、更新和维护全部带来了不少困难。 当今社会,信息快速膨胀,伴随各个企业规模增大,相关信息管理工作所包含数据量越来越大,职员信息量也大大增加,利用传统手工查询、登记、修改等方法处理速度远远跟不上企业需求,有企业不得不靠增加人力、物力来进行信息管理。 伴随计算机技术不停提升,计算机作为知识经济时代产物,其强大功效已为大家深刻认识,它已进入人类社会各个行业和领域并发挥着越来越关键作用,成为大家工作和生活中不可缺乏一部分。 而作为计算机应用一部分,使用计算机对职员进行管理,含有手工管理所无法比拟优点。比如:检索快速、查找方便、可靠性高、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升职员管理效率,也是企业科学化、正规化管理和和世界接轨关键条件。 职员管理系统作为一个管理软件正在各企业中得到越来越广泛应用,且已达成了良好效果。 需求分析 职员信息管理系统是企业管理中一个关键内容,伴随时代进步,企业也逐步变得庞大起来。怎样管理好企业内部职员信息,成为企业管理中一个大问题。在这种情况下,开发一个人力资源管理系统就显得很必需 现在,市场上能够选购应用开发产品很多,流行也有数十种。在现在市场上这些众多程序开发工具中,有些强调程序语言弹性和实施效率;有些则偏重于可视化程序开发工具所带来便利性和效率得高,各有各优点和特色,也满足了不一样用户需求。然而,语言弹性和工具便利性是密不可分,只强调程序语言弹性,却没有便利工具作配合,会使部分即使很简单界面处理动作,也会严重地浪费程序设计师宝贵时间;相反,假如只有便利工具,却没有弹性语言作支持,很多特殊化处理动作必需要花费数倍工夫来处理,使得原来所标榜效率提升优点失去了作用。 本系统结合企业实际人事、制度,经过实际需求分析,采取功效强大Visual C++ 6.0作为开发工具而开发出来管理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全要求出发,本管理系统含有以下功效: 1、问题描述 对单位职员进行管理,包含插入、删除、查找、排序等功效。 2、要求 职员对象包含姓名、性别、年纪、职位、工龄等信息。 (1)新增一名职员:将新增职员对象按姓名以字典方法职员管理文件中,基础信息中编号是根据添加次序自动增加。 (2)删除一名职员:从职员管理文件中删除一名职员对象,分为依据编号删除、依据姓名删除。 (3)查询:从职员管理文件中查询符合一些条件(编号、姓名)职员。 (4)修改:依据编号检索出对象,既能够对整个对象修改,也可对某个属性修改。 (5)排序:根据年纪、工龄对全部职员排序(降序),也能够回复排序以前职员现实状态。 3、实现提醒 职员对象数无须很多,便于一次读入内存,全部操作不经过内外存交换。 (1)当开启程序是,自动从文件(message.txt)中读出职员信息 (2)由键盘输入职员对象存入链表当中。 (3)对职员对象中"编号、年纪、工龄"按字典次序进行排序。 (4)对排序后职员对象进行增、删、查询、修改、排序等操作。 (5)当退出程序时,将此刻单链表中存放数据写入到文件(message.txt)中去,保留起来。 概要设计 (一)数据类型定义: typedef struct{ int num; //编号 char name[MAX_NUM];//姓名 int age; //年纪 char job[MAX_NUM];//职位; int workTime;// 工龄 }People; ypedef struct node{ People people; struct node * next; int len;//表示链表长度 }linklist; (二)步骤图: (图1) (三)各程序模块之间层次图: (图2) 具体设计 1、主菜单模块:显示职员管理系统主菜单,供用户选择所需功效,经过自己定义void main()函数来实现。 2、添加职员模块:输入职员编号、姓名、年纪、职位、工龄以,经过自己定义void addMessage()函数来实现。 3、查询职员信息模块:浏览全部职员相关信息,经过自己定义void searchPeople()函数来实现。 (1)按职员姓名查询:能够按职员工号来查询职员相关信息,经过自己定义void searchPeopleByName( )函数来实现。 (2)按职员编号查询:能够按职员职务来查询职员相关信息,经过自己定义void searchPeopleByNum( )函数来实现。 (3)退出。 4、删除职员模块:删除需要删除职员全部信息,经过自己定义void deletePeople( )函数来实现。 (1)按职员姓名删除模块:能够按职员工号来删除职员相关信息,经过自己定义void deletePeopleByName( )函数来实现。 (2)按职员编号删除模块:能够按职员编号删除职员相关信息,经过自己定义void deletePeopleByNum( )函数来实现。 (3)退出 5、修改模块:能够修改需要修改职员相关信息,经过自己定义 void editMessage()函数来实现。 (1)修改整条统计,能够修改该职员全部信息,经过自己定义void editAll()函数来实现。 (2)修改部分统计,能够修改该职员部分信息,经过自己定义void editSome()函数来实现。 (3)退出。 6、职员信息排序模块:能够根据要求要求对职员信息排序,经过自己定义void sort()函数来实现。 (1)按年纪排序:能够按职员工号对职员信息排序,经过自己定义void sortByAge()函数来。 (2)按工龄排序:能够按职员工龄对职员信息排序,经过自己定义void sortByWorkTime()函数来实现。 (3)回复原排序:能够回复排序前次序,经过自己定义void sortByNum ()函数来实现。 (4)退出。 7、退出系统模块:退出职员信息管理系统,通exit(0)函数来实现。 函数调用图: (图3) 测试结果 (一)当操作人员运行程序时,弹出DOS界面以下: (二)依据提醒语,输入1,添加职员信息,操作以下界面: (三)在主菜单输入2,进入输出职员功效,操作以下: 添加职员、展示全部职员信息功效实现。 (四)在主菜单输入3,查询职员信息 按编号查询,测试以下: 按姓名查询,测试以下: 以上查询功效测试功效。 (五)在主菜单,输入4,删除职员功效: 按编号删除,测试以下: 按姓名删除以下: 以上测试完成。 (六)在主菜单输入5,进入修改信息功效: (七)在主菜单输入6,进入排序功效: 按年纪排序,测试以下: 按工龄排序相同操作,测试成功。回复排序,回复到未排序状态,测试成功。 (八)退出,将全部职员信息写入message.txt 文件中,实现永久保留。退出系统,测试完成。 总结 在本系统开发过程中因为时间也比较仓促、准备不充足,系统肯定会存在部分缺点和不足。对职员信息管理整个步骤不够熟悉,在需求分析时未能做到完全满足用户需求。 课程设计中我们碰到很多问题。我们在开发时,我们查阅了很多资料,了解到即是对职员编号号,姓名,年纪,工龄等复杂多样信息,能够较清楚,快捷而操作方便现代化管理系统。搞清了这个基础概念以后,我们又具体了解了老师所讲设计要求和注意事项,大致确定了总体设计思绪,初步提出问题处理方案,和系统大致设计方案和框架,接下来我们就着手编程。在编程过程中,先是依据系统所要求,找出所需要知识点。编完程序,我们在机房进行了一次又一次调试,找出了其中错误,一一纠正,而且修改了其中不太完善部分,努力争取做到实用而且正确 尽管本管理系统存在着很多不足,但其功效全方面、易于以后程序更新、数据库管理轻易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需。经过开发这个系统,我组掌握了项目基础开发过程,用到知识巩固了我对C语言学习,但在这次设计中最大收获并不是掌握这几门开发工具应用,而是学会了设计系统思维方法。 经过此次课程设计,我们对数据结构知识掌握了很多,并能将它用以程序编写中,而且提升了自己处理实际问题能力。 ----------------------------------------------------------- 附录:源代码 #include"stdio.h" #include"stdlib.h" #include "string.h" #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef struct LNode { char id[20]; char name[10]; char sex[10]; char birth[10]; char edu[10]; char duty[10]; char phone[20]; char address[30]; struct LNode *next; }LNode,*Linklist;//定义节点类型 int CreatList(Linklist &L) { Linklist p; p=(Linklist)malloc(sizeof(LNode)); if(!p) { return (0); } else { printf("请输入职员编号\n"); scanf("%s",p->id); printf("请输入职员姓名\n"); scanf("%s",p->name); printf("请输入职员性别\n"); scanf("%s",p->sex); printf("请输入职员生日\n"); scanf("%s",p->birth); printf("请输入职员学历\n"); scanf("%s",p->edu); printf("请输入职员职务\n"); scanf("%s",p->duty); printf("请输入职员电话\n"); scanf("%s",p->phone); printf("请输入职员地址\n"); scanf("%s",p->address); } p->next=L->next; L->next=p; }//头插法生成单链表 int Initlist(Linklist &L) { L=(Linklist)malloc(sizeof(LNode)); if(!L) return (0); L->next=NULL; return OK; }//初始化单链表 void Display(Linklist &L) { Linklist p; for(p=L->next;p;p=p->next) { printf("编号 %s\n",p->id); printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("生日 %s\n",p->birth); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); printf("============================\n"); } }//显示全部职员信息 int SearchID(Linklist &L,char id[20]) { LNode *p; p=L; while(p) { if(strcmp(p->id,id)==0) { printf("编号 %s\n",p->id); printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("生日 %s\n",p->birth); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); } p=p->next; } return OK; }//ID查询 int SearchName(Linklist &L,char name[10]) { LNode *p; p=L; while(p) { if(strcmp(p->name,name)==0) { printf("编号 %s\n",p->id); printf("姓名 %s\n",p->name); printf("性别 %s\n",p->sex); printf("生日 %s\n",p->birth); printf("学历 %s\n",p->edu); printf("职务 %s\n",p->duty); printf("电话 %s\n",p->phone); printf("地址 %s\n",p->address); } p=p->next; } return OK; }//姓名查询 void SortID(Linklist &L ,char id[20]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->id,q->id ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); }//编号排序 void SortName(Linklist &L ,char name[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->name,q->name ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); }//姓名排序 void SortSex(Linklist &L ,char sex[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->sex,q->sex))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); }//性别排序 void SortBirth(Linklist &L ,char birth[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->birth,q->birth ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); }//出生年月排序 void SortEdu(Linklist &L ,char edu[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->edu,q->edu ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q } L=La; Display(L); }//学历排序 void SortDuty(Linklist &L ,char duty[10]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->duty,q->duty ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); }//职务排序 void SortPhone(Linklist &L ,char phone[20]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->phone,q->phone ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q } L=La; Display(L); }//电话排序 void SortAddress(Linklist &L ,char address[30]) { Linklist La; Linklist p,q,m; La=(Linklist)malloc(sizeof(LNode)); La->next =NULL; while(L->next) { for(q=L->next ,p=L->next ;p->next ;p=p->next ) { if((strcmp( p->next->address,q->address ))>0 ) { m=p; q=p->next ; } } if(q==L->next) { L->next =L->next->next ; } else { m->next =q->next ; } q->next =La->next ; La->next =q ; } L=La; Display(L); }//地址排序 int Alter(Linklist &L,char id[20]) { LNode *p; p=L; while(p) { if(strcmp(p->id,id)==0) { printf("请输入职员编号\n"); scanf("%s",p->id); printf("请输入职员姓名\n"); scanf("%s",p->name); printf("请输入职员性别\n"); scanf("%s",p->sex); printf("请输入职员生日\n"); scanf("%s",p->birth); printf("请输入职员学历\n"); scanf("%s",p->edu); printf("请输入职员职务\n"); scanf("%s",p->duty); printf("请输入职员电话\n"); scanf("%s",p->phone); printf("请输入职员地址\n"); scanf("%s",p->address); } p=p->next; } return OK; }//更改 int Del(Linklist &L,char id[20]) { LNode *p; LNode *r; p=L->next; r=L; while(!(strcmp(p->id,id)==0)&&p) { r=p; p=p->next; } if(!p) printf("\n删除位置不合理\n"); else { r->next=p->next; free(p); printf("删除成功\n"); } return OK; }//按ID删除 //主函数 void main() { Linklist L; int a; char m; char name[10]; char id[20]; char sex[10]; char birth[10]; char edu[10]; char duty[10]; char phone[20]; char address[30]; Initlist(L); int y; int x=1; while(x) { printf("=========================\n"); printf("欢迎进入职员管理系统!\n"); printf("=========================\n"); printf("1-添加职员信息\n"); printf("2-查询职员信息\n"); printf("3-排序职员信息\n"); printf("4-显示全部职员信息\n"); printf("5-更改职员信息\n"); printf("6-删除职员信息\n"); printf("7-退出\n"); printf("请选择操作序号并按回车:"); scanf("%d",&y); switch(y) { case 1: CreatList(L); do { printf("是否继续输入?(y/n)"); getchar(); scanf("%c",&m); if(m=='y') { CreatList(L); } } while(m!='n'); break; case 2: printf("请输入查询方法(1按编号查询,2按姓名查找)"); scanf("%d",&a); if(a==1) { printf("请输入查询职员编号\n"); scanf("%s",&id); SearchID(L,id); } if(a==2) { printf("请输入查询职员姓名\n"); scanf("%s",&name); SearchName(L,name); } break; case 3: printf("请选择排序条件:1.编号2.姓名3.性别4.出生年月5.学历6.职务7.电话8.地址0.退出\n"); scanf("%d",&a); if(a==1) { printf("编号排序\n"); SortID(L,id); } if(a==2) { printf("姓名排序\n"); SortName(L,name); } if(a==3) { printf("性别排序\n"); SortSex(L,sex); } if(a==4) { printf("出生年月排序\n"); SortBirth(L, birth); } if(a==5) { printf("姓名排序\n"); SortDuty(L,duty); } if(a==6) { printf("姓名排序\n"); SortEdu(L,edu); } if(a==7) { printf("姓名排序\n"); SortPhone(L,phone); } if(a==8) { printf("姓名排序\n"); SortAddress(L,address); } break case 4: printf("全部职员信息以下所表示\n"); Display(L); break; case 5: printf("请输入更改职员编号"); getchar(); scanf("%s",&id); Alter(L,id); break; case 6: printf("请输入删除职员编号"); getchar(); scanf("%s",&id); Del(L,id); break; case 7: x=0; break; default: printf("请输入正确序号!\n"); break; } } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 综合 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文