C++课程设计-职工工资管理系统(报告内含程序完整清单).doc
《C++课程设计-职工工资管理系统(报告内含程序完整清单).doc》由会员分享,可在线阅读,更多相关《C++课程设计-职工工资管理系统(报告内含程序完整清单).doc(21页珍藏版)》请在咨信网上搜索。
目录 目录ﻩi 1 概述 1 1、1ﻩ程序得基本功能ﻩ1 1.2 其它功能ﻩ1 1。3ﻩ扩展功能 1 2ﻩ课题得分析ﻩ2 2。1 会员登入系统模块即systemhead静态全局函数模块ﻩ2 2。2ﻩ查询功能模块即search函数模块ﻩ2 2.3ﻩ职务信息匹配及处理模块即systembody静态全局函数模块模块4 2 2.4ﻩ循环控制模块即while(1)模块ﻩ2 3 详细设计 3 3、1ﻩ类声明 3 3.2 系统简略流程图ﻩ4 3.3 会员登入系统模块即systemhead静态全局函数模块ﻩ5 3、4 查询功能模块即search函数模块ﻩ6 3.5ﻩ职务信息匹配及处理模块即systembody静态全局函数模块 7 3。6 循环控制模块即while(1)模块ﻩ7 4ﻩ课程设计总结 8 4。1ﻩ完成情况 8 4。2 遇到得问题及解决ﻩ8 参考文献 11 附录 12 1 概述 本课程设计就是《面向对象程序设计》课程得后继教学环节,学好C++语言就必须坚持用面向对象得思维方式分析问题、解决问题,最好得方法就是仿照教材编写C++实际应用程序。 此次课程设计得题目及要求:实现一个简单得工资管理系统。 1.1 程序得基本功能 系统得主要功能就是计算职工当月工资并存档。公司内有5种不同类型得职工:技术人员、销售人员、文秘、技术经理与销售经理,她们得工资计算方式各不相同。 1.2 其它功能 将工资信息存入salary、txt文件中,工资信息包含雇员编号、姓名、职务、月份、月收入。Info。txt文件中只存留一些信息及会员最后进入系统时输入得数据,最多含有编号、姓名、职务、月份得信息。 1.3 扩展功能 采用了会员制度,并将登入信息及编号、密码存入number、txt文件中、 2 课题得分析 通过对课题得深入分析,我将这个课题分为以下几个模块,深入详细得剖析它们。 2.1 会员登入系统模块即systemhead静态全局函数模块 程序运行后,先进行会员选择判断。为减少会员重新注册,通过输入两次编号及密码,增加繁琐度、同时在一定得方面上,又方便忘记密码得会员。通过密码匹配,雇员得工资信息这一隐私得到了很好得保障。 2.2 查询功能模块即search函数模块 首先,从info。txt中提取编号,与salary。txt中得编号进行匹配,匹配成功,输出工资信息,直到文件!indata、eof()==0。. 2.3 职务信息匹配及处理模块即systembody静态全局函数模块模块4 从info。txt中提取职务信息,用switch语句进行匹配,据匹配情况调用不同得函数进行输入、处理、显示并以增加方式记录到salary。txt中。 2.4 循环控制模块即while(1)模块 为了更加方便使用,尽量改善系统,实现search函数及systembody函数功能,在search函数及systembody函数模块得基础上加了一些必要得语句,并增加了外层循环控制。 3 详细设计 作为一个面向对象程序设计,我们不得不先从类得声明开始设计,而后就是一个整体得流程图做框架、最后在从小得模块结构着手、 class TechManager: public Technician, public Manager {private: float gradeBonus; int grade; public: TechManager(float x=1000); void setgrade(float x); void countSalary( ); }; 图3、1 类声明 3.1 类声明 图3、2 职工工资管理系统简略流程图 3.2 系统简略流程图 开始 优点:一个入口,一个出口! 处理5 输入5 输入4 输入3 输入2 输入1 处理4 处理3 处理2 处理1 工资记录在salary、txt 职务代码分析 显示 真 1 0 查询信息 选择? 就是否会员 否 注册 就是 输入编号及密码 假 检验? 真 输入姓名、职务、月份 记录编码姓名职务月份至info、txt 从info、txt提取职务代码 再次输入 假 结束 3.3 会员登入系统模块即systemhead静态全局函数模块 清空info、txt并将编号存入到info、txt中 图3、3 登入系统模块详细流程图 否 就是否会员 输入编号及密码 打开name、txt并输出编号及密码 匹配? 关闭name、txt 否 就是 以增加方式打开name、txt并输入编号及密码 关闭name、txt 、输入编号及密码 3.4 查询功能模块即search函数模块 1 0 否 就是 输出info、txt中得职务信息 将info、txt得编号与salary、txt中得编号进行匹配 就是否打开info、txt !indata、eof() ? 图3、4 查询功能模块 以默认方式打开info、txt 以默认方式打开salary、txt 从文件info、txt中提取编号并关闭文件 输出“以上就是您得工资信息!” 关闭salary、txt 3.5 职务信息匹配及处理模块即systembody静态全局函数模块 图3、5 systembody函数模块 以默认方式打开info、txt 提取info、txt中得职务信息 switch语句进行职务匹配 调用不同函数进行数据处理及显示 3.6 循环控制模块即while(1)模块 图3、6循环控制模块即while(1)模块 1 0 2 输入选择操作 查询功能模块 Info及recordinfo调用 systembody调用 选择? 结束 4 课程设计总结 4.1 完成情况 本次面向对象课程设计得所有功能基本完成,并且扩展功能也成功得实现!可执行文件能正常执行指令并运行! 4.2 遇到得问题及解决 图4.2.1错误 [Error] C:\Users\权\Desktop\main、o(.data$_vt$8Employee+0xc):main.cpp: undefined reference to `Employee::countSalary(void)' 错误:没有定义Employee类中得countSalary函数! 改正:将原先得“virtual void countSalary();”改为" virtual void countSalary(){}” 图4.2.2错误 错误分析:(会员板块中)提示:“数字1表示就是!其她键表示否!",但定义得选择变量为整型。加上我当时输入字符p、 改正:“其她键表示否!”改为"数字0表示否”。输入时按提示进行输入即可! 图4.2.3错误 调试分析:错误发生在systemhead静态全局函数内得文件输入循环模块中! 改正:将以nocreate方式即" ifstream indata(”d:\\number、txt",ios::nocreate); “ 该为默认打开方式即“ifstream indata("d:\\number、txt");”。 图4.2。4错误 调试分析:错误发生在调用systembody静态全局函数前后得while循环模块中,很有可能就是数据存取混乱造成得。 改正: systemhead静态全局函数内“ofstream outdata("d:\\info。txt”,ios::trunc);”改为先清 后在以默认方式输入!且将存取整型编号得变量类型从字符型改为整型、 图4。2.5错误 错误:后面莫名其妙得跟着一个提示语句指令。 分析调试:当语句指令就是基类info函数内得语句,很有可能就是循环控制出现了一些问题。 改正:见程序源代码! 参考文献 [1] 下面给出几个参考文献得格式参考 [2] 匿名,不知道,非常多.计算机实用教程.北京:XX大学出版社,2004,123~234 [3] [美] Donis Something。Visual X# 2008技术内幕、北京:YYY大学出版社,2007,56~78 [4] Johns Smith, James Nothing。 Programming in C++ or Anything and Something、 、world。ic。ac。uk/lab/cplusplus/nothing/index.html 2007 [5] Anonymous。 Something to Say。 2007 [6] 《面向对象程序设计》 ,郑莉,清华大学出版社, [7] 《面向对象程序设计C++语言》,朱战立等编 西安电子科技大学出版社 [8] 《面向对象程序设计----Visual C++》,刘斌等编, 清华大学出版社 [9] 《面向对象程序设计————C++语言描述》, Richard Johnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社, 2003 附录 本系统有三个源程序文件构成,分别为system、h, system、cpp及main。cpp。同时含有三个系统文件,分别为info、txt, name。txt及salary、txt,且全部存放在D盘根目录下,请勿随意移动或修改系统文件。当会员正式进入系统, info、txt就是先清空后用来存储会员输入得信息,最多含有编号、姓名、职务及月份。当仅会员注册时,会将编码及密码存储到name.txt中。当仅会员登入得编号及密码进行匹配时,会打开输入文件name、txt,提取编号及密码,进行匹配。当仅当输入工资数据时,会将工资、编号、姓名、职务、月份存储到salary.txt中。当仅当查询工资信息时,会打开salary.txt,提取编号、姓名、职务、月份及工资。 该系统就是一个只适合5种及5种职务得工资管理系统。并将职务分为技术人员、销售人员、文秘、技术经理与销售经理,其代号分别为1,2,3,4,5。 雇员编号以整型变量存储,编号所取范围在—65536至65535之内(包括边界值),首位数字表示相应得职务代码。 该系统能力有限,请根据指示严格输入相应字符! 程序清单 Main 函数 #include "system.cpp" #include "cstring" static void systemhead(); static void systembody(); static void technician(); static void salesman(); static void secretary(); static void techmanager(); static void salesmanager(); using namespace std; void main() { ﻩsystemhead(); //调用systemhead静态全局函数 cout<〈"\n\n1: 查询工资”; cout<〈"\n\n2: 输入工资数据”; cout<<”\n\n0: 退出系统!\n\n"; cout〈〈"请选择您需要得操作!!\n"; while(1) { int xuanze; ﻩ cin>>xuanze; if(xuanze==1) { employee a; ﻩ cout<〈endl〈<endl; ﻩ a.search(); cout<〈”\n\n输入工资数据请按数字2,退出系统请按数字0!\n\n"; ﻩ } //查询工资信息 if(xuanze==2) { ﻩ employee a; ﻩ a、info(); ﻩ ﻩ a.recordinfo(); //输入处理工资数据并暂时记录 systembody(); //调用systembody静态全局函数 ﻩ cout〈<"\n\n查询工资请按数字1,退出系统请按数字0!\n\n”; ﻩ } ﻩ if(xuanze==0)exit(0); } } static void salesmanager() { SalesManager a5; ﻩfloat sum; ﻩcout<〈"请输入整个月得总营业额:"; cin〉〉sum; ﻩa5、setsalesnum(sum); a5、countSalary(); a5。recordSalary(); } static void techmanager() { ﻩTechManager a4; ﻩint gra; cout〈<"请输入这个月得评级:"; //1,2,3三个等级 ﻩcin>〉gra; a4.setgrade(gra); a4、countSalary(); ﻩa4、recordSalary();ﻩ } static void secretary() { Secretary a3; ﻩfloat bon; cout〈<"请输入这个月得额外奖励:"; cin>〉bon; ﻩa3.setbonus(bon); ﻩa3、countSalary(); a3。recordSalary(); } static void salesman() { ﻩSalesman a2; ﻩfloat sum; cout〈〈"请输入整个月得营业额:”; ﻩcin〉>sum; a2.setsalesnum(sum); ﻩa2、countSalary(); ﻩa2.recordSalary(); } static void technician() { Technician a1; float hour; cout<<"请输入整个月得工作时间:"; ﻩcin>〉hour; a1、setHour(hour); a1。countSalary(); ﻩa1、recordSalary(); } static void systembody() { ﻩifstream indata("info。txt"); if(indata==NULL) exit(0); ﻩint num; char na[25]; int sta; ﻩindata>>num>〉na〉〉sta; //职务代号分别为1,2,3,4,5 switch(sta) ﻩ{ ﻩ case 1:technician();break; ﻩﻩcase 2:salesman();break; ﻩcase 3:secretary();break; case 4:techmanager();break; case 5:salesmanager();break; ﻩﻩdefault:cout<<"职务代号错误!\n请重新输入!”; } } static void systemhead() { char x,y='y'; int num; ﻩchar secret[6]; while(y) { ﻩcout<<”\n\n系统会员请输入'y’,非系统会员请输入‘n’\n"; ﻩ cin>〉x;ﻩ if(x) { cout<〈”请输入编号(首位为职务代号且为不超过5位数得整数):\n”; ﻩ cin>>num; ﻩ cout<<"请输入密码(6及6位字符以下):\n”; cin>>secret; //输入编号及密码 ﻩ ifstream indata(”number.txt"); ﻩ if(indata==NULL) ﻩ ﻩ { ﻩ ﻩcout<<"文件打开失败!请联系管理员!\n”; exit(0); //文件没打开,退出程序 ﻩ } ﻩﻩ int num1;char secret1[6]; indata>〉num1; while(!indata.eof()) ﻩ { ﻩ ﻩindata>>secret1; ﻩif((num==num1)&&(strcmp(secret,secret1)==0)) ﻩ { ﻩﻩﻩﻩy=0; //改变判断变量得值,停止外层循环 ﻩ ﻩbreak; //终止内层循环 ﻩﻩ } indata〉>num1; } ﻩ indata、close(); // 检验 登入信息 ﻩ } ﻩ else ﻩ { cout〈〈”请输入编号(首位为职务代号且为不超过5位数得整数):\n”; cin>>num; ﻩ cout<<"请输入密码(6及6位字符以下):\n”; cin>〉secret; //注册输入编号及密码 ofstream outdata("number、txt”,ios::app); ﻩﻩoutdata<〈num<〈’\t'<〈secret〈〈'\t’; ﻩ outdata、close(); //将编号及密码保存到number、txt中 cout<<endl<<endl; ﻩ } ﻩ} ofstream outdata("info。txt",ios::trunc); outdata。close(); //清空文件内容 ofstream outdata1(”info.txt"); ﻩoutdata1<〈num<<'\t'; ﻩoutdata。close(); //输入编号至info.txt } System、cpp #include <iostream> #include 〈fstream〉 #include "system、h” using namespace std; void Employee::info() { ﻩchar na[25];int sta,mon; ﻩcout<<"请依次输入姓名、职务代号及月份(以空格符分隔):"; cin>〉na>>sta>>mon; ﻩname=na;status=sta;month=mon; //存储姓名、职务、月份 } void Employee::search() { int num; ﻩifstream indata0(”info.txt"); if(indata0==NULL) exit(0); ﻩindata0>>num; ﻩindata0。close(); //从文件info。txt中提取编号 int num1;char na1[25];int sta1;int mon1;float sal; int mon0; ifstream indata("salary、txt"); ﻩif(indata==NULL) exit(0); while(!indata、eof()) ﻩ{ ﻩ indata〉>num1>>na1>>sta1>〉mon1>>sal; ﻩﻩif(num==num1) ﻩ cout〈〈num1<<'\t'〈<na1〈<'\t’<〈sta1〈<'\t'<<mon1<<'\t'<〈sal<<’\n’; ﻩ //依次输出该雇员得工资信息 } ﻩif(indata。eof()) ﻩ cout<<”\n\n以上就是您得工资信息!\n\n”; ﻩindata。close(); } void Employee::recordinfo() { ofstream outdata("info、txt",ios::app); ﻩoutdata<〈name〈<’\t’<<status〈<'\t'<〈month; ﻩoutdata、close(); //添加姓名、职务、月份至存有编号得info、txt中 } void Employee::recordSalary() { ifstream indata(”info.txt”); indata>>number>>name〉〉status〉>month; indata、close(); //依次输出该雇员得工资信息 ﻩint num1;char na1[25];int sta1;int mon1;float sal; ifstream indata1(”salary、txt"); if(indata1==NULL) exit(0); ﻩwhile(!indata1、eof()) { ﻩﻩindata1>〉num1>〉na1>〉sta1>>mon1〉>sal; ﻩif(month!=mon1) ﻩ cout<<num1〈<'\t’<〈na1<<’\t'<〈sta1〈<'\t'<〈mon1〈<'\t’<<sal<<'\n’; ﻩ else ﻩ exit(0); ﻩﻩ //依次输出该雇员得工资信息 ﻩ} ﻩcout<<number<〈’\t’<<name〈<’\t'〈〈status<〈’\t'〈<month〈〈'\t'<〈salary; ﻩ //显示工资信息ﻩ ﻩofstream outdata("salary.txt",ios::app); outdata<<’\n'<<number<<'\t’〈<name<<'\t'<〈status<〈’\t'<<month<<’\t'<〈salary; outdata、close();ﻩ } void Technician::setHour(float x) { ﻩworkHour=x; } Technician::Technician(float x) { ﻩhourSalary=x; } void Technician::countSalary() { ﻩsalary=workHour*hourSalary; } void Salesman::setsalesnum(float x) { ﻩ salesnum=x; } Salesman::Salesman(float x) { getRate=x; } void Salesman::countSalary( ) { salary=salesnum*getRate; } void Secretary::setbonus(float x) { ﻩ bonus=x; } Secretary::Secretary(float x) { fixedSalary=x; } void Secretary::countSalary( ) { salary=fixedSalary+bonus; } Manager::Manager(float x) { fixedSalary=x; } void TechManager::setgrade(int x) { ﻩgrade=x; } TechManager::TechManager(float x) { gradeBonus=x; } void TechManager::countSalary() { salary=fixedSalary+grade*gradeBonus; } SalesManager::SalesManager(float x) { ﻩgetRate=x; } void SalesManager::countSalary() { salary=fixedSalary+salesnum*getRate; } void Technician::setHour(float x) { workHour=x; } Technician::Technician(float x) { hourSalary=x; } void Technician::countSalary() { salary=workHour*hourSalary; } void Salesman::setsalesnum(float x) { ﻩ salesnum=x; } Salesman::Salesman(float x) { ﻩgetRate=x; } void Salesman::countSalary( ) { salary=salesnum*getRate; } void Secretary::setbonus(float x) { ﻩ bonus=x; } Secretary::Secretary(float x) { ﻩfixedSalary=x; } void Secretary::countSalary( ) { salary=fixedSalary+bonus; } Manager::Manager(float x) { ﻩfixedSalary=x; } void TechManager::setgrade(int x) { grade=x; } TechManager::TechManager(float x) { ﻩgradeBonus=x; } void TechManager::countSalary() { salary=fixedSalary+grade*gradeBonus; } SalesManager::SalesManager(float x) { ﻩgetRate=x; } void SalesManager::countSalary() { ﻩsalary=fixedSalary+salesnum*getRate; } System。h class Employee { protected: int number; char name[25]; int status; int month; float salary; public: void info(); void search(); virtual void countSalary(){} void recordinfo(); void recordinfo1(); void recordSalary(); }; class Salesman:public Employee { protected: float salesnum; double getRate; public: Salesman(float x=0、05); void setsalesnum(float x); void countSalary( ); }; class Technician:public Employee { private: float workHour; float hourSalary; public: Technician(float x=35。0); void setHour(float x); void countSalary( ); }; class Secretary:public Employee {private: float fixedSalary; float bonus; public: Secretary(float x=4000); void setbonus(float x); void countSalary( ); }; class Manager{ protected: float fixedSalary; public: Manager(float x=6000); void countSalary( ); }; class SalesManager:public Salesman, public Manager { public: SalesManager(float x=0.02); void countSalary( ); }; class TechManager:public Technician, public Manager { private: float gradeBonus; int grade; public: TechManager(float x=1000); void setgrade(int x); void countSalary( ); };- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 职工工资 管理 系统 报告 内含 程序 完整 清单
咨信网温馨提示:
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。
关于本文