JAVA連接sqlserver學(xué)生成績管理系統(tǒng)_第1頁
JAVA連接sqlserver學(xué)生成績管理系統(tǒng)_第2頁
JAVA連接sqlserver學(xué)生成績管理系統(tǒng)_第3頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、學(xué)生成績管理系統(tǒng)課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告 題目學(xué)生成績管理系統(tǒng)學(xué)院數(shù)學(xué)與信息工程學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級同組成員編寫日期一、課程設(shè)計(jì)目的做這個(gè)小的學(xué)生成績管理系統(tǒng)來加深對 JAVA所學(xué)知識的鞏固,以及學(xué)習(xí)JAVA與數(shù) 據(jù)庫的連接和JAVA的GUI圖形界面。二、需求分析此系統(tǒng)實(shí)現(xiàn)如下系統(tǒng)功能:(1)使得學(xué)生的成績管理工作更加清晰、條理化、自動(dòng)化。(2)通過用戶名和密碼登錄系統(tǒng),查詢學(xué)生基本資料,學(xué)生所學(xué)課程成績,等功 能。容易地完成學(xué)生信息的查詢操作。(3)設(shè)計(jì)人機(jī)友好界面,功能安排合理,操作使用方便,并且進(jìn)一步考慮系統(tǒng)在 安全性,完整性,并發(fā)控制,備份和恢復(fù)等方面的功能要求。三、系統(tǒng)模塊設(shè)計(jì)此系

2、統(tǒng)可分為2個(gè)模塊,教師管理模塊和學(xué)生操作模塊,期中教師又包括學(xué)生信息 輸入與學(xué)生成績錄入等;學(xué)生模塊則包括學(xué)生成績查詢與學(xué)生信息錄入查詢操作等。CollageChar(10) 學(xué)院2、教師表FieldTypeNullKeyComme ntIDVarchar(10) PRI用戶名3、成績表FieldTypeNullKeyComme ntSidchar(10)PRI學(xué)號計(jì)算機(jī)網(wǎng)絡(luò)char(10)課程Linux操作系統(tǒng)char(10)課程計(jì)算機(jī)專業(yè)英語char(10)課程計(jì)算機(jī)信息技術(shù)char(10)課程Java程序設(shè)計(jì)char(10)課程數(shù)據(jù)庫應(yīng)用實(shí)訓(xùn)char(10)課程高等數(shù)學(xué)char(10)課

3、程XMLchar(10)課程五、E-R圖六、心得體會(huì)通過本次課程設(shè)計(jì),成功的完成了這個(gè)小型簡單的系統(tǒng)的設(shè)計(jì),在整個(gè)設(shè)計(jì)過程中我對JAVA使用和它強(qiáng)大的作用有了一個(gè)更深刻的認(rèn)識,盡管這個(gè)系統(tǒng)很簡單,但是它 讓我綜合運(yùn)用了這個(gè)學(xué)期所學(xué)的 JAVA的很多內(nèi)容,在此基礎(chǔ)上,對 JAVA的基礎(chǔ)知識 得到了更好的鞏固。在制作的過程中我也學(xué)到很多思想:首先,要學(xué)會(huì)統(tǒng)籌全局,合理規(guī)劃,例如在制 作整個(gè)框架的時(shí)候提前就要做全面考慮,要把整個(gè)結(jié)構(gòu)圖畫出來,并且要對數(shù)據(jù)庫表 里的東西做全面規(guī)劃。同時(shí)在編寫程序的時(shí)候也要想好先實(shí)現(xiàn)什么功能,再實(shí)現(xiàn)什么 功能,這樣做出來的東西才有條理性,更容易實(shí)現(xiàn)和理解。其次,要細(xì)心仔

4、細(xì)。Java程序雖然容易理解,但在寫的過程中一不留心就會(huì)出現(xiàn)錯(cuò)誤。 當(dāng)然出錯(cuò)是在所難免的, 與性質(zhì)有關(guān)的錯(cuò)誤可以經(jīng)過思考討論后進(jìn)行改正,但如果粗心大意,出現(xiàn)輸入上的錯(cuò) 誤就很難發(fā)現(xiàn)和修改,會(huì)耽誤很多時(shí)間。我認(rèn)為最大的收獲是提高了自己的動(dòng)手能力。 在平時(shí)的上機(jī)中大多數(shù)是根據(jù)書上的 思想和布局來寫程序的。這次的課程設(shè)計(jì)要自己思考自己寫,考慮的東西比平時(shí)上機(jī) 考慮的要多的多。在整個(gè)設(shè)計(jì)過程中寫代碼不是最難的,最難的是構(gòu)思和布局。這次 課程設(shè)計(jì)也是一次很好的實(shí)踐活動(dòng),讓我們體會(huì)到了java的神奇作用。附錄:源代碼1、用戶登錄界面import java.awt*;import javax.swi ng.

5、*;import java.sql.*;public class Systems extends JFrame implements ActionListener static Systems ss;JPanel panel = new JPanel();JLabel label1 = new JLabel("輸入姓名: ");JTextField name = new JTextField();JLabel label2 = new JLabel("密 碼: ");JPasswordField pwd = new JPasswordField(); J

6、Button Enter = new JButton("登錄 ");JButton Exit = new JButton("退出 ");String url = "E:mysqlTM1.jpg"ButtonGroup bgp = new ButtonGroup();JRadioButton stu = new JRadioButton("學(xué)生 ");JRadioButton tch = new JRadioButton("教師 ");public Systems()super(" 登錄

7、系統(tǒng) "); this.setResizable(false);JLabel img = new JLabel(new ImageIcon(url); img.setBounds(0,0,500,125); 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)

8、;Enter.addActionListener(this);Exit.addActionListener(this); 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(

9、265,165,100,25); panel.add(pwd);this.setBounds(100,100,500,350);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 = new String(pwd.getPassword();tryc

10、atch (ClassNotFoundException ce)JOptionPane.showMessageDialog(ss,ce.getMessage();if(stu.isSelected()tryConnection con =DriverManager.getConnection("jdbc:odbc:shujuku","sa","");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from ST

11、U");while(rs.next()if(rs.getString("ID").equals(username) if(rs.getString("Pwd").equals(password) JOptionPane.showMessageDialog(ss," 登 陸 成 功");Students stu = new Students();elseJOptionPane.showMessageDialog(ss," 登 錄 失 敗");rs.close();stmt.close();catch (SQ

12、LException se)JOptionPane.showMessageDialog(ss,se.getMessage();else if(tch.isSelected()tryConnection con =DriverManager.getConnection("jdbc:odbc:shujuku","sa","");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery("select * from TCH");whil

13、e(rs.next()if(rs.getString("ID").equals(username) if(rs.getString("Pwd").equals(password) JOptionPane.showMessageDialog(ss," 登 陸 成 功");Teachers tch=new Teachers();elseJOptionPane.showMessageDialog(ss," 登 錄 失 敗");catch (SQLException se)JOptionPane.showMessageDi

14、alog(ss,se.getMessage();elseSystem.exit(0);public static void main(String args)Systems sys = new Systems();2、學(xué)生登錄界面:import java.awt.*;import javax.swing.*;public class Students extends JFrame implements ActionListener JMenuBar jmb = new JMenuBar();JMenu Message = new JMenu(" 信息 ");JMenu Sc

15、ore = new JMenu(" 成績 ");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);

16、 this.setDefaultCloseOperation(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

17、.getSource()=Item1)AddMsg ad = new AddMsg();else if(e.getSource()=Item2)Serch ser = new Serch();elseScore so = new Score();Students stu = new Students();3、教師登錄界面:import java.awt.*;import javax.swing.*;public class Teachers extends JFrame implements ActionListener JMenuBar bar = new JMenuBar();JMe nu

18、 me nu1 = new JMe nu(” 信息");JMe nu me nu2 = new JMe nu(” 成績");JMenuItem item1 = new JMenuItem(" 錄入信息 ");JMenuItem item2 = new JMenuItem(" 錄入成績 "); JPanel jpl = new JPanel();public Teachers()super(" 教師界面 "); this.setSize(500,300); this.setResizable(false);this.

19、setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setJMenuBar(bar);this.add(jpl); jpl.setLayout(null);bar.add(menu1);bar.add(menu2); menu1.add(item1); menu2.add(item2);item1.addActionListener(this); item2.addActionListener(this);public void actionPerformed(ActionEvent e)if(

20、e.getSource()=item1)AddMsg msg = new AddMsg();elseAddscore as = new Addscore();Teachers tch = new Teachers();4、學(xué)生用戶添加界面: import java.awt.*;import javax.swing.*;import java.sql.*;public class AddMsg extends JFrame implements ActionListenerstatic AddMsg s;JPanel jpl = new JPanel();JLabel label1 = new

21、JLabel("JLabel label2 = new JLabel("JLabel label3 = new JLabel(" JLabel label4 = new JLabel("JLabel label5 = new JLabel(" JLabel label6 = new JLabel("/* 添加學(xué)生信息控件 */添加基本信息 ",JLabel.CENTER); 學(xué)號: ",JLabel.CENTER); 姓名: ",JLabel.CENTER); 性別: ",JLabel.CENT

22、ER); 班級: ",JLabel.CENTER); 學(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 JTextF

23、ield();JTextField scl = new JTextField();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); t

24、his.add(jpl);jpl.setLayout(null);addmsg.addActionListener(this); reset.addActionListener(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.setBou

25、nds(190,90,140,20);jpl.add(nam); label4.setBounds(100,130,70,20);jpl.add(label4);man.setBounds(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

26、.setBounds(100,210,70,20);jpl.add(label6);scl.setBounds(190,210,140,20);jpl.add(scl);reset.setBounds(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

27、sex=" 女 "trycatch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection conDriverManager.getConnection("jdbc:odbc:shujuku","sa","");Statement stmt = con.createStatement();String str = "insert into STU(ID , Pwd , Name , S

28、ex , Class , Collage)values('"+num.getText()+"','"+"123','"+nam.getText()+"','"+sex+"', '"+clas.getText()+"','"+scl.getText()+"')"int a = stmt.executeUpdate(str);if(a=1)JOptionPane.showMe

29、ssageDialog(s," 已成功添加 ");elseJOptionPane.showMessageDialog(s," 添加失敗 ");stmt.close();catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage();elsenum.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus

30、();public static void main(String args)AddMsg amg = new AddMsg();5、學(xué)生成績添加:import java.awt.*;import javax.swing.*;import java.sql.*;public class Addscore extends JFrame implements ActionListenerstatic Addscore ss;JLabel label = new JLabel("學(xué)號: ") , new JLabel(" 計(jì)算機(jī)網(wǎng)絡(luò): ") , newJLab

31、el("Linux 操作系統(tǒng): ") , new JLabel(" 計(jì)算機(jī)專業(yè)英語: ") , new JLabel(" 計(jì)算機(jī)信息技術(shù)基礎(chǔ): ") , new JLabel("Java 程序設(shè)計(jì): ") , new JLabel(" 數(shù)據(jù)庫 應(yīng)用實(shí)訓(xùn)教程: ") , new JLabel(" 高等數(shù)學(xué): ") , new JLabel("XML : ");JTextField txt = new JTextField() , newJTextField(

32、) , new JTextField() ,newnew JTextField() , new JTextField() ,new JTextField() , new JTextField()JTextField() ,new JTextField() ;JButton add = new JButton("JButton reset = new JButton( JPanel jpl = new JPanel(); JLabel title = new JLabel("添加");重置");添加學(xué)生成績 " , JLabel.CENTER)F

33、ont 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);this.setVisible(true);this.add(jpl);add.addActionListener(this);reset.addActionListener(this);jpl.s

34、etLayout(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,s,140,20);jpl.add(labeli);txti.setBounds(260,s,140,20);jpl.add(txti);s=s+40;add.setBounds(15

35、0,s,80,20); reset.setBounds(250,s,80,20); jpl.add(add);jpl.add(reset);public void actionPerformed(ActionEvent e)if(e.getSource()=add)trycatch (ClassNotFoundException ce)JOptionPane.showMessageDialog(ss,ce.getMessage();tryConnection con = DriverManager.getConnection("jdbc:odbc:shujuku",&quo

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

37、'"+txt2.getText ()+"','"+txt3.getText()+"','"+txt4.getText()+"','"+txt5.getText()+"' ,'"+txt6.getText()+"','"+txt7.getText()+"','"+txt8.getText()+"')");if(a=1)JOptionPan

38、e.showMessageDialog(ss," 添加成功 ");elseJOptionPane.showMessageDialog(ss," 添加失敗 ");catch (SQLException se)JOptionPane.showMessageDialog(ss,se.getMessage();elsefor(int i = 0 ; i<txt.length ; i+)txti.setText("");txt0.requestFocus();public static void main(String args)Adds

39、core as = new Addscore();6、學(xué)生信息查詢: import java.awt.*;import javax.swing.*;import java.sql.*;public class Serch extends JFrame implements ActionListener /* 查詢學(xué)生信息控件 */JPanel jpl = new JPanel(); JLabel SCH = new JLabel(" JLabel label1 = new JLabel( JButton serch = new JButton(" JLabel label2

40、 = new JLabel(" JLabel label3 = new JLabel(" JLabel label4 = new JLabel(" JLabel label5 = new JLabel("static Serch s;查詢學(xué)生信息 ",JLabel.CENTER); 請輸入學(xué)號: ",JLabel.CENTER) 查詢");姓名: ",JLabel.CENTER); 班級: ",JLabel.CENTER); 學(xué)校: ",JLabel.CENTER); 性別: ",JL

41、abel.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 JTextField();JButto

42、n 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,20

43、,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

44、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(la

45、bel4);scl.setBounds(190,260,140,20);jpl.add(scl);public void actionPerformed(ActionEvent e)String id = num.getText();if(e.getSource()=serch)trycatch (ClassNotFoundException ce) JOptionPane.showMessageDialog(s,ce.getMessage();tryConnection conDriverManager.getConnection("jdbc:odbc:shujuku",

46、"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.setSelect

47、ed(true);elsewomen.setSelected(true);clas.setText(rs.getString("Class"); scl.setText(rs.getString("Collage");catch (SQLException se)JOptionPane.showMessageDialog(s,se.getMessage();public static void main(String args)Serch sch = new Serch();7、學(xué)生成績查詢import java.awt.*;import javax.s

48、wing.*;import java.sql.*;public class Score extends JFrame implements ActionListenerstatic Score s;JLabel title = new JLabel("查詢成績 ",JLabel.CENTER);Font f = new Font(" 楷體 ",Font.BOLD+Font.ITALIC,16);JPanel jpl = new JPanel();JLabel label1 = new JLabel("請輸入學(xué)號: ",JLabel.C

49、ENTER);JTextField num = new JTextField();JButton serch = new JButton(" 查詢成績 ");JButton reset = 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è)英

50、語: ",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ù)庫: ",JLabel.LEFT);JLabel label8 = new JLabel(" 高等數(shù)學(xué): ",JLabel.LEFT);JLabel label9 = new JLabel("XML :",JLabel.LEFT);JTextField txt = newJTextField() , newJTextField() , new JTextField() , new JTextField() , new JTextField() , new JTextField() ,new JTextField() , new JTextField();static int p = 140;public Score() super(" 查詢分?jǐn)?shù) "); this.setResizable(fa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論