版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 第21章 學(xué)生管理系統(tǒng)</p><p> 21.1 系統(tǒng)設(shè)計(jì)</p><p> 首先確定學(xué)生管理系統(tǒng)的用戶。學(xué)生管理系統(tǒng)的用戶基本分為兩類,分別是老師和學(xué)生。不管是哪種用戶都是必須經(jīng)過(guò)登錄才能進(jìn)入學(xué)生管理系統(tǒng)的,所以該系統(tǒng)必須有一個(gè)登錄界面,并且在該界面中能夠讓用戶選擇用戶是老師還是學(xué)生。該系統(tǒng)是不會(huì)對(duì)外開(kāi)放的,所以也不存在注冊(cè)界面。</p>&
2、lt;p> 因?yàn)橛脩舴譃閮煞N,所以每一種用戶進(jìn)行操作的界面應(yīng)該是不同的。首先是學(xué)生界面,在其中應(yīng)該只有查詢成績(jī)和個(gè)人信息查詢和插入。在本章中就來(lái)學(xué)習(xí)如何進(jìn)行學(xué)生界面開(kāi)發(fā)。</p><p> 除了學(xué)生界面外,還要有一個(gè)老師界面。老師在老師界面中可以對(duì)學(xué)生信息進(jìn)行管理,包括查詢、修改和刪除。同樣也可以對(duì)學(xué)生的程序進(jìn)行管理,包括查詢和插入,由于輸入錯(cuò)誤還要能夠?qū)W(xué)生的成績(jī)進(jìn)行修改,由于學(xué)生作弊還能夠?qū)W(xué)生的成
3、績(jī)進(jìn)行刪除。</p><p> 21.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 在本節(jié)中,就來(lái)分析本系統(tǒng)中需要的數(shù)據(jù)庫(kù)支持。首先數(shù)據(jù)庫(kù)中應(yīng)該有老師和學(xué)生這兩個(gè)表,表中應(yīng)該最少有用戶名和密碼兩項(xiàng),使用表中的這兩項(xiàng)就可以進(jìn)行登錄。在學(xué)生表中還應(yīng)該具有一些和學(xué)籍相關(guān)的信息,包括年齡、班級(jí)等內(nèi)容,這樣就可以在系統(tǒng)中對(duì)學(xué)生信息進(jìn)行操作。</p><p> 除此之外還需要一個(gè)成
4、績(jī)表,通過(guò)該表老師可以對(duì)學(xué)生的成績(jī)進(jìn)行查詢、插入、修改和刪除。學(xué)生也可以通過(guò)該表對(duì)自己的成績(jī)進(jìn)行查詢。</p><p> 21.3 登錄界面開(kāi)發(fā)</p><p> 不管是老師和學(xué)生進(jìn)入學(xué)生管理系統(tǒng)都是從登錄界面進(jìn)入的。在登錄界面中應(yīng)該是讓用戶選擇自己身份的,然后系統(tǒng)將根據(jù)用戶的選擇來(lái)判斷用戶的身份并進(jìn)行查詢不同的數(shù)據(jù)庫(kù)。這里為了讓讀者更容易理解登錄界面,并沒(méi)有連接數(shù)據(jù)庫(kù)。讀者可以將數(shù)
5、據(jù)庫(kù)的操作加到程序中。</p><p> 21.3.1 界面設(shè)計(jì)</p><p> 這里的登錄界面是采用最簡(jiǎn)單的形式,只需要用戶輸入用戶名和密碼就可以登錄。并且在界面中定義了一個(gè)下拉列表框讓用戶來(lái)選擇自己的身份。該界面的基本形式如圖所示。</p><p> 21.3.2 程序開(kāi)發(fā)</p><p> 對(duì)界面設(shè)計(jì)好基本形式后,就可以進(jìn)
6、行程序開(kāi)發(fā)。首先要定義兩個(gè)標(biāo)簽和兩個(gè)文本框,分別來(lái)表示用戶名和密碼。并且還需要定義一個(gè)下拉列表讓用戶來(lái)進(jìn)行身份選擇,其中選項(xiàng)包括“學(xué)生”和“老師”。在程序的最后還定義了兩個(gè)按鈕,從而讓用戶輸入用戶名和密碼后進(jìn)行登錄。</p><p> 【范例】示例代碼是用戶登錄界面程序。</p><p> 21.4 學(xué)生界面開(kāi)發(fā)</p><p> 在本節(jié)中將來(lái)開(kāi)發(fā)學(xué)生界面,
7、在學(xué)生界面中,學(xué)生可以對(duì)自己的信息進(jìn)行查詢,在第一次登錄時(shí)還可以對(duì)自己的信息進(jìn)行插入,并且學(xué)生能夠查詢自己的成績(jī)。</p><p> 21.4.1 界面設(shè)計(jì)</p><p> 因?yàn)閷W(xué)生要完成對(duì)信息和成績(jī)的操作,所以這里的設(shè)計(jì)是在界面中定義兩個(gè)菜單,分別進(jìn)行信息和成績(jī)的操作。因?yàn)閷?duì)信息的操作包括插入和查詢,所以還需要在信息菜單下定義“插入”和“查詢”兩個(gè)子菜單</p>&
8、lt;p> 21.4.2 程序開(kāi)發(fā)</p><p> 對(duì)界面進(jìn)行設(shè)計(jì)后,就可以進(jìn)行程序開(kāi)發(fā)。同樣首先是創(chuàng)建一個(gè)窗口,在窗口中要?jiǎng)?chuàng)建兩個(gè)菜單,并且在信息菜單下還要?jiǎng)?chuàng)建“插入”和“查詢”兩個(gè)子菜單。</p><p> 【范例】示例代碼是一個(gè)學(xué)生界面程序。</p><p> 21.4.3 開(kāi)發(fā)插入學(xué)生界面</p><p> 在學(xué)
9、生界面中單擊“信息”菜單下的“插入”子菜單,就會(huì)進(jìn)入學(xué)生插入界面,在該界面中學(xué)生可以輸入自己的信息。</p><p> 【范例】示例代碼是一個(gè)學(xué)生插入信息界面程序。</p><p> 21.4.4 查詢學(xué)生信息界面</p><p> 學(xué)生第一次插入信息后,老師是可以對(duì)學(xué)生的信息進(jìn)行修改和刪除的。除此之外,學(xué)生還可以查詢自己被修改后的信息,在信息菜單下有一個(gè)查
10、詢子菜單,單擊該菜單就觸發(fā)事件,從而進(jìn)入查詢學(xué)生信息界面。</p><p> 【范例】示例代碼是查詢學(xué)生信息界面。</p><p> 21.4.5 查詢成績(jī)信息</p><p> 在學(xué)生界面中還有一個(gè)“成績(jī)”菜單,在學(xué)生的界面該菜單下只有一個(gè)“查詢”子菜單。單擊“查詢”子菜單,將觸發(fā)事件,進(jìn)入到查詢成績(jī)界面。</p><p> 【范
11、例】示例代碼是一個(gè)查詢成績(jī)界面程序。</p><p> 21.5 綜合練習(xí)</p><p> 1.參考本章中學(xué)生界面,開(kāi)發(fā)學(xué)生系統(tǒng)中的老師界面。</p><p> 【提示】老師界面和學(xué)生界面是非常類似的,但是也是存在很多不一樣的地方的。首先在老師界面中能夠?qū)W(xué)生的信息除了插入和查詢之外,還能夠?qū)W(xué)生的信息進(jìn)行修改和刪除,這樣就需要在“信息”菜單下增加“修改”
12、和“刪除”兩個(gè)子菜單,也從而需要開(kāi)發(fā)修改學(xué)生信息界面和刪除學(xué)生信息界面。</p><p> 在學(xué)生界面中只能夠進(jìn)行對(duì)程序的查詢,在老師界面中不但能夠?qū)W(xué)生的信息進(jìn)行查詢,還能夠?qū)W(xué)生的信息進(jìn)行修改、插入和刪除。同樣也是需要增加相應(yīng)的子菜單和對(duì)應(yīng)的界面。</p><p> import java.awt.*;</p><p> import java.awt.e
13、vent.*;</p><p> import javax.swing.*;</p><p> import java.util.*;</p><p> import javax.swing.event.*;</p><p> import java.sql.*;</p><p> class AddStud
14、ent extends JFrame implements ActionListener</p><p><b> {</b></p><p> JLabel JL =new JLabel("添 加 基 本 信 息",JLabel.CENTER);//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JLa
15、bel JLNumber=new JLabel("學(xué)號(hào):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTNumber=new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLName =new JLabel("姓名:");//使用文本創(chuàng)建一個(gè)標(biāo)簽
16、對(duì)象</p><p> JTextField JTName =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLClass =new JLabel("班級(jí):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTClass =new JTextField
17、();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLsex =new JLabel("性別:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> ButtonGroup BG =new ButtonGroup();//創(chuàng)建一個(gè)ButtonGroup組件對(duì)象</p><p> JRadioBu
18、tton JRB1 =new JRadioButton("男");//創(chuàng)建一個(gè)單選按鈕對(duì)象</p><p> JRadioButton JRB2 =new JRadioButton("女");</p><p> JLabel JL1 =new JLabel("學(xué)院:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象
19、</p><p> JTextField JT1 =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JButton JBAdd =new JButton("添加"); //創(chuàng)建按鈕對(duì)象</p><p> JButton JBNext =new JButton("重置&q
20、uot;);</p><p> String sql="";//定義一個(gè)字符串</p><p> public AddStudent()//創(chuàng)建AddStudent構(gòu)造函數(shù)</p><p><b> {</b></p><p> this.setTitle(&
21、quot;添加學(xué)生信息");//設(shè)置窗口標(biāo)題</p><p> this.setLayout(null);//設(shè)置窗口布局管理器</p><p> JL.setBounds(100,30,200,40);//設(shè)置標(biāo)簽的初始位置</p><p> this.add(JL);//將標(biāo)簽添加到容器</p&g
22、t;<p> JLNumber.setBounds(100,80,100,20);//設(shè)置學(xué)號(hào)標(biāo)簽的初始位置</p><p> this.add(JLNumber);//將學(xué)號(hào)標(biāo)簽添加到容器</p><p> JTNumber.setBounds(200,80,80,20);//設(shè)置文本框的初始位置</p><p>
23、this.add(JTNumber);//將文本框添加到容器</p><p> JLName.setBounds(100,120,60,20);//設(shè)置姓名標(biāo)簽的初始位置</p><p> this.add(JLName);//將姓名標(biāo)簽添加到容器</p><p> JTName.setBounds(200,120,80,20
24、);//設(shè)置文本框的初始位置</p><p> this.add(JTName);//將文本框添加到容器</p><p> JLsex.setBounds(100,160,100,20);//設(shè)置性別標(biāo)簽的初始位置</p><p> this.add(JLsex);//將性別標(biāo)簽添加到容器</p><
25、p> JRB1.setBounds(200,160,40,20);//設(shè)置單選按鈕的初始位置</p><p> JRB2.setBounds(300,160,40,20);</p><p> this.add(JRB1);//添加單選按鈕組件</p><p> this.add(JRB2);</p><p&g
26、t; BG.add(JRB1);//將單選按鈕添加到ButtonGroup組件</p><p> BG.add(JRB2);</p><p> JLClass.setBounds(100,240,60,20);//設(shè)置班級(jí)標(biāo)簽的初始位置</p><p> this.add(JLClass);//將班級(jí)標(biāo)簽添加到容器<
27、/p><p> JTClass.setBounds(200,240,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTClass);//將文本框添加到容器</p><p> JL1.setBounds(100,280,60,20);//設(shè)置學(xué)院標(biāo)簽的初始位置</p><p> th
28、is.add(JL1);//將學(xué)院標(biāo)簽添加到容器</p><p> JT1.setBounds(200,280,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JT1);//將文本框添加到容器</p><p> JBAdd.setBounds(80,320,90,20);//設(shè)置添加按
29、鈕的初始位置</p><p> this.add(JBAdd);//將添加按鈕添加到容器</p><p> JBAdd.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> JBNext.setBounds(190,320,90,20);//設(shè)置重置按鈕的初始位置</p><p&
30、gt; this.add(JBNext);//將重置按鈕添加到容器</p><p> JBNext.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> this.setBounds(10,10,500,400);//設(shè)置窗口尺寸大小</p><p> this.setVisible(true)
31、;//設(shè)置窗口的可見(jiàn)性</p><p> addWindowListener(new WindowAdapter()</p><p> { public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p> System.exit(
32、0);</p><p><b> }</b></p><p><b> });</b></p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p>
33、<b> {</b></p><p> if(e.getSource()==JBAdd)//處理"添加"事件</p><p><b> {</b></p><p> String snumber=JTNumber.getText();//將文本框中包含的文本傳給字符串snumber</p&
34、gt;<p> String sname=JTName.getText();//將文本框中包含的文本傳給字符串sname</p><p> String sclass=JTClass.getText();//將文本框中包含的文本傳給字符串sclass</p><p> String ssex="女";//返回單選按鈕的值</p><
35、;p> if(JRB1.isSelected())</p><p><b> ssex="男";</b></p><p> String scollect=JT1.getText();//將文本框中包含的文本傳給字符串scollect </p><p> sql="select * from s
36、tudent where Id='"+snumber+"'";//檢索出Id等于snumber的學(xué)生的所有信息</p><p> try //異常處理</p><p><b> {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcD
37、river");//加載驅(qū)動(dòng)程序</p><p> Connection cot=DriverManager.getConnection("jdbc:odbc:student1","","");//打開(kāi)數(shù)據(jù)庫(kù)連接,student1為數(shù)據(jù)源名稱</p><p> Statement stm=cot.createSta
38、tement();//提交查詢</p><p> ResultSet rs=stm.executeQuery(sql);//取得查詢結(jié)果</p><p> if(rs.next())//判斷結(jié)果是否存在</p><p> JOptionPane.showMessageDialog(null,"該號(hào)已經(jīng)存在!");//通過(guò)showMessag
39、eDialog()方法打印信息</p><p><b> else </b></p><p><b> {</b></p><p> sql="insert into student values('"+snumber+"','"+sname+"
40、;','"+sclass+"','"+ssex+"','"+scollect+"')";//插入一組數(shù)據(jù)</p><p> int i=stm.executeUpdate(sql); //對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新</p><p><b> if(i>0)
41、</b></p><p> JOptionPane.showMessageDialog(null,"添加成功!");</p><p><b> else</b></p><p> JOptionPane.showMessageDialog(null,"刪除失敗!");</p>
42、<p><b> }</b></p><p> }catch(Exception ee)</p><p><b> {</b></p><p><b> }</b></p><p><b> }</b></p><
43、;p> if(e.getSource()==JBNext)//處理"重置"事件</p><p><b> {</b></p><p> JTNumber.setText(null);//設(shè)置文本的text值為null</p><p> JTName.setText(null);//設(shè)置文本的text值為nul
44、l</p><p> JTClass.setText(null);//設(shè)置文本的text值為null</p><p> JT1.setText(null);//設(shè)置文本的text值為null</p><p><b> }</b></p><p><b> }</b></p>&
45、lt;p> public static void main(String args[])</p><p><b> {</b></p><p> new AddStudent();</p><p><b> }</b></p><p><b> }</b><
46、;/p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import java.util.*;</p><p> import javax.swing.event.*
47、;</p><p> import java.sql.*;</p><p> import java.util.Vector;</p><p> class ChengJiStudent extends JFrame implements ActionListener</p><p><b> {</b><
48、/p><p> JLabel JL =new JLabel("查 詢 成 績(jī)",JLabel.CENTER);//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JLabel JLNumber=new JLabel("請(qǐng)輸入學(xué)號(hào):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField
49、 JTNumber=new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLName =new JLabel("姓名:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTName =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLa
50、bel JLClass =new JLabel("語(yǔ)文:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTClass =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JL1 =new JLabel("數(shù)學(xué):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</
51、p><p> JTextField JT1 =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JL2 =new JLabel("班級(jí):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JT2 =new JTextField();//創(chuàng)建一個(gè)文本框
52、對(duì)象</p><p> JButton JBSet =new JButton("查詢");//創(chuàng)建按鈕對(duì)象</p><p> JButton JBNext =new JButton("重置");</p><p> String sql=""; //定義一個(gè)字符串</p>
53、<p> public ChengJiStudent() //創(chuàng)建SetGrade構(gòu)造函數(shù)</p><p><b> {</b></p><p> this.setTitle("查詢成績(jī)");//設(shè)置窗口標(biāo)題</p><p> this.setLayout(null);//設(shè)置窗口布局管理器</p&g
54、t;<p> JL.setForeground(Color.red);//設(shè)置標(biāo)簽的前景色</p><p> JL.setFont(new java.awt.Font("宋體",Font.PLAIN,19));//設(shè)置標(biāo)簽的字體</p><p> JL.setBounds(100,30,200,40);//設(shè)置標(biāo)簽的初始位置</p>&
55、lt;p> this.add(JL);//將標(biāo)簽添加到容器</p><p> JLNumber.setBounds(100,80,100,20);//設(shè)置學(xué)號(hào)標(biāo)簽的初始位置</p><p> this.add(JLNumber);//將學(xué)號(hào)標(biāo)簽添加到容器</p><p> JTNumber.setBounds(200,80,80,20);//設(shè)置文本框
56、的初始位置</p><p> this.add(JTNumber);//將文本框添加到容器</p><p> JLName.setBounds(100,160,60,20);//設(shè)置姓名標(biāo)簽的初始位置</p><p> this.add(JLName);//將姓名標(biāo)簽添加到容器</p><p> JTName.setBounds(20
57、0,160,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTName);//將文本框添加到容器</p><p> JL2.setBounds(100,240,80,20);//設(shè)置班級(jí)標(biāo)簽的初始位置</p><p> this.add(JL2);//將班級(jí)標(biāo)簽添加到容器</p><p> JT2.s
58、etBounds(200,240,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JT2);//將文本框添加到容器</p><p> JLClass.setBounds(100,280,60,20);//設(shè)置語(yǔ)文標(biāo)簽的初始位置</p><p> this.add(JLClass);//將語(yǔ)文標(biāo)簽添加到容器</p>&l
59、t;p> JTClass.setBounds(200,280,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTClass);//將文本框添加到容器</p><p> JL1.setBounds(100,320,60,20);//設(shè)置數(shù)學(xué)標(biāo)簽的初始位置</p><p> this.add(JL1);//將數(shù)學(xué)標(biāo)簽添加到容器
60、</p><p> JT1.setBounds(200,320,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JT1);//將文本框添加到容器</p><p> JBSet.setBounds(80,120,90,20);////設(shè)置查詢按鈕的初始位置</p><p> this.add(JBSet);/
61、/將查詢按鈕添加到容器</p><p> JBSet.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> JBNext.setBounds(190,120,90,20);//設(shè)置重置按鈕的初始位置</p><p> this.add(JBNext);//將重置按鈕添加到容器</p><p> JBN
62、ext.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> this.setBounds(10,10,500,400);//設(shè)置窗口尺寸大小</p><p> this.setVisible(true);//設(shè)置窗口的可見(jiàn)性</p><p> addWindowListener(new WindowAdapter()<
63、/p><p> { public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p> System.exit(0);</p><p><b> }</b></p><p><b> });
64、</b></p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> if(e.getSource()==JBSet)//處理"
65、查詢"事件</p><p><b> {</b></p><p> String snumber=JTNumber.getText();//將文本框中包含的文本傳給字符串snumber</p><p> String sname=JTName.getText();//將文本框中包含的文本傳給字符串sname</
66、p><p> String sclass=JTClass.getText();//將文本框中包含的文本傳給字符串sclass</p><p> String ssex="女";//返回單選按鈕的值</p><p> String scollect=JT1.getText();//將文本框中包含的文本傳給字符串scollect <
67、;/p><p> String sbir=JT2.getText();//將文本框中包含的文本傳給字符串sbir</p><p> sql="select * from grade where Id='"+snumber+"'";//檢索出Id等于snumber的學(xué)生的所有信息</p><p>
68、try //異常處理</p><p><b> {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加載驅(qū)動(dòng)程序</p><p> Connection cot=DriverManager.getConnection("jd
69、bc:odbc:student1","","");//打開(kāi)數(shù)據(jù)庫(kù)連接,student1為數(shù)據(jù)源名稱</p><p> Statement stm=cot.createStatement();//提交查詢</p><p> ResultSet rs=stm.executeQuery(sql);//取得查詢結(jié)果&l
70、t;/p><p> if(rs.next()) //判斷結(jié)果是否存在</p><p><b> {</b></p><p> String name=rs.getString(2);//獲取當(dāng)前行中指定列的值,并將返回的字符串對(duì)象賦給 name</p><p> JTName.setText(na
71、me);//將字符串name顯示在文本框中 </p><p> String clas=rs.getString(3);//獲取當(dāng)前行中指定列的值,并將返回的字符串對(duì)象賦給clas </p><p> JTClass.setText(clas);//將字符串clas顯示在文本框中</p><p> String c
72、ollect=rs.getString(5);//獲取當(dāng)前行中指定列的值,并將返回的字符串對(duì)象賦給collect </p><p> JT1.setText(collect); //將字符串collect顯示在文本框中</p><p> String bir=rs.getString(6); //獲取當(dāng)前行中指定列的值,并將返回的字符串對(duì)象賦給bir
73、 </p><p> JT2.setText(bir);//將字符串bir顯示在文本框中</p><p> int n=stm.executeUpdate(sql);//對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新</p><p> if(n>0)</p><p> JOptionPane.showMessageDialog(null,
74、"查詢成功!");//通過(guò)showMessageDialog()方法打印信息</p><p><b> else</b></p><p> JOptionPane.showMessageDialog(null,"查詢失敗!");</p><p><b> }</b></p
75、><p><b> else</b></p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null,"此用戶不存在!");</p><p><b> }</b></p><
76、;p> }catch(Exception ee)</p><p><b> {</b></p><p><b> }</b></p><p><b> }</b></p><p> if(e.getSource()==JBNext)//處理"重置&qu
77、ot;事件</p><p><b> {</b></p><p> JTNumber.setText(null);//設(shè)置文本的text值為null</p><p> JTName.setText(null);//設(shè)置文本的text值為null</p><p> JTClass.setText(
78、null);//設(shè)置文本的text值為null</p><p> JT1.setText(null);//設(shè)置文本的text值為null</p><p> JT2.setText(null);//設(shè)置文本的text值為null</p><p><b> }</b></p><p><b> }
79、</b></p><p> public static void main(String args[])</p><p><b> {</b></p><p> new ChengJiStudent();//實(shí)例化一個(gè)對(duì)象</p><p><b> }</b></p&g
80、t;<p><b> }</b></p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import java.util.*;</p>
81、<p> import javax.swing.event.*;</p><p> public class DengLuJieMian extends Frame implements ActionListener</p><p><b> {</b></p><p> JLabel JLUserName =new
82、 JLabel("用戶名:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JLabel JLPaw =new JLabel("密 碼:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTUserName=new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p>&l
83、t;p> JPasswordField JPsw =new JPasswordField();//創(chuàng)建一個(gè)密碼框?qū)ο?lt;/p><p> JButton JB1 =new JButton("登錄");//創(chuàng)建按鈕對(duì)象</p><p> JButton JB2 =new JButton("取消");</p>
84、;<p> JLabel JL1 =new JLabel("身 份:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JComboBox JC =new JComboBox();//創(chuàng)建一個(gè)組合框?qū)ο?lt;/p><p> public DengLuJieMian()</p><p><
85、b> {</b></p><p> this.setTitle("學(xué)生信息管理系統(tǒng)");//設(shè)置窗口標(biāo)題</p><p> this.setLayout(null);//設(shè)置窗口布局管理器</p><p> JLUserName.setBounds(100,40,100,20);//設(shè)置姓名標(biāo)簽的初
86、始位置</p><p> this.add(JLUserName);//將姓名標(biāo)簽組件添加到容器</p><p> JTUserName.setBounds(200,40,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTUserName);//將文本框組件添加到容器</p><p
87、> JLPaw.setBounds(100,100,60,20);//設(shè)置密碼標(biāo)簽的初始位置</p><p> this.add(JLPaw);//將密碼標(biāo)簽組件添加到容器</p><p> JPsw.setBounds(200,100,80,20);//設(shè)置密碼框的初始位置</p><p> this.add(JPsw
88、);//將密碼框組件添加到容器</p><p> JL1.setBounds(100,150,60,20);//設(shè)置身份標(biāo)簽的初始位置</p><p> this.add(JL1);//將身份標(biāo)簽組件添加到容器</p><p> JC.setBounds(200,150,80,20);//設(shè)置組合框的初始位置<
89、;/p><p> this.add(JC);//將組合框組件添加到容器</p><p> JC.addItem(new String("學(xué)生"));//給組合框添加內(nèi)容</p><p> JC.addItem(new String("老師"));</p><p> JB1.s
90、etBounds(100,200,60,20);//設(shè)置登錄按鈕的初始位置</p><p> this.add(JB1);//將登錄按鈕組件添加到容器</p><p> JB1.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> JB2.setBounds(200,200,60,20);
91、//設(shè)置取消按鈕的初始位置</p><p> this.add(JB2);//將取消按鈕組件添加容器</p><p> JB2.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> this.setVisible(true);//設(shè)置窗口的可見(jiàn)性</p><p>
92、 this.setBounds(10,10,400,250);//設(shè)置窗口尺寸大小</p><p> addWindowListener(new WindowAdapter()</p><p> { public void windowClosing(WindowEvent e)</p><p><b> {</b></p&
93、gt;<p> System.exit(0);</p><p><b> }</b></p><p> });//通過(guò)內(nèi)部類重寫(xiě)關(guān)閉窗體的方法</p><p><b> }</b></p><p> public static void main(String
94、 args[])</p><p><b> {</b></p><p> new DengLuJieMian();</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p&
95、gt;<b> {</b></p><p> if(e.getSource()==JB1) //處理登錄事件</p><p><b> {</b></p><p> String name=JTUserName.getText();//將文本框中包含的文本傳給字符串name</p>&
96、lt;p> String password=new String(JPsw.getPassword());//將密碼框中包含的文本傳給字符串password</p><p> String box= (String)JC.getSelectedItem();//將當(dāng)前所選項(xiàng)傳給字符串box</p><p> if((name!=null&&(name.equal
97、s("daishu")))&&(password!=null&&</p><p> (password.equals("0816"))))//判斷語(yǔ)句</p><p><b> {</b></p><p> if(box.equals("學(xué)生&quo
98、t;))//選擇學(xué)生身份登錄</p><p><b> {</b></p><p> //new StudentJieMian();//調(diào)用學(xué)生信息主窗體</p><p><b> }</b></p><p> else if(box.equals("教師"
99、))//選擇教師身份登錄</p><p><b> {</b></p><p> //new TeacherJieMian();//調(diào)用教師信息主窗體</p><p><b> }</b></p><p><b> }</b></p><
100、p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p&
101、gt; import javax.swing.*;</p><p> import java.util.*;</p><p> import javax.swing.event.*;</p><p> import java.sql.*;</p><p> import java.util.Vector;</p>&l
102、t;p> class SelectStudent extends JFrame implements ActionListener</p><p><b> {</b></p><p> JLabel JL =new JLabel("查 詢 學(xué)生 信 息",JLabel.CENTER);</p><
103、p> JLabel JLNumber=new JLabel("請(qǐng)輸入學(xué)號(hào):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTNumber=new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLName =new JLabel("姓名:");//使用文本
104、創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTName =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLClass =new JLabel("班級(jí):");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> JTextField JTClass =new JTextFiel
105、d();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JLabel JLsex =new JLabel("性別:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p><p> ButtonGroup BG =new ButtonGroup();//創(chuàng)建一個(gè)ButtonGroup組件對(duì)象</p><p> JRadioButton JR
106、B1 =new JRadioButton("男");//創(chuàng)建一個(gè)單選按鈕對(duì)象</p><p> JRadioButton JRB2 =new JRadioButton("女");</p><p> JLabel JL1 =new JLabel("學(xué)院:");//使用文本創(chuàng)建一個(gè)標(biāo)簽對(duì)象</p>
107、<p> JTextField JT1 =new JTextField();//創(chuàng)建一個(gè)文本框?qū)ο?lt;/p><p> JButton JBSet =new JButton("查詢");//創(chuàng)建按鈕對(duì)象</p><p> JButton JBNext =new JButton("重置");</p>
108、<p> String sql=""; //定義一個(gè)字符串</p><p> public SelectStudent() //創(chuàng)建SetStudent構(gòu)造函數(shù)</p><p><b> {</b></p><p> this.setTitle("查詢學(xué)生信息");//設(shè)置窗口標(biāo)題<
109、;/p><p> this.setLayout(null);//設(shè)置窗口布局管理器</p><p> JL.setForeground(Color.red);//設(shè)置標(biāo)簽的前景色</p><p> JL.setFont(new java.awt.Font("宋體",Font.PLAIN,19));//設(shè)置標(biāo)簽的字體</p><
110、;p> JL.setBounds(100,30,200,40);//設(shè)置標(biāo)簽的初始位置</p><p> this.add(JL);//將標(biāo)簽添加到容器</p><p> JLNumber.setBounds(100,80,100,20);//設(shè)置學(xué)號(hào)標(biāo)簽的初始位置</p><p> this.add(JLNumber);//將學(xué)號(hào)標(biāo)簽添加到容器<
111、;/p><p> JTNumber.setBounds(200,80,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTNumber);//將文本框添加到容器</p><p> JLName.setBounds(100,160,60,20);//設(shè)置姓名標(biāo)簽的初始位置</p><p> this.add(JL
112、Name);//將姓名標(biāo)簽添加到容器</p><p> JTName.setBounds(200,160,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTName);//將文本框添加到容器</p><p> JLsex.setBounds(100,200,100,20);//設(shè)置性別標(biāo)簽的初始位置</p><
113、p> this.add(JLsex);//將性別標(biāo)簽添加到容器</p><p> JRB1.setBounds(200,200,40,20);//設(shè)置單選按鈕的初始位置</p><p> JRB2.setBounds(300,200,40,20);</p><p> this.add(JRB1);//添加單選按鈕組件</p><p&
114、gt; this.add(JRB2);</p><p> BG.add(JRB1);//將單選按鈕添加到ButtonGroup組件</p><p> BG.add(JRB2);</p><p> JLClass.setBounds(100,280,60,20);//設(shè)置班級(jí)標(biāo)簽的初始位置</p><p> this.add(JLCl
115、ass);//將班級(jí)標(biāo)簽添加到容器</p><p> JTClass.setBounds(200,280,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JTClass);//將文本框添加到容器</p><p> JL1.setBounds(100,320,60,20);//設(shè)置學(xué)院標(biāo)簽的初始位置</p><p&
116、gt; this.add(JL1);//將學(xué)院標(biāo)簽添加到容器</p><p> JT1.setBounds(200,320,80,20);//設(shè)置文本框的初始位置</p><p> this.add(JT1);//將文本框添加到容器</p><p> JBSet.setBounds(80,120,90,20);//設(shè)置查詢按鈕的初始位置</p>
117、<p> this.add(JBSet);//將查詢按鈕添加到容器</p><p> JBSet.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> JBNext.setBounds(190,120,90,20);//設(shè)置重置按鈕的初始位置</p><p> this.add(JBNext);//將重置按鈕添
118、加到容器</p><p> JBNext.addActionListener(this);//給按鈕添加監(jiān)聽(tīng)器</p><p> this.setBounds(10,10,500,400);//設(shè)置窗口尺寸大小</p><p> this.setVisible(true);//設(shè)置窗口的可見(jiàn)性</p><p> addWindowLi
119、stener(new WindowAdapter()</p><p> { public void windowClosing(WindowEvent e)</p><p><b> {</b></p><p> System.exit(0);</p><p><b> }</b></
120、p><p> });//通過(guò)內(nèi)部類重寫(xiě)關(guān)閉窗體的方法</p><p><b> }</b></p><p> public void actionPerformed(ActionEvent e)</p><p><b> {</b></p><p> if(e.getS
121、ource()==JBSet) //處理"查詢"事件</p><p><b> {</b></p><p> String snumber=JTNumber.getText();//將文本框中包含的文本傳給字符串snumber</p><p> String sname=JTName.getText();//將文本框中
122、包含的文本傳給字符串sname</p><p> String sclass=JTClass.getText();//將文本框中包含的文本傳給字符串sclass</p><p> String ssex="女"; //返回單選按鈕的值</p><p> if(JRB1.isSelected())</p><p>&l
123、t;b> ssex="男";</b></p><p> String scollect=JT1.getText();//將文本框中包含的文本傳給字符串scollect </p><p> sql="select * from student where Id='"+snumber+"'"
124、;//檢索出Id等于snumber的學(xué)生的所有信息</p><p> try //異常處理</p><p><b> {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加載驅(qū)動(dòng)程序</p><p> Connectio
125、n cot=DriverManager.getConnection("jdbc:odbc:student1","","");//打開(kāi)數(shù)據(jù)庫(kù)連接,student1為數(shù)據(jù)源名稱</p><p> Statement stm=cot.createStatement();//提交查詢</p><p> ResultSet rs=s
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的學(xué)生信息管理系統(tǒng)
- 基于java的學(xué)生成績(jī)管理系統(tǒng)
- 基于java web學(xué)生作業(yè)管理系統(tǒng)的
- 基于java學(xué)生信息管理系統(tǒng)
- java學(xué)生管理系統(tǒng)
- 基于JAVA的學(xué)生信息管理系統(tǒng).pdf
- 基于java的學(xué)生宿舍管理系統(tǒng)設(shè)計(jì)
- 基于java的學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的學(xué)生公寓管理系統(tǒng)-開(kāi)題報(bào)告
- 學(xué)生住宿管理系統(tǒng)java
- 基于Java技術(shù)的學(xué)生管理系統(tǒng)研究.pdf
- 基于java的學(xué)生成績(jī)管理系統(tǒng)源代碼
- 基于JAVA的學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).doc
- 基于java的學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)--基于java的學(xué)生成績(jī)管理系統(tǒng)
- 基于java的學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的餐飲管理系統(tǒng)
- 基于java的門(mén)禁管理系統(tǒng)
- 基于java的藥店管理系統(tǒng)
- 基于java的題庫(kù)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論