面向?qū)ο蟪绦蛟O計課程設計_第1頁
面向?qū)ο蟪绦蛟O計課程設計_第2頁
面向?qū)ο蟪绦蛟O計課程設計_第3頁
面向?qū)ο蟪绦蛟O計課程設計_第4頁
面向?qū)ο蟪绦蛟O計課程設計_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟪绦蛟O計課程設計報告題 目: 專 業(yè):班 級: 學 號: 姓 名: 指導老師: 時 間:一、課程設計題目及所涉及知識點設計題目是“java通訊錄”,所涉及的知識點主要是:1、 利用Java圖形界面進行對通訊錄的整體界面設計,調(diào)用java.swing包里面的組件,如按鈕(Jbutton)、文本框(JtextFrield)、標簽(JLableX文本域(JTextAreaX面板(JPanel)2、 對組件進行布局管理,調(diào)用Java、awt包中的GridLayout和BorderLayout類實現(xiàn)按鈕、標簽、文本框、及文本域的布局。3、 利用Jframe類中的getContentPane().add()方法進行添加組件,形成具體的界面。4、 使用ActionListener類進行事件的監(jiān)聽。4、利用數(shù)據(jù)庫的管理對通訊錄的內(nèi)容進行操作,調(diào)用java.sql包,通過加載JDBC驅(qū)動程序、創(chuàng)建數(shù)據(jù)庫的連接、創(chuàng)建Statement.執(zhí)行Statement.關閉數(shù)據(jù)庫的連接等操作來實現(xiàn)其功能。二課程設計思路設計思路:1、 要實現(xiàn)有界面的通訊錄,首先是對于主界面的創(chuàng)建,里面具體包含標簽、文本框、按鈕、文本域等組件。調(diào)用Jlabel(Stringtext)方法,然后根據(jù)所需要的通訊錄信息確定標簽上顯示內(nèi)容具體分別為編號、姓名、性別、電話、Email、地址。對于每個標簽的后面跟著一個文本框(JtextFrield())用來寫對應標簽內(nèi)容的數(shù)據(jù),其次就是對于按鈕(JButton(Stringtext))上面顯示的內(nèi)容根據(jù)所需要進行的操作進行修改,具體內(nèi)容為增加、刪除、查詢、顯示所有。調(diào)用JtextArea類來顯示進行每個操作后應出現(xiàn)的信息。2、 調(diào)用GridLayout、BordLayout和Jpanel類,利用GridLayout(4,4)布局通過面板的add()方法依次對標簽、文本框、按鈕進行添加,然后利用另一個面板對于文本域的添加,最后用BordLayout布局添加到容器中形成界面。3、 對按鈕添加監(jiān)聽器(ActionListener),分別對功能進行操作,在刪除和查找的時候分別出現(xiàn)另一個界面,分別是對姓名的刪除和查找工作。4、 利用電腦建立一個電話本的數(shù)據(jù)庫文件,然后用數(shù)據(jù)源(ODBC)進行對數(shù)據(jù)庫文件的添加,在程序過程中利用加載Jdbc-Odbc橋馬區(qū)動程序,和DriveManager.getConnection()進行數(shù)據(jù)庫的連接工作,同時調(diào)用SQL語句和執(zhí)行SQL語句(executeQuery、executeUpdate)對功能進行操作管理。三課程設計中遇到的難點及解決辦法1、 首先是對于整體界面的建立,遇到的就是布局問題,不確定該用幾個面板,然后通過進行反復嘗試,最終完善了界面的設計。2、 在數(shù)據(jù)庫操作中,建立連接倒是完成了,但是對于操作過程總是出現(xiàn)錯誤,主要是對于executeQuery、executeUpdate里面參數(shù)的處理不到位,然后通過查閱書籍,和通過上網(wǎng)搜索等,進而達成了通訊錄的目的。通過這些天對通訊錄的建立,讓我了解到了程序的重要性,它不僅僅是一種代碼,而是因為它的出現(xiàn)讓我們的生活得到了更大的改善,因此我也對于一些手機里面的功能不但是對一個功能的認識,我知道它后面是一個強大的代碼,讓我更加對于編程產(chǎn)生了興趣,在這個過程中老師給予我了很大的幫助,豐富了我的知識面,也是通過這個程序,對于所學到的功能進一步得到深刻記憶。我想這是一次很豐富的課程設計,以此我會更加努力進取為進一步的程序編程課程做好準備,更加投入到自己的專業(yè)當中,這不僅僅是一種學習,我應該用實際問題來運用,我想我會看到光亮彼岸、那是我向往已久的地方。五、附錄一主要源程序代碼及運行結果

1、進行Odbc數(shù)據(jù)源加載所創(chuàng)建的名為stu的數(shù)據(jù)庫文件的操作2.主要代碼如下:importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.sql.*;importjavax.swing.*;publicclass誦訊錄extendsJFrameimplementsActionListener{JPanelpanel,panell,panel2;JLabellabel1,label2,label3,label4,label5,label6,label7,label8,label9,label10,label11,label12,display;JButtonbutton1,button2,button3,button4;JTextFieldtext1,text2,text3,text4,text5,text6;TextAreatext;Object[][]b=newObject[800][6];Object[]t={"地址","xingming","電話","email”,"編號","性別"};/***@paramargs*/通訊錄(){text=newTextArea("”,10,60,TextArea.SCROLLBARS_BOTH);pane1=newJPanel(newGridLayout(4,4));label1=newJLabel("編號");label2=newJLabel("性別");label3=newJLabel("地址”);label4=newJLabel("姓名");label5=newJLabel("電話");label6=newJLabel("email");label7=newJLabel("編號");label8=newJLabel("性別");label9=newJLabel("地址”);label10=newJLabel("姓名");label11=newJLabel("電話");label12=newJLabel("email");text1=newJTextField();text2=newJTextField();text3=newJTextField();text4=newJTextField();text5=newJTextField();text6=newJTextField();pane1.add(label1);pane1.add(text1);pane1.add(label4);pane1.add(text2);pane1.add(label2);pane1.add(text3);pane1.add(label5);pane1.add(text4);pane1.add(label6);pane1.add(text5);pane1.add(label3);pane1.add(text6);button1=newJButton("查詢");button2=newJButton("增加");button3=newJButton("刪除");button4=newJButton("顯示所有");panel1=newJPanel(newFlowLayout(FlowLayout.LEFT,40,1));pane1.add(button1);pane1.add(button2);pane1.add(button3);pane1.add(button4);panel2=newJPanel();panel2.add(text);panel1.setSize(200,200);getContentPane().add(pane1,"North");getContentPane().add(panel2,"Center");setSize(450,320);setVisible(true);button2.addActionListener(this);button1.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);}//建立面板和給按鈕加監(jiān)聽器publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub通訊錄±=new通訊錄();}^OverridepublicvoidactionPerformed(ActionEvente){if("查詢".equals(e.getActionCommand())){chaxunj=newchaxun(text);}if("增加".equals(e.getActionCommand())){zengjia1ff=newzengjia1(text1.getText(),text2.getText(),text3.getText(),text4.getText(),text5.getText(),text6.getText(),text1,text2,text3,text4,text5,text6);}if("刪除".equals(e.getActionCommand()))//進行刪除操作{shanchux=newshanchu();}if("顯示所有".equals(e.getActionCommand())){Stringd1="sun.jdbc.odbc.JdbcOdbcDriver";Stringd2="jdbc:odbc:stu";Connectioncon=null;Statementstmt;ResultSetrs;try{Class.forName(d1);}catch(ClassNotFoundExceptione1){System.out.println("無法加載"+e1);}catch(Exceptione2){System.out.println(e2.getMessage());}try{con=DriverManager.getConnection(d2,"","");stmt=con.createStatement();rs=stmt.executeQuery("select*fromstu");while(rs.next()){text.append("編號:"+rs.getString(1)+"\n");text.append("姓名:"+rs.getString(2)+"\n");text.append("性別:"+rs.getString(3)+"\n");text.append("電話號碼:"+rs.getString(4)+"\n");text.append("email:"+rs.getString(5)+"\n");text.append("住址:"+rs.getString(6)+"\n");)//顯示查詢到的圖書信息con.close();//關閉數(shù)據(jù)庫)catch(SQLExceptioneee){System.out.println(eee);}}//TODOAuto-generatedmethodstub}}importjava.awt.TextArea;importjava.io.*;importjava.sql.*;importjavax.swing.JLabel;//進行顯示所有操作publicclass顯示所有{TextAreat;顯示所有(TextAreaa){t=a;Stringd1="sun.jdbc.odbc.JdbcOdbcDriver”;Stringd2="jdbc:odbc:stu";Connectioncon=null;Statementstmt;ResultSetrs;try{Class./or^arne(d1);}catch(ClassNotFoundExceptione1){System.out.println("無法加載"+e1);}catch(Exceptione2){System.out.println(e2.getMessage());}try{con=DriverManager.getConnection(d2,"","");stmt=con.createStatement();rs=stmt.executeQuery("select*fromstu");while(rs.next()){t.append("編號:"+rs.getString(1)+"\n");t.append("姓名:"+rs.getString(2)+"\n");t.append("性別:"+rs.getString(3)+"\n");t.append("電話號碼:"+rs.getString(4)+"\n");t.append("email:"+rs.getString(5)+"\n");t.append("住址:"+rs.getString(6)+"\n");}//顯示查詢到的圖書信息con.close();//關閉數(shù)據(jù)庫}catch(SQLExceptioneee){System.out.println(eee);}}}importjavax.swing.JTextField;importjava.sql.*;publicclasszengjia1{zengjia1(Stringa,Stringb1,Stringc,Stringd,Stringe,Stringf,JTextFielda1,JTextFielda2,JTextFielda3,JTextFielda4,JTextFielda5,JTextFielda6){Stringd1="sun.jdbc.odbc.JdbcOdbcDriver";Stringd2="jdbc:odbc:stu";Connectioncon=null;Statementstmt;try{Class./or^arne(d1);}catch(ClassNotFoundExceptione1){System.out.println("無法加載"+e1);}catch(Exceptione2){System.out.println(e2.getMessage());}try{con=DriverManager.getConnection(d2,"","");stmt=con.createStatement();Stringd3="insertintostuvalues"+"("+ +a+ +","+"'"+b1+"'"+","+"'"+c+"'"+","+"'"+d+"'"+","+"'"+e+"'"+","+"'"+f+"'"+")";intt=stmt.executeUpdate(d3);stmt.close();}catch(SQLExceptione4){System.out.printf(e4.getMessage());}finally{if(con!=null){try{con.close();}catch(Exceptione5){e5.printStackTrace();}a1.setText("");a2.setText("");a3.setText("");a4.setText("");a5.setText("");a6.setText("");}}}}importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.*;importjavax.swing.*;//進行刪除工作publicclassshanchuextendsJFrameimplementsActionListener{JButtonbutton;JTextFieldtext;JLabellable;Choicecchaxun;ResultSetrs;shanchu(){button=newJButton("確定");text=newJTextField();lable=newJLabel("姓名");getContentPane().setLayout(newGridLayout(2,1));getContentPane().add(lable);getContentPane().add(text);getContentPane().add(button);button.addActionListener(this);setSize(150,100);setVisible(true);setLayout(null);}^OverridepublicvoidactionPerformed(ActionEventarg0){Stringd1="sun.jdbc.odbc.JdbcOdbcDriver";Stringd2="jdbc:odbc:stu";Connectioncon=null;Statementstmt;Strings=text.getText();if(s.equals(""))JOptionPane.showMessageDiaLog(this,"請輸入要刪除的姓名","刪除功能",JOptionPane.WARNING_MESSAGE);else{try{Class.forName(d1);}catch(ClassNotFoundExceptione1){System.out.println("無法加載"+e1);}catch(Exceptione2){System.out.println(e2.getMessage());}try{con=DriverManager.getConnection(d2,"","");stmt=con.createStatement();rs=stmt.executeQuery("select*fromstuwhere姓名="+"'"+s+"'");if(!rs.next())JOptionPane.showMessageDiaLog(this,"沒有此人","刪除功能",JOptionPane.WARNING_MESSAGE);else{intn=JOptionPane.showConfirmDiaLog(this,"確認刪除嗎?",”刪除功能”,JOptionPane.YES_NO_OPTION);if(n==JOptionPane.YES_OPTION){stmt.executeUpdate("deletefrombookwherebookName="+"'"+s+"'");JOptionPane.showMessageDiaLog(this,"刪除成功","刪除功能",JOptionPane.INFORMATION_MESSAGE);text.setText("");)elsetext.setText("");con.close();})catch(SQLExceptioneee){System.out.println(eee);}}}}importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.sql.*;importjavax.swing.*;//進行查詢工作publicclasschaxunextendsJFrameimplementsActionListener{JButtonbutton;JTextFieldtext;JLabellable;Choicecchaxun;TextAreat;chaxun(TextAreaa){t=a;button=newJButton("確定");text=newJTextField();lable=newJLabel("姓名");getContentPane().setLayout(newGridLayout(2,1));getContentPane().add(lable);getContentPane().add(text);getContentPane().add(button);button.addActionListener(this);setSize(150,100);setVisible(true);setLayout(null);}^OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubStringd1="sun.jdbc.odbc.JdbcOdbcDriver";Stringd2="jdbc:odbc:stu";Strings=text.getText();Connectioncon=null;Statementstmt;ResultSetrs;if(s.equals(""))JOptionPane.showMessageDiaLog(this,"查詢內(nèi)容不能為 空","查詢系統(tǒng)",JOptionPane.WARNIN

溫馨提示

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

評論

0/150

提交評論