




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JAVA程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 職工工資管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 學(xué)院名稱: 專業(yè)班級(jí): 姓 名: 學(xué) 號(hào): 目錄一 需求分析。3二 概要設(shè)計(jì)。3三 詳細(xì)設(shè)計(jì)。5 3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)。3 3.2 模塊及窗體設(shè)計(jì)。3 3.2.1 數(shù)據(jù)庫(kù)模塊設(shè)計(jì)。53.2.2 用戶登錄識(shí)別模塊。63.2.3管理員模塊。 8 職工基本信息管理。 9 職工工資管理。203.2.4 普通用戶模塊。 28 職工信息。283.2.5 系統(tǒng)管理模塊。153.2.5 主窗體菜單設(shè)計(jì)。15四 軟件測(cè)試。36五 總結(jié)。36參考資料:。17一 需求分析 本系統(tǒng)的主要目的就是實(shí)現(xiàn)職工工資管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),使職工工資管理工作更加容易
2、, 高效地管理企業(yè)職工工資,從而提高工作效率,降低管理成本.二 概要設(shè)計(jì)/*概要設(shè)計(jì)階段主要是粗略描述整個(gè)軟件的框架,并從業(yè)務(wù)的角度描述軟件的模塊、工作流程等。項(xiàng)目的成功取決于設(shè)計(jì)的好壞,而概要設(shè)計(jì)則是整個(gè)設(shè)計(jì)的關(guān)鍵部分。概要設(shè)計(jì)的主要任務(wù)是將用戶的需求劃分為不同的功能,然后將這些功能細(xì)分成模塊,并給模塊一些規(guī)則約束,以達(dá)到各個(gè)模塊之間可以相互交流的目的。概要設(shè)計(jì)關(guān)乎到系統(tǒng)的整體架構(gòu),因此想做好一個(gè)概要設(shè)計(jì),不僅僅要熟悉用戶的業(yè)務(wù)流程,還要具備相當(dāng)豐富的設(shè)計(jì)經(jīng)驗(yàn)。2.1 概要設(shè)計(jì)的原則概要設(shè)計(jì)是根據(jù)系統(tǒng)分析的需求和工作環(huán)境的情況對(duì)整個(gè)軟件的總體結(jié)構(gòu)進(jìn)行大致的設(shè)計(jì)。概要設(shè)計(jì)要堅(jiān)持以下幾個(gè)原則。(
3、1)細(xì)分原則:軟件系統(tǒng)都是由很多不同的模塊組成,當(dāng)設(shè)計(jì)一套軟件時(shí),要先將所有的功能分解。解決復(fù)雜問(wèn)題的方法是將其分解成幾個(gè)小問(wèn)題,一個(gè)個(gè)來(lái)解決。(2)提高代碼重用性:在面向?qū)ο笤O(shè)計(jì)中,首先考慮的就是代碼的重用,一個(gè)好的設(shè)計(jì),將來(lái)在升級(jí)換代時(shí)不需要太大的改動(dòng),節(jié)省了人力物力。(3)從上而下層層分析:概要設(shè)計(jì)要從整體出發(fā),逐個(gè)剖析軟件的功能,從上而下,先分析系統(tǒng)總的功能,然后一步步細(xì)分,直到最小的功能模塊。(4)一致性原則:概要設(shè)計(jì)要求所有功能模塊在定義時(shí)使用統(tǒng)一的規(guī)范。(5)提高獨(dú)立性,減少耦合:各個(gè)模塊與模塊之間盡量減少關(guān)聯(lián),否則修改一個(gè)地方就會(huì)引起其他多處的變動(dòng),不符合面向?qū)ο蟮脑瓌t。一般情
4、況下,對(duì)類封裝后,只允許對(duì)類進(jìn)行擴(kuò)展,而不能修改,而封裝的類必須具有單一職責(zé),既理論情況下不允許兩個(gè)類共同完成一個(gè)功能。(6)模塊的大小要盡量適中:不是結(jié)構(gòu)算法越復(fù)雜的模塊越好,模塊的大小要根據(jù)實(shí)際工作目標(biāo)和其他類的耦合緊密程度來(lái)決定。經(jīng)驗(yàn)表明,一個(gè)模塊的規(guī)模不應(yīng)過(guò)大,模塊的總行數(shù)應(yīng)控制在10100行的范圍內(nèi),最好為3060行,這樣理解和閱讀都較方便。過(guò)長(zhǎng)的模塊往往是分解不充分的表現(xiàn),會(huì)增加閱讀理解的難度;但小規(guī)模太多也會(huì)使模塊之間聯(lián)系變得復(fù)雜,增大系統(tǒng)在模塊調(diào)用時(shí)傳遞信息所花費(fèi)的開(kāi)銷。由于概要設(shè)計(jì)是整個(gè)設(shè)計(jì)的重中之重,牽一發(fā)而動(dòng)全身,所以要努力做一個(gè)好的概要設(shè)計(jì),才能在今后軟件開(kāi)發(fā)過(guò)程中不再
5、反復(fù)?,F(xiàn)在軟件行業(yè)流行模式化驅(qū)動(dòng)設(shè)計(jì),將一些市場(chǎng)上比較成功的模式拿來(lái)用在自己的設(shè)計(jì)中。2.2 將用戶需求模塊化根據(jù)概要設(shè)計(jì)的原則來(lái)分析一下本項(xiàng)目的用戶需求,并最終轉(zhuǎn)化成用程序語(yǔ)言描述的模塊。什么樣的需求才是一個(gè)模塊?模塊應(yīng)該具備如下3個(gè)特征。(1)輸入和輸出:模塊必須能被調(diào)用并且正確的返回調(diào)用,而且調(diào)用都是相對(duì)一個(gè)對(duì)象而言,這是模塊獨(dú)立性的一個(gè)體現(xiàn)。(2)處理功能:模塊必須可以對(duì)調(diào)用的輸入數(shù)據(jù)進(jìn)行靈活的處理,并為輸出準(zhǔn)備好處理結(jié)果。(3)程序代碼:用來(lái)實(shí)現(xiàn)模塊功能的源代碼。2.3 確定系統(tǒng)最終模塊概要設(shè)計(jì)中最重要的就是確定此項(xiàng)目包括哪些模塊。根據(jù)上兩節(jié)講述的設(shè)計(jì)原則和模塊特征,將用戶需求轉(zhuǎn)化為
6、下面的模塊。*/(1)流程圖設(shè)計(jì)2.2 模塊設(shè)計(jì)1 數(shù)據(jù)庫(kù)設(shè)計(jì)模塊2 用戶登錄識(shí)別模塊3 用戶信息管理模塊4 職工信息管理模塊2.2.1 程序功能描述1. 程序運(yùn)行之后首先彈出歡迎窗口,繼而進(jìn)入登陸界面2. 登陸界面的通過(guò)用戶密碼驗(yàn)證進(jìn)入操作3. 密碼輸入正確后轉(zhuǎn)入管理員主菜單,就可以選擇對(duì)職工基本信息和工資進(jìn)行計(jì)算、修改、添加或者查詢或退出后回到主菜單。4. 密碼輸入正確后轉(zhuǎn)入普通用戶主菜單,就可以選擇對(duì)自身基本信息和工資進(jìn)行計(jì)算或者查詢或退出后回到主菜單。5. 每個(gè)功能模塊都有退出的功能,回到主菜單。6. 點(diǎn)擊主菜單的退出按鈕,退出系統(tǒng)。三 詳細(xì)設(shè)計(jì)3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)名稱:emplo
7、yee 表名:user, employ,salary表user:存放登陸用戶的用戶名和密碼表employ:存放職工基本信息職工表(employee)字段名類型備注EmployIDchar(20)職工號(hào)EmployNamechar(30)Not nullEmploySexchar(2)性別'男' 或者'女'EmployAgeint年齡>0EmployDeptchar(30)部門EmployAdchar(50)住址EmpoyJobChar(20)職務(wù)Not nullEmployPhInt電話號(hào)工資表(salary)字段名類型備注EmployIDchar(20)
8、職工號(hào)Not nullEmbaseSalaryInt基本工資>=0EmAddSalaryint獎(jiǎng)金EmSubSalaryint罰金SalaryCardint工資卡Not nullRealSalaryint實(shí)發(fā)工資Not null3.2 模塊及窗體設(shè)計(jì)3.2.1 數(shù)據(jù)庫(kù)模塊設(shè)計(jì)將數(shù)據(jù)庫(kù)的連接包裝在一個(gè)DBConnect類中,以便其他模塊能夠輕松調(diào)用,避免每次重寫數(shù)據(jù)庫(kù)連接代碼。下表是他的基本屬性文件名成員變量成員方法database.javapublic static Connection cn;public static Statement st; public static Resul
9、tSet rs;public static void closeConn(Connection conn);public static Connection getConn() throws Exception代碼如下:/創(chuàng)建數(shù)據(jù)庫(kù)連接類DBConnectpackage Java_Design;import java.sql.*;public class JDBConnect/靜態(tài)方法提高數(shù)據(jù)庫(kù)的連接效率public static Connection getConn() throws Exception/加載JDBC驅(qū)動(dòng)Class.forName("com.microsoft.sq
10、lserver.jdbc.SQLServerDriver");return DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;" +"databasename=SalaryManagement","sa","1sjk");/關(guān)閉連接 public static void closeConn(Connection conn) if(conn != null) try conn.close(); catch (Exception e) e.
11、printStackTrace(); /關(guān)閉執(zhí)行對(duì)象public static void closeStatement(Statement stmt) if(stmt != null) try stmt.close(); catch (Exception e) e.printStackTrace(); /關(guān)閉結(jié)果集public static void closeResultSet(ResultSet rs) if(rs != null) try rs.close(); catch (Exception e) e.printStackTrace(); 3.2.2 用戶登錄識(shí)別模塊下表其他的基本屬
12、性文件名成員變量成員方法landing1.javaJLabel jlabel2=new JLabel("用戶ID:");JLabel jlabel3=new JLabel("密 碼:");JTextField text1 = new JTextField(); public landing1() 判斷用戶名和密碼是否正確的成員方法代碼: private class BHandler implements ActionListener public void actionPerformed(ActionEvent e) name=text1.getText
13、(); if (e.getSource()=button1) if(text1.getText().trim().equals("")| text2.getText().trim().equals("") JOptionPane.showMessageDialog(null,"信息不能為空!"); try ResultSet rs1=st.executeQuery("select * from Employee where EmployID='"+text1.getText()+"'&qu
14、ot;); if(rs1.next() ) Name=rs1.getString("EmployName").trim(); if(text2.getText().equals(rs1.getString("EmployPassword").trim() if(mana.isSelected() if(rs1.getString("EmployJob").trim().equals("管理員") dispose(); Management Management1 = new Management(rs1.getSt
15、ring("EmployName").trim(); Management1.setVisible(true); else JOptionPane.showMessageDialog(null,"非管理員!"); else if(pers.isSelected()/j普通用戶 dispose(); Person Person1 = new Person(rs1.getString("EmployName").trim(),rs1.getString("EmployID").trim(); Person1.setVi
16、sible(true); else JOptionPane.showMessageDialog(landing1.this,"password error!"); else JOptionPane.showMessageDialog(landing1.this,"登錄超時(shí)!沒(méi)有這個(gè)用戶!"); catch(Exception ex) /利用消息對(duì)話框提示失敗 JOptionPane.showMessageDialog(landing1.this,"登錄超時(shí)!沒(méi)有這個(gè)用戶!"); text1.setText("");
17、 text2.setText(""); else if (e.getSource()=button2) text1.setText(" "); text2.setText(" "); else if(e.getSource()=jMenuItem1)/上頁(yè)dispose(); index m= new index(); m.setVisible(true); else if(e.getSource()=jMenuItem4)/退出 System.exit(0); 3.2.3 管理員模塊下表其他的基本屬性文件名成員變量成員方法Manag
18、ement.javaJMenu jMenu0=new JMenu("系統(tǒng)_管理員界面");/菜單JMenuItem jMenuItem1=new JMenuItem("主頁(yè)");/子菜單JButton addButton = new JButton(""); private class BHandler implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=jMenuItem1)/主頁(yè)public Management
19、(String name)代碼:public Management(String name)/傳過(guò)來(lái)管理員的nameName=name;setTitle("Welcome Management_"+Name);/ 設(shè)置窗體標(biāo)題 setSize(800, 600); setBounds(100, 100, 550, 340);/ 設(shè)置窗體位置 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setContentPane(contentPane);/ 設(shè)置窗體內(nèi)容面板 BHandler h
20、=new BHandler();/為組件注冊(cè)監(jiān)聽(tīng)器 indexBackgroundP backgroundPanel = new indexBackgroundP();/ 創(chuàng)建背景面板 backgroundPanel.setImage(getToolkit().getImage( getClass().getResource("3.jpg");/ 設(shè)置面板背景圖片 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5); contentPane.setLayout(new BorderLayout(0, 0);/BorderLay
21、out是用東西南北和中央 Button1.setToolTipText("查看所有職工資料");/用來(lái)設(shè)置鼠標(biāo)停留時(shí)顯示提示信息的 Button1.setIcon(new ImageIcon(Management.class.getResource("5.png"); addButton.setToolTipText("增添職員");/用來(lái)設(shè)置鼠標(biāo)停留時(shí)顯示提示信息的 addButton.setIcon(new ImageIcon(Management.class.getResource("add.jpg"); t
22、oolBar.add(addButton); subButton.setToolTipText("刪除資料"); subButton.setIcon(new ImageIcon(Management.class.getResource("sub.png"); toolBar.add(subButton); resetButton.setToolTipText("修改信息"); resetButton.setIcon(new ImageIcon(Management.class.getResource("reset.png&q
23、uot;); toolBar.add(resetButton); findButton.setToolTipText("查找職員"); findButton.setIcon(new ImageIcon(Management.class.getResource("find1.jpg"); toolBar.add(findButton); jMenuBar1.add(jMenu0); jMenu0.add(jMenuItem1);/主頁(yè) jMenu0.add(jMenuItem3);/退出 jMenu0.add(jMenuItem2);/幫助 setJMen
24、uBar(jMenuBar1); setIconImage(Toolkit.getDefaultToolkit().getImage("4.png"); contentPane.add(toolBar, BorderLayout.NORTH); contentPane.add(Button1,BorderLayout.WEST); contentPane.add(backgroundPanel); jMenuItem1.addActionListener(h);jMenuItem2.addActionListener(h);jMenuItem3.addActionListe
25、ner(h); Button1.addActionListener(h);subButton.addActionListener(h);findButton.addActionListener(h); addButton.addActionListener(h);resetButton.addActionListener(h);private class BHandler implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=jMenuItem1)/主頁(yè) dispose();
26、index h= new index(); h.setVisible(true); /frame.dispose(); else if(e.getSource()=jMenuItem2)/幫助 int i=0; dispose(); help h1=new help(Name,i,"");/姓名 權(quán)限 編號(hào) h1.setVisible(true); else if(e.getSource()=jMenuItem3)/退出 System.exit(0); else if(e.getSource()=Button1)/ dispose(); M_reset rese=new M
27、_reset(Name); rese.setVisible(true); else if(e.getSource()=addButton) /增 dispose(); Add_person fram1= new Add_person(Name); fram1.setVisible(true); else if(e.getSource()=subButton)/刪 dispose(); Sub_person su=new Sub_person(Name); su.setVisible(true); else if(e.getSource()=resetButton)/改 dispose(); R
28、eset_person re= new Reset_person(Name); re.setVisible(true); else if(e.getSource()=findButton)/查 dispose(); Find_person2 fin= new Find_person2(Name); fin.setVisible(true); 3.2.3.1 下表其他的基本屬性文件名成員變量成員方法Add_person.javaJMenuItem jMenuItem2=new JMenuItem("回到主頁(yè)");/子菜單JLabel jlabel1=new JLabel(&q
29、uot;添加職工基本信息");JButton button2=new JButton("<返回上頁(yè)");JLabel jlabel2=new JLabel("編號(hào):"); private class BHandler implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=jMenuItem1)/主頁(yè)public Add_person(String N)代碼:public Add_person(String N) Name=
30、N;setTitle("Welcome Person_Reset_"+Name);/ 設(shè)置窗體標(biāo)題 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 350);/ 設(shè)置窗體位置 setContentPane(contentPane);/ 設(shè)置窗體內(nèi)容面板 contentPane.setLayout(new BorderLayout(0, 0); indexBackgroundP backgroundPanel = new indexBackgroundP();/ 創(chuàng)建背景面板 b
31、ackgroundPanel.setImage(getToolkit().getImage( getClass().getResource("666.jpg");/ 設(shè)置面板背景圖片 jlabel1.setBounds(10,-20,300,120); jlabel2.setBounds(30,65,80,60); text1.setBounds(80,80,120,30); jlabel3.setBounds(220,65,80,60); man.setBounds(270,80,60,30);women.setBounds(325,80,60,30); jlabel7.
32、setBounds(30,105,80,60); text7.setBounds(80,120,120,30);/姓名 jlabel8.setBounds(220,105,80,60); text8.setBounds(270,120,120,30);/年齡 jlabel4.setBounds(30,145,80,60); text3.setBounds(80,160,120,30);/住址 jlabel5.setBounds(220,145,80,60); text4.setBounds(270,160,120,30);/聯(lián)系電話 jlabel6.setBounds(30,190,80,60
33、); text2.setBounds(80,205,120,30);/部門 jlabel10.setBounds(220,190,80,60); text10.setBounds(270,205,120,30); jlabel9.setBounds(30,235,80,60); text9.setBounds(80,245,120,30);/職務(wù) button2.setBounds(355,10,70,30);button2.setToolTipText("返回上頁(yè)!"); button1.setBounds(270,245,120,30); jlabel1.setFont
34、(new Font("Serif",Font.PLAIN,30); jlabel2.setFont(new Font("Serif",Font.PLAIN,20); jlabel3.setFont(new Font("Serif",Font.PLAIN,20); jlabel4.setFont(new Font("Serif",Font.PLAIN,20); jlabel5.setFont(new Font("Serif",Font.PLAIN,20); jlabel6.setFont(new
35、Font("Serif",Font.PLAIN,20); jlabel7.setFont(new Font("Serif",Font.PLAIN,20); jlabel8.setFont(new Font("Serif",Font.PLAIN,20); jlabel9.setFont(new Font("Serif",Font.PLAIN,20); jlabel10.setFont(new Font("Serif",Font.PLAIN,20); button1.addActionListene
36、r(h); button2.addActionListener(h); /button4.addActionListener(h); contentPane.add(jlabel1); contentPane.add(jlabel2); contentPane.add(jlabel3); contentPane.add(jlabel4); contentPane.add(jlabel5); contentPane.add(jlabel6); contentPane.add(jlabel7); contentPane.add(jlabel8); contentPane.add(jlabel9);
37、 contentPane.add(jlabel10); contentPane.add(button2); contentPane.add(text1); contentPane.add(text2); contentPane.add(text3); contentPane.add(text4); contentPane.add(text7); contentPane.add(text8); contentPane.add(text9); contentPane.add(text10); buttonGroup.add(man);buttonGroup.add(women); contentP
38、ane.add(man);contentPane.add(women); contentPane.add(button1); contentPane.add(backgroundPanel);/ 把背景面板添加到窗體內(nèi)容面板 / contentPane.setOpaque(true);contentPane.add(button4); try/調(diào)用初始化方法Init();catch(Exception exception)exception.printStackTrace(); private class BHandler implements ActionListener public vo
39、id actionPerformed(ActionEvent e) if(e.getSource()=button1) /獲取用戶輸入的信息 String EmployID=text1.getText(); String EmployName=text7.getText(); String EmploySex="" if(man.isSelected() EmploySex+="男" if(women.isSelected() EmploySex+="女" String EmployAge=text8.getText(); Strin
40、g EmployAd=text4.getText(); String EmployPhone=text2.getText(); String EmployPassword=text10.getText(); String EmployDept=text3.getText(); String EmployJob=text9.getText(); text11=new JTextField(text1.getText(); try /設(shè)置日期格式 st.execute("set dateformat ymd"); /利用st對(duì)象執(zhí)行SQL語(yǔ)句,進(jìn)行插入操作 st.execute
41、Update("insert into Employee values('"+EmployID+"','"+EmployName+"','"+EmploySex+"','"+EmployAge+"','"+EmployDept+"','"+EmployAd+"','"+EmployJob+"','"+EmployPho
42、ne+"','"+EmployPassword+"')"); dispose(); Add_Salary frame=new Add_Salary(text11.getText(),Name); frame.setVisible(true); catch(Exception ex) /利用消息對(duì)話框提示異常的信息 JOptionPane.showMessageDialog(Add_person.this,"職工添加失敗!"); ex.printStackTrace(); else if(e.getSource(
43、)=button2) /String EmployID=; dispose(); Management frame=new Management(Name); frame.setVisible(true); 下表其他的基本屬性文件名成員變量成員方法Find_person2.javaJMenuItem jMenuItem2=new JMenuItem("回到主頁(yè)");/子菜單JLabel jlabel1=new JLabel("添加職工基本信息");JButton button2=new JButton("<返回上頁(yè)");JLab
44、el jlabel2=new JLabel("編號(hào):"); private class BHandler implements ActionListener public void actionPerformed(ActionEvent e) if(e.getSource()=jMenuItem1)/主頁(yè)public Find_person2(String N)代碼:public class Find_person2 extends JFrameConnection con;/聲明連接數(shù)據(jù)庫(kù)對(duì)象Statement st;/聲明SQL語(yǔ)句對(duì)象 JPanel contentPa
45、ne; JMenuBar jMenuBar1=new JMenuBar();/菜單條BHandler h=new BHandler();/為組件注冊(cè)監(jiān)聽(tīng)器JMenu jMenu0=new JMenu("系統(tǒng)");/菜單JMenuItem jMenuItem1=new JMenuItem("回到上頁(yè)");/子菜單JMenuItem jMenuItem2=new JMenuItem("回到主頁(yè)");/子菜單JMenuItem jMenuItem3=new JMenuItem("幫助");/子菜單JMenuItem jM
46、enuItem4=new JMenuItem("退出");/子菜單String select,Name;JButton FINDButton=new JButton();JScrollPane scrollPane1 = new JScrollPane(); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel3 = new JPanel(); JComboBox jcomboBox; ButtonGroup buttongroup=new ButtonGroup(); JRadio
47、Button person=new JRadioButton("個(gè)人信息"); JRadioButton salary=new JRadioButton("薪水"); JTextField text1 = new JTextField("輸入查找信息"); String selects="職工編號(hào)","姓名","職務(wù)","薪水" JTable table1 = new JTable();Find_person2(String s1)Name=s1; set
48、Title("Welcome Find_person_"+Name);/ 設(shè)置窗體標(biāo)題 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 690, 400);/ 設(shè)置窗體位置 contentPane = new JPanel();/ 創(chuàng)建內(nèi)容面板 setContentPane(contentPane);/ 設(shè)置窗體內(nèi)容面板 contentPane.setLayout(new BorderLayout(0, 0); contentPane.setBorder(new EmptyBorder(
49、5, 5, 5, 5); contentPane.setLayout(new GridLayout(3, 1, 5, 5); jcomboBox=new JComboBox(selects); jcomboBox.setMaximumRowCount(4); jcomboBox.setSelectedIndex(0); jcomboBox.addItemListener(new Handler(); jcomboBox.setSize(300, 20); buttongroup.add(salary); buttongroup.add(person); / panel1.setLayout(new BorderLayout(0, 0); panel2.setLayout(new BorderLayout(0, 0); panel1.setLayout(new GridLayout(2, 2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年塔城貨運(yùn)從業(yè)資格證好考嗎
- 公務(wù)用車社會(huì)化定點(diǎn)租賃合同
- 2025年安徽工貿(mào)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完美版
- 任務(wù)5.1.3 已知高程放樣
- 2025年安徽揚(yáng)子職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)及完整答案一套
- 2025年保險(xiǎn)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及完整答案1套
- 招標(biāo)投標(biāo)合同管理論文
- 項(xiàng)目進(jìn)展與工作總結(jié)報(bào)告
- 遷都太原可行性研究報(bào)告
- 人防設(shè)備回收合同范本
- 2輸變電工程施工質(zhì)量驗(yàn)收統(tǒng)一表式(變電工程土建專業(yè))-2024年版
- QCT457-2023救護(hù)車技術(shù)規(guī)范
- 【23精品】蘇少小學(xué)美術(shù)三下教案全冊(cè)
- 房屋租賃(出租)家私清單
- 計(jì)算機(jī)技術(shù)碩士專業(yè)學(xué)位授權(quán)點(diǎn)申報(bào)研究演示課件(PPT 39頁(yè))
- 剪紙藝術(shù)-認(rèn)識(shí)剪紙
- 駕駛員違規(guī)違章學(xué)習(xí)記錄表
- 簡(jiǎn)易瞬態(tài)工況法1
- 中國(guó)鐵路總公司環(huán)境保護(hù)管理辦法(鐵總計(jì)統(tǒng)〔2015〕260號(hào))
- 技術(shù)分析介紹教程課件
- 汽車新能源汽車產(chǎn)業(yè)專利趨勢(shì)分析
評(píng)論
0/150
提交評(píng)論