教室管理系統(tǒng)的源代碼_第1頁
教室管理系統(tǒng)的源代碼_第2頁
教室管理系統(tǒng)的源代碼_第3頁
教室管理系統(tǒng)的源代碼_第4頁
教室管理系統(tǒng)的源代碼_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1. 創(chuàng)建數(shù)據(jù)庫Create datebase classManager;create table ClassInfo(教室編號 varchar(10) primary key, 教室設(shè)備 varchar(100) not null, 教室容納人數(shù) int not null, 教室管理員編號 varchar(10) not null);create table TeacherInfo教師編號varchar(10) primary key,教師姓名varchar(20) not null,教授課程varchar(50),教師職稱varchar(20) not null);create table

2、 ClassRoomInfo( 教室編號 varchar(10), 上課開始時間 dateTime not null, 結(jié)束時間 dateTime not null, 教師編號 varchar(10),Foreign key ( 教室編號 ) references ClassInfo( 教室編號 ),Foreign key (教師編號)references Teacherlnfo(教師編號) );create table manager( username varchar(10) not null, userpsw varchar(10) not null);向其中插入數(shù)據(jù)。insertCla

3、sslnfovalues( 4101, 投影儀 , 40 , 01 )insertClasslnfovalues( 4102, 電腦 , 50 , 02 )insertTeacherlnfovalues( 0A , 李萍 , 計算機(jī)系統(tǒng)分 , 講師 )insert valuesTeacherInfo( 0B , 李明 ,C 語言 ,教授 )insertClassRoomInfovalues( 4101, 8:00 , 10:00, 0A )insertClassRoomInfovalues( 4102, 10:00 , 12:00, 0B )insertmanagervalues( jack,

4、 20120521 )2. 創(chuàng)建登錄界面 package dev.chall.otherinterface; import java.awt.Cursor; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.sql.Connection; import

5、 java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField;public c

6、lass Login extends JDialog implements ActionListener private JLabel name;private JLabel psw; private JTextField nameV;private JPasswordField pswV;private JButton login,quit;private JPanel top;private JPanel center;private JPanel bottom;private JLabel prompt;public static String loginName;public Logi

7、n(Frame owner, String title, boolean modal) super(owner, title, modal);init();private void init()name=new JLabel( 登錄名 :); nameV=new JTextField(10); top=new JPanel(); top.add(name); top.add(nameV); this.add(top);psw=new JLabel( 密 碼 :); pswV=new JPasswordField(10); center=new JPanel(); center.add(psw)

8、; center.add(pswV); this.add(center); login=new JButton(); login.setText( 登錄 ); login.setActionCommand(login); login.addActionListener(this); quit=new JButton( 退出 ); quit.setActionCommand(quit); quit.addActionListener(this); bottom=new JPanel(); bottom.add(login);bottom.add(quit);this.add(bottom);pr

9、ompt=new JLabel();this.add(prompt);this.setLayout(new GridLayout(4, 1);this.setLocation(550, 230);this.setSize(200,200);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent arg0) if(arg0.getActionCommand()=login) String name=nameV .getText();String psw=pswV .getText();if(name.length

10、()=0|psw.length()=0)prompt.setText( 提示:用戶名或密碼為空! ); return;if(checkCount(name,psw)this.dispose();elseprompt.setText( 提示:用戶名或密碼錯誤! ); return;else if(arg0.getActionCommand()=quit)System.exit(0);private boolean checkCount(String name,String psw) Connection connection=null;PreparedStatement ps=null;Resu

11、ltSet rs=null;try /加載驅(qū)動Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/得到連接 connection=DriverManager.getConnection(jdbc:odbc:classManager, sa,songchao);/創(chuàng)建訪問數(shù)據(jù)庫接口ps=connection.prepareStatement(select * from manager); rs=ps.executeQuery();while(rs.next()String namet=rs.getString(1);String pswt=rs.getStr

12、ing(2);System.out.println(namet+pswt+name+psw+-);if(namet.equals(name)&pswt.equals(psw)loginName=namet;return true;System.out.println(false); catch (Exception e) e.printStackTrace();finallytry rs.close();ps.close();connection.close(); catch (SQLException e) e.printStackTrace();return false;Overridep

13、rotected void processWindowEvent(WindowEvent arg0) cessWindowEvent(arg0);if(arg0.getID()=WindowEvent.WINDOW_CLOSING) System.exit(0);3. 實現(xiàn)主界面,實現(xiàn)各按鈕的作用package dev.chall.main;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt

14、.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowEvent;import java.util.Iterator;import java.util.Vector;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JDialog;import jav

15、ax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollBar;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import dev.chall.otherinterface.Delete;import dev.chall.otherinterface.Insert;import dev.chall.otherinterface.Updat

16、e;import dev.chall.otherinterface.Login;import dev.chall.otherinterface.RemindDialog;import dev.chall.util.MyTableModel;/登錄界面 Login login;/主控制界面 private JPanel /topBar private JLabel private JButton /rightBar private JPanel private JLabel private JComboBoxpublic class ControlInterface extends JFrame

17、 implements ActionListenertopBar,rightBar;userName;quit;operationP,buttonP,searchP;operationT,search;operation;private JButton searchB,alert,insert,delete;private JTextField searchT;/搜索字樣 /centerBarprivate JScrollPane scroll;private JTablecontent;private MyTableModel model;, 教室具體使用情況private String l

18、ist=new String 教師信息 ,教室信息 ,教室使用情況 ;private JLabel remind;public static void main(String args)new ControlInterface();public ControlInterface()/登錄界面 login=new Login(this, 登錄 ,true);/登陸界面回來之后/topBartopBar=new JPanel();userName=new JLabel();userName.setText(Login.loginName);userName.setFont(new Font( 隸書

19、 ,1,25);/ 字體 ,1 代表樣式,字號 userName.setLocation(this.getWidth()/2-userName.getWidth()/2, userName.getHeight()/3);topBar.add(userName,BorderLayout.CENTER);quit = new JButton( 退出 );quit.setActionCommand(quit);quit.addActionListener(this);quit.setLocation(int) (this.getWidth()-quit.getWidth()*1.5),userNam

20、e.getHeight()/3); topBar.add(quit,BorderLayout.EAST);this.add(topBar,BorderLayout.NORTH);/rightBarrightBar=new JPanel();rightBar.setLayout(new GridLayout(4,1); this.add(rightBar,BorderLayout.EAST); operationP=new JPanel();operationP.setLayout(new FlowLayout(); operationT=new JLabel( 選擇表: ); operatio

21、n=new JComboBox(list);operation.addItemListener(new ItemListener()Overridepublic void itemStateChanged(ItemEvent arg0) searchT.setText(請輸入+ operation.getSelectedItem().toString().substring(0,2)+ 編號); model=new MyTableModel(operation.getSelectedItem().toString(); content.setModel(model);) ; operation

22、P.add(operationT); operationP.add(operation); buttonP=new JPanel(); buttonP.setLayout(new GridLayout(3,1); alert=new JButton( 修改 ); alert.addActionListener(this); alert.setActionCommand(alert); insert=new JButton( 增加 ); insert.addActionListener(this); insert.setActionCommand(insert); delete=new JBut

23、ton( 刪除 ); delete.addActionListener(this); delete.setActionCommand(delete); buttonP.add(alert); buttonP.add(insert); buttonP.add(delete); operationP.add(buttonP); rightBar.add(operationP); search=new JLabel( 關(guān)鍵字: ); searchT=new JTextField(10);searchT.setText(”請輸入+operation.getSelectedltem().toString

24、().substring(0,2)+編號 );searchB=new JButton( 搜索 ); searchB.addActionListener(this); searchB.setActionCommand(search);searchP=new JPanel(); searchP.setLayout(new FlowLayout();searchP.add(search); searchP.add(searchT); searchP.add(searchB); rightBar.add(searchP); remind=new JLabel(); rightBar.add(remin

25、d);/centerBarmodel=new MyTableModel(operation.getSelectedItem().toString(); content=new JTable(model);scroll=new JScrollPane(content);this.add(scroll,BorderLayout.CENTER);this.setTitle( 教室管理系統(tǒng) );this.setResizable(false);this.setLocation(180,60);this.setSize(1000, 600);this.setVisible(true);this.setD

26、efaultCloseOperation(JFrame.EXIT_ON_CLOSE);Overridepublic void actionPerformed(ActionEvent arg0) if(arg0.getActionCommand()=quit)System.exit(0);if(arg0.getActionCommand()=search)search2UnionTable();return;if(String)operation.getSelectedItem()= 教室具體使用情況 )new RemindDialog(this, 提示 ,true,0);return;if(a

27、rg0.getActionCommand()=insert)new Insert(this, 增加新數(shù)據(jù) ,true,operation.getSelectedItem().toString(); model=new MyTableModel(operation.getSelectedItem().toString(); content.setModel(model);return;if(content.getSelectedRow()=-1)new RemindDialog(this, 提示 ,true,1);return;if(arg0.getActionCommand()=alert)V

28、ector v=(Vector)MyTableModel.rowData.get(content.getSelectedRow(); new Update(this, 修改 ,true,operation.getSelectedItem().toString(),v); model=new MyTableModel(operation.getSelectedItem().toString(); content.setModel(model);return;if(arg0.getActionCommand()=delete)Vector v=(Vector) MyTableModel.rowDa

29、ta.get(content.getSelectedRow(); new Delete(this, 刪除 ,true,v,operation.getSelectedItem().toString(); model=new MyTableModel(operation.getSelectedItem().toString(); content.setModel(model);return;private void search2UnionTable()Vector v=MyTableModel.select(operation.getSelectedItem().toString();Vecto

30、r rowData=new Vector();Iterator iterator=v.iterator();String rNum=searchT.getText().toString().trim();while(iterator.hasNext()Vector tem=(Vector)iterator.next();if(String)tem.get(0).equals(rNum)rowData.add(tem);if(rowData.size()=0)remind.setText( 無該教室信息 );return;elseremind.setText();MyTableModel my=

31、new MyTableModel(rowData,MyTableModel.columnNames); content.setModel(my);4. 向主界面中加載數(shù)據(jù)package dev.chall.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import javax.swing.tab

32、le.AbstractTableModel;public class MyTableModel extends AbstractTableModelpublic static Vector rowData;public static Vector columnNames;public MyTableModel(String value) select(value);public MyTableModel(Vector rowData,Vector columnNames) this.rowData=rowData; this.columnNames=columnNames;public sta

33、tic Vector select(String value) rowData=new Vector();columnNames=new Vector();Connection connection=null;PreparedStatement ps=null;ResultSet rs=null;String sql = null;if(value= 教師信息 )columnNames.add( 教師編號 );columnNames.add( 教師姓名 );columnNames.add( 教授課程 );columnNames.add( 教師職稱 );sql=select * from Tea

34、cherInfo;else if(value= 教室信息 )columnNames.add( 教室編號 );columnNames.add( 教室設(shè)備 );columnNames.add( 教室容納人數(shù) );columnNames.add( 教室管理員編號 );sql=select * from ClassInfo;else if(value= 教室使用情況 )columnNames.add( 教室編號 );columnNames.add( 上課開始時間 );columnNames.add( 結(jié)束時間 );columnNames.add( 教師編號 );開始時結(jié)束時sql=select 教 室

35、 編 號 , convert(varchar(20), 上 課 間 ,111),convert(varchar(20), 上 課 開 始 時 間 ,108),convert(varchar(20), 間 ,111) ,convert(varchar(20), 結(jié)束時間 ,108), 教師編號 from ClassRoomInfo;else if(value= 教室具體使用情況 )columnNames.add( 教室編號 );columnNames.add( 教師編號 );columnNames.add( 教師姓名 );columnNames.add( 教授課程 );columnNames.a

36、dd( 上課開始時間 );columnNames.add( 結(jié)束時間 );columnNames.add( 教師職稱 );columnNames.add( 教室設(shè)備 ); columnNames.add( 教室容納人數(shù) );columnNames.add( 教室管理員編號 );sql=select ClassInfo. 教室編號 ,TeacherInfo. 教師編號 ,TeacherInfo. 教師姓名 ,TeacherInfo. 教授課程 , convert(varchar(20),ClassRoomInfo. 上課開始時間 ,111),convert(varchar(20),ClassRo

37、omInfo. 上課開始時間 ,108),convert(varchar(20),ClassRoomInfo. 結(jié)束時間 ,111) ,convert(varchar(20),ClassRoomlnfo.結(jié)束時間,108) ,Teacherlnfo.教師職稱,Classlnfo.教室設(shè)備,Classlnfo.教室容納 人數(shù) ,ClassInfo. 教室管理員編號 from ClassRoomInfo,TeacherInfo,ClassInfo where ClassInfo. 教室編號 = ClassRoomlnfo. 教室編號 and Teacherlnfo. 教師編號 =ClassRoom

38、lnfo. 教師編號Jtry /加載驅(qū)動Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/得到連接 connection=DriverManager.getConnection(jdbc:odbc:classManager, sa,songchao);/創(chuàng)建訪問數(shù)據(jù)庫接口ps=connection.prepareStatement(sql); rs=ps.executeQuery();if(value= 教師信息 )while(rs.next()Vector tem=new Vector(); tem.add(rs.getString(1); tem.a

39、dd(rs.getString(2);tem.add(rs.getString(3);tem.add(rs.getString(4); rowData.add(tem);else if(value= 教室信息 )while(rs.next()Vector tem=new Vector();tem.add(rs.getString(1);tem.add(rs.getString(2); tem.add(rs.getInt(3);tem.add(rs.getString(4); rowData.add(tem);else if(value= 教室使用情況 )while(rs.next()Vecto

40、r tem=new Vector(); tem.add(rs.getString(1); tem.add(rs.getString(2)+/+rs.getString(3); tem.add(rs.getString(4)+/+rs.getString(5); tem.add(rs.getString(6);rowData.add(tem);else if(value= 教室具體使用情況 ) while(rs.next()Vector tem=new Vector();tem.add(rs.getString(1);tem.add(rs.getString(2);tem.add(rs.getS

41、tring(3);tem.add(rs.getString(4);tem.add(rs.getString(5)+/+rs.getString(6);tem.add(rs.getString(7)+/+rs.getString(8); tem.add(rs.getString(9);tem.add(rs.getString(10);tem.add(rs.getInt(11);tem.add(rs.getString(12);rowData.add(tem); catch (Exception e) e.printStackTrace();finallytry rs.close();ps.clo

42、se();connection.close(); catch (SQLException e) e.printStackTrace();return rowData;Overridepublic String getColumnName(int arg0) return (String) columnNames.get(arg0);Overridepublic int getColumnCount() return columnNames.size();Overridepublic int getRowCount() return rowData.size();Overridepublic O

43、bject getValueAt(int rowIndex, int columnIndex) return (Vector)rowData.get(rowIndex).get(columnIndex);5. 實現(xiàn)主界面中修改按鈕功能package dev.chall.otherinterface;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.ev

44、ent.ActionListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.Vector;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JDialog;i

45、mport javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import dev.chall.util.MyTableModel;public class Update extends JDialogprivate JLabel warn=new JLabel();/ 提示文本private JButton sure=new JButton(- 確定 -);private JButton cancle=new JButton(- 取消 -);private String sql;final J

46、TextField t51=new JTextField(15);final JTextField t52=new JTextField(15);final JTextField t53=new JTextField(15);final JTextField t54=new JTextField(15);public Update(Frame owner, String title, boolean modal,String name,final Vector v) super(owner, title, modal);warn.setBounds(0, 0, 300, 50);t51.set

47、Text(v.get(0).toString(); t51.setEditable(false);t52.setText(v.get(1).toString();t53.setText(v.get(2).toString();t54.setText(v.get(3).toString();if(name= 教師信息 )JLabel t1=new JLabel( 教師編號 :);JLabel t2=new JLabel( 教師姓名 :);JLabel t3=new JLabel( 教授課程 :);JLabel t4=new JLabel( 教師職稱 :); sure.addActionListe

48、ner(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) String tNum=t51.getText();String tName=t52.getText().trim();String tCourse=t53.getText().trim();String tTitle=t54.getText().trim();if(tNum.length()=0|tName.length()=0|tCourse.length()=0|tTitle.length()=0) warn.setText( 信息不全

49、);return; sql=UPDA TE TeacherInfo SET 教 師 姓 名 =+tName+, 教 授 課 程 =+tCourse+, 教師職稱 =+tTitle+ WHERE 教師編號 = +tNum+;update2Table(sql);Update.this.dispose(););cancle.addActionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e) Update.this.dispose(););this.add(t1);this.add(t51);

50、this.add(t2);this.add(t52);this.add(t3);this.add(t53);this.add(t4);this.add(t54);this.add(sure);this.add(cancle);this.add(warn);this.setLayout(new FlowLayout();this.setSize(250,300);this.setLocation(550, 100);this.setResizable(false); this.setVisible(true);this.setDefaultCloseOperation(DISPOSE_ON_CL

51、OSE);else if(name= 教室信息 )JLabel t1=new JLabel( 教室編號:JLabel t2=new JLabel( 教室設(shè)備:JLabel t3=new JLabel( 教 室容納人 數(shù) :);););JLabel t4=new JLabel( 教室管理員編號 :); sure.addActionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e) String tNum=t51.getText();String tName=t52.getText().tr

52、im();String tCourse=t53.getText().trim();String tTitle=t54.getText().trim();if(tNum.length()=0|tName.length()=0|tCourse.length()=0|tTitle.length()=0 warn.setText( 信息不全 );return;教室容納人數(shù)教室編號 =sql=UPDA TE ClassInfo SET 教室設(shè)備 =+tName+, =+tCourse+, 教室管理員編號 =+tTitle+ WHERE +tNum+;update2Table(sql);Update.th

53、is.dispose(););cancle.addActionListener(new ActionListener()Overridepublic void actionPerformed(ActionEvent e) Update.this.dispose(););this.add(t1);this.add(t51);this.add(t2);this.add(t52);this.add(t3);this.add(t53);this.add(t4);this.add(t54); this.add(sure);this.add(cancle); this.add(warn);this.setLayout(new FlowLayout(); this.setSize(220,300);this.setLocation(550, 100); this.setResizable(false);this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);else if(name= 教室使用情況 )JLabel remind=new JLabel( 時間填寫形式 YYYY/MM/DD/HH:MM:SS);JLab

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論