java課程設計(人事管理系統)_第1頁
java課程設計(人事管理系統)_第2頁
java課程設計(人事管理系統)_第3頁
java課程設計(人事管理系統)_第4頁
java課程設計(人事管理系統)_第5頁
免費預覽已結束,剩余31頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、java課程設計(人事管理系統)-標準化文件發布號:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII人事管理系統1. 系統需求分析:3(1) 系統的功能設計3(2) 系統功能結構3(3) 數據庫設計32. 功能模塊開發4(1) 查詢人員信息界面4(2) 添加員工界面4(3) 修改員工信息界面5(4) 刪除員工界面6(5) 員工考核界面6(6) 員工考核歷史記錄界面73. 各個類說明74. 程序代碼11(1) Manager11(2) CardEmploy13(3) SelEmploy14(4) AddEmploy16(5) ReviseEmploy191 UpdDi

2、alog20(6) DelEmploy23(7) AllEmploy25(8) Examine26(9) History30(10) EmployModel31(11) AppraisalModel33(12) SqlHelper36一,系統需求分析:(1)系統的功能設計i員工信息管理:員工信息管理包括對員工基本信息和情況進行查詢、 添加、刪除和修改及部門管理ii員工考核管理:包括對員工的考核情況進行操作,還可以對歷史考核 情況進行瀏覽(2)系統功能結構人事管理的系統結構功能結構如圖所示:基本信息管理v人員考核管理一(3)數據庫設計員工基本表(Employinfo)名稱字段名稱數據類型主鍵非空

3、工號Empnovarchar(lO)YesYes姓名Enamevarchar(lO)Noyes性別Sexvarchar(4)Noyes出生年月BirthdayDatetimeNoYes部門DeptNoChar(10)NoYes職務EjobChar(20)NoYes工資SalfloatNoYes員工考核表(Appraisal)名稱字段名稱數據類型主鍵非空工號Empnovarchar(lO)yesyes考核Consequencevarchar(lO)noyes變更日期RegDatedatetimeNoYes考核歷史記錄(History)名稱字段名稱數據類型主鍵非空流水號JourNoIntYesye

4、s工號Empnovarchar(lO)noyes姓名Enamevarchar(lO)NoYes上次考核Oldlnfovarchar(lO)NoYes本次考核Newlnfovarchar(lO)NoYes變更日期RegDatedatetimeNoYes功能模塊開發(1)查詢人員信息界面實例一個SelEmploy類,當點擊“查詢”時調用EmployModel類的queryEmploy方法實現查詢添加員工界面實例一個AddEmploy類當點擊,添加”時調用EmployModel類的updEmploy方法實現添加功能修改員工信息界面實例一個ReviseEmploy類當點擊"修改,時,先調用L

5、pdDialo彈 跳出一個修改信息對話框,信息修改完畢后,調用 EmployModel類的updEmploy方法實現修改功能5刪除貝工界面實例一個DelEmploy類當點擊。刪除”時調用EmployModel類的updEmploy方法實現刪除功能員工考核界面9實例一個Examine類當點擊璃認”時調用AppraisalModel類的 updAppraisal方法來完成考核功能員工考核歷史記錄界面實例一個History類當點擊時調用AppraisalModel類的 updAppraisal方法來完成考核功能三.各個類說明類之間的關系圖:1. Manager 類Manager類的一個實例,從而生成

6、了人事管理系統的界面,用JSplitPane類 將整個界面分為左右兩個部分。其中左側實現了人事管理系統的功能樹,采用JTree類構建,同時實現了 TreeSelectionListener接口,定義了該接口 所必須實現的 valueChanged(TreeSelectionEvent e)方法 JSplitPane 右邊加 入卡片布局CardEmploy類。當JTree的TreeSelectionEvent事件發生時, 調用CardEmploy的c.show方法 切換不同卡片,實現不同的管理界面,2. CardEmploy 類CardEmploy為卡片布局類的面板,主要功能是添加各個界面的卡片

7、,當JTree的TreeSelectionEvent事件發生時。切換不同的卡片3. EmployModels 2ppraisalModel 類這兩個類繼承了 AbstractTableModel,主要實現的功能是,存放調用 sqlhelper類得到的數據c可以通過調用sqlhelper實現增刪查改功能4. SqlHelper 類主要就是連接數據庫的一些基礎操作是,方便代碼修改,重復使用5. SelEmploy這個類繼承Panel,為“查詢員工”的界面°實現了 Actionlistener接口, 當ActionEvent事件發生時,調用EmployModel類的 queryEmploy

8、方法實現查詢6. AddEmploy、ReviseEmploys DelEmploy 類這些類繼承Pane,分別為“添加員工信息”“修改員工信息”“刪除員工信息"的 界面,這些類實現了 Actionlistener接口,當ActionEvent事件發 生時,調用EmployModel類的updEmploy方法實現添加、查 詢、刪除、功能7. Examine 類這個類繼承Panel,為“考核員工”界面。這個類實現了 Actionlistener接口,當ActionEvent事件發生時,(1)先通過調用AppraisalModel的 queryAppraisal獲取上次考核成績,(2)修

9、改Appraisal表的考核成績(3)再把上次考核成績跟本次考核成績加到History表中8. History這個類主要是把History表中的信息顯示到界面上。10四.程序代碼(1) Managerpackage com, Manager;import j ava,awt.*;import j avax , swing.*;import j avax , swing.event TreeSelectionEvent;import j avax , swing.event , TreeSelectionListener;import j avax swing.tree.*;import j a

10、va , awt , even七.*;public class Manager extends JFrame implements TreeSelectionListener JPanel jp;JSplitPane j s;JScrollPane j sp;JTree tree;DefaultMutabieTreeNode root, tl, t2, tl_l, tl_2, tl_3, 七1_4, tl_5, t2_lzt2_2;CardEmploy ae;EmployModel em;public static void main(String args) Manager manager

11、= new Manager();public Manager() /給樹的各個結點賦值root = new Def aultMutableTreeNode ("人事管理系統”);tl = new DefaultMutableTreeNode ("基本信息管理,,); tl_l = new DefaultMutableTreeNode (”查詢員工”); tl_2 = new Defau工tMutab工eTreeNode (''添力口員工''); tl_3 = new DefaultMutab工eTreeNode (''修改員工

12、信息”); t = new Def aultMutab工eTreeNode (''刪除員工資料”); tl_5 = new DefaultMutableTreeNode (''查詢全體員工”);t2 = new Defau工tMutableTreeNodG ("人員考核管理”); t2_1 = new Def au工tMutableTreeNoda (''人員考核'');t2_2 = new Defau工tMutab工eTremNode:("考核歷史查詢”);tl, add(t1_1);tl.add(tl_2)

13、;tl.add(21_3);tl. add (tl_4);tl add(tl_5);t2.add(t2_l);t2.add(t2_2);root add(tl);root add(t2);tree = new JTree(root);/對樹進行監聽tree addTreeSelectionListener(this);/實例化CardEmploy面板 并加到j splitpane的邊ae = new CardEmploy();j s = new JSplitPane();j s.setLeftComponent(tree);j s.setRightComponent(ae);this , ge

14、tContentPane() .add(j s);this.setTitle ("人事管理系統”);this.setVisible(true);this . setsize(600, 500);this.setDefaultCloseOperationJFrame EXIT_ONCLOSE);public void valueChanged(TreeSelectionEvent e) /獲取點擊結點名稱DefaultMutabieTreeNode dpath = (DefaultMutabieTreeNode) tree getLastSelectedPathComponent();

15、/通過點擊不同結點切換不同界面if (dpath . equals (tl_l) ) ae.c.show(aez "1"); else if (dpath.equals(tl_2) ae . c . show (ae, 112"); else if (dpath. equals (tl_3) ) ae.c.show(ae, "3"); else if (dpath.equals) ae.c.show(ae, H 4"); else if (dpath . equals (tl_5) ) ae.c.show(ae, "5&qu

16、ot;); else if (dpath.equals(t2_l) ae.c.show(aez H 6"); else if (dpath.equals(t2_2) ae.c.show(ae, H7"); (2) CardEmploy /*用卡片布局設置各個界面 /package com.Manager;import j avax , swing , *;import j ava awt.*;public class CardEmp工oy extends PanelCardLayout c;/查詢表 SelEmploy selE; /添加表 AddEmploy addE;/

17、修改員工信息表 ReviseEmploy revE;/刪除員工表格 DelEmploy delE;/所有員工信息 AllEmploy allE;/員工考核表 Examine exaE;/歷史記錄界面 History His; public CardEmploy()/查詢員工表selE = new SelEmploy();/添加員工表 addE = new AddEmploy();/修改員工信息revE = new ReviseEmploy();/刪除員工表格delE = new DelEmploy();/所有員工信息allE =new AllEmploy();/員工考核表exaE = new

18、Examine();/歷史記錄界面His = new History();JPanel 2P = new JPanel();/定義car demploy面板 為卡片布局 /把各個面板加入到C的卡片布局中c = new CardLayout();this setLayout(c);this.add(selE, "1");this.add(addE, "2");this.add(revE,"3");this.add(delE,"4");this.add(allE,"5");this.add(exaE

19、,"6");this . add(His,"7H);SelEmploy* SelEmploy類設置查詢員工界面 /package com.Manager;import j ava.awt.*;import j avax , swing *; import j ava.awt.event.*;public class SelEmploy extends Panel implements ActionListener EmployModel em;JLabel j1;JTextField jtf;JButton jb;JTable j t;JScrollPane j

20、sp;JPanel jpl;public SelEmploy() /北部 jpl = new JPanel(); jl = new JLabaW輸入員工號:”); jtf = new JTextField(20); jb = new JButton ("查詢; /對查詢按鈕監聽 jb addActionListener(this);jpl.add(jl);jpl add(jtf); jpl.addjb);/中部em = new EmployModel(); String paras = ,ln ; em.queryEmploy("select * from Employin

21、fo where 1 = ,paras);jt = new JTable(em);j sp = new JScrollPane(jt);this , setLayout(new BorderLayout();this.add(jplz BorderLayout.NORTH);this , add(j sp, BorderLayout.CENTER);public void actionPerformed(ActionEvent e) if (e.getSource() = jb) String name = this.j tf.getText() .trim();String sql = Ms

22、elect * from Employinfo where Empno - II ,String paras = name ; em = new EmployModel(); em.queryEmploy(sql, paras); /查找成功更新表 j t setModel(em); (4) AddEmploypackage com.Manager;import j ava.awt.*;import j avax , swing.*;import j ava.awt.event.*;public class AddEmploy extends Panel implements ActionLi

23、stener JLabel jlz jll, jl2z jl3z jl4z jl5z jl6z jl7;JButton jblz jb2;JTextField jtf1z jtf2, jtf3, jtf4, jtf5, jtf6, jtf7;JPanel jpl, jp2z jp3z jp4;EmployModel em;public AddEmploy() jll = new JLabel;jl2 = new JLabel ("姓名:”); jl3 = new ”己匕61(,性另1h”); jl4 = new JLabalC出生年月:”); j 15 = new JLabel (&

24、quot; pPf: n);jl6 = new JLaba:L(“職位:”); jl7 = new JLabalC1 工資:”);jtflnewJTextField(20);jtf2newJTextField(20);jtf3=newJTextField(20);jtf4二newJTextField(20);jtf5newJTextField(20);jtf6=newJTextField(20);jtfl=newJTextField(20);jbl = new JButton ("添力口”);jb2 = new JButton (“取肖”); /監聽'添加,'取消,按

25、鈕 jbl addActionListener(this);jb2.addActionListener(this);jpl = new JPanel(new GridLayout(7Z 1);jp2 = new JPanel(new GridLayout(7, 1);jp3 = new JPanel();jpl.add(jll);jpl.add(jl2);jpl.add(j13);jpl.add(jl4);jpl.add(j15);jpl add(j16);jpl.add(jl7);jp2.add(j tf1);jp2 add(j tf2);jp2 add(j tf3);jp2 add(j t

26、f4);jp2 add(j tf5);jp2 add(j tf 6);jp2 add(j tf7);jp3add(jbl);jp3.add(jb2);jp4 = new JPanel(new BorderLayout();jp4.add(jpl, BorderLayout.WEST);jp4.add(jp2z BorderLayout.EAST);jp4.setsize(300, 300);this setLayout(new FlowLayout();this add(jp4);this add(jp3);public void actionPerformed(ActionEvent e)

27、if (e.getSource() = jbl) /調用三mployModel里的updEmp工oy方法,實現對表格的添加 String sql = "insert into EmployinfovaluesString paras = j tf1.getText()z j tf2.getText()z j tf3.getText(),j tf4.getText(), j tf5.getText(),j tf 6.getText(),j tf7.geCText() ;em = new EmployModel();if (em.updEmploy(sql, paras) /當添加新員工

28、成功時,則彈出"添加成功''的對話框 JOptionPane .this,"添力口成功 else if (!em.updEmploy(sql, paras) JOptionPane . showMessageDia2og( this,"添力口失敗/當新員工加入成功后,要把新加入員工的工號加到考核表AppraisalModel temp = new AppraisalModel();String sqll = "insert into Appraisal(Empno) valuesString parasl = j tf1.getText(

29、) ; temp , updAppraisal(sqll, parasl);else if (e.gecSource() = jb2) jtf1.setText("n);jtf2.setText("n);jtf3.setText ("11);jtf4 .setText ("11);jtf5.setText("H);jtfG.setText("H);jtf7.setText("H);(5) ReviseEmploy package com.Manager;/ *修改員工界面*/ import j ava.awt.*;impor

30、t j ava.awt.event *; import j avax swing.*;public class ReviseEmploy extends Panel implements ActionListener JTable jt;JScrollPane j sp;JButton jbl, jb2;JPanel jplz jp2; EmployModel em;JLabel j11;public ReviseEmploy() jll = new JLabel ("修改員工信息”,JLaben . CENTER);j 11. setFont (new Font("宋體”

31、, Font. BOLD, 2 8);jp2 = new JPanel(); jp2.add(jll);em = new EmployModel();String paras = ,ln ;em. queryEmploy ('Select * from Employinfo where 1 = '' ,paras);jt = new JTable(em);j sp = new JScrollPane(jt);jbl = new JButton ("修改”);jb2 = new JBu七七on (刷新");/對兩個按鈕進行監聽 jbl.addActio

32、nListener(this);jb2.addActionListener(this);this , setLayout(new BorderLayout();jpl - new JPanel();jpl add(jbl);jpl add(jb2);this , add(jp2z BorderLayout.NORTH);this , add(j sp, BorderLayout.CENTER);this.add(jplz BorderLayout.SOUTH); public void actionPerformed(ActionEvent e) if (e.getSource() = jbl

33、) int rowNum = this.j t.getSelectedRow();if (rowNum = -1) JOptionPane . showMessageDlalog(this,''請選擇 行”); return;/彈出修改對話框 new UpdDialog(em, rowNum); else if (e.getSource() = jb2) /刷新修改界面中的表格 em = new EmployModel();String parasl = "1" ;em.queryEmploy("select * from Employinfo w

34、here 1 =II,parasl);j t setModel(em); )i UpdDialog package com.Manager;/*彈出修改界面*/import j avax swing , *;import j ava.awt.*;import j ava.awt.event.*;public class UpdDia工og extends JDialog implements ActionListenerJLabel jll, jl2z jl3z jl4z jl5, jl6, jl7;JButton jblz jb2;JTextField jtf1, jtf2z jtf3, j

35、tf4z jtf5, jtf6, jtf7;JPanel jpl, jp2, jp3;public UpdDialog(EmployModel em, int rowNums)jll = new JLabel;jl2 = new JLabel 姓名:”);jl3 = new JLabalL性另h”);jl4 = new JLabel (”出生年月:”);j 15 = new JLabel ("部門:”);jl6 = new JLabal (“職位:”);jl7 = new JLabalC工資:”);jtfl=newJTextField(20);jtf2=newJTextField(3

36、0);jtf3=newJTextField(30);jtf4=newJTextField(30);jtf5=newJTextField(30);jtf6=newJTextField(30);jtf7=newJTextField(30);/初始化但注仝”數據j tf1.setText(String) em.getValueAt(rowNums, 0);j tf1.setEditable(false);j tf2 setText(String) em.getValueAt(rowNums, 1);j tf3.setText(String)j tf4.setText(String)em getVal

37、ueAt(rowNums, 2);em.getValueAt(rowNums, 3);j tf5.setText(String) j tf 6.setText(String) j tf7.setText(String)em getValueAc(rowNums, em getValueAt(rowNums, em getValueAt(rowNums,4);5);6);jbl = new JButton ("修改”);jb2 = new JButton (“取肖”);/對兩個按鈕監聽jbl addActionListener(this);jb2 addActionListener(t

38、his);jpl = new JPanel();jp2 = new JPanel();jp3 = new JPanel();/設置布局jpl.setLayout(new GridLayout(7, 1);jp2 - setLayout(new GridLayout(7, 1);/添加組件jpl.add(jll);jpl.add(jl2);jpl.add(j13);jpl.add(jl4);jpl add(j15);jpl.add(j16);jpl.add(jl7);jp2 add(j tf1);jp2 add(j tf2);jp2 add(j tf3);jp2 add(j tf4);jp2 a

39、dd(j tf5);jp2 add(j tf 6);jp2 add(j tf7);jp3 add(jbl);jp3 add(jb2);this , add(jplz BorderLayout.WEST);this , add(jp2z BorderLayout.CENTER);this add(jp3, BorderLayout.SOUTH);this . setsize(300, 250);this setVisibletrue);this setLocation(200, 200);this.addWindowListener(new WindowAdapter() public void

40、 windowclosing(WindowEvent e) dispose (););public void actionPerformed(ActionEvent e) if (e.getSource() = jbl) /修改員工信息的sql語句,paras為待注入的值String sql = ''update Employinfo set ''+ "Ename = ,Sex = ,Birthday = , DeptNo =,Ej ob = z Sal= where Empno =" ,String paras = j tf2.getTex

41、t(), j tf3.getText(), j tf4.getText(),j tf5.getText()z j tf 6.getText(),j tf7.getText(),j tf1.getText() ;EmployModel temp = new EmployModel();/如果修改語句運行成功則彈出''修改成功對話框if (temp.updEmploy(sql, paras) JOptionPane . showMessageDlaiog(this,“修改成功 ");this dispose (); else if (e.getSource () = jb

42、2) /關閉對話框 this dispose ();(6) DelEmploy/*刪除員工*/package com.Manager;import j avax , swing , *;import j ava awt.*;import j ava.awt.event.*;public class DelEmp工oy extends Panel implements ActionListener JTable jt;JScrollPane j sp;JButton jbl, jb2;JPanel jplz jp2;JLabel j11; EmployModel em;public DelEmp

43、loy() /北部jll = new JLabel (“捌除員工",JLabel, CENTER);j 11. setFont (new Font("黑體”, Font. BOLD, 30);jp2 = new JPanel();jp2.add(jll);/中部em = new EmployModel();String paras = ,ln ;em.queryEmploy("select * from Employinfo where 1 = " ,paras);jt = new JTable(em);j sp = new JScrollPane(jt

44、);/南部jpl = new JPanel();jbl = new JButton ("刪除");jb2 = new JButton (“取肖;jbl.addActionListener(this);jpl.add(jbl);jpl add(jb2);this seCLayout(new BorderLayout();this.add(jp2, BorderLayout.NORTH);this add(j sp, BorderLayout.CENTER); this.add(jpl, BorderLayout.SOUTH);public void actionPerform

45、ed(ActionEvent e) if (e.getSource() = jbl) /返回用戶點中的行int rowNum = this.j t.getSelectedRow();if (rowNum = -1) JOptionPane . showMessageDlaiog (this,''請選擇 行,,);return;/得到學生編號String Empno = (String) em.getValueAt(rowNum, 0);/刪除記錄的sql語句String sql = "delete from Employinfo where Empno = fl ,S

46、tring paras = Empno ;EmployModel temp = new EmployModel(); temp.updEmploy(sql, paras);/刪除員工成功后,更新員工表 em = new EmployModel(); String parasl = "1" ;em.queryEmploy(Hselect * from Employinfo where 1 = VI,parasl);j t.setModel(em); (7) AllEmploy/*遍歷所有員工*/package com.Manager;import j ava.awt.*;im

47、port j avax , swing , *;public class A工工Employ extends Panel EmployModel em;JTable jt;JScrollPane j sp;JLabel j11;JPanel jp;public AllEmploy()/北部jp = new JPanel();jll = new JLabel (, JLabel. CENTER);j 11. setFont (new Font(''黑體", Font. BOLD, 30); jp.addfjll);/中部em = new EmployModel();St

48、ring paras ="1H;em.queryEmploy("select * from Employinfo where 1 / paras);jt = new JTable(em);j sp = new JScrollPane(jt);this , setLayout(new BorderLayout();this.add(jp,BorderLayout.NORTH);this add(j sp,BorderLayout.CENTER);)(8) Examinei *員工考核界面*/package com.Manager;import j ava.awt.*;impo

49、rt j ava.awt.event.*;import j ava , sql ResultSet;import j ava utilVacto;import j ava.sql.*;import j avax , swing.*;public class Examine extends Panel implements ActionListener JLabel jll, jl2z jl3z jl4;JTable jt;JScrollPane j sp;JTextField jtf1, jtf2;Choice ch;JButton jblz jb2;JPanel jpl, jp2z jp3z

50、 jp4;AppraisalModel am;SqlHelper sqh;public Examine() /北部為標題文字jp4 = new JPanel();jll = new JLabal ("員工考核",JLabel. CENTER);j 11. setFont (new Font("黑體", Font. BOLD, 30);jp4.add(jll);/中部am = new AppraisalModel();am.queryAppraisal("selectE . Empno, E , Ename, A. Consequence, A.

51、 RegDate from ''+ HEmployinfo as E,Appraisal as A whereE.Empno=A.Empno");jt = new JTable(am);j sp = new JScrollPane(jt);/監聽讓able點擊表格時獲取點擊的行數并通過鼠標點擊事件給jtf 1, j tf2 賦值j t.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) int rowNum = j t.getSelectedRow();j tf1.set

52、Text(String) am.getValueAt(rowNum, 0);j tf 2 setText ( (String) am. getValueAt; (rowNum, D););jl2 = new JLabel (“工號:");jl3 = new JLabel: H);jl4 = new JLabal 考核,');jtf1 = new JTextField(lO);jtf2 = new JTextField(lO);j tf1.setEditable(false);j tf2.setEditable(false);/實例單選框組件,并賦值ch = new Choic

53、e();chadd (“未考核”);chadd (“不合格”);ch add (“合格”);ch add (“優秀”);jpl = new JPanel();jpl.add(jl2);jpl add(j tf1);jpl.add(j13);jpl.add(j tf2);jpl.add(jl4);jpl add(ch);jp2 = new JPanel(new BorderLayout();jp2.add(j sp, BorderLayout.CENTER);jp2 add(jpl, BorderLayout.SOUTH);/南部jbl = new JBu七七on (''確認&q

54、uot;);jb2 = new JBu七七on (''刷新"); jp3 = new JPanel();jbl.addActionListener(this);jb2.addActionListener(this);jp3 add(jbl);jp3.add(jb2);this , setLayout(new BorderLayout();this.add(jp4, BorderLayout.NORTH);this , add(jp2, BorderLayout.CENTER);this , add(jp3z BorderLayout.SOUTH); public vo

55、id actionPerformed(ActionEvent e) if (e.getSource() = jbl) String Empno = j tf1.getText();String Ename = j tf2.getText();String Consequence = ch.getSelectedltem();/先獲取上次考核記錄String sql = Hselect Consequence from Appraisal where Empno ='' * ,String paras = Empno ;String Oldlnfo = Htry sqh = new SqlHelper();ResultSet r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論