Java學(xué)生信息管理Swing窗體_第1頁(yè)
Java學(xué)生信息管理Swing窗體_第2頁(yè)
Java學(xué)生信息管理Swing窗體_第3頁(yè)
Java學(xué)生信息管理Swing窗體_第4頁(yè)
Java學(xué)生信息管理Swing窗體_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)名稱(chēng):實(shí)驗(yàn)5:綜合性程序設(shè)計(jì)簡(jiǎn)單學(xué)生信息管理系統(tǒng)班級(jí):* 姓名:Zzz 學(xué)號(hào):20151601*一、實(shí)驗(yàn)?zāi)康亩?shí)驗(yàn)內(nèi)容與結(jié)果 (1)任務(wù)描述(1.3與1.4二選一,建議選擇1.4)利用課程所學(xué)知識(shí),設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)單學(xué)生信息管理系統(tǒng),要求如下: 1.1 聲明Student類(lèi),該類(lèi)實(shí)現(xiàn)Serializable接口以表明該類(lèi)可以進(jìn)行序列化。該類(lèi)有姓名、學(xué)號(hào)(long),math、os、java用來(lái)存放對(duì)應(yīng)的成績(jī),在構(gòu)造方法中進(jìn)行姓名、學(xué)號(hào)、課程成績(jī)的賦值。Override由Object繼承來(lái)的toString方法以便以友好格式顯示自己的屬性,格式為:張三 12 os:90 java:90 m

2、ath: 90。 1.2 建立一個(gè)類(lèi),利用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)多個(gè)Student,寫(xiě)完一個(gè)方法在main中寫(xiě)一段測(cè)試代碼,運(yùn)行以保證目前所做工作的正確性。有以下方法: add(Student stu):可以增加新的學(xué)生,并保存在數(shù)據(jù)庫(kù)中。 update(Student stu):可以修改特定的學(xué)生,并保存在數(shù)據(jù)庫(kù)中。 dispAll():可以顯示所有的學(xué)生信息。 findById(long id):可以按照學(xué)號(hào)來(lái)查找,并顯示符合條件的學(xué)生信息,查無(wú)該人的話(huà)顯示錯(cuò)誤信息。 findByName(String name):可以按照姓名查找學(xué)生,找到后顯示其信息,查無(wú)此人顯示錯(cuò)誤信息。 delById(lo

3、ng id):可以按照id刪除學(xué)生的信息,然后顯示找到該人。若查無(wú)此人,顯示相應(yīng)的錯(cuò)誤信息。 1.3 (控制臺(tái)方式)完善應(yīng)用程序,實(shí)現(xiàn)相應(yīng)的功能如下:添加學(xué)生信息、修改指定學(xué)號(hào)的學(xué)生信息、顯示所有學(xué)生信息、按學(xué)號(hào)查找、按姓名查找、按學(xué)號(hào)刪除、按成績(jī)排序和退出。 1.4 (Swing窗體方式)完善應(yīng)用程序,實(shí)現(xiàn)相應(yīng)的功能如下:添加學(xué)生信息、修改指定學(xué)號(hào)的學(xué)生信息、顯示所有學(xué)生信息、按學(xué)號(hào)查找、按姓名查找、按學(xué)號(hào)刪除、按成績(jī)排序和退出。(2)處理思路及關(guān)鍵技術(shù)說(shuō)明(3)程序完整源碼(要求格式規(guī)范,適當(dāng)注釋?zhuān)?)運(yùn)行結(jié)果截圖(按每個(gè)操作分別截圖)(2)處理思路及關(guān)鍵技術(shù)說(shuō)明分三個(gè)模塊:一是 jdb

4、c的代碼,另一個(gè)是 Swing和AWT的代碼,剩下是Student類(lèi)。Jdbc 一共有兩個(gè)類(lèi):DBUtil(連接工具類(lèi))和Sql類(lèi)(處理jdbc功能的靜態(tài)方法)Swing 和AWT一個(gè)有兩個(gè)類(lèi):MyJFrame構(gòu)建總窗口,MyJPanel 對(duì)窗口內(nèi)的面板行修飾。然后就是Student類(lèi)和Main主方法類(lèi)。關(guān)鍵部分:1)在主窗體中add三個(gè)Jpanel,底層和第二層左右三個(gè),右邊的Jpanel實(shí)現(xiàn)cardLayout布局,左邊的Jpanel添加按鈕并添加ActionListener來(lái)實(shí)現(xiàn)對(duì)象的card切換達(dá)到不同按鈕進(jìn)入不同功能面板的目的。2)在MyJPanel類(lèi)中,所有的init方法均傳遞參數(shù)

5、JPanel p,對(duì)傳遞過(guò)來(lái)的Panel進(jìn)行加工修飾,并且調(diào)用Sql里面對(duì)應(yīng)功能的方法。3)Sql中的顯示全部信息的方法中使用了ArrayList來(lái)存儲(chǔ)從studenttbl中讀取的對(duì)象信息,存儲(chǔ)之后為了按照String的方式顯示在JtextArea中,又用了listToString方法,通過(guò)for循環(huán)并追加回車(chē),使每個(gè)對(duì)象都轉(zhuǎn)化為String并在后面加上了回車(chē)(separator),4)在Sql中的查找,刪除,添加都使用了jdbc中的預(yù)處理PreparedStatement在操作完畢后執(zhí)行sts.executeUpdate();5)在Sql排序方法中,把所有的信息都存儲(chǔ)到list中以后,調(diào)用

6、工具類(lèi)Collections.sort:根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M(jìn)行排序。(3)程序完整源碼(要求格式規(guī)范,適當(dāng)注釋?zhuān)ヽlass DBUtilpackage test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil private static String driver;private static String url;private static String username;private static Stri

7、ng password;static driver=com.mysql.jdbc.Driver;url=jdbc:mysql:/localhost:3306/mydb;username=root;password=123456;public static Connection open()try Class.forName(driver);return DriverManager.getConnection(url,username,password);catch (Exception e) e.printStackTrace();return null;public static void

8、close(Connection conn)if(conn!=null)try conn.close(); catch (SQLException e) e.printStackTrace();class Sqlpackage test;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.

9、util.Collections;import java.util.Comparator;import java.util.List;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextArea;public class Sql public static String listToString(List list, char separator) /使list返回String類(lèi)型并加入控制符(換行) StringBuilder sb = new StringBuilder(); fo

10、r (int i = 0; i list.size(); i+) sb.append(list.get(i).append(separator); return sb.toString().substring(0,sb.toString().length()-1);public static List disAll() /打印顯示所有信息/查詢(xún) Connection conn=DBUtil.open();String sql=select id,name,frctionJava,fractionMath,fractionOS from studentTbl;Statement stmt;try

11、 stmt = conn.createStatement();ResultSet rs=stmt.executeQuery(sql);List list=new ArrayList();/遍歷操作while(rs.next()int id=rs.getInt(1);String name=rs.getString(2);double a=rs.getDouble(3);double b=rs.getDouble(4);double c=rs.getDouble(5);Student u=new Student();u.setId(id);u.setName(name);u.setFractio

12、nJava(a);u.setFractionMath(b);u.setFractionOS(c);list.add(u);conn.close();return list; catch (SQLException e) e.printStackTrace();return null;public static void FindByID(long id ,JLabel lblNewLabel )/按ID查找Connection conn=DBUtil.open();ResultSet rs = null;try String sql=select * from StudentTbl where

13、 id=?;PreparedStatement sts=conn.prepareStatement(sql);sts.setLong(1, id);rs=sts.executeQuery();while(rs.next()int i=rs.getInt(1);String name=rs.getString(2);double a=rs.getDouble(3);double b=rs.getDouble(4);double c=rs.getDouble(5);lblNewLabel.setText( | +i+ | +name+ | +a+ | +b+ | +c);catch(Excepti

14、on e) e.printStackTrace();finallytry if(rs.first()!=true)lblNewLabel.setText(查無(wú)此人!); catch (SQLException e) e.printStackTrace(); public static void FindByName(String s, JLabel lblNewLabel) /按Name查找Connection conn=DBUtil.open();ResultSet rs = null;try String sql=select * from StudentTbl where name=?;

15、PreparedStatement sts=conn.prepareStatement(sql);sts.setString(1, s);rs=sts.executeQuery();while(rs.next()int id=rs.getInt(1);String name=rs.getString(2);double a=rs.getDouble(3);double b=rs.getDouble(4);double c=rs.getDouble(5);lblNewLabel.setText( | +id+ | +name+ | +a+ | +b+ | +c);catch(Exception

16、e) e.printStackTrace();finallytryif(rs.first()!=true)lblNewLabel.setText(查無(wú)此人!); catch (SQLException e) e.printStackTrace(); public static void DeleteByID(long id)/刪除Connection conn=DBUtil.open();PreparedStatement sts=null;int a=0;try sts=conn.prepareStatement(delete from StudentTbl where id=?);sts.

17、setLong(1, id);a=sts.executeUpdate();if(a0)JOptionPane.showMessageDialog(null, 刪除成功!, WO, JOptionPane.INFORMATION_MESSAGE);if(a=0)JOptionPane.showMessageDialog(null, 無(wú)此人!, WO, JOptionPane.INFORMATION_MESSAGE);catch(Exception e) e.printStackTrace();DBUtil.close(conn);public static void Sort(JTextArea

18、 ta,int index) /排序/查詢(xún) Connection conn=DBUtil.open();String sql=select id,name,frctionJava,fractionMath,fractionOS from studentTbl;Statement stmt;try stmt = conn.createStatement();ResultSet rs=stmt.executeQuery(sql);List list=new ArrayList();/遍歷操作while(rs.next()int id=rs.getInt(1);String name=rs.getS

19、tring(2);double a=rs.getDouble(3);double b=rs.getDouble(4);double c=rs.getDouble(5);Student u=new Student();u.setId(id);u.setName(name);u.setFractionJava(a);u.setFractionMath(b);u.setFractionOS(c);list.add(u);Collections.sort(list,new Comparator() public int compare(Student o1, Student o2) int i = 1

20、 ; if(index=1) i= (int) (o2.getFractionJava() - o1.getFractionJava(); if(index=2) i = (int) (o2.getFractionMath() - o1.getFractionMath(); if(index=3) i = (int) (o2.getFractionOS() - o1.getFractionOS(); return i; );String s=listToString(list, n);ta.setText(s); catch (SQLException e) e.printStackTrace

21、();DBUtil.close(conn); public static void add(Student stu) /添加Connection conn=DBUtil.open();PreparedStatement sts;try sts = conn.prepareStatement(insert into StudentTbl values(?,?,?,?,?);sts.setLong(1, stu.getId();sts.setString(2, stu.getName();sts.setDouble(3, stu.getFractionJava();sts.setDouble(4,

22、 stu.getFractionMath();sts.setDouble(5, stu.getFractionOS();sts.executeUpdate(); catch (SQLException e) e.printStackTrace();DBUtil.close(conn); public static void UpdateStudent(Student stu)/更新Connection conn=DBUtil.open();try String sql=update studenttbl set name=+stu.getName()+,FrctionJava=+ stu.ge

23、tFractionJava()+,FractionMath=+stu.getFractionMath()+,FractionOS=+stu.getFractionOS()+ where id=+stu.getId()+;PreparedStatement sts=conn.prepareStatement(sql);sts.executeUpdate();catch(Exception e) e.printStackTrace();class Studentpackage test;import java.io.Serializable;public class Student impleme

24、nts Serializableprivate String name;private long id;private double fractionOS;private double fractionJava;private double fractionMath;public String getName() return name;public void setName(String name) = name;public long getId() return id;public void setId(long id) this.id = id;public dou

25、ble getFractionOS() return fractionOS;public void setFractionOS(double fractionOS) this.fractionOS = fractionOS;public double getFractionJava() return fractionJava;public void setFractionJava(double fractionJava) this.fractionJava = fractionJava;public double getFractionMath() return fractionMath;pu

26、blic void setFractionMath(double fractionMath) this.fractionMath = fractionMath;public String toString() return (name+ +id+ Java:+fractionJava+ Math:+fractionMath+ OS:+fractionOS); class MyJFramepackage test;import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.BorderLayout;import java

27、.awt.CardLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import java.awt.Color;import javax.swing.SwingConstants;import javax.swing.JLabel;import java.awt.Font;public class MyJFrame JFrame frame=new JFrame(Demo);/* */pub

28、lic void init() frame.setVisible(true);frame.setBounds(100, 100, 570, 474);/JPanelJPanel panel = new JPanel();panel.setBackground(new Color(153, 204, 255);frame.getContentPane().add(panel, BorderLayout.CENTER);panel.setLayout(null);/Panel X YJPanel panel_x = new JPanel();panel_x.setBackground(new Co

29、lor(153, 204, 255);panel_x.setBounds(0, 0, 141, 435);panel.add(panel_x);panel_x.setLayout(null);JPanel panel_y = new JPanel();panel_y.setBackground(new Color(255, 255, 255);panel_y.setBounds(140, 0, 414, 435);panel.add(panel_y);/功能按鈕/+JButton b0 = new JButton(Home);b0.setHorizontalAlignment(SwingCon

30、stants.LEADING);b0.setBackground(new Color(255, 255, 255);b0.setBounds(34, 21, 66, 23);panel_x.add(b0);JButton b1 = new JButton(u663Eu793A);b1.setBackground(new Color(255, 255, 255);b1.setBounds(22, 66, 93, 23);panel_x.add(b1);JButton b2 = new JButton(u67E5u627E(ID);b2.setBackground(new Color(255, 2

31、55, 255);b2.setBounds(22, 112, 93, 23);b2.setMargin(new Insets(0, 0, 0, 0);panel_x.add(b2);JButton b3 = new JButton(u67E5u627E(Name);b3.setBackground(new Color(255, 255, 255);b3.setBounds(22, 157, 93, 23);b3.setMargin(new Insets(0, 0, 0, 0);panel_x.add(b3);JButton b4 = new JButton(u5220u9664);b4.set

32、Background(new Color(255, 255, 255);b4.setBounds(22, 200, 93, 23);panel_x.add(b4);JButton b5 = new JButton(u6392u5E8F);b5.setBounds(22, 243, 93, 23);b5.setBackground(new Color(255, 255, 255);panel_x.add(b5);JButton b6 = new JButton(u6DFBu52A0);b6.setBounds(22, 290, 93, 23);b6.setBackground(new Color

33、(255, 255, 255);panel_x.add(b6);JButton b7 = new JButton(u66F4u65B0);b7.setBounds(22, 334, 93, 23);b7.setBackground(new Color(255, 255, 255);panel_x.add(b7);JButton bExit = new JButton(u9000u51FA);bExit.setBounds(22, 378, 93, 23);bExit.setBackground(new Color(255, 255, 255);panel_x.add(bExit);/+/=Ca

34、rdLayout cl_panel_y=new CardLayout();/卡片JPanelpanel_y.setLayout(cl_panel_y);JPanel panel_0 = new JPanel();/歡迎界面panel_0.setBackground(new Color(153, 204, 255);panel_y.add(panel_0, c0);panel_0.setLayout(null);JLabel l1 = new JLabel(u6B22u8FCEu4F7Fu7528u5B66u751Fu4FE1u606Fu7BA1u7406u7A0Bu5E8F);l1.setFo

35、nt(new Font(宋體, Font.PLAIN, 16);l1.setHorizontalAlignment(SwingConstants.CENTER);l1.setBounds(37, 33, 317, 66);panel_0.add(l1);JPanel panel_1 = new JPanel();/顯示panel_y.add(panel_1, c1);JPanel panel_2 = new JPanel();/查找panel_y.add(panel_2, c2);JPanel panel_3 = new JPanel();/查找panel_y.add(panel_3, c3)

36、;/MyJPanel.init3(panel_3);JPanel panel_4 = new JPanel();/刪除panel_y.add(panel_4, c4);/MyJPanel.init4(panel_4);JPanel panel_5 = new JPanel();/排序panel_y.add(panel_5, c5);/MyJPanel.init5(panel_5);JPanel panel_6 = new JPanel();/添加panel_y.add(panel_6, c6);JPanel panel_7 = new JPanel();panel_y.add(panel_7,

37、 c7);/MyJPanel.init6(panel_6);/=/按鈕事件/=b0.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) cl_panel_y.show(panel_y, c0););b1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init1(panel_1);cl_panel_y.show(panel_y, c1)

38、;);b2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init2(panel_2);cl_panel_y.show(panel_y, c2););b3.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init3(panel_3);cl_panel_y.show(panel_y, c3););b

39、4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init4(panel_4);cl_panel_y.show(panel_y, c4););b5.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init5(panel_5);cl_panel_y.show(panel_y, c5););b6.ad

40、dActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init6(panel_6);cl_panel_y.show(panel_y, c6););b7.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init7(panel_7);cl_panel_y.show(panel_y, c7););bExit.add

41、ActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) System.exit(0););class MyJPanelpackage test;import java.awt.CardLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.List;i

42、mport javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.SwingConstants;import java.awt.Color;class MyJPanel/顯示static void init1(JPanel panel)/JPanel panel=new JPanel();p

43、anel.setBackground(new Color(255, 255, 255);panel.setBounds(0, 0, 373, 382);panel.setLayout(null);JLabel l = new JLabel( =u4E0Bu5217u662Fu6240u6709u67E5u770Bu7684u6240u6709u6570u636Eu4FE1u606F=);/Labell.setFont(new Font(宋體, Font.PLAIN, 14);l.setBounds(15, 10, 336, 29);panel.add(l);JTextArea textArea

44、 = new JTextArea();/TextAreatextArea.setFont(new Font(Monospaced, Font.PLAIN, 15);textArea.setBackground(new Color(255, 255, 255);textArea.setBounds(25, 49, 326, 311);List list=new ArrayList();/轉(zhuǎn)換為Stringlist=Sql.disAll();textArea.append(Sql.listToString(list,n);panel.add(textArea);panel.repaint();/查

45、找IDstatic void init2(JPanel panel)/JPanel panel=new JPanel();panel.setBackground(new Color(255, 255, 255);panel.setBounds(0, 0, 373, 202);panel.setLayout(null);JLabel l1 = new JLabel(輸入查找的ID:);l1.setBounds(15, 39, 201, 35);l1.setFont(new Font(宋體, Font.PLAIN, 15);panel.add(l1);JLabel l2=new JLabel(學(xué)號(hào)

46、 姓名 Java Math OS);l2.setBounds(47, 80, 290, 31);l2.setFont(new Font(宋體, Font.PLAIN, 15);panel.add(l2);JTextField textField = new JTextField();textField.setBounds(208, 39, 72, 35);textField.setColumns(10);panel.add(textField);JLabel l0 = new JLabel();l0.setFont(new Font(宋體, Font.PLAIN, 14);l0.setBoun

47、ds(21, 120, 331, 35);JButton b = new JButton(Y);b.setFont(new Font(宋體, Font.PLAIN, 10);b.setHorizontalAlignment(SwingConstants.LEFT);b.setBackground(new Color(255, 255, 255);b.setBounds(301, 39, 45, 35);b.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0)String s=textField.getText(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論