![實驗5:綜合性程序設(shè)計—簡單學(xué)生信息管理系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/28/2868c33e-d9c0-4f62-a1da-9085a03ec2ee/2868c33e-d9c0-4f62-a1da-9085a03ec2ee1.gif)
![實驗5:綜合性程序設(shè)計—簡單學(xué)生信息管理系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/28/2868c33e-d9c0-4f62-a1da-9085a03ec2ee/2868c33e-d9c0-4f62-a1da-9085a03ec2ee2.gif)
![實驗5:綜合性程序設(shè)計—簡單學(xué)生信息管理系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/28/2868c33e-d9c0-4f62-a1da-9085a03ec2ee/2868c33e-d9c0-4f62-a1da-9085a03ec2ee3.gif)
![實驗5:綜合性程序設(shè)計—簡單學(xué)生信息管理系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/28/2868c33e-d9c0-4f62-a1da-9085a03ec2ee/2868c33e-d9c0-4f62-a1da-9085a03ec2ee4.gif)
![實驗5:綜合性程序設(shè)計—簡單學(xué)生信息管理系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/28/2868c33e-d9c0-4f62-a1da-9085a03ec2ee/2868c33e-d9c0-4f62-a1da-9085a03ec2ee5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、.JAVA程序設(shè)計實驗報告 學(xué)期:2016-2017-2實驗名稱:實驗5:綜合性程序設(shè)計簡單學(xué)生信息管理系統(tǒng)班級:* 姓名:Zzz 學(xué)號:20151601*一、實驗?zāi)康亩?、實驗?nèi)容與結(jié)果 (1)任務(wù)描述(1.3與1.4二選一,建議選擇1.4)利用課程所學(xué)知識,設(shè)計并實現(xiàn)一個簡單學(xué)生信息管理系統(tǒng),要求如下: 1.1 聲明Student類,該類實現(xiàn)Serializable接口以表明該類可以進行序列化。該類有姓名、學(xué)號(long),math、os、java用來存放對應(yīng)的成績,在構(gòu)造方法中進行姓名、學(xué)號、課程成績的賦值。Override由Object繼承來的toString方法以便以友好格式顯示自己的
2、屬性,格式為:張三 12 os:90 java:90 math: 90。 1.2 建立一個類,利用數(shù)據(jù)庫來存儲多個Student,寫完一個方法在main中寫一段測試代碼,運行以保證目前所做工作的正確性。有以下方法: add(Student stu):可以增加新的學(xué)生,并保存在數(shù)據(jù)庫中。 update(Student stu):可以修改特定的學(xué)生,并保存在數(shù)據(jù)庫中。 dispAll():可以顯示所有的學(xué)生信息。 findById(long id):可以按照學(xué)號來查找,并顯示符合條件的學(xué)生信息,查無該人的話顯示錯誤信息。 findByName(String name):可以按照姓名查找學(xué)生,找到后
3、顯示其信息,查無此人顯示錯誤信息。 delById(long id):可以按照id刪除學(xué)生的信息,然后顯示找到該人。若查無此人,顯示相應(yīng)的錯誤信息。 1.3 (控制臺方式)完善應(yīng)用程序,實現(xiàn)相應(yīng)的功能如下:添加學(xué)生信息、修改指定學(xué)號的學(xué)生信息、顯示所有學(xué)生信息、按學(xué)號查找、按姓名查找、按學(xué)號刪除、按成績排序和退出。 1.4 (Swing窗體方式)完善應(yīng)用程序,實現(xiàn)相應(yīng)的功能如下:添加學(xué)生信息、修改指定學(xué)號的學(xué)生信息、顯示所有學(xué)生信息、按學(xué)號查找、按姓名查找、按學(xué)號刪除、按成績排序和退出。(2)處理思路及關(guān)鍵技術(shù)說明(3)程序完整源碼(要求格式規(guī)范,適當(dāng)注釋)(4)運行結(jié)果截圖(按每個操作分別截
4、圖)(2)處理思路及關(guān)鍵技術(shù)說明分三個模塊:一是 jdbc的代碼,另一個是 Swing和AWT的代碼,剩下是Student類。Jdbc 一共有兩個類:DBUtil(連接工具類)和Sql類(處理jdbc功能的靜態(tài)方法)Swing 和AWT一個有兩個類:MyJFrame構(gòu)建總窗口,MyJPanel 對窗口內(nèi)的面板行修飾。然后就是Student類和Main主方法類。關(guān)鍵部分:1)在主窗體中add三個Jpanel,底層和第二層左右三個,右邊的Jpanel實現(xiàn)cardLayout布局,左邊的Jpanel添加按鈕并添加ActionListener來實現(xiàn)對象的card切換達到不同按鈕進入不同功能面板的目的。
5、2)在MyJPanel類中,所有的init方法均傳遞參數(shù)JPanel p,對傳遞過來的Panel進行加工修飾,并且調(diào)用Sql里面對應(yīng)功能的方法。3)Sql中的顯示全部信息的方法中使用了ArrayList來存儲從studenttbl中讀取的對象信息,存儲之后為了按照String的方式顯示在JtextArea中,又用了listToString方法,通過for循環(huán)并追加回車,使每個對象都轉(zhuǎn)化為String并在后面加上了回車(separator),4)在Sql中的查找,刪除,添加都使用了jdbc中的預(yù)處理PreparedStatement在操作完畢后執(zhí)行sts.executeUpdate();5)在S
6、ql排序方法中,把所有的信息都存儲到list中以后,調(diào)用工具類Collections.sort:根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M行排序。(3)程序完整源碼(要求格式規(guī)范,適當(dāng)注釋)class 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
7、username;private static String 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)
8、;catch (Exception e) e.printStackTrace();return null;public static void 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.SQLExc
9、eption;import java.sql.Statement;import java.util.ArrayList;import java.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<Student> list
10、, char separator) /使list返回String類型并加入控制符(換行) StringBuilder sb = new StringBuilder(); for (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<Student> disAll() /打印顯示所有信息/查詢 Connection conn=DBU
11、til.open();String sql="select id,name,frctionJava,fractionMath,fractionOS from studentTbl"Statement stmt;try stmt = conn.createStatement();ResultSet rs=stmt.executeQuery(sql);List<Student> list=new ArrayList<Student>();/遍歷操作while(rs.next()int id=rs.getInt(1);String name=rs.getS
12、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);conn.close();return list; catch (SQLException e) e.printStackTrace();return null;public sta
13、tic void FindByID(long id ,JLabel lblNewLabel )/按ID查找Connection conn=DBUtil.open();ResultSet rs = null;try String sql="select * from StudentTbl where id=?"PreparedStatement sts=conn.prepareStatement(sql);sts.setLong(1, id);rs=sts.executeQuery();while(rs.next()int i=rs.getInt(1);String name
14、=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(Exception e) e.printStackTrace();finallytry if(rs.first()!=true)lblNewLabel.setText(&quo
15、t;查無此人!"); 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=?"PreparedStatement sts=conn.prepareStatement(sql);sts.setSt
16、ring(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(Exceptio
17、n e) e.printStackTrace();finallytryif(rs.first()!=true)lblNewLabel.setText("查無此人!"); 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 Student
18、Tbl where id=?");sts.setLong(1, id);a=sts.executeUpdate();if(a>0)JOptionPane.showMessageDialog(null, "刪除成功!", "WO", JOptionPane.INFORMATION_MESSAGE);if(a=0)JOptionPane.showMessageDialog(null, "無此人!", "WO", JOptionPane.INFORMATION_MESSAGE);catch(Excepti
19、on e) e.printStackTrace();DBUtil.close(conn);public static void Sort(JTextArea ta,int index) /排序/查詢 Connection conn=DBUtil.open();String sql="select id,name,frctionJava,fractionMath,fractionOS from studentTbl"Statement stmt;try stmt = conn.createStatement();ResultSet rs=stmt.executeQuery(s
20、ql);List<Student> list=new ArrayList<Student>();/遍歷操作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.setFractionJava(a);u.setFractionMath(b);u.s
21、etFractionOS(c);list.add(u);Collections.sort(list,new Comparator<Student>() public int compare(Student o1, Student o2) int i = 1 ; if(index=1) i= (int) (o2.getFractionJava() - o1.getFractionJava(); if(index=2) i = (int) (o2.getFractionMath() - o1.getFractionMath(); if(index=3) i = (int) (o2.ge
22、tFractionOS() - o1.getFractionOS(); return i; );String s=listToString(list, 'n');ta.setText(s); catch (SQLException e) e.printStackTrace();DBUtil.close(conn); public static void add(Student stu) /添加Connection conn=DBUtil.open();PreparedStatement sts;try sts = conn.prepareStatement("inse
23、rt into StudentTbl values(?,?,?,?,?)");sts.setLong(1, stu.getId();sts.setString(2, stu.getName();sts.setDouble(3, stu.getFractionJava();sts.setDouble(4, stu.getFractionMath();sts.setDouble(5, stu.getFractionOS();sts.executeUpdate(); catch (SQLException e) e.printStackTrace();DBUtil.close(conn);
24、 public static void UpdateStudent(Student stu)/更新Connection conn=DBUtil.open();try String sql="update studenttbl set name='"+stu.getName()+"',FrctionJava='"+ stu.getFractionJava()+"',FractionMath='"+stu.getFractionMath()+"',FractionOS='&
25、quot;+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 implements Serializableprivat
26、e static final long serialVersionUID =4558876142427402513L;private 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
27、void setId(long id) this.id = id;public double 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 doub
28、le getFractionMath() return fractionMath;public void setFractionMath(double fractionMath) this.fractionMath = fractionMath;public String toString() return (name+" "+id+" Java:"+fractionJava+" Math:"+fractionMath+" OS:"+fractionOS); class MyJFramepackage test;i
29、mport javax.swing.JFrame;import javax.swing.JPanel;import java.awt.BorderLayout;import java.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.swi
30、ng.JLabel;import java.awt.Font;public class MyJFrame JFrame frame=new JFrame("Demo");/* * wbp.parser.entryPoint */public void init() frame.setVisible(true);frame.setBounds(100, 100, 570, 474);/JPanelJPanel panel = new JPanel();panel.setBackground(new Color(153, 204, 255);frame.getContentPa
31、ne().add(panel, BorderLayout.CENTER);panel.setLayout(null);/Panel X YJPanel panel_x = new JPanel();panel_x.setBackground(new Color(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);
32、panel_y.setBounds(140, 0, 414, 435);panel.add(panel_y);/功能按鈕/+JButton b0 = new JButton("Home");b0.setHorizontalAlignment(SwingConstants.LEADING);b0.setBackground(new Color(255, 255, 255);b0.setBounds(34, 21, 66, 23);panel_x.add(b0);JButton b1 = new JButton("u663Eu793A");b1.setBac
33、kground(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, 255, 255);b2.setBounds(22, 112, 93, 23);b2.setMargin(new Insets(0, 0, 0, 0);panel_x.add(b2);JButton b3 = new JButton("u67E5u627E(Nam
34、e)");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.setBackground(new Color(255, 255, 255);b4.setBounds(22, 200, 93, 23);panel_x.add(b4);JButton b5 = new JButton(&quo
35、t;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(255, 255, 255);panel_x.add(b6);JButton b7 = new JButton("u66F4u65B0");b7.set
36、Bounds(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);/+/=CardLayout cl_panel_y=new CardLayout();/卡片JPanelpanel_y.setLayout
37、(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.setFont(new Font("宋體", Font.PLAIN,
38、 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, "
39、c3");/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");JPane
40、l panel_7 = new JPanel();panel_y.add(panel_7, "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 actionPerforme
41、d(ActionEvent e) MyJPanel.init1(panel_1);cl_panel_y.show(panel_y, "c1"););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
42、 void actionPerformed(ActionEvent e) MyJPanel.init3(panel_3);cl_panel_y.show(panel_y, "c3"););b4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init4(panel_4);cl_panel_y.show(panel_y, "c4"););b5.addActionListener(new ActionListe
43、ner() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init5(panel_5);cl_panel_y.show(panel_y, "c5"););b6.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init6(panel_6);cl_panel_y.show(panel_y, "c6"););b7.addActionList
44、ener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) MyJPanel.init7(panel_7);cl_panel_y.show(panel_y, "c7"););bExit.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) System.exit(0););class MyJPanelpackage test;import java.awt.
45、CardLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.List;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextArea;import ja
46、vax.swing.JTextField;import javax.swing.SwingConstants;import java.awt.Color;class MyJPanel/顯示static void init1(JPanel panel)/JPanel panel=new JPanel();panel.setBackground(new Color(255, 255, 255);panel.setBounds(0, 0, 373, 382);panel.setLayout(null);JLabel l = new JLabel(" =u4E0Bu5217u662Fu624
47、0u6709u67E5u770Bu7684u6240u6709u6570u636Eu4FE1u606F=");/Labell.setFont(new Font("宋體", Font.PLAIN, 14);l.setBounds(15, 10, 336, 29);panel.add(l);JTextArea textArea = new JTextArea();/TextAreatextArea.setFont(new Font("Monospaced", Font.PLAIN, 15);textArea.setBackground(new Co
48、lor(255, 255, 255);textArea.setBounds(25, 49, 326, 311);List<Student> list=new ArrayList<Student>();/轉(zhuǎn)換為Stringlist=Sql.disAll();textArea.append(Sql.listToString(list,'n');panel.add(textArea);panel.repaint();/查找IDstatic void init2(JPanel panel)/JPanel panel=new JPanel();panel.setB
49、ackground(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é)號 姓名 Java Math OS");l2.setBounds(47,
50、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.setBounds(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.set
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)權(quán)交易合同意向書
- 個人綜合授信貸款合同范文
- 個人房屋租賃合同樣本范本
- 個人房產(chǎn)轉(zhuǎn)讓合同樣本修訂版
- 中小學(xué)教師工資集體合同范本
- 業(yè)務(wù)員委托合同范本
- 個人小額信貸合同樣本
- 個人設(shè)備租賃標(biāo)準(zhǔn)合同
- 個人車輛保險合同標(biāo)準(zhǔn)模板
- 個人友情借款合同樣本
- 神經(jīng)外科課件:神經(jīng)外科急重癥
- 頸復(fù)康腰痛寧產(chǎn)品知識課件
- 2024年低壓電工證理論考試題庫及答案
- 微電網(wǎng)市場調(diào)查研究報告
- 《民航服務(wù)溝通技巧》教案第14課民航服務(wù)人員上行溝通的技巧
- MT/T 538-1996煤鉆桿
- 小學(xué)六年級語文閱讀理解100篇(及答案)
- CB/T 467-1995法蘭青銅閘閥
- 氣功修煉十奧妙
- 勾股定理的歷史與證明課件
- 中醫(yī)診斷學(xué)八綱辨證課件
評論
0/150
提交評論