AVA連接sqlserver學(xué)生成績管理系統(tǒng)_第1頁
AVA連接sqlserver學(xué)生成績管理系統(tǒng)_第2頁
AVA連接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ì)目的做這個小的學(xué)生成績管理系統(tǒng)來加深對 JAVA 所學(xué)知識的鞏固,以及學(xué)習(xí)JAVA與數(shù)據(jù)庫的連接和 JAVA的 GUI圖形界面。二、需求分析此系統(tǒng)實(shí)現(xiàn)如下系統(tǒng)功能:(1)使得學(xué)生的成績管理工作更加清晰、條理化、自動化。(2)通過用戶名和密碼登錄系統(tǒng),查詢學(xué)生基本資料,學(xué)生所學(xué)課程成績,等功能。容易地完成學(xué)生信息的查詢操作。(3) 設(shè)計(jì)人機(jī)友好界面,功能安排合理,操作使用方便,并且進(jìn)一步考慮系統(tǒng)在安全性,完整性,并發(fā)控制,備份和恢復(fù)等方面的功能要求。三、系統(tǒng)模塊設(shè)

2、計(jì)此系統(tǒng)可分為 2 個模塊,教師管理模塊和學(xué)生操作模塊,期中教師又包括學(xué)生信息輸入與學(xué)生成績錄入等; 學(xué)生模塊則包括學(xué)生成績查詢與學(xué)生信息錄入查詢操作等。系統(tǒng)流程圖:用戶登錄教師學(xué)生學(xué)學(xué)學(xué)學(xué)生生生生成信成信績息績息錄錄查查入入詢詢四、數(shù)據(jù)庫1、學(xué)生表:FieldTypeNullKeyCommentIDVarchar(10)PRI用戶名 (學(xué)號 )PwdVarchar(10)密碼NameChar(10)姓名SexChar(10)性別ClassChar(10)班級CollageChar(10)學(xué)院2、教師表FieldTypeNullKeyCommentIDVarchar(10)PRI用戶名PwdV

3、archar(10)密碼3、成績表FieldTypeNullKeyCommentSidchar(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)課程XMLchar(10)課程五、 E-R 圖ClassIDClocageIDPwd學(xué)生表TS教師表PwdSexSC計(jì)算機(jī)網(wǎng)絡(luò)name計(jì)算機(jī)專業(yè)英Linux 操作系語統(tǒng)計(jì)算機(jī)系成績計(jì)算機(jī)信息技數(shù)據(jù)庫應(yīng)用實(shí)術(shù)基礎(chǔ)訓(xùn)教程Java 程序設(shè)計(jì)高等數(shù)學(xué)SID(ID

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

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

6、a.awt.event.*;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 JPasswor

7、dField();JButton 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

8、(" 登錄系統(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,8

9、0,20);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(2

10、65,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();tryCla

11、ss.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(ss,ce.getMessage();if(stu.isSelected()tryConnectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statement stmt = con.createStatement(); R

12、esultSet rs = stmt.executeQuery("select * fromSTU");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,"登

13、錄失敗 ");rs.close();stmt.close();catch (SQLException se)JOptionPane.showMessageDialog(ss,se.getMessage();else if(tch.isSelected()tryConnectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statement stmt = con.createStatement(); ResultSet rs = stmt.exe

14、cuteQuery("select * fromTCH");while(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 (SQLEx

15、ception 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 ActionListener JMenuBar jmb = new JMe

16、nuBar();JMenu Message = new JMenu(" 信息 ");JMenu Score = new JMenu(" 成績 ");JMenuItem Item1 = new JMenuItem("插入 ");JMenuItem Item2 = new JMenuItem("查詢 ");JMenuItem Item3 = new JMenuItem("查詢 ");public Students()super(" 學(xué)生界面 ");this.setSize(500

17、,400);this.setVisible(true);this.setResizable(false);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(th

18、is);public void actionPerformed(ActionEvent e)if(e.getSource()=Item1)AddMsg ad = 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、教師登錄界面:import java.awt.*;import javax.swing.*;import java.a

19、wt.event.*;public class Teachers extends JFrame implements ActionListener JMenuBar bar = new JMenuBar();JMenu menu1 = new JMenu(" 信息 ");JMenu menu2 = new JMenu(" 成績 ");JMenuItem item1 = new JMenuItem("錄入信息 ");JMenuItem item2 = new JMenuItem("錄入成績 ");JPanel jpl

20、 = new JPanel();public Teachers()super(" 教師界面 ");this.setSize(500,300);this.setResizable(false);this.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);

21、item1.addActionListener(this);item2.addActionListener(this);public void actionPerformed(ActionEvent e)if(e.getSource()=item1)AddMsg msg = new AddMsg();elseAddscore as = new Addscore();public static void main(String args)Teachers tch = new Teachers();4、學(xué)生用戶添加界面:import java.awt.*;import javax.swing.*;

22、import java.awt.event.*;import java.sql.*;public class AddMsg extends JFrame implements ActionListener static AddMsg s;/* 添加學(xué)生信息控件 */JPanel jpl = new JPanel();JLabel label1 = new JLabel("添加基本信息 ",JLabel.CENTER);JLabel label2 = new JLabel("學(xué)號: ",JLabel.CENTER);JLabel label3 = new

23、JLabel("姓名: ",JLabel.CENTER);JLabel label4 = new JLabel("性別: ",JLabel.CENTER);JLabel label5 = new JLabel("班級: ",JLabel.CENTER);JLabel label6 = new JLabel("學(xué)院: ",JLabel.CENTER);JTextField num = new JTextField(2);JTextField nam = new JTextField(4);ButtonGroup bg

24、p = new ButtonGroup();JRadioButton man = new JRadioButton("男");JRadioButton women = new JRadioButton("女");JTextField clas = new JTextField();JTextField scl = new JTextField();JButton reset = new JButton("重置 ");JButton addmsg = new JButton("添加 ");public AddMsg(

25、)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.addActionListener(this);/* 插入面板 */label1.setBounds(100,20,300,20);jpl.add(label

26、1);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.setBounds(190,130,60,20);women.setBounds(270,130,60,20);jpl.add(man

27、);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.setBounds(120,250,90,20);addmsg.setBounds(240,250,90,20);jpl.add(

28、reset);jpl.add(addmsg);public void actionPerformed(ActionEvent e)if(e.getSource()=addmsg)String sex;if(man.isSelected()sex="男"elsesex="女"tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(s,ce.getMessage();try

29、Connection con = DriverManager.getConnection("jdbc:odbc:shujuku","sa","");Statement stmt = con.createStatement();Stringstr= "insertintoSTU(ID , Pwd, Name, Sex , Class ,Collage)values('"+num.getText()+"','"+"123','"+nam.g

30、etText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')"/inta = stmt.executeUpdate("insertintoSTU(ID , Pwd, Name,Sex,Class,Collage)values('"+num.getText()+"','"+"12345678','"

31、+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')");System.out.println(str);int a = stmt.executeUpdate(str);if(a=1)JOptionPane.showMessageDialog(s,"已成功添加");elseJOptionPane.showMessageDialog(s,"添加失敗

32、");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 = new AddMsg();5、學(xué)生成績添加:import ja

33、va.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Addscore extends JFrame implements ActionListener static Addscore ss;JLabel label = new JLabel("學(xué)號: ") , new JLabel("計(jì)算機(jī)網(wǎng)絡(luò):") , new JLabel("Linux操作系統(tǒng): ") , new JLabel("計(jì)算機(jī)專業(yè)英語: &qu

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

35、w JTextField() ,new JTextField() ,new JTextField() ;JButton add = new JButton("添加 ");JButton reset = new JButton("重置 ");JPanel jpl = new JPanel();JLabel title = new JLabel(" 添加學(xué)生成績 " , JLabel.CENTER); Font f = new Font(" 黑體 " , Font.BOLD , 16 );int s = 100;pub

36、lic 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.setLayout(null);title.setBounds(150,40,200,20);title.setFont(f);titl

37、e.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(150,s,80,20);reset.setBounds(250,s,80,20);jpl.add(add);jpl.add(reset);p

38、ublic void actionPerformed(ActionEvent e)if(e.getSource()=add)tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch (ClassNotFoundException ce)JOptionPane.showMessageDialog(ss,ce.getMessage();tryConnectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa","&

39、quot;);Statement stmt = con.createStatement();inta = stmt.executeUpdate("insertinto計(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()+"','"+txt2.ge tText()+"','"

40、+txt3.getText()+"','"+txt4.getText()+"','"+txt5.ge tText()+"','"+txt6.getText()+"','"+txt7.getText()+"','"+txt8.ge tText()+"')");if(a=1)JOptionPane.showMessageDialog(ss,"添加成功 ");elseJOpt

41、ionPane.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)Addscore as = new Addscore();6、學(xué)生信息查詢:import java.awt.*;

42、import javax.swing.*;import java.awt.event.*;import java.sql.*;public class Serch extends JFrame implements ActionListener /* 查詢學(xué)生信息控件 */static Serch s;JPanel jpl = new JPanel();JLabel SCH = new JLabel("查詢學(xué)生信息 ",JLabel.CENTER);JLabel label1 = new JLabel("請輸入學(xué)號: ",JLabel.CENTER);J

43、Button serch = new JButton("查詢 ");JLabel label2 = new JLabel("姓名: ",JLabel.CENTER);JLabel label3 = new JLabel("班級: ",JLabel.CENTER);JLabel label4 = new JLabel("學(xué)校: ",JLabel.CENTER);JLabel label5 = new JLabel("性別: ",JLabel.CENTER);ButtonGroup bgp = ne

44、w 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();JButton reset = new JButton("重置 "

45、);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,300,20);jpl.add(SCH);label1.setBounds(

46、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);label5.setBounds(100,180,70,20);jpl.add(labe

47、l5);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(label4);scl.setBounds(190,260,140,20);jpl.add(s

48、cl);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();tryConnectioncon=DriverManager.getConnection("jdbc:odbc:shuj

49、uku","sa","");Statement stmt = con.createStatement();ResultSetrs = stmt.executeQuery("select* from STUwhereID = '" + id + "'");while(rs.next()nam.setText(rs.getString("Name");if(rs.getString("Sex").equals("男")man.setS

50、elected(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 jav

51、ax.swing.*;import java.awt.event.*;import java.awt.font.*;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.CENTER);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): ",JLa

溫馨提示

  • 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

提交評論