《軟件工程》課程設(shè)計(jì)—— 學(xué)生選課系統(tǒng)

上傳人:沈*** 文檔編號(hào):59466244 上傳時(shí)間:2022-03-03 格式:DOCX 頁(yè)數(shù):22 大小:160.19KB
收藏 版權(quán)申訴 舉報(bào) 下載
《軟件工程》課程設(shè)計(jì)—— 學(xué)生選課系統(tǒng)_第1頁(yè)
第1頁(yè) / 共22頁(yè)
《軟件工程》課程設(shè)計(jì)—— 學(xué)生選課系統(tǒng)_第2頁(yè)
第2頁(yè) / 共22頁(yè)
《軟件工程》課程設(shè)計(jì)—— 學(xué)生選課系統(tǒng)_第3頁(yè)
第3頁(yè) / 共22頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《軟件工程》課程設(shè)計(jì)—— 學(xué)生選課系統(tǒng)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《軟件工程》課程設(shè)計(jì)—— 學(xué)生選課系統(tǒng)(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 《軟件工程》課程設(shè)計(jì)手冊(cè) 題 目: 學(xué)生選課系統(tǒng)設(shè)計(jì) 2010年 1月 20日 目 錄 1. 項(xiàng)目概述 ………………………………………………………………………3 1.1開(kāi)發(fā)背景 ………………………………………………………………………3 1.2 開(kāi)發(fā)目的 ……………………………………………………………………3 1.3 開(kāi)發(fā)運(yùn)行境 ……………………………………………………………………3

2、1.4 系統(tǒng)功能 ………………………………………………………………………3 2.需求分析 …………………………………………………………………………3 2.1 系統(tǒng)需求 ………………………………………………………………………3 2.2 功能需求 ………………………………………………………………………3 2.3 業(yè)務(wù)流圖 ………………………………………………………………………3 3.總體設(shè)計(jì) …………………………………………………………………………4 3.1 基本設(shè)計(jì)概念和處理流程 ……………………………………………………4 3.2 系統(tǒng)層次模圖 ………………………………………………

3、…………………4 3.3系統(tǒng)層次模塊圖 ………………………………………………………………4 3.4模塊設(shè)計(jì) ………………………………………………………………………5 4.數(shù)據(jù)庫(kù)計(jì) …………………………………………………………………………5 4.1 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì) ……………………………………………………………5 4.2數(shù)據(jù)庫(kù)的配置……………………………………………………………………6 5. 詳細(xì)設(shè)計(jì) ………………………………………………………………………8 5.1 學(xué)生登錄模塊的設(shè)計(jì)與實(shí)現(xiàn) …………………………………………………8 5.2 學(xué)生注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn) ……………

4、……………………………………9 5.3 學(xué)生查詢(xún)模塊的設(shè)計(jì)與實(shí)現(xiàn)…………………………………………………9 5.4 學(xué)生選課模塊的設(shè)計(jì)與實(shí)現(xiàn)…………………………………………………10 6 測(cè)試及提交 ……………………………………………………………………10 7 項(xiàng)目小組成員及詳細(xì)分工 ……………………………………………………10 8 附:模塊源代碼 ………………………………………………………………11 1.項(xiàng)目概述 1.1 開(kāi)發(fā)背景 Internet的飛速發(fā)展深刻地影響了人們的日常生活和商業(yè)運(yùn)作方式。人們打開(kāi)網(wǎng)頁(yè)瀏覽當(dāng)天的新聞,發(fā)電子郵件給遠(yuǎn)方的朋友,使用搜索引擎查找資料

5、,進(jìn)入網(wǎng)上商城購(gòu)買(mǎi)商品——這一切都是在使用Internet。社會(huì)的方方面面滲透著互連網(wǎng)的應(yīng)用,使得一向煩瑣的手工程序變得方便,快捷,而學(xué)校網(wǎng)上選課系統(tǒng)正是基于這一思想而發(fā)展起來(lái)的。 1.2 開(kāi)發(fā)目的 傳統(tǒng)的手工選課不僅復(fù)雜,也牽涉了很多的人力,對(duì)管理也造成了諸多不變,而借助網(wǎng)上選課系統(tǒng),學(xué)生在規(guī)定選課時(shí)間段內(nèi),可以不受地點(diǎn)和時(shí)間的限制完成選修課的申請(qǐng),而學(xué)校也可以方便地對(duì)系統(tǒng)進(jìn)行管理和控制,提高工作效率。 1.3 開(kāi)發(fā)運(yùn)行環(huán)境: 開(kāi)發(fā)工具:java語(yǔ)言 開(kāi)發(fā)環(huán)境:JDK 1.4 系統(tǒng)功能: (1) 登錄、注冊(cè)功能. (2) 選課功能 (3) 查詢(xún)功能 2.需求分析 2

6、.1 系統(tǒng)需求 用戶(hù)的需求具體體現(xiàn)在各種學(xué)習(xí)成績(jī)的提供、保存、更新和查詢(xún)方面,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能充分滿(mǎn)足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。 2.2 功能需求 通過(guò)系統(tǒng)功能分析,針對(duì)一般的網(wǎng)上選課系統(tǒng),總結(jié)出如下的需求信息: (1) 學(xué)生的需求:網(wǎng)上選課、選課情況查詢(xún); (2) 本系統(tǒng)主要實(shí)現(xiàn)學(xué)生信息管理和選課查詢(xún)。 學(xué)生信息包括學(xué)號(hào)、姓名、班級(jí); 課程信息包括課程名; 2.3 業(yè)務(wù)流程圖 學(xué)生 登錄 選課 查詢(xún)課程 系統(tǒng) 管理員 選課信息 3.總體設(shè)計(jì) 3.1 基本設(shè)計(jì)概念和處理

7、流程 互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,Java等設(shè)計(jì)工具的方便實(shí)用,以及數(shù)據(jù)庫(kù)技術(shù)的發(fā)展給本系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)提供了技術(shù)上的支持。 系統(tǒng)基本的流程是:用戶(hù)登錄->主界面->選擇各項(xiàng)子系統(tǒng)。 3.2 系統(tǒng)層次模塊圖 學(xué)生選課系統(tǒng) 登陸/注冊(cè) 選課 查詢(xún) 數(shù)據(jù)庫(kù)的設(shè)計(jì) 3.3系統(tǒng)層次模塊圖 3.4模塊設(shè)計(jì) (1) 用戶(hù)注冊(cè)模塊:填寫(xiě)用戶(hù)名、密碼、確認(rèn)密碼 (2) 用戶(hù)登錄模塊:填寫(xiě)已注冊(cè)的用戶(hù)名稱(chēng),填寫(xiě)正確的密碼,進(jìn)入主控制頁(yè)面。 (3) 用戶(hù)選課模塊:。 (4) 用戶(hù)查詢(xún)模塊:可以進(jìn)行查看所選課程的操作。 4.數(shù)據(jù)庫(kù)設(shè)計(jì) 4.1 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)

8、 我們選用了Microsoft Access 2000。 數(shù)據(jù)通信接口采用ODBC。ODBC是微軟開(kāi)發(fā)的一套讀取數(shù)據(jù)庫(kù)的解決方案,它的目的是將所有對(duì)數(shù)據(jù)庫(kù)的底層操作全部隱藏在ODBC的驅(qū)動(dòng)程序內(nèi)核里。對(duì)于程序員來(lái)說(shuō),只要構(gòu)建了一個(gè)指向數(shù)據(jù)庫(kù)的連接,就可以采用統(tǒng)一的應(yīng)用程序編程接口實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)。目前ODBC驅(qū)動(dòng)已經(jīng)提供了對(duì)大多數(shù)常見(jiàn)類(lèi)型數(shù)據(jù)庫(kù)的支持,包括dBase,Informix,Access,SQL Server和Oracle等。也包括了對(duì)其它類(lèi)型的數(shù)據(jù)庫(kù)的支持,如文本,Excel電子表格等的支持。 根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對(duì)于系統(tǒng)信息數(shù)據(jù)庫(kù),可以列出以下數(shù)據(jù)項(xiàng)和

9、數(shù)據(jù)結(jié)構(gòu): 1. 名稱(chēng):用戶(hù)信息表 表名稱(chēng)標(biāo)識(shí):login 名稱(chēng) 字段名稱(chēng) 數(shù)據(jù)類(lèi)型 主鍵 非空 用戶(hù)名 UserName 文本 No Yes 密碼 Password 文本 No No 記錄: 2.名稱(chēng):課程信息表 表名稱(chēng)標(biāo)識(shí):kechengbiao 名稱(chēng) 字段名稱(chēng) 數(shù)據(jù)類(lèi)型 主鍵 非空 學(xué)號(hào) number 數(shù)字 No Yes 姓名 name 文本 No No 課程名稱(chēng) lesson 文本 No No 記錄: 4.2數(shù)據(jù)庫(kù)的配置 一個(gè)真正的、完整的站點(diǎn)是離不開(kāi)數(shù)據(jù)庫(kù)的。ODBC為應(yīng)用程序提供了

10、一種標(biāo)準(zhǔn)方法來(lái)操作相關(guān)的數(shù)據(jù)庫(kù):管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫(kù)的位置、數(shù)據(jù)庫(kù)類(lèi)型及ODBC驅(qū)動(dòng)程序等信息,建立起ODBC與具體數(shù)據(jù)庫(kù)的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫(kù)的連接。 按如下步驟可以建立一個(gè)新的系統(tǒng)數(shù)據(jù)源。 首先,在控制面板中雙擊ODBC圖標(biāo),打開(kāi)“ODBC數(shù)據(jù)源管理器”對(duì)話框,選擇“系統(tǒng)DSN”選項(xiàng)卡,單擊“添加”按鈕。如下圖所示。 在“創(chuàng)建新數(shù)據(jù)源”對(duì)話框中,選擇“Driver do Microsoft Access(*.mdb)”作為數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序并單擊“完成”按鈕。如下圖所示。 在“ODBC Microsof

11、t Access安裝”對(duì)話框中,數(shù)據(jù)源名稱(chēng)填寫(xiě)為“student”,這是程序中將要引用的。單擊“選擇…”按鈕,從彈出的文件窗口中選擇student.mdb文件所在的位置。如下圖所示。 然后單擊“確定”按鈕,這樣就完成了Access數(shù)據(jù)庫(kù)的ODBC數(shù)據(jù)源設(shè)置。 以上步驟,通過(guò)ODBC管理器注冊(cè)了一個(gè)名字為student的數(shù)據(jù)源,并且指定了數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序。 5. 詳細(xì)設(shè)計(jì) 5.1 學(xué)生登錄模塊的設(shè)計(jì)與實(shí)現(xiàn) 5.1.1. 登錄模塊 功能:本模塊主要用于對(duì)用戶(hù)身份進(jìn)行鑒別。用戶(hù)通過(guò)表單提供用戶(hù)名和密碼信息,系統(tǒng)根據(jù)用戶(hù)提供的登錄信息對(duì)用戶(hù)進(jìn)行身份查詢(xún)鑒別。如果身份合法,則將用戶(hù)導(dǎo)向系

12、統(tǒng)的選課頁(yè)面。 輸入:用戶(hù)名、密碼 處理: (1) 輸入用戶(hù)的登錄信息:在頁(yè)面提供的表單出輸入用戶(hù)的用戶(hù)名和密碼信息,點(diǎn)擊“登錄”按鈕提交表單信息到身份驗(yàn)證頁(yè)面?;螯c(diǎn)擊“重置”按鈕,重新輸入。 (2) 用戶(hù)身份進(jìn)行驗(yàn)證:連接數(shù)據(jù)庫(kù),打開(kāi)用戶(hù)數(shù)據(jù)表login,檢驗(yàn)用戶(hù)登錄信息。以輸入數(shù)據(jù)“用戶(hù)名”為查詢(xún)條件創(chuàng)建數(shù)據(jù)集查看輸入用戶(hù)名是否存在。如果存在,繼續(xù)檢驗(yàn)輸入的密碼是否正確。密碼和用戶(hù)名都正確,則進(jìn)入選課頁(yè)面;如果用戶(hù)名不存在或密碼不正確,則給出登錄失敗的提示框。 輸出:學(xué)生選課頁(yè)面 5.1.2.學(xué)生登錄頁(yè)面圖如下圖所示: 5.2 學(xué)生注冊(cè)模塊的設(shè)計(jì)與實(shí)現(xiàn)

13、5.3 學(xué)生查詢(xún)模塊的設(shè)計(jì)與實(shí)現(xiàn) 5.4 學(xué)生選課模塊的設(shè)計(jì)與實(shí)現(xiàn) 6 測(cè)試及提交 7 項(xiàng)目小組成員及詳細(xì)分工 工作任務(wù) 徐寒亭 胡中濤 盧文琳 李爽 需求分析 數(shù)據(jù)庫(kù)的設(shè)計(jì) 查詢(xún)功能 選課功能 登陸注冊(cè)功能 查詢(xún)模塊 √ 注冊(cè)登錄模塊 √ 數(shù)據(jù)庫(kù)設(shè)計(jì)模塊 √ 選課模塊 √ 8 附:模塊源代碼 (1)登錄模塊 import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; import

14、 java.sql.*; public class Login extends Frame implements ActionListener{ Frame f,f1; Button b1; Button b2; Button b3; TextField t1; TextField t2; Label l1; Label l2; Connection con; Statement sql; //聲明Statement對(duì)象 ResultSet rs

15、; public Login(){ f=new Frame("學(xué)生選課系統(tǒng)"); Toolkit tool=f.getToolkit(); Dimension dim=tool.getScreenSize(); f.setBounds(0,0,dim.width,dim.height); Panel p=new Panel(); f.add(p); l1=new Label("用戶(hù)名"); l2=new Label("密碼");

16、 t1=new TextField(20); t2=new TextField(20); b1=new Button("登陸"); b2=new Button("取消"); b3=new Button("注冊(cè)"); p.add(l1); p.add(t1); p.add(l2); p.add(t2); p.add(b1); p.add(b2); p.

17、add(b3); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); f.setVisible(true); t2.setEchoChar('*'); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {

18、 System.exit(0); } } ); } public void actionPerformed(ActionEvent e){ if(e.getSource()==b1){ if(t1.getText().equals("")||t2.getText().equals("")){ JOptionPane.showMessageDialog(null,"輸入不能為空!"); } else{

19、 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException a){ System.out.println(""+a); } try{ con=DriverManager.getConnection("jdbc:odbc:sun","","");

20、 sql=con.createStatement(); rs=sql.executeQuery("Select * FROM login"); //查詢(xún)數(shù)據(jù)庫(kù) boolean check = false; while(rs.next()){ String UserName=rs.getString(1); //獲得數(shù)據(jù)庫(kù)第二列

21、 String Password=rs.getString(2); //獲得數(shù)據(jù)庫(kù)第三列 if(t1.getText().equals(UserName) && t2.getText().equals(Password)){ //判斷語(yǔ)句 check = true; JOptionPane.showMessageDialog(null,"登陸成功!"); f.dispose();

22、 new WindowBox("選課窗口"); t1.setText(""); t2.setText(""); break; } } if(check == false){ JOptionPane.showMessageDialog(null

23、,"登陸失敗,請(qǐng)重新輸入!"); } con.close(); } catch(SQLException el){} } } if(e.getSource()==b2){ t1.setText(""); t2.setText(""); } if(e.getSource()==b3){ f.dispose(); new Regist("學(xué)生選課系統(tǒng)

24、注冊(cè)界面"); } } public void windowClosing(WindowEvent e){ System.exit(0); } public static void main(String[] args) { new Login(); } } (2)注冊(cè)模塊 import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; import java.sql.*; class Regist extends Frame implem

25、ents ActionListener{ Label lb1, lb2, lb3; TextField tf1, tf2, tf3; Button bt1, bt2, bt3; Regist(String s){ super(s); setLayout(null); setBounds(0,0,900,900); setVisible(true); setResizable(false); lb1 = new Label("用戶(hù)名"); lb1.setBounds(150,100,50,20); lb2 = new

26、Label("密碼"); lb2.setBounds(150,200,50,20); lb3 = new Label("確認(rèn)"); lb3.setBounds(150,300,50,20); tf1 = new TextField(); tf1.setBounds(200,98,200,20); tf2 = new TextField(); tf2.setBounds(200,198,200,20); tf2.setEchoChar('*'); tf3 = new TextField(); tf3.setBounds(200,

27、298,200,20); tf3.setEchoChar('*'); bt1 = new Button("注冊(cè)"); bt1.setBounds(200,400,100,40); bt2 = new Button("返回"); bt2.setBounds(350,400,100,40); bt3 = new Button("退出"); bt3.setBounds(435,400,100,40); add(lb1); add(lb2); add(lb3); add(tf1); add(tf2); add

28、(tf3); add(bt1); add(bt2); add(bt3); tf3.addActionListener(this); bt1.addActionListener(this); bt2.addActionListener(this); bt3.addActionListener(this); addWindowListener(new java.awt.event.WindowAdapter(){ public void windowClosing(java.awt.event.WindowEvent e)

29、 { System.exit(0); } } ); } public void actionPerformed(ActionEvent e){ if(e.getSource()== bt1 || e.getSource()== tf1 || e.getSource()== tf2 || e.getSource()== tf3){ if(tf1.getText().equals("")|| tf2.getText().equals("") || tf3.getText().equals("")){ JOptionPane.showMe

30、ssageDialog(this,"請(qǐng)輸入用戶(hù)名和密碼","提示",JOptionPane.ERROR_MESSAGE); //判斷文本內(nèi)容語(yǔ)句 } else{ if(tf2.getText().equals(tf3.getText())){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con; Statement sq; ResultSet r; String u, p; c

31、on = DriverManager.getConnection("jdbc:odbc:sun",null,null); sq=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); r = sq.executeQuery("SELECT * FROM login"); while(r.next()){ u =r.getString(1); if(tf1.getText().equals(u)){

32、 JOptionPane.showMessageDialog(this,"用戶(hù)已存在","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); con.close(); break; //判斷用戶(hù)是否存在 } else if(r.isLast()){ //判斷是否已經(jīng)讀完整個(gè)表 u = tf1.getText(); p = tf2.getText(); sq.executeUpdate("INSERT INTO login(UserN

33、ame,Password) VALUES("+"'"+u+"'"+","+"'"+p+"'"+")"); //寫(xiě)入用戶(hù)信息 JOptionPane.showMessageDialog(this,"注冊(cè)成功","提示",JOptionPane.INFORMATION_MESSAGE); con.close(); dispose(); new Login(); break; } }

34、tf1.setText(null); tf2.setText(null); tf3.setText(null); } catch(SQLException b){ JOptionPane.showMessageDialog(this,b,"錯(cuò)誤",JOptionPane.ERROR_MESSAGE); } catch(ClassNotFoundException a){ JOptionPane.showMessageDialog(this,a,"錯(cuò)誤",JOptionPane

35、.ERROR_MESSAGE); } } else{ JOptionPane.showMessageDialog(this,"兩次密碼不一致","提示",JOptionPane.ERROR_MESSAGE); tf2.setText(null); tf3.setText(null); } } } else if(e.getSource()== bt3){ System.exit(0); } else if(e.getSource()== bt2){ dispose();

36、 new Login(); } } } public class xuhanting1 { public static void main(String args[]) { new Regist("學(xué)生選課系統(tǒng)注冊(cè)界面"); } } (3)選課模塊 import java.awt.*; import java.awt.event.*; import java.sql.*; class WindowBox extends Frame implements ActionListener,ItemListener { Checkb

37、ox box1,box2,box3,box4,box5,box6; Label l1; Label l2; TextField t1; Label l3; TextField t2; TextArea t = new TextArea(); Button b1,b2; WindowBox(String s) { super(s); setLayout(new FlowLayout()); l2=new Label("學(xué)號(hào)"); t1=new TextField(10); l3=new Label("姓名");

38、 t2=new TextField(10); b1=new Button("確定"); b2=new Button("重置"); l1=new Label("所選課程"); box1=new Checkbox("離散數(shù)學(xué)",false); box2=new Checkbox("匯編語(yǔ)言",false); box3=new Checkbox("java語(yǔ)言設(shè)計(jì)",false); box4=new Checkbox("軟件工程",false); box5=new Checkbox("操作系統(tǒng)",false); box6=new Checkb

39、ox("馬克思政治學(xué)",false); box1.addItemListener(this); box2.addItemListener(this); box3.addItemListener(this); box4.addItemListener(this); box5.addItemListener(this); box6.addItemListener(this); add(l2); add(t1); add(l3); add(t2); add(b1); add(b2); add(l1); add(box

40、1); add(box2); add(box3); add(box4); add(box5); add(box6); add(t); b1.addActionListener(this); b2.addActionListener(this); setSize(500,500); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.

41、exit(0);} } ); validate();} public void itemStateChanged(ItemEvent e) { Checkbox box=(Checkbox)e.getSource(); if(box.getState()) { int n=t.getCaretPosition(); t.insert(box.getLabel(),n);} else {t.setText("");} } public void actionPerformed(ActionEven

42、t a) { if(a.getSource()==b1) { Connection con; Statement sql; ResultSet rs; String number1,name1,lesson1, recode,insertStr; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException g){ System.out.println(""+g);

43、 } try{ con=DriverManager.getConnection("jdbc:odbc:sun","",""); sql=con.createStatement(); number1=t1.getText(); name1=t2.getText(); lesson1=t.getText(); recode="("+"'"+number1+"'"+","+"'"+name1+"'"+","+"'"+lesson1+"'"+")"; insertStr="INSERT INTO k

44、echengbiao values"+recode; sql.executeUpdate(insertStr); con.close(); dispose(); RuanJian rj=new RuanJian("查詢(xún)窗口"); } catch(SQLException h) {System.out.println(h);} } else if(a.getSource()==b2) { t

45、1.setText(""); t2.setText(""); t.setText(""); } } } public class xuhanting3 {public static void main(String args[]) {new WindowBox("選課窗口");} } (4)查詢(xún)模塊 import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.JOptionPane; class RuanJian extends

46、 Frame implements ActionListener { Label lab1; TextField text1; Button b1,b2; TextArea t=new TextArea(); RuanJian(String s) { setTitle(s); setLayout(null); lab1=new Label("請(qǐng)輸入學(xué)號(hào)"); text1=new TextField(10); b1=new Button("確定"); b1.addActionListener(this); b2=new Button

47、("重置"); b2.addActionListener(this); lab1.setBounds(120,100,100,30); text1.setBounds(250,100,200,30); b1.setBounds(220,180,50,30); b2.setBounds(320,180,50,30); t.setBounds(100,250,380,300); add(lab1); add(text1); add(b1); add(b2); add(t); setBounds(100,100,600,600)

48、; setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); validate(); } public void actionPerformed(ActionEvent m) { if(m.getSource()==b1) { String s; s=text1.getText()

49、; int r=1; Connection con;//java.sql包中Connection 連接 Statement sql;//向數(shù)據(jù)庫(kù)發(fā)送sql語(yǔ)句 ResultSet rs;//處理查詢(xún)結(jié)果 try{ Class .forName("sun.jdbc.odbc.JdbcOdbcDriver");//建立jdbc與odbc連接 } catch(ClassNotFoundException e) { System.out.println(""+e);

50、 } try{ con=DriverManager.getConnection("jdbc:odbc:sun","",""); sql=con.createStatement(); rs=sql.executeQuery("select * from kechengbiao"); while(rs.next()) { String number=rs.getString(1); String name=rs.getString(2); String lesson=rs.getString(3);

51、 if(s.equals(number)) { t.append("學(xué)號(hào):"+number+"\n"); t.append("姓名:"+name+"\n"); t.append("課程:"+lesson+"\n"); r=0; break; } } if(s.equals("")) {JOptionPane.showMessageDialog(this,"請(qǐng)輸入學(xué)號(hào)","警告對(duì)話框",JOptionPane.WARNING_MESSAGE)

52、; } else if(r==1) {JOptionPane.showMessageDialog(this,"學(xué)號(hào)輸入錯(cuò)誤","警告對(duì)話框",JOptionPane.WARNING_MESSAGE); // break; } con.close(); } catch(SQLException e) { System.out.println(e); } } else if(m.getSource()==b2) { String s=""; text1.setText(s); t.setText(s); } } } public class xuhanting { public static void main(String args[]) { RuanJian rj=new RuanJian("查詢(xún)窗口"); } } 22

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!