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

下載本文檔

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

文檔簡介

《學(xué)生成績管理系統(tǒng)》課程設(shè)計實驗報告題目學(xué)生成績管理系統(tǒng)學(xué)院數(shù)學(xué)與信息工程學(xué)院專業(yè)計算機科學(xué)與技術(shù)班級同組成員編寫日期課程設(shè)計目的做這個小的學(xué)生成績管理系統(tǒng)來加深對JAVA所學(xué)知識的穩(wěn)固,以及學(xué)習(xí)JAVA與數(shù)據(jù)庫的連接和JAVA的GUI圖形界面。需求分析此系統(tǒng)實現(xiàn)如下系統(tǒng)功能:〔1〕使得學(xué)生的成績管理工作更加清晰、條理化、自動化。〔2〕通過用戶名和密碼登錄系統(tǒng),查詢學(xué)生根本資料,學(xué)生所學(xué)課程成績,等功能。容易地完成學(xué)生信息的查詢操作。(3)設(shè)計人機友好界面,功能安排合理,操作使用方便,并且進一步考慮系統(tǒng)在平安性,完整性,并發(fā)控制,備份和恢復(fù)等方面的功能要求。三、系統(tǒng)模塊設(shè)計用戶登錄此系統(tǒng)可分為2個模塊,教師管理模塊和學(xué)生操作模塊,期中教師又包括學(xué)生信息輸入與學(xué)生成績錄入等;學(xué)生模塊那么包括學(xué)生成績查詢與學(xué)生信息錄入查詢操作等。用戶登錄 系統(tǒng)流程圖:學(xué)生學(xué)生信息查詢學(xué)生成績查詢教師學(xué)生成績錄入學(xué)生信息錄入學(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用戶名PwdVarchar(10)————密碼3、成績表FieldTypeNullKeyCommentSidchar(10)——PRI學(xué)號計算機網(wǎng)絡(luò)char(10)————課程Linux操作系統(tǒng)char(10)————課程計算機專業(yè)英語char(10)————課程計算機信息技術(shù)char(10)————課程Java程序設(shè)計char(10)————課程數(shù)據(jù)庫應(yīng)用實訓(xùn)char(10)————課程高等數(shù)學(xué)char(10)————課程XMLchar(10)————課程五、E-R圖六、心得體會通過本次課程設(shè)計,成功的完成了這個小型簡單的系統(tǒng)的設(shè)計,在整個設(shè)計過程中我對JAVA使用和它強大的作用有了一個更深刻的認(rèn)識,盡管這個系統(tǒng)很簡單,但是它讓我綜合運用了這個學(xué)期所學(xué)的JAVA的很多內(nèi)容,在此根底上,對JAVA的根底知識得到了更好的穩(wěn)固。在制作的過程中我也學(xué)到很多思想:首先,要學(xué)會統(tǒng)籌全局,合理規(guī)劃,例如在制作整個框架的時候提前就要做全面考慮,要把整個結(jié)構(gòu)圖畫出來,并且要對數(shù)據(jù)庫表里的東西做全面規(guī)劃。同時在編寫程序的時候也要想好先實現(xiàn)什么功能,再實現(xiàn)什么功能,這樣做出來的東西才有條理性,更容易實現(xiàn)和理解。其次,要細(xì)心仔細(xì)。Java程序雖然容易理解,但在寫的過程中一不留心就會出現(xiàn)錯誤。當(dāng)然出錯是在所難免的,與性質(zhì)有關(guān)的錯誤可以經(jīng)過思考討論后進行改正,但如果粗心大意,出現(xiàn)輸入上的錯誤就很難發(fā)現(xiàn)和修改,會耽誤很多時間。我認(rèn)為最大的收獲是提高了自己的動手能力。在平時的上機中大多數(shù)是根據(jù)書上的思想和布局來寫程序的。這次的課程設(shè)計要自己思考自己寫,考慮的東西比平時上機考慮的要多的多。在整個設(shè)計過程中寫代碼不是最難的,最難的是構(gòu)思和布局。這次課程設(shè)計也是一次很好的實踐活動,讓我們體會到了java的神奇作用。附錄:源代碼1、用戶登錄界面importjava.awt.*;importjavax.swing.*;import.*;importjava.sql.*;publicclassSystemsextendsJFrameimplementsActionListener{staticSystemsss;JPanelpanel=newJPanel();JLabellabel1=newJLabel("輸入姓名:");JTextFieldname=newJTextField();JLabellabel2=newJLabel("密碼:");JPasswordFieldpwd=newJPasswordField();JButtonEnter=newJButton("登錄");JButtonExit=newJButton("退出"); Stringurl="E:\\mysql\\TM1.jpg";ButtonGroupbgp=newButtonGroup();JRadioButtonstu=newJRadioButton("學(xué)生");JRadioButtontch=newJRadioButton("教師");publicSystems() { super("登錄系統(tǒng)");this.setResizable(false);JLabelimg=newJLabel(newImageIcon(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);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(265,165,100,25);panel.add(pwd);this.setBounds(100,100,500,350);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }publicvoidactionPerformed(ActionEvente) {if(e.getSource()==Enter) { Stringusername,password;username=name.getText();password=newString(pwd.getPassword());try {Class.forName(""); }catch(ClassNotFoundExceptionce) {JOptionPane.showMessageDialog(ss,ce.getMessage()); }if(stu.isSelected()) {try { Connectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("select*fromSTU");while(rs.next()) {if(rs.getString("ID").equals(username))if((rs.getString("Pwd").equals(password))) {JOptionPane.showMessageDialog(ss,"登陸成功"); Studentsstu=newStudents(); }else {JOptionPane.showMessageDialog(ss,"登錄失敗"); } }rs.close();stmt.close(); }catch(SQLExceptionse) {JOptionPane.showMessageDialog(ss,se.getMessage()); } }elseif(tch.isSelected()) {try { Connectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("select*fromTCH");while(rs.next()) {if(rs.getString("ID").equals(username))if((rs.getString("Pwd").equals(password))) {JOptionPane.showMessageDialog(ss,"登陸成功"); Teacherstch=newTeachers(); }else {JOptionPane.showMessageDialog(ss,"登錄失敗"); } } }catch(SQLExceptionse) {JOptionPane.showMessageDialog(ss,se.getMessage()); } } }else {System.exit(0); } }publicstaticvoidmain(String[]args) { Systemssys=newSystems(); }}2、學(xué)生登錄界面:importjava.awt.*;importjavax.swing.*;import.*;publicclassStudentsextendsJFrameimplementsActionListener{JMenuBarjmb=newJMenuBar();JMenuMessage=newJMenu("信息");JMenuScore=newJMenu("成績");JMenuItemItem1=newJMenuItem("插入");JMenuItemItem2=newJMenuItem("查詢");JMenuItemItem3=newJMenuItem("查詢");publicStudents() { super("學(xué)生界面");this.setSize(500,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(this);}publicvoidactionPerformed(ActionEvente) {if(e.getSource()==Item1) {AddMsgad=newAddMsg(); }elseif(e.getSource()==Item2) {Serchser=newSerch(); }else { Scoreso=newScore(); } }publicstaticvoidmain(String[]args) { Studentsstu=newStudents(); }}3、教師登錄界面:importjava.awt.*;importjavax.swing.*;import.*;publicclassTeachersextendsJFrameimplementsActionListener{JMenuBarbar=newJMenuBar();JMenumenu1=newJMenu("信息");JMenumenu2=newJMenu("成績");JMenuItemitem1=newJMenuItem("錄入信息");JMenuItemitem2=newJMenuItem("錄入成績");JPaneljpl=newJPanel();publicTeachers() { 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);item1.addActionListener(this);item2.addActionListener(this); }publicvoidactionPerformed(ActionEvente) {if(e.getSource()==item1) {AddMsgmsg=newAddMsg(); }else {Addscoreas=newAddscore(); } }publicstaticvoidmain(String[]args) { Teacherstch=newTeachers(); }}4、學(xué)生用戶添加界面:importjava.awt.*;importjavax.swing.*;import.*;importjava.sql.*;publicclassAddMsgextendsJFrameimplementsActionListener{staticAddMsgs; /*添加學(xué)生信息控件*/JPaneljpl=newJPanel();JLabellabel1=newJLabel("添加根本信息",JLabel.CENTER);JLabellabel2=newJLabel("學(xué)號:",JLabel.CENTER);JLabellabel3=newJLabel("姓名:",JLabel.CENTER);JLabellabel4=newJLabel("性別:",JLabel.CENTER);JLabellabel5=newJLabel("班級:",JLabel.CENTER);JLabellabel6=newJLabel("學(xué)院:",JLabel.CENTER);JTextFieldnum=newJTextField(2);JTextFieldnam=newJTextField(4);ButtonGroupbgp=newButtonGroup();JRadioButtonman=newJRadioButton("男");JRadioButtonwomen=newJRadioButton("女");JTextFieldclas=newJTextField();JTextFieldscl=newJTextField();JButtonreset=newJButton("重置");JButtonaddmsg=newJButton("添加");publicAddMsg() { 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(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.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.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); }publicvoidactionPerformed(ActionEvente) {if(e.getSource()==addmsg) { Stringsex;if(man.isSelected()) { sex="男"; }else { sex="女"; }try {Class.forName(""); }catch(ClassNotFoundExceptionce) {JOptionPane.showMessageDialog(s,ce.getMessage()); }try { Connectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statementstmt=con.createStatement(); Stringstr="insertintoSTU(ID,Pwd,Name,Sex,Class,Collage)values('"+num.getText()+"','"+"123','"+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')";//inta=stmt.executeUpdate("insertintoSTU(ID,Pwd,Name,Sex,Class,Collage)values('"+num.getText()+"','"+"12345678','"+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')");(str);inta=stmt.executeUpdate(str);if(a==1) {JOptionPane.showMessageDialog(s,"已成功添加"); }else {JOptionPane.showMessageDialog(s,"添加失敗"); }stmt.close(); }catch(SQLExceptionse) {JOptionPane.showMessageDialog(s,se.getMessage()); } }else {num.setText("");nam.setText("");clas.setText("");scl.setText("");num.requestFocus(); } }publicstaticvoidmain(String[]args) {AddMsgamg=newAddMsg(); }}5、學(xué)生成績添加:importjava.awt.*;importjavax.swing.*;import.*;importjava.sql.*;publicclassAddscoreextendsJFrameimplementsActionListener{staticAddscoress;JLabel[]label={newJLabel("學(xué)號:"),newJLabel("計算機網(wǎng)絡(luò):"),newJLabel("Linux操作系統(tǒng):"),newJLabel("計算機專業(yè)英語:"),newJLabel("計算機信息技術(shù)根底:"),newJLabel("Java程序設(shè)計:"),newJLabel("數(shù)據(jù)庫應(yīng)用實訓(xùn)教程:"),newJLabel("高等數(shù)學(xué):"),newJLabel("XML:")};JTextField[]txt={newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField()};JButtonadd=newJButton("添加");JButtonreset=newJButton("重置");JPaneljpl=newJPanel();JLabeltitle=newJLabel("添加學(xué)生成績",JLabel.CENTER); Fontf=newFont("黑體",Font.BOLD,16);ints=100;publicAddscore() { 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);title.setForeground(Color.red);jpl.setBackground(Color.LIGHT_GRAY);jpl.add(title);for(inti=0;i<label.length;i++) {label[i].setBounds(100,s,140,20);jpl.add(label[i]);txt[i].setBounds(260,s,140,20);jpl.add(txt[i]); s=s+40; }add.setBounds(150,s,80,20);reset.setBounds(250,s,80,20);jpl.add(add);jpl.add(reset); }publicvoidactionPerformed(ActionEvente) {if(e.getSource()==add) {try {Class.forName(""); }catch(ClassNotFoundExceptionce) {JOptionPane.showMessageDialog(ss,ce.getMessage()); }try { Connectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statementstmt=con.createStatement();inta=stmt.executeUpdate("insertinto計算機系成績(SID,計算機網(wǎng)絡(luò),Linux操作系統(tǒng),計算機專業(yè)英語,計算機信息技術(shù)根底,Java程序設(shè)計,數(shù)據(jù)庫應(yīng)用實訓(xùn)教程,高等數(shù)學(xué),Xml)values('"+txt[0].getText()+"','"+txt[1].getText()+"','"+txt[2].getText()+"','"+txt[3].getText()+"','"+txt[4].getText()+"','"+txt[5].getText()+"','"+txt[6].getText()+"','"+txt[7].getText()+"','"+txt[8].getText()+"')");if(a==1) {JOptionPane.showMessageDialog(ss,"添加成功"); }else {JOptionPane.showMessageDialog(ss,"添加失敗"); } }catch(SQLExceptionse) {JOptionPane.showMessageDialog(ss,se.getMessage()); } }else {for(inti=0;i<txt.length;i++) {txt[i].setText("");txt[0].requestFocus(); } } }publicstaticvoidmain(String[]args) {Addscoreas=newAddscore(); }}6、學(xué)生信息查詢:importjava.awt.*;importjavax.swing.*;import.*;importjava.sql.*;publicclassSerchextendsJFrameimplementsActionListener{ /*查詢學(xué)生信息控件*/staticSerchs;JPaneljpl=newJPanel();JLabelSCH=newJLabel("查詢學(xué)生信息",JLabel.CENTER);JLabellabel1=newJLabel("請輸入學(xué)號:",JLabel.CENTER);JButtonserch=newJButton("查詢");JLabellabel2=newJLabel("姓名:",JLabel.CENTER);JLabellabel3=newJLabel("班級:",JLabel.CENTER);JLabellabel4=newJLabel("學(xué)校:",JLabel.CENTER);JLabellabel5=newJLabel("性別:",JLabel.CENTER);ButtonGroupbgp=newButtonGroup();JRadioButtonman=newJRadioButton("男");JRadioButtonwomen=newJRadioButton("女");JTextFieldnum=newJTextField();JTextFieldnam=newJTextField();JTextFieldclas=newJTextField();JTextFieldscl=newJTextField();JButtonreset=newJButton("重置");publicSerch() {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(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(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(label4);scl.setBounds(190,260,140,20);jpl.add(scl); }publicvoidactionPerformed(ActionEvente) { Stringid=num.getText();if(e.getSource()==serch) {try {Class.forName(""); }catch(ClassNotFoundExceptionce) {JOptionPane.showMessageDialog(s,ce.getMessage()); }try { Connectioncon=DriverManager.getConnection("jdbc:odbc:shujuku","sa",""); Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("select*fromSTUwhereID='"+id+"'");while(rs.next()) {nam.setText(rs.getString("Name")); if(rs.getString("Sex").equals("男")) {man.setSelected(true); }else {women.setSelected(true); }clas.setText(rs.getString("Class"));scl.setText(rs.getString("Collage")); } }catch(SQLExceptionse) {JOptionPane.showMessageDialog(s,se.getMessage()); } } }publicstaticvoidmain(String[]args) {Serchsch=newSerch(); }}7、學(xué)生成績查詢importjava.awt.*;importjavax.swing.*;import.*;import.*;importjava.sql.*;publicclassScoreextendsJFrameimplementsActionListener{staticScores;JLabeltitle=newJLabel("查詢成績",JLabel.CENTER); Fontf=newFont("楷體",Font.BOLD+Font.ITALIC,16);JPaneljpl=newJPanel();JLabellabel1=newJLabel("請輸入學(xué)號:",JLabel.CENTER);JTextFieldnum=newJTextField();JButtonserch=newJButton("查詢成績");JButtonreset=newJButton("重置");JLabellabel2=newJLabel("計算機網(wǎng)絡(luò):",JLabel.LEFT);JLabellabel3=newJLabel("Linux操作系統(tǒng):",JLabel.LEFT);JLabellabel4=newJLabel("計算機專業(yè)英語:",JLabel.LEFT);JLabellabel5=newJLabel("計算機信息技術(shù)根底:",JLabel.LEFT);JLabellabel6=newJLabel("Java程序設(shè)計:",JLabel.LEFT);JLabellabel7=newJLabel("數(shù)據(jù)庫:",JLabel.LEFT);JLabellabel8=newJLabel("高等數(shù)學(xué):",JLabel.LEFT);JLabellabel9=newJLabel("XML:",JLabel.LEFT);JTextField[]txt={newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField()};staticintp=140;publicScore() { super("查詢分?jǐn)?shù)");this.setResizable(false);this.setSize(500,550);this.setVisible(true);this.setDefau

溫馨提示

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

評論

0/150

提交評論