java课程设计汇本(人事管理系统)_第1页
java课程设计汇本(人事管理系统)_第2页
java课程设计汇本(人事管理系统)_第3页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、人事管理系统一 系统需求分析:21系统的功能设计 22系统功能构造23数据库设计3二功能模块开发41查询人员信息界面 42添加员工界面53修改员工信息界面 54删除员工界面65员工考核界面76员工考核历史记录界面7三各个类说明8四.程序代码111Manager112CardEmploy153SelEmploy184AddEmploy215ReviseEmploy26iUpdDialog296DelEmploy357AllEmploy388Examine409History4610EmployModel4911AppraisalModel5312SqlHelper58.系统需求分析:(1 )系统

2、的功能设计i员工信息管理:员工信息管理包括对员工根本信息和情况进展查询、添加、删除和修改及部门管理ii员工考核管理:包括对员工的考核情况进展操作,还可以对历史考核情况进展浏览(2)系统功能构造人事管理的系统构造功能构造如下图:员4员P删员F吊核p考核历史查询(3)数据库设计员工根本表Employinfo名称字段名称数据类型主键非空工号Emp novarchar(10)YesYesEn amevarchar(10)Noyes性别Sexvarchar(4)Noyes出生年月BirthdayDatetimeNoYes部门DeptNoChar(10)NoYes职务EjobChar(20)NoYes工资

3、SalfloatNoYes员工考核表Appraisal名称字段名称数据类型主键非空工号Emp novarchar(10)yesyes考核Consequeneevarchar(10)noyes变更日期RegDatedatetimeNoYes考核历史记录History名称字段名称数据类型主键非空流水号JourNoIntYesyes工号Emp novarchar(10)noyesEn amevarchar(10)NoYes上次考核Oldl nfovarchar(10)NoYes本次考核Newl nfovarchar(10)NoYes变更日期RegDatedatetimeNoYes二. 功能模块开发(

4、1)查询人员信息界面实例一个SelEmploy类,当点击“查询时调用EmployModel 类的queryEmploy 方法实现查询(2)添加员工界面实例一个AddEmploy 类当点击“添加时调用 EmployModel 类 的updEmploy方法实现添加功能(3) 修改员工信息界面亍口茫丰节豈婪总二-jte«ns 工n阳悴吊二乍修改员匸信息工号8出生年月nun职(Z工L00119'9b06-.主杜35D10匚冋区至沁体占 C-口/ K考国H詡实例一个ReviseEmploy类当点击“修改时,先调用 UpdDialo 弹跳出一个修改信息对话框,信息修改完毕后,调用Empl

5、oyModel 类的updEmploy 方法实现修改功能(4)删除员工界面实例一个DelEmploy 类当点击“删除时调用 EmployModel类的updEmploy方法实现删除功能(5) 员工考核界面实例一个Examine类当点击“确认时调用 AppraisalModel 类 的updAppraisal方法来完成考核功能(6) 员工考核历史记录界面口叵区话空P人爭曽丑爭折总靈工: 丁还也口工: 冷艇區曲:J TI即员工主QaiWtf' ? 口人帀韦琨言圧'心那类的员工考核历史记录实例一个 History 类 当点击时调用 AppraisalModel updAppraisa

6、l方法来完成考核功能三. 各个类说明类之间的关系图1. Manager 类Manager类的一个实例,从而生成了人事管理系统的界面,用JSplitPane 类将整个界面分为左右两个局部。其中左侧实现了人事管理系统的功能树,采用JTree类构建,同时实现了 TreeSelectionListener 接口,定义了该接 口所必须实现的 valueChanged(TreeSelectionEvent e)方法,JSplitPane右边参加卡片布局CardEmploy 类。当JTree的TreeSelectionEvent 事件 发生时,调用CardEmploy的c.show方法切换不同卡片,实现不同

7、的管理界面。2. CardEmploy 类CardEmploy 为卡片布局类的面板,主要功能是添加各个界面的卡片,当JTree的TreeSelectionEvent 事件发生时。切换不同的卡片3. EmployModel、AppraisalModel 类这两个类继承了AbstractTableModel ,主要实现的功能是,存放调用sqlhelper类得到的数据。可以通过调用 sqlhelper实现增删查改功能4. SqlHelper 类主要就是连接数据库的一些根底操作 是,方便代码修改,重复使用5. SelEmploy这个类继承Panel,为“查询员工"的界面。实现了 Action

8、listener 接 口,当ActionEvent 事件发生时,调用 EmployModel 类的 queryEmploy 方法实现查询6. AddEmploy、ReviseEmploy DelEmploy 类这些类继承Pane,分别为“添加员工信息“修改员工信息“删除员工信息"的界面,这些类实现了 Actionlistener 接口,当ActionEvent 事件发生时,调用EmployModel类的updEmploy 方法实现添 力口、查询、删除、功能7. Examine类这个类继承Panel,为“考核员工"界面。这个类实现了 Actionlistener接口,当Act

9、ionEvent事件发生时,(1)先通过调用 AppraisalModel的queryAppraisal 获取上次考核成绩,(2)修改Appraisal表的考核成绩3丨再把上次考核成绩跟本次考核成绩加到History表中8. History这个类主要是把History表中的信息显示到界面上四. 程序代码(1) Managerpackage .Ma nager;import ;import javax.sw in g.*;import javax.swi ng.eve nt.TreeSelectio nEve nt;import javax.swi ng.eve nt.TreeSelectio

10、nListe ner;import TreeSelectio nListe ner publicclass Manager extends JFrame implementsJPanel jp;JSplitPane js;JScrollPane jsp ;JTree tree ;DefaultMutableTreeNoderoot , t1 , t2 , t1_1 , t1_2 , t1_3 , t1_4 , t1_5 , t2_1 , t2_2;CardEmploy ae;EmployModel em ;publicstaticvoid main( Stri ng args) Manager

11、 manager =new Manager();public Man ager() 人事管理系统“);"根本信息管理");/给树的各个结点赋值 root = new DefaultMutableTreeNode( t1 = new DefaultMutableTreeNode(t1_1 = newDefaultMutableTreeNode("查询员工");t1_2 = newDefaultMutableTreeNode("添加员工");t1_3 = newDefaultMutableTreeNode("修改员工信息&quo

12、t;t1_4 = newDefaultMutableTreeNode("删除员工资料“)t1_5 = newDefaultMutableTreeNode("查询全体员工“););t2 = new DefaultMutableTreeNode("人员考核管理“);t2_1 = new DefaultMutableTreeNode("人员考核");t2_2 = new DefaultMutableTreeNode("考核历史查询“);t1 .add( t1_1 );t1 .add( t1_2 );t1 .add( t1_3 );t1 .a

13、dd( t1_4 );t1 .add( t1_5 );t2 .add( t2_1 );t2 .add( t2_2 );root .add( t1);root .add(t2);tree = new JTree( root );/对树进展监听tree .addTreeSelectionListener(this );/实例化CardEmploy 面板并加到jsplitpane 的边ae = new CardEmploy();js = new JSplitPane();js.setLeftponent( tree );js.setRightp onent( ae);this .getContent

14、Pane().add(js);this .setTitle("人事管理系统");this .setVisible( true );this .setSize(600, 500);this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);publicvoidvalueCha nged(TreeSelecti on Eve nt e) /获取点击结点名称treeDefaultMutableTreeNode dpath = (DefaultMutableTreeNode).getLastSelectedPathp onen t();

15、/通过点击不同结点切换不同界面if (dpath.equals( t1_1 ) elseif (dpath.equals( t1_2 ) elseif (dpath.equals( t1_3 ) elseif (dpath.equals( t1_5 ) elseif (dpath.equals( t2_1 ) elseif (dpath.equals( t2_2 ) (2) CardEmploy/*用卡片布局设置各个界面*/ package .Ma nager;importjavax.swi ng.*;importjava.awt.*;publicclass CardEmploy exte n

16、ds Pan elCardLayout c;/查询表SelEmploy selE;/添加表AddEmploy addE ;/修改员工信息表ReviseEmploy revE;/删除员工表格DelEmploy delE ;/所有员工信息AllEmploy allE;/员工考核表Examine exaE ;/历史记录界面History His;public CardEmploy()/查询员工表 selE = new SelEmploy();/添加员工表addE = new AddEmploy();/修改员工信息revE = new ReviseEmploy();/删除员工表格delE = new

17、DelEmploy();/所有员工信息allE = new AllEmploy();/员工考核表exaE = new Exam in e();/历史记录界面His = new History。;JPanel jp_= new JPanel();/定义cardemploy 面板 为卡片布局/把各个面板参加到 C的卡片布局中c = new CardLayout();this .setLayout( c);this .add( selE,"1");this .add( addE ,"2");this .add( revE ,"3");thi

18、s .add( delE ,"4");this .add( allE ,"5");this .add( exaE ,"6");this .add( His ,"7");(3) SelEmploy/* SelEmploy 类设置查询员工界面*/package.Ma nager;import javax.swi ng.*;Acti on Liste ner publicclass SelEmploy extendsPanel implementsEmployModel em ;JLabel jl;JTextField

19、jtf;utt on ;JTable jt;JScrollPane jsp ;JPanel jp1 ;public SelEmploy() /北部jp1 = new JPanel();jl = new JLabel("输入员工号:");jtf = new JTextField(20);=new utton("查询");/对查询按钮监听.addActionListener(this );jp1 .add( jl);jp1 .add( jtf);jp1 .add();/中部em = new EmployModel();Str in g paras = &qu

20、ot;1" ;em .queryEmploy( "select * from Employinfo where 1 = ?", paras);jt = new JTable( em);jsp = new JScrollPane( jt);this .setLayout( new BorderLayout();this .add( jp1 , BorderLayout. NORTH ); this .add( jsp , BorderLayout. CENTER);publicvoidacti on Performed(Acti on Eve nt e) if (e

21、.getSource() = ) String name =this .jtf .getText().trim();Stri ng sql = "select * from Employi nfo where Emp no = ?"Stri ng paras = n ame ;em = new EmployModel();em .queryEmploy(sql, paras);/查找成功更新表jt.setModel( em);(4) AddEmploypackage .Ma nager;import javax.swi ng.*;Acti on Liste ner publ

22、icclass AddEmployextendsPanel implementsJLabel jl, jl1 , jl2 , jl3 , jl4 , jl5 , jl6 , jl7 ;utton 1, 2;JTextField jtf1 , jtf2 , jtf3 , jtf4 , jtf5 , jtf6 , jtf7 ;JPanel jp1 , jp2 , jp3 , jp4 ;EmployModel em ;public AddEmploy() jl1 = new JLabel("工号:");jl2 = new JLabel(":");jl3 = n

23、ew JLabel("性别:");jl4 = new JLabel("岀生年月:");jl5 = new JLabel("部门:");jl6 = new JLabel("职位:"); jl7 = new JLabel("工资:");jtf1 = new JTextField(20); jtf2 = new JTextField(20); jtf3 = new JTextField(20); jtf4 = new JTextField(20); jtf5 = new JTextField(20);

24、 jtf6 = new JTextField(20); jtf7 = new JTextField(20);1 = new utton("添加”);2 = new utton("取消");/监听添加取消按钮1. addActionListener(this );2. addActionListener(this );jp1 = new JPanel( new GridLayout(7, 1); jp2 = new JPanel( new GridLayout(7, 1); jp3 = new JPanel();jp1 .add( jl1 );jp1 .add( j

25、l2);jp1 .add( jl3);jp1 .add( jl4);jp1 .add( jl5);jp1 .add( jl6);jp1 .add( jl7);jp2 .add( jtf1 );jp2 .add( jtf2 );jp2 .add( jtf3 );jp2 .add( jtf4 );jp2 .add( jtf5 );jp2 .add( jtf6 );jp2 .add( jtf7 );jp3 .add( 1);jp3 .add( 2);jp4 = new JPanel( new BorderLayout();jp4 .add( jp1 , BorderLayout.WEST);jp4

26、.add( jp2 , BorderLayout.EAST);jp4 .setSize(300, 300);this .setLayout( new FlowLayout();this .add( jp4 );this .add( jp3 );publicvoidacti on Performed(Acti on Eve nt e) if (e.getSource() =1) /调用EmployModel 里的updEmploy方法,实现对表格的添加String sql ="insert into Employinfo values(?,?,?,?,?,?,?)"Strin

27、g paras = jtf1 .getText(), jtf2 .getText(), jtf3 .getText(),jtf4 .getText(), jtf5 .getText(), jtf6 .getText(),jtf7 .getText() ;em = new EmployModel();if (em .updEmploy(sql, paras) /当添加新员工成功时,那么弹岀"添加成功的对话框JOptionPane. showMessageDialog (this ,"添加成功"); elseif (! em .updEmploy(sql, paras

28、) JOptionPane. showMessageDialog (this ,"添加失败");/当新员工参加成功后,要把新参加员工的工号加到考核表AppraisalModel temp = new AppraisalModel();String sqll ="in sert into Appraisal(Emp no) values(?)"String parasl = jtfl .getText() ; temp.updAppraisal(sql1, parasl);else if (e.getSource() = 2)jtfl .setText(&

29、quot;");jtf2 .setText("");jtf3 .setText("");jtf4 .setText("");jtf5 .setText("");jtf6 .setText("");jtf7 .setText("");(5) ReviseEmploypackage .Ma nager;/*修改员工界面*/importjava.awt.*;importjava.awt.eve nt.*import javax.sw in g.*;publicclass

30、ReviseEmploy exte ndsPanel implementsActi on Liste ner JTable jt;JScrollPane jsp ;utton 1, 2;JPanel jp1 ,jp2 ;EmployModel em ;JLabel jl1 ;public ReviseEmploy() jl1 = new JLabel("修改员工信息",JLabel. CENTER);jl1 .setFo nt( new Fo nt("宋体", Font. BOLD, 28);jp2 = new JPanel();jp2 .add( jl

31、1 );em = new EmployModel();Str in g paras = "1" ;,paras);em .queryEmploy( "select * from Employinfo where 1 = ?" jt = new JTable( em);jsp = new JScrollPane( jt);1 = new utton("修改");2 = new utton("刷新");/对两个按钮进展监听1 .addActionListener(this );2.addActionListener(t

32、his );this .setLayout( new BorderLayout();jp1 = new JPanel();jp1 .add( 1);jp1 .add( 2);this .add( jp2 ,BorderLayout. NORTH );this .add( jsp , BorderLayout.CENTER);this .add( jp1 , BorderLayout. SOUTH );publicvoidacti on Performed(Acti on Eve nt e) if (e.getSource() =1) int rowNum = this .jt .getSele

33、ctedRow();if (rowNum = -1) JOptionPane. showMessageDialog (this ,"请选择一行");return ;/弹出修改对话框 new UpdDialog( em , rowNum); elseif (e.getSource() =2) /刷新修改界面中的表格em = new EmployModel();String paras1 = "1" ;,parasl);em .queryEmploy( "select * from Employinfo where 1 = ?" jt.s

34、etModel( em);i UpdDialogpackage .Ma nager;/*弹出修改界面*/import javax.swi ng.*;Acti on Liste ner publicclass UpdDialog exte nds JDialogimpleme ntsJLabel jl1 , jl2 , jl3 , jl4 , jl5 , jl6 , jl7 ;utton 1, 2;JTextField jtf1 , jtf2 , jtf3 , jtf4 , jtf5 , jtf6 , jtf7 ;JPanel jp1 , jp2 , jp3 ;int rowNums) publ

35、ic UpdDialog(EmployModel em, jl1 = new JLabel("工号:“);jl2 = new JLabel(":");jl3 = new JLabel("性别:");jl4 = new JLabel("岀生年月:");jl5 = new JLabel("部门:");jl6 = new JLabel("职位:");jl7 = new JLabel("工资:");jtf1 = new JTextField(20);jtf2 = newJT

36、extField(30);jtf3 = newJTextField(30);jtf4 = newJTextField(30);jtf5 = newJTextField(30);jtf6 = new JTextField(30);jtf7 = new JTextField(30);/初始化jtextfield 数据jtfl .setText(String) em.getValueAt(rowNums, 0);jtfl .setEditable( false );jtf2 .setText(String) em.getValueAt(rowNums, 1);jtf3 .setText(String

37、) em.getValueAt(rowNums, 2);jtf4 .setText(String) em.getValueAt(rowNums, 3);jtf5 .setText(String) em.getValueAt(rowNums, 4);jtf6 .setText(String) em.getValueAt(rowNums, 5);jtf7 .setText(String) em.getValueAt(rowNums, 6);1 = new utton("修改");2 = new utton("取消");/对两个按钮监听1 .addAction

38、Listener(this );2.addActionListener(this );jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();/设置布局jp1 .setLayout( new GridLayout(7, 1); jp2 .setLayout( new GridLayout(7, 1);/添加组件jp1 .add( jl1 );jp1 .add( jl2);jp1 .add( jl3);jp1 .add( jl4);jp1 .add( jl5);jp1 .add( jl6);jp1 .add( jl7);jp2 .add(

39、 jtf1 );jp2 .add( jtf2 );jp2 .add( jtf3 );jp2 .add( jtf4 );jp2 .add( jtf5 );jp2 .add( jtf6 );jp2 .add( jtf7 );jp3 .add( 1);jp3 .add( 2);this.add( jp1 , BorderLayout.WEST);this.add( jp2 , BorderLayout.CENTER);this.add( jp3 , BorderLayout.SOUTH);this .setSize(300, 250);this .setVisible( true );this .s

40、etLocation(200, 200);this .addWindowListener(new WindowAdapter() publicvoidwi ndowClosi ng(Wi ndowEve nt e) dispose(););publicvoidacti on Performed(Acti on Eve nt e) if (e.getSource() =1) /修改员工信息的 sql语句,paras为待注入的值String sql = "update Emplo yinfo set "+ "En ame = ?,Sex = ?,Birthday =

41、?, DeptNo = ?, Ejob = ? ,Sal=? where Emp no = ?"String paras = jtf2 .getText(), jtf3 .getText(), jtf4 .getText(),jtf5 .getText(), jtf6 .getText(), jtf7 .getText(),jtf1 .getText() ;EmployModel temp = new EmployModel();/如果修改语句运行成功那么弹岀修改成功"对话框if (temp.updEmploy(sql, paras) JOptionPane. showMe

42、ssageDialog (this ,"修改成功");this .dispose(); elseif (e.getSource() =2) /关闭对话框this .dispose();(6) DelEmploy/*删除员工*/package .Ma nager;import javax.swi ng.*;Acti on Liste ner publicclass DelEmploy exte nds Panel impleme ntsJTable jt;JScrollPane jsp ;utton 1, 2;JPanel jp1 , jp2 ;JLabel jl1 ;Emp

43、loyModel em ;public DelEmploy。/北部 jl1 = new JLabel("删除员工", JLabel. CENTER);jl1 .setFo nt( new Fo nt("黑体", Font. BOLD, 30);jp2 = new JPanel();jp2 .add( jl1 );/中部em = new EmployModel();Str in g paras = "1" ;,paras);em .queryEmploy( "select * from Employinfo where 1 =

44、 ?"jt = new JTable( em);jsp = new JScrollPane( jt);/南部jp1 = new JPanel();1 = new utton("删除");2 = new utton("取消");1 .addActionListener(this );jp1 .add( 1);jp1 .add( 2);this .setLayout( new BorderLayout();this .add( jp2 , BorderLayout. NORTH );this .add( jsp , BorderLayout.CEN

45、TER);this .add( jp1 , BorderLayout. SOUTH );publicvoidacti on Performed(Acti on Eve nt e) if (e.getSource() =1) /返回用户点中的行int rowNum = this .jt .getSelectedRow();if (rowNum = -1) JOptionPane. showMessageDialog (this ,"请选择一行"); return ;/得到学生编号String Empno = (String)em .getValueAt(rowNum, 0);

46、/删除记录的sql语句Stri ng sql = "delete from Employi nfo where Emp no = ?"Stri ng paras = Emp no ;EmployModel temp = new EmployModel();temp.updEmploy(sql, paras);/删除员工成功后,更新员工表em = new EmployModel();String parasl = "1" ;,parasl);em .queryEmploy( "select * from Employinfo where 1 =

47、?" jt .setModel( em);/*(7) AllEmploy遍历所有员工*/ package .Ma nager;import javax.sw in g.*;publicclass AllEmploy exte ndsPan elEmployModel em ;JTable jt;JScrollPane jsp ;JLabel jl1 ;JPanel jp ;public AllEmploy()/北部jp = new JPanel();jl1 = new JLabel("全体员工",JLabel. CENTER);jl1 .setFo nt( new

48、 Fo nt("黑体", Font. BOLD, 30); jp.add( jl1 );/中部em = new EmployModel();String paras ="1" ;,paras);em .queryEmploy( "select * from Employinfo where 1 = ?" jt = new JTable( em);jsp = new JScrollPane( jt);this .setLayout( new BorderLayout();this .add( jp ,BorderLayout. NORT

49、H);this .add( jsp ,BorderLayout.CENTER);(8) Examine/*员工考核界面*/package .Ma nager;importjava.awt.*;importjava.awt.eve nt.*;importjava.sql.ResultSet;importjava.util.Vector;importjava.sql.*;importjavax.swi ng.*;Acti on Liste ner publicclass Examine extendsPanel implementsJLabel jl1 , jl2 , jl3 , jl4 ;JTa

50、ble jt;JScrollPane jsp ;JTextField jtfl , jtf2 ;Choice ch ;utton 1, 2;JPanel jp1 , jp2 , jp3 , jp4 ;AppraisalModel am ;SqlHelper sqh ;public Exam in e() /北部为标题文字jp4 = new JPanel();jl1 = new JLabel("员工考核", JLabel. CENTER);jl1 .setFo nt( new Font("黑体", Font. BOLD, 30); jp4 .add( jl

51、1 );/中部 am = new AppraisalModel();am .queryAppraisal( "select E.Empno,E.Ename,A.Consequence,A.RegDate from "+ "Employi nfo as E,Appraisal as A where E.Emp no=A.Emp no");jt = new JTable( am);jsp = new JScrollPane( jt);/监听jtable点击表格时获取点击的行数并通过鼠标点击事件给jtfl , jtf2赋值 jt .addMouseListen

52、er( new MouseAdapter() publicvoid mouseClicked(MouseEve nt e) int rowNum = jt .getSelectedRow();jtf1 .setText(String)am .getValueAt(rowNum, 0);jtf2 .setText(String)am .getValueAt(rowNum, 1););jl2 = new JLabel("工号:");jl3 = new JLabel(":");jl4 = new JLabel("考核");jtf1 = ne

53、w JTextField(10);jtf2 = new JTextField(10);jtf1 .setEditable( false );jtf2 .setEditable( false );/实例单项选择框组件,并赋值ch = new Choice();ch .add("未考核");ch .add("不合格");ch.add("合格");ch.add("优秀");jp1 = new JPanel();jp1 .add( jl2);jp1 .add( jtfl );jp1 .add( jl3);jp1 .add(

54、 jtf2 );jp1 .add( jl4);jp1 .add( ch);jp2 = new JPanel( new BorderLayout();jp2 .add( jsp , BorderLayout.CENTER);jp2 .add( jp1 , BorderLayout. SOUTH );/南部1 = new utton("确认");2 = new utton("刷新");jp3 = new JPanel();1 .addActionListener(this );2.addActionListener(this );jp3 .add( 1);j

55、p3 .add( 2);this .setLayout( new BorderLayout();this.add( jp4 , BorderLayout.NORTH );this.add( jp2 , BorderLayout.CENTER);this.add( jp3 , BorderLayout.SOUTH);publicvoidacti on Performed(Acti on Eve nt e) if (e.getSource() =1) Stri ng Emp no =jtf1 .getText();String Ename =jtf2 .getText();String Consequenee = ch .getSelectedltem();/先获取上次考核记录Stri ng sql = "select Con seque nee from Appraisal where Emp no =?"Stri ng paras = Emp no ;Stri ng Oldl nfo =III!try sqh = new SqlHelper();ResultSet rs = sqh .queryExecute(sql, paras);rs.n ext();OldI nfo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论