JAVA实习报告-虚拟股票交易系统.doc

上传人:yyf 文档编号:5090014 上传时间:2020-02-01 格式:DOC 页数:17 大小:245KB
返回 下载 相关 举报
JAVA实习报告-虚拟股票交易系统.doc_第1页
第1页 / 共17页
JAVA实习报告-虚拟股票交易系统.doc_第2页
第2页 / 共17页
JAVA实习报告-虚拟股票交易系统.doc_第3页
第3页 / 共17页
JAVA实习报告-虚拟股票交易系统.doc_第4页
第4页 / 共17页
JAVA实习报告-虚拟股票交易系统.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《JAVA实习报告-虚拟股票交易系统.doc》由会员分享,可在线阅读,更多相关《JAVA实习报告-虚拟股票交易系统.doc(17页珍藏版)》请在三一文库上搜索。

1、学 生 实 习 报 告课程名称: 毕业实习 专业班级: 软件工程(1)班 学生学号: XXXX 学生姓名: XX 所属院部: XXXX 指导教师: XX 2009 2010学年 第 一 学期 金陵科技学院教务处制虚拟股票交易系统昆山安博教育科技有限公司实习项目名称: 实习学时: 一个月 同组学生姓名: 实习地点: 2010.6.29-2010.7.29实习日期: 成 绩: 批改教师: 批改时间: Java Web 实习安博实习报告前言昆山安博外包服务产业园区,作为安博教育集团业务的重要组成部分,承担着安博内部员工、安博行业客户、社会团体及个人的实训业务,并直接向国内外多家知名软件企业输送软件人

2、才。在IT企业技术人员的培养方面积累了丰富的经验,并拥有极其完善的课程体系、优良教学设施和雄厚的师资力量。 作为华东地区最大的实训基地,安博在实训及配套服务方面有着完善的一站式体系,在实训员工日常管理,实训教学管理,生活服务等方面有着成熟的操作流程。 安博实训体系是一种全新的、多维的人才教育培养体系,是将“企业的内容”以“实训的形式”来“完成对人才的培养”的体系,是目前国内在人才实训领域最系统的和实用的研究成果,是国内领先的实训系统化“模版”,此体系率先获得国家教育部的科技成果鉴定,并在IT实训基地的建设与运营、教育部“实训推广工程”中得到成功应用。安博实训体系体现了三维式人才培养新模式:即“

3、项目经理、技术经理、职业督导经理”引导模式,强调实用性人才培养,同时,实现了“真实项目、真实的企业环境、真实的企业化管理”。 安博实训体系坚持“从企业中来,到企业中去。”,在安博实训体系的框架下,实训合格结业的学生(实训员工)经历并实践一个真实项目的完整开发过程,具备基于项目组分工协作的角色技能与职业素质,有能力从事实训阶段相关岗位的工作,并开始具有个性化目标的职业生涯。 2009年,安博教育集团将继续与地方政府联手建设园区型软件与服务外包实训基地,把IT实训推广工程融入当地人才战略,推动产学合作,驱动在校学生与在职人员的个性化职业发展,为“企业招人难”和“学生就业难”寻求解决之道。成都电子科

4、技大学、河南大学等10几所高校也在论坛期间与安博教育集团签署了校企合作协议。 软件业内人士表示,安博教育集团与大连、昆山等地政府合作创办的大规模园区型实训基地、服务外包产业园,深入践行了“区域教育驱动区域经济”的教育服务战略,深化了大学生就业与区域经济发展的联动;与国际知名IT企业合作培养企业真正需求的人才,畅通了大学生的就业渠道,同时也为IT企业的持续发展奠定了人才基础。这种合作形式将成为今后IT教育机构的发展趋势。 1、 实习目的缺乏工作经验和社会经验,成为在校大学生与其他就业群体最明显的劣势。如果能够在毕业前找到一个合适的企业进行生产实习,在与自己未来工作相似的企业环境中积累一定的工作经

5、验,必将是大学生增强就业力的一笔宝贵财富。对于计算机相关专业的毕业生来说,由于其专业的特殊性,更加期盼切实、高效的实习环境,我希望能在踏入职场之前了解并切身体验IT企业的工作环境和研发氛围。 2、 实习时间工作日时段实训内容课程内容项目任务18:30-11:30实训准备:(1) 项目经理座谈,分组(2) 课程体系介绍(3) 配置环境变量(4) 安装开发工具(1) 进入项目组(2) 开发环境搭建13:00-16:00Java基础:(1) 命名规范(2) 数据类型、运算符(3) 流程控制语句(4) 异常机制综合练习16:00-21:00自主学习28:30-11:30面向对象编程基础:(1) 类与接

6、口(2) 封装、继承和多态综合练习13:00-16:00集合框架介绍及应用(1) Iterable接口(2) List与Set接口(3) Map接口综合练习16:00-21:00自主学习38:30-11:30多线程与I/O:(1) 多线程的实现方式(2) 字节流(3) 字符流(4) 对象序列化综合练习13:00-16:00Java编程常用API:(1) Object操作(2) 字符串操作(3) 日期操作(4) 算术运算(5) 文件操作综合练习16:00-21:00自主学习48:30-11:30项目准备:(1) 软件工程概述(2) UML工具介绍(3) 搭建版本服务器搭建项目小组版本服务器13:

7、00-16:00项目引人:(1) 项目介绍(2) 需求分析与UML用例图(3) 领域建模与UML类图(1) 绘制项目用例图(2) 撰写需求规格说明书16:00-21:00自主学习58:30-11:30系统分析:(1) 类与类之间的关系(2) 领域建模与UML类图绘制项目UML类图13:00-16:00职业素养:团队协作能力16:00-21:00自主学习68:30-11:30数据库设计:(1) DBMS介绍(2) DBMS基本操作(3) DBMS数据类型(4) 约束与序列(5) 数据库审计范式对项目进行数据建模13:00-16:00SQL语法基础:(1) DDL、DML、DCL(2) 常用函数综

8、合练习16:00-21:00自主学习78:30-11:30使用JDBC访问数据库(上):(1) JDBC API简介(2) 连接数据库(3) DAO模式(4) 访问数据库(1) 编写数据库连接类(2) 编写DAO接口及实现类(3) 编写DAO单元测试类13:00-16:00使用JDBC访问数据库(下):(1) JDBC事务(2) 调用存储过程(3) 使用Junit 进行单元测试16:00-21:00自主学习88:30-11:30代码检查与问题(1) 编写系统静态页面(2) 使用Css美化页面13:00-16:00系统静态页面设计:(1) B/S与C/S模式(2) Html基本标签(3) Htm

9、l表单标签(4) Css语法与常用样式16:00-21:00自主学习98:30-11:30Javascript语言(上):(1) Javascript语法基础(2) Javascript常用函数(3) Javascript事件机制添加静态页面事件处理13:00-16:00Javascript语言(下):(1) dom文档对象模型(2) Javascript操作DOM(3) Javascript操作样式16:00-21:00自主学习108:30-11:30Web编程基础:(1) 请求响应模型(2) HTTP状态码(3) Web应用服务器简介(4) Web应用的部署方式(5) Web应用服务器的配

10、置配置Web服务器环境13:00-16:00职业素养:有效沟通技巧16:00-21:00自主学习118:30-11:30代码检查与问题编写系统用户登陆功能13:00-16:00Servlet简介:(1) Servlet生命周期(2) Servlet调用过程(3) DoGet与DoPost方法(4) request、reponse、session常用方法介绍16:00-21:00自主学习128:30-11:30Servlet进阶:(1) 过滤器及监听器(2) 中文乱码问题解决方案(3) Cookie及会话跟踪机制(1) 编写权限验证Filter(2) 使用jsp改写页面13:00-16:00JS

11、P简介(上):(1) Jsp基本语法(2) Jsp编译过程(3) Jsp运行环境(4) Jsp scriptlet、表达式(5) Jsp中变量和方法的定义16:00-21:00自主学习138:30-11:30Jsp简介(下):(1) jsp内置对象(2) Jsp属性作用域(1) 使用jsp改写页面(2) 使用E1表达式完成数据列表13:00-16:00Jsp进阶:(1) E1表达式(2) JSTL核心标签库16:00-21:00自主学习148:30-11:30项目架构指导:(1) 软件分层架构(2) MVC设计模式(1) 绘制系统时序图(2) 整理架构,规范命名(3) 运用MVC重构代码13:

12、00-16:00阶段总结:(1) 技术点总结(2) UML时序图16:00-21:00自主学习158:30-11:30Ajax技术简介(上):(1) ajax技术概述(2) 异步执行过程系统功能完善13:00-16:00职业素养:面试技巧16:00-21:00自主学习168:30-11:30Ajax技术进阶(上):(1) JSON数据格式介绍(2) JSON格式传输数据(3) Ajax开源框架介绍(1) 系统功能完善(2) 改善用户体验13:00-16:00Ajax技术进阶(下):(1) jquery框架简介(2) Jquery常用API介绍16:00-21:00自主学习178:30-11:3

13、0代码检查与问题完成前台数据提交与后台接收13:00-16:00职业素养:职业生涯规划16:00-21:00自主学习188:30-11:30代码检查与问题(1) 完成后台业务逻辑(2) 对系统集成测试(3) 修复bug(4) 优化代码13:00-16:00集成测试与代码优化16:00-21:00自主学习198:30-11:30集成测试与代码优化(1) 对系统集成测试(2) 修复bug(3) 优化代码(4) 系统编码完成(5) 项目代码整合13:00-16:00前沿技术讲座:struts框架16:00-21:00自主学习208:30-11:30前沿技术讲座:hibernate框架(1) 系统编码

14、完成(2) 项目代码整合13:00-16:00前沿技术讲座:spring框架16:00-21:00自主学习218:30-11:30项目总结编写项目总结报告13:00-16:00项目验收16:00-21:00自主学习228:30-11:30项目展示准备编写项目展示PPT13:00-16:00项目展示16:00-21:003、 实习地点昆山市花桥镇安博路1号,昆山安博教育科技有限公司4、 实习单位和部门昆山安博教育科技有限公司5、 实习内容第一天:java的起源:发源于C+。C+指针,元算符重载,析构函数在java都摒弃掉了java特点:1.简单:没有头文件、指针、运算符重载2.面向对象:适合开发

15、较大型的应用程序3.分布式:可以通过url(网络)访问网络上面的应用程序4.健壮性:消除了一些对内存操作容易出错的状态5.安全性6.可移植JDK:下载一定注意区分操作系统版本JAVAME:微缩版,主要应用于嵌入式,手机JAVASE: 标准版,桌面应用程序JAVAEE:企业版,分布式应用程序的开发JDK:JAVA开发环境bin:java开发工具,是一些可执行文件lib:java的一些库文件,java程序运行的基础JRE:java运行环境java环境变量的配置:JAVA_HOME:JDK安装路径-D:Program FilesJavajdk1.6.0_11path:%JAVA_HOME%bincl

16、asspath:.;%JAVA_HOME%libdt.jar; %JAVA_HOME%libtools.jar;开始-运行-cmd-java javac第一个java程序:编译:javac *.java运行:java *包的命名规范:公司域名倒写+项目名称+模块名称com.ambow.vsts.dao(数据访问)com.ambow.vsts.dao.impl(数据访问实现)com.ambow.vsts.form(表单封装)com.ambow.vsts.action(流程控制)com.ambow.vsts.util(工具类)com.ambow.vsts.entity(实体类)带包名编译: jav

17、ac -d ./ *.java java Hellojava注释:/*文档注释*/javadoc *.javajavadoc -author -version -d ./Hello.java/单行注释/* */多行注释myeclipes配置自己的JDK:window-perference-java-installed JRES-add配置字体颜色:搜索font第二天:1.http:/172.7.43.27:8088/ambowprojectdb/details.htmljava数据类型:原始数据类型:int(32) short(16) long(64) double(64) float(32)

18、 char(16 unicode-一个字符占两个字节) boolean(布尔值) byte(8)引用数据类型:数组、类、接口变量:存储变化的值int s;特点:1.类型固定2.有一定的有效范围3.要有初始值控制流语句:if-else:else与最近的一个if配对while:注意产生死循环的情况do-while:先执行循环,后进行条件判断switch-case:表达式只可以是char/int/short/byte/枚举类型for:三个表达式都可以缺省break:终止循环continue:结束当前循环进入下一次循环第三天:面向对象:封装、继承、多态面向过程:现有算法后有数据结构面向对象:现有数据结

19、构后有算法面向对象的目的:在计算中来模拟我们现实世界实体,还有实体之间关系完成一些较大型的应用程序开发类和对象:类:抽象的数据类型,用来描述具有相同特征的事物对象:是一个实实在在个体,是类的一个实例*类是不占用内存空间的,对象占用内存空间的抽象:抽取主要内容,忽略细节,主要内容:一类事物所具有的共同特性封装:把一些实现的细节不让用户看到隐藏属性、方法或实现细节的过程叫封装属性私有,提供公有的get、set方法构造方法:如果没有自定义,系统会给我们提供一个无参的构造方法如果自定义了,无参构造方法就失效重载:方法名字相同,参数不同,在同一类内封装的好处:1.可以改变内部实现,除了此方法以外不会影响

20、其他代码2.更改属性的方法可以进行一些必要的检查继承:使用已有类作为基础建立一个新类的技术,新类可以自定义一些新的功能,增加一些新的属性。可以使用父类提供的功能,但不能选择性继承继承的好处:1.代码可以是重用 2.开发周期缩短 3.开发成本就降低java中继承只能是单继承,这点与C+不同super:调用父类的方法和属性方法的覆盖:方法名相同,参数列表也相同,在不同的类中(一定要有继承的关系)多态:一个对象变量可以引用多种实际类型的现象叫做多态。在运行时能够自动选择调用的适当的方法的现象叫做动态绑定。final :被final修饰过的类和方法都不可以被继承第四天:集合框架:int n = 9;i

21、nt n = 1,2,3,4,5;数组的局限性:1.数组的长度是固定的2.数组的元素类型是唯一的集合:拥有数组特性,但是又打破了数组局限性的一中存储数据的方式集合的种类:List、Set、Maplist特点:1.存取顺序一致 2.可以有重复元素set特点:1.不可以有重复元素2.存取顺序不一致(无序)注意:1.一个类的两个实例对象,用equals()比较的结果相等时,他们的hashcode一定相等。反之不成立2.当一个对象存储进HashSet后,就不能修改这个对象参与hash运算的属性。否则就会造成内存泄露.map:key-value 键值对的形式 迭代map方法:1.获取key的set集合(

22、map.keySet())2.用迭代set的方式来迭代map(map.get(key)) 如果key重复:后面的value值覆盖前一个 如果值相同key不同,没有影响Properties:与map类似,但是只能保存String类型的第五天:Oracle Sql:主流的数据库:sql server、mysql、oracle 、DB2 - IBM没有数据库之前,数据存储依靠文件的读写CRUD:增、查、改、删除Oracle数据类型:Char(size) 定长字符型,字符长度不够自动在右边加空格符号 Varchar2(size) 可变长字符型,大小必须指定 Number(m,n) 数字型,可存放实数和

23、整数 Date 日期类型Blob 2进制大对象其最大大小为4 GB 此数据类型映射到 Byte 类型的 Array。 Clob 2进制大对象其最大大小为4 GB 此数据类型映射到 String 建表-主键列级约束表级约束联合主键的时候只能使用表级约束建表-外键列级约束表级外键约束一对一fk+ukfk+pk一对多多对多实现第六天:Oracle中查询表的约束:select * from user_constraints where table_name=HOLDINGSELECT to_date(2009-09-22,YYYY-mm-dd) FROM dual JDBC:1.导入jar包:工程名右

24、键-build path-config build path-library -add lib -user lib -新建一个lib连接mysql:driver:com.mysql.jdbc.Driverurl:jdbc:mysql:/localhost:3306/test连接Oracle:dirver:oracle.jdbc.driver.OracleDriverurl:jdbc:oracle:thin:localhost:1521:XEVSTS数据库建表语句:#显示当前所有数据库show databases;#删除数据库drop database vsts;#创建一个新的数据库名creat

25、e database vsts;#使用此数据库use vsts;#查看某个数据库中的表结构show tables;第七天:1.ODBC:开放式数据库连接 JDBC:java数据库连接2.四种驱动:1.jdbc-odbc桥连接2.本地API(客户端)3.网络4.本地协议3.编程步骤:1.加载驱动 Class.forName(驱动包+class类)2.创建连接 DriverManager.getConnection()3.创建statement、sql4.执行sql(excuteUpdate、excuteQuery)5.处理结果6.关闭连接JDBCUtil=产生ConnectionConnecti

26、onFactory =读取数据库配置文件单例模式:构造方法私有化,提供共有的getInstance();Demo项目编程步骤:1.实体2.IStudentDao(接口)3.接口的实现类StudentDaoImpl4.编写工具类5.实现StudentDaoImpl类中的方法6.编写测试类测试方法第八天:1.持久化:将数据永久的保存在硬盘里。主要是讲内存中的数据存储在关系型的数据库中。2.ORM:对象关系映射。类-表属性-字段对象关系(1:n|1:1)-外键对象关系(m:n)-关联表3.完成持久化操作的可选方案:JDBC、Hibernate、IBATIS4.hibernate目录结构:lib:一些

27、需要的jar文件src:源代码requriedJar:必须的jar文件doc:文档、APIdocreferencezh-cnpdf:HIBERNATE学习电子书5.Hibernate开发步骤:jdbc:java应用程序-jdbc-DBdriver、url、user、passwordinsert into student values(?,?,?)hibernate:java应用程序-持久化对象Object-hibernate-dbhibernate.cfg.xml(DB配置文件)映射文件(将类与表进行映射):*.hbm.xml类user(id,name,password)表myuser(use

28、rid,username,password)hibernate编程步骤:1.读取配置文件Configuration configuration = new Configuration().configure();2.创建会话工厂SessionFactory sf = configuration .buildSessionFactory();3.建立会话 sf.openSession();4.开启事务session.beginTransaction();5.do some work .6.事务提交7.如果异常事务回滚8.关闭session第十天:1.lazy异常:解决方法:在数据库会话期间初始化

29、:Hibernate.initialize(user.getCars();HTML/Servlet:表单提交的方式(默认的提交方式是get):1.get:可以将我们提交的数据显示在URL地址栏中2.post:不将数据显示地址栏中B/S和C/S编程模式:1.浏览器/服务器:人人网 2.客户端/服务器:QQ(web QQ 不属于)submit与button的区别:button:普通的按钮,没有提交表单的功能,但是可以通过js提交表单submit:表单提交按钮Get与Post方法的区别Get方法:用户数据作为 URL 中的查询字符串传递给服务器,而body中的数据为空Post方法:用户数据在body

30、中传输给服务器因此:Get方法所传输的数据量有限制,Post方法则没有限制Get方法所传输的数据在url中可见,post则不可见Servlet Class Name:servlet完成路径Servlet Name:Servlet Class Name的别名Setvlet Mapping URL:URL请求路径web服务器Tomcat:配置:window-preference-MyEclipse-servers-Tomcat-选择TomCat版本-Enable-选择tomcat安装路径-应用JDK:选择自己配置的Launch:run mode发布项目:deploy-选择发布项目-add-选择配置

31、好的tomcatTomcat端口:默认端口8080修改端口:安装路径-conf-server.xml-修改:第十一天:HTML:1.form action=请求URL method=get|post table tr(行) td(列) th(表头) 2.type(text/submit/button/password)Servlet:作用:服务器端相应客户端请求HTTP四个阶段:1.建立服务器连接2.发送请求3.服务器相应请求返回结果4.关闭连接B/S和C/S : java web软件开发人员Servlet编程步骤:1.继承HTTPServlet2.重写doGet和doPost方法3.在web

32、.xml中配置web应用程序的部署:http:/IP:端口/web工程名第十二天:JSP:1.表达式:2.代码块:3.声明块:EL使用举例:1.JavaBean(StudentBean.java) Bean 中有 String name; int age; Servlet中 session.setAttribute(“SBean”,bean); Example: $sessionScope.Sbean.name2.数组或集合 (ArrayList) list.add(obj1);list.add(obj2); list.add(obj3); session.setAttribute(“stuL

33、ist”,list); Example: $stuList2(下标从0开始)3.Map map.put(“stu1”,Student1); map.put(“stu2”,Student2); session.setAttribute(“smap”,map); Example:$smap“stu1” $smap.stu1 JSTL:页面导入: $status.count 股票名称:$stock.name 股票代码:$stock.code 股票价格:$stock.price 第十三天:1.MVC:M:编写程序的功能以及数据持久化部分JDBC|HibernateV:展示给用户的部分(页面) HTML

34、|JSP|JS|CSSC:流程控制部分Servlet|Struts2.Model1与Model2的区别:M1:不用controllerJSP:数据库连接,显示数据,页面跳转使用JavaBean来封装数据缺点:JSP嵌套了很多java代码,不利于后期维护M2:MVCservlet:完成M1中jsp访问数据库、页面跳转jsp:只负责显示数据优点:层次清晰缺点:一个页面对应一个servlet3.深入理解MVC:1.请求使用通配符: *.func 2.所有以*.func结尾的请求都会去访问一个servlet3.这样就能达到流程控制Struts编程步骤:1.下载Struts的jar文件2.在web工程中

35、配置Struts的jar文件3.在web.xml中配置struts中的ActionServlet4.编写Action:1.继承org.apache.struts.action.Action2.覆盖execute方法5.配置struts-config.xml6.页面提交请求:action=strutsLogin.doStruts流程分析:页面.do请求-web.xml-ActionServlet-ActionServlet读取struts-config.xml根据path找到相应的Action-执行Action中execute方法-struts-config.xml中标签ActionForm编写

36、注意事项:1.ActionForm类必须继承ActionFrom2.属性值必须与表单中的控件名称一致第十五天:Struts的工作流程页面.do请求-web.xml-ActionServlet-struts-config.xml-action-调用业务逻辑实现的方法-mapping.findForward-struts-config.xml-跳转编写Action的注意事项:1.继承Struts的Action2.重写excute方法Struts的Action:1.Action 处理单个请求2.DispatchAction3.LookupDispatchAction4.MappingDispatch

37、Action2-4都是用来处理多个请求DispatchAction注意事项:1.继承org.apache.struts.actions.DispatchAction;2.编写自己的请求响应方法3.配置struts-config.xml 在action表中增加parameter=methods4.前台不同的请求对应同一个url,只是每个请求参数methods,值为自定义DispatchAction中方法的名字*注意:不要覆盖excut方法前台页面传递参数的方法:1.2.url中直接传递参数MappingDispatchAction:1.继承org.apache.struts.actions.Ma

38、ppingDispatchAction;2.编写自己的请求响应方法3.前台页面不同的请求对应不同的URL4.struts-config.xml中对不同请求的URL配置同一个type属性,调用同一个MappingDispatchAction,在parameter属性中指明该Action中所响应的方法名称。6、 实习总结以企业实际的Java开发技术为主线构建完善的实训项目体系,通过一个月的软件开发知识学习并结合企业项目实训,努力培养参训学员独立分析问题和解决问题的能力,使我们亲身体验软件开发的流程,熟练掌握软件开发必备知识与技能、技巧,适应团队合作的工作模式,提高沟通交流的能力。通过实训,使实训员

39、工在毕业后具有从事软件开发的技术能力,不管是从专业技能还是职业修养方面,都将比没有参训的同学更具有岗位竞争能力,顺利地走上软件开发的工作岗位。 1) 按照项目管理的要求,以项目实战的形式,在实训的过程中使我清楚理解软件开发流程,能独立地按规范撰写软件开发过程中各阶段文档; 2) 通过实训,我们将具有熟练的编码能力,掌握主流的开发技术,具有一定的独立编码工作能力; 在项目编程中,让我注意到了好多细节:Java命令的两种方式运行:一种不用指明路径一种是需要指明路径的。对于前者,需要配置环境变量时注意路径的设置。Java中继承只能是单继承,这点与C+不同;Final被其修饰过的类和方法都不可以被继承

40、;一个类的两个实例对象,用equals()比较的结果相等时,他们的hashcode一定相等。反之不成立;当一个对象存储进HashSet后,就不能修改这个对象参与hash运算的属性。否则就会造成内存泄露。注意Properties与map类似,但是只能保存String类型的;List与Set的区别:List存取顺序一致,可以有重复元素; Set存取顺序不一致,不可以有重复元素。联合主键的时候只能使用表级约束;通过alter添加主键约束,运行报错时能提示其名称。注意config.properties的位置是在当前工程下的.src下,与包属于同一级;hibernate.cfg.xml(DB配置文件)映射文件(将类与表进行映射):*.hbm.xml类user(id,name,password)表myuser(userid,username,password)注意hibernate.cfg.xml在.src目录下;user.hbm.xml中name

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1