Java學(xué)生管理系統(tǒng)_第1頁(yè)
Java學(xué)生管理系統(tǒng)_第2頁(yè)
Java學(xué)生管理系統(tǒng)_第3頁(yè)
Java學(xué)生管理系統(tǒng)_第4頁(yè)
Java學(xué)生管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、(1) 首先確定學(xué)生管理系統(tǒng)的用戶。(2) 學(xué)生管理系統(tǒng)的用戶基本分為兩類,分別是老師和學(xué)生。不管是哪種用戶都是必須經(jīng)過(guò)登錄才能進(jìn)入學(xué)生管理系統(tǒng)的,所以該系統(tǒng)必須有一個(gè)登錄界面,并且在該界面中能夠讓用戶選擇用戶是老師還是學(xué)生。該系統(tǒng)是不會(huì)對(duì)外開(kāi)放的,所以也不存在注冊(cè)界面。(3) 因?yàn)橛脩舴譃閮煞N,所以每一種用戶進(jìn)行操作的界面應(yīng)該是不同的。首先是學(xué)生界面,在其中應(yīng)該只有查詢成績(jī)和個(gè)人信息查詢和插入。主要來(lái)學(xué)習(xí)如何進(jìn)行學(xué)生界面開(kāi)發(fā)。(4) 除了學(xué)生界面外,還要有一個(gè)老師界面。老師在老師界面中可以對(duì)學(xué)生信息進(jìn)行管理,包括查詢、修改和刪除。同樣也可以對(duì)學(xué)生的成績(jī)進(jìn)行管理,包括查詢和插入,由于輸入錯(cuò)誤還

2、要能夠?qū)W(xué)生的成績(jī)進(jìn)行修改,由于學(xué)生作弊還能夠?qū)W(xué)生的成績(jī)進(jìn)行刪除。(5) 首先數(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)行操作。(6) 除此之外還需要一個(gè)成績(jī)表,通過(guò)該表老師可以對(duì)學(xué)生的成績(jī)進(jìn)行查詢、插入、修改和刪除。學(xué)生也可以通過(guò)該表對(duì)自己的成績(jī)進(jìn)行查詢。(7) 不管是老師和學(xué)生進(jìn)入學(xué)生管理系統(tǒng)都是從登錄界面進(jìn)入的。在登錄界面中應(yīng)該是讓用戶選擇自己身份的,然后系統(tǒng)將根據(jù)用戶的選擇來(lái)判斷用戶的身份并進(jìn)行查詢不同的數(shù)據(jù)庫(kù)。(8) 對(duì)界面設(shè)計(jì)好基本

3、形式后,就可以進(jìn)行程序開(kāi)發(fā)。首先要定義兩個(gè)標(biāo)簽和兩個(gè)文本框,分別來(lái)表示用戶名和密碼。并且還需要定義一個(gè)下拉列表讓用戶來(lái)進(jìn)行身份選擇,其中選項(xiàng)包括“學(xué)生”和“老師”。在程序的最后還定義了兩個(gè)按鈕,從而讓用戶輸入用戶名和密碼后進(jìn)行登錄。(9) 在學(xué)生界面中,學(xué)生可以對(duì)自己的信息進(jìn)行查詢,在第一次登錄時(shí)還可以對(duì)自己的信息進(jìn)行插入,并且學(xué)生能夠查詢自己的成績(jī)。(10) 因?yàn)閷W(xué)生要完成對(duì)信息和成績(jī)的操作,所以這里的設(shè)計(jì)是在界面中定義兩個(gè)菜單,分別進(jìn)行信息和成績(jī)的操作。因?yàn)閷?duì)信息的操作包括插入和查詢,所以還需要在信息菜單下定義“插入”和“查詢”兩個(gè)子菜單。(11) 對(duì)界面進(jìn)行設(shè)計(jì)后,就可以進(jìn)行程序開(kāi)發(fā)。同

4、樣首先是創(chuàng)建一個(gè)窗口,在窗口中要?jiǎng)?chuàng)建兩個(gè)菜單,并且在信息菜單下還要?jiǎng)?chuàng)建“插入”和“查詢”兩個(gè)子菜單。(12) 在學(xué)生界面中單擊“信息”菜單下的“插入”子菜單,就會(huì)進(jìn)入學(xué)生插入界面,在該界面中學(xué)生可以輸入自己的信息。(13) 學(xué)生第一次插入信息后,老師是可以對(duì)學(xué)生的信息進(jìn)行修改和刪除的。除此之外,學(xué)生還可以查詢自己被修改后的信息,在信息菜單下有一個(gè)查詢子菜單,單擊該菜單就觸發(fā)事件,從而進(jìn)入查詢學(xué)生信息界面。(14) 在學(xué)生界面中還有一個(gè)“成績(jī)”菜單,在學(xué)生的界面該菜單下只有一個(gè)“查詢”子菜單。單擊“查詢”子菜單,將觸發(fā)事件,進(jìn)入到查詢成績(jī)界面。2、 附錄(1) 登陸界面import java.a

5、wt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class systems extends JFrame implements ActionListenerstatic systems ss;JPanel panel = new JPanel();JLabel label1 = new JLabel(輸入姓名:);JTextField name = new JTextField();JLabel label2 = new JLabel(密 碼:);JPasswordField pwd = ne

6、w JPasswordField();JButton Enter = new JButton(登錄);JButton Exit = new JButton(退出);String url = D:Systemstitle.jpg;ButtonGroup bgp = new ButtonGroup();JRadioButton stu = new JRadioButton(學(xué)生);JRadioButton tch = new JRadioButton(教師);public systems()super(登錄系統(tǒng));this.setResizable(false); JLabel img = new

7、 JLabel(new ImageIcon(url);img.setBounds(0,0,500,100);panel.add(img);stu.setBounds(165,210,70,20);tch.setBounds(265,210,70,20);bgp.add(stu);bgp.add(tch);panel.add(stu);panel.add(tch);Enter.setBounds(150,250,80,20);Exit.setBounds(270,250,80,20);Enter.addActionListener(this);Exit.addActionListener(thi

8、s);panel.add(Enter);panel.add(Exit); panel.setLayout(null);this.add(panel);label1.setBounds(135,130,100,25);panel.add(label1); name.setBounds(265,130,100,25);panel.add(name);label2.setBounds(135,165,100,25);panel.add(label2); pwd.setBounds(265,165,100,25);panel.add(pwd);this.setBounds(100,100,500,35

9、0);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void actionPerformed(ActionEvent e)if(e.getSource()=Enter)String username , password;username = name.getText(); password = pwd.getText();tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce

10、)JOptionPane.showMessageDialog(ss,ce.getMessage();if(stu.isSelected()try Connection con = DriverManager.getConnection(jdbc:odbc:sysdb,sa,); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(select * from STU); while(rs.next() if(rs.getString(ID).equals(username)&(rs.getString(

11、Pwd).equals(password) JOptionPane.showMessageDialog(ss,登陸成功);Students stu = new Students(); else JOptionPane.showMessageDialog(ss,登錄失敗); rs.close(); stmt.close(); catch (SQLException se) JOptionPane.showMessageDialog(ss,se.getMessage(); else if(tch.isSelected()tryConnection con = DriverManager.getCo

12、nnection(jdbc:odbc:systchdb,sa,);Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(select * from TCH);while(rs.next()if(rs.getString(ID).equals(username)&(rs.getString(Pwd).equals(password)JOptionPane.showMessageDialog(ss,登陸成功);elseJOptionPane.showMessageDialog(ss,登錄失敗);catch (

13、SQLException se)JOptionPane.showMessageDialog(ss,se.getMessage();elseSystem.exit(0);public static void main(String args)systems sys = new systems();(2) 學(xué)生界面import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Students extends JFrame implements ActionListenerJMenuBar jmb = new

14、JMenuBar();JMenu Message = new JMenu(信息);JMenu Score = new JMenu(成績(jī));JMenuItem Item1 = new JMenuItem(插入);JMenuItem Item2 = new JMenuItem(查詢);JMenuItem Item3 = new JMenuItem(查詢);public Students()super(學(xué)生界面);this.setSize(500,400);this.setVisible(true);this.setResizable(false);this.setDefaultCloseOpera

15、tion(JFrame.EXIT_ON_CLOSE);this.setJMenuBar(jmb);jmb.add(Message);jmb.add(Score);Message.add(Item1);Message.add(Item2);Score.add(Item3);Item1.addActionListener(this);Item2.addActionListener(this);Item3.addActionListener(this); public void actionPerformed(ActionEvent e)if(e.getSource()=Item1)AddMsg a

16、d = new AddMsg();else if(e.getSource()=Item2)Serch ser = new Serch();elseScore so = new Score();public static void main(String args)Students stu = new Students();(3) 添加學(xué)生信息import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class AddMsg extends JFrame implements A

17、ctionListenerstatic AddMsg s;/*添加學(xué)生信息控件*/JPanel jpl = new JPanel();JLabel label1 = new JLabel(添加基本信息,JLabel.CENTER);JLabel label2 = new JLabel(學(xué)號(hào):,JLabel.CENTER);JLabel label3 = new JLabel(姓名:,JLabel.CENTER);JLabel label4 = new JLabel(性別:,JLabel.CENTER);JLabel label5 = new JLabel(班級(jí):,JLabel.CENTER);

18、JLabel label6 = new JLabel(學(xué)院:,JLabel.CENTER);JTextField num = new JTextField(2);JTextField nam = new JTextField(4);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton(男);JRadioButton women = new JRadioButton(女);JTextField clas = new JTextField();JTextField scl = new JTextField()

19、;JButton reset = new JButton(重置);JButton addmsg = new JButton(添加);public AddMsg()super(添加學(xué)生信息);this.setResizable(false);this.setSize(500,400);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);addmsg.addActionListener(this);reset.addActionList

20、ener(this);/*插入面板*/label1.setBounds(100,20,300,20);jpl.add(label1);label2.setBounds(100,50,70,20);jpl.add(label2);num.setBounds(190,50,140,20);jpl.add(num);label3.setBounds(100,90,70,20);jpl.add(label3);nam.setBounds(190,90,140,20);jpl.add(nam);label4.setBounds(100,130,70,20);jpl.add(label4);man.set

21、Bounds(190,130,60,20);women.setBounds(270,130,60,20);jpl.add(man);jpl.add(women);bgp.add(man);bgp.add(women);label5.setBounds(100,170,70,20);jpl.add(label5);clas.setBounds(190,170,140,20);jpl.add(clas);label6.setBounds(100,210,70,20);jpl.add(label6);scl.setBounds(190,210,140,20);jpl.add(scl);reset.s

22、etBounds(120,250,90,20);addmsg.setBounds(240,250,90,20);jpl.add(reset);jpl.add(addmsg);public void actionPerformed(ActionEvent e)if(e.getSource()=addmsg)String sex;if(man.isSelected() sex=男;else sex=女; tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce)JOptionPane.showMe

23、ssageDialog(s,ce.getMessage();tryConnection con = DriverManager.getConnection(jdbc:odbc:sysdb,sa,);Statement stmt = con.createStatement();int a = stmt.executeUpdate(insert into STU(ID , Pwd , Name , Sex , Class , Collage)values(+num.getText()+,+,+nam.getText()+,+sex+,+clas.getText()+,+scl.getText()+

24、);if(a=1)JOptionPane.showMessageDialog(s,已成功添加);elseJOptionPane.showMessageDialog(s,添加失敗);stmt.close();catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage();elsenum.setText();nam.setText();clas.setText();scl.setText();num.requestFocus();public static void main(String args)AddMsg amg

25、 = new AddMsg();(4) 添加學(xué)生成績(jī)import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Addscore extends JFrame implements ActionListenerstatic Addscore ss;JLabel label = new JLabel(學(xué)號(hào):) , new JLabel(計(jì)算機(jī)網(wǎng)絡(luò):) , new JLabel(Linux操作系統(tǒng):) , new JLabel(計(jì)算機(jī)專業(yè)英語(yǔ):) , new JLabel

26、(計(jì)算機(jī)信息技術(shù)基礎(chǔ):) , new JLabel(Java程序設(shè)計(jì):) , new JLabel(數(shù)據(jù)庫(kù)應(yīng)用實(shí)訓(xùn)教程:) , new JLabel(高等數(shù)學(xué):) , new JLabel(XML:); JTextField txt = new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField() ,new JTextField() ,new JTextField() ;JButton add =

27、new JButton(添加);JButton reset = new JButton(重置);JPanel jpl = new JPanel();JLabel title = new JLabel(添加學(xué)生成績(jī) , JLabel.CENTER);Font f = new Font(黑體 , Font.BOLD , 16 );int s = 100;public Addscore()super(添加學(xué)生信息);this.setResizable(false);this.setSize(500,600);this.setDefaultCloseOperation(EXIT_ON_CLOSE);t

28、his.setVisible(true);this.add(jpl);add.addActionListener(this);reset.addActionListener(this);jpl.setLayout(null);title.setBounds(150,40,200,20);title.setFont(f);title.setForeground(Color.red);jpl.setBackground(Color.LIGHT_GRAY);jpl.add(title);for(int i = 0 ; i label.length ; i+)labeli.setBounds(100,

29、s,140,20);jpl.add(labeli);txti.setBounds(260,s,140,20);jpl.add(txti);s=s+40;add.setBounds(150,s,80,20);reset.setBounds(250,s,80,20);jpl.add(add);jpl.add(reset);public void actionPerformed(ActionEvent e)if(e.getSource()=add)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException

30、ce)JOptionPane.showMessageDialog(ss,ce.getMessage();tryConnection con = DriverManager.getConnection(jdbc:odbc:sysdb,sa,);Statement stmt = con.createStatement();int a = stmt.executeUpdate(insert into 計(jì)算機(jī)系成績(jī)(SID , 計(jì)算機(jī)網(wǎng)絡(luò) , Linux操作系統(tǒng) , 計(jì)算機(jī)專業(yè)英語(yǔ) , 計(jì)算機(jī)信息技術(shù)基礎(chǔ) , Java程序設(shè)計(jì) , 數(shù)據(jù)庫(kù)應(yīng)用實(shí)訓(xùn)教程 , 高等數(shù)學(xué) , Xml)values(+txt0

31、.getText()+,+txt1.getText()+,+txt2.getText()+,+txt3.getText()+,+txt4.getText()+,+txt5.getText()+,+txt6.getText()+,+txt7.getText()+,+txt8.getText()+);if(a=1)JOptionPane.showMessageDialog(ss,添加成功);elseJOptionPane.showMessageDialog(ss,添加失敗);catch (SQLException se)JOptionPane.showMessageDialog(ss,se.get

32、Message();elsefor(int i = 0 ; itxt.length ; i+)txti.setText();txt0.requestFocus();public static void main(String args)Addscore as = new Addscore();(5) 查詢學(xué)生信息import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Serch extends JFrame implements ActionListener/*查

33、詢學(xué)生信息控件*/static Serch s;JPanel jpl = new JPanel();JLabel SCH = new JLabel(查詢學(xué)生信息,JLabel.CENTER);JLabel label1 = new JLabel(請(qǐng)輸入學(xué)號(hào):,JLabel.CENTER);JButton serch = new JButton(查詢);JLabel label2 = new JLabel(姓名:,JLabel.CENTER);JLabel label3 = new JLabel(班級(jí):,JLabel.CENTER);JLabel label4 = new JLabel(學(xué)校:,

34、JLabel.CENTER);JLabel label5 = new JLabel(性別:,JLabel.CENTER);ButtonGroup bgp = new ButtonGroup();JRadioButton man = new JRadioButton(男);JRadioButton women = new JRadioButton(女);JTextField num = new JTextField();JTextField nam = new JTextField();JTextField clas = new JTextField();JTextField scl = new

35、 JTextField();JButton reset = new JButton(重置);public Serch()this.setSize(500,400);this.setVisible(true);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jpl);jpl.setLayout(null);serch.addActionListener(this);reset.addActionListener(this);/*查詢面板*/SCH.setBounds(100

36、,20,300,20);jpl.add(SCH);label1.setBounds(100,60,100,20);jpl.add(label1);num.setBounds(220,60,140,20);jpl.add(num);serch.setBounds(120,100,90,20);reset.setBounds(260,100,90,20);jpl.add(serch);jpl.add(reset);label2.setBounds(100,140,70,20);jpl.add(label2);nam.setBounds(190,140,140,20);jpl.add(nam);la

37、bel5.setBounds(100,180,70,20);jpl.add(label5);man.setBounds(205,180,60,20);women.setBounds(285,180,60,20);bgp.add(man);bgp.add(women);jpl.add(man);jpl.add(women);label3.setBounds(100,220,70,20);jpl.add(label3);clas.setBounds(190,220,140,20);jpl.add(clas);label4.setBounds(100,260,70,20);jpl.add(label

38、4);scl.setBounds(190,260,140,20);jpl.add(scl);public void actionPerformed(ActionEvent e)String id = num.getText();if(e.getSource()=serch)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection con = DriverManager.g

39、etConnection(jdbc:odbc:sysdb,sa,);Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(select * from STU where ID = + id + );while(rs.next()nam.setText(rs.getString(Name);if(rs.getString(Sex).equals(男)man.setSelected(true);elsewomen.setSelected(true);clas.setText(rs.getString(Clas

40、s);scl.setText(rs.getString(Collage);catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage();public static void main(String args)Serch sch = new Serch();(6) 查詢成績(jī)import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.awt.font.*;import java.sql.*;public class Score e

41、xtends JFrame implements ActionListenerstatic Score s;JLabel title = new JLabel(查詢成績(jī),JLabel.CENTER);Font f = new Font(楷體,Font.BOLD+Font.ITALIC,16);JPanel jpl = new JPanel();JLabel label1 = new JLabel(請(qǐng)輸入學(xué)號(hào):,JLabel.CENTER);JTextField num = new JTextField();JButton serch = new JButton(查詢成績(jī));JButton re

42、set = new JButton(重置);JLabel label2 = new JLabel(計(jì)算機(jī)網(wǎng)絡(luò):,JLabel.LEFT);JLabel label3 = new JLabel(Linux操作系統(tǒng):,JLabel.LEFT);JLabel label4 = new JLabel(計(jì)算機(jī)專業(yè)英語(yǔ):,JLabel.LEFT);JLabel label5 = new JLabel(計(jì)算機(jī)信息技術(shù)基礎(chǔ):,JLabel.LEFT);JLabel label6 = new JLabel(Java程序設(shè)計(jì):,JLabel.LEFT);JLabel label7 = new JLabel(數(shù)據(jù)庫(kù)

43、:,JLabel.LEFT);JLabel label8 = new JLabel(高等數(shù)學(xué):,JLabel.LEFT);JLabel label9 = new JLabel(XML:,JLabel.LEFT);JTextField txt = new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField();static int p = 140;public Sc

44、ore()super(查詢分?jǐn)?shù));this.setResizable(false);this.setSize(500,550);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); title.setFont(f);this.add(jpl);jpl.setLayout(null);title.setBounds(100,20,300,20);jpl.add(title);label1.setBounds(100,60,90,20);jpl.add(label1);num.setBounds(210

45、,60,140,20);jpl.add(num);serch.setBounds(130,100,90,20);reset.setBounds(240,100,90,20);jpl.add(serch);jpl.add(reset);serch.addActionListener(this);reset.addActionListener(this);label2.setBounds(100,140,140,20);label3.setBounds(100,180,140,20);label4.setBounds(100,220,140,20);label5.setBounds(100,260

46、,140,20);label6.setBounds(100,300,140,20);label7.setBounds(100,340,140,20);label8.setBounds(100,380,140,20);label9.setBounds(100,420,140,20);jpl.add(label2);jpl.add(label3);jpl.add(label4);jpl.add(label5);jpl.add(label6);jpl.add(label7);jpl.add(label8);jpl.add(label9);for(int i = 0 ;itxt.length ; i+)txti.setBounds(260,p,140,20);jpl.add(txti);p=p+40;public void action

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論