版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 Java程序設(shè)計(jì)結(jié)課報(bào)告課程名稱(chēng) JAVA程序設(shè)計(jì) 設(shè)計(jì)題目 學(xué)生選課管理系統(tǒng) 專(zhuān)業(yè)班級(jí) 學(xué) 號(hào) 學(xué)生姓名 教 師 信息工程系目 錄目 錄III第1章 系統(tǒng)簡(jiǎn)介41.1 系統(tǒng)功能4第2章 表的設(shè)計(jì)52.1 系統(tǒng)數(shù)據(jù)庫(kù)表結(jié)構(gòu):5第3章 連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)6第4章 系統(tǒng)詳細(xì)設(shè)計(jì)74.1系統(tǒng)登錄模塊設(shè)計(jì)74.2系統(tǒng)主界面詳細(xì)設(shè)計(jì)114.3學(xué)生管理模塊設(shè)計(jì)164.4課程管理模塊設(shè)計(jì)204.5選課管理模塊設(shè)計(jì)23答辯記錄27成績(jī)考核表27學(xué)生選課管理系統(tǒng)第1章 系統(tǒng)簡(jiǎn)介1.1 系統(tǒng)功能本系統(tǒng)主要功能:1)管理學(xué)生信息,其中包括添加,刪除,修改等操作。2)管理課程信息,其中包括添加,刪除,修改等操作。3)
2、管理選課信息,其中包括添加,刪除,修改等操作。4)查詢信息,其中包括查詢學(xué)生信息,查詢課程信息,查詢選課信息.。5 )維護(hù)系統(tǒng),備份所有表格為Excel格式。1.2 系統(tǒng)引用例子課本P237頁(yè) 13.10課本P364頁(yè) 20.5課本P389頁(yè) 20.10課本P387頁(yè) 21.6第2章 表的設(shè)計(jì)2.1 系統(tǒng)數(shù)據(jù)庫(kù)表結(jié)構(gòu):在此小節(jié)將系統(tǒng)數(shù)據(jù)庫(kù)表結(jié)構(gòu)用表的形式畫(huà)出,如:字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Snonvarchar50PNot null學(xué)號(hào)Snamenvarchar50Not null學(xué)生名字表2.1 學(xué)生信息表(S)Sxnvarchar50Not null學(xué)生系別字段名字段類(lèi)
3、型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Cnonvarchar50PNot null課程號(hào)Cnamenvarchar50Not null課程名字表2.2 課程信息表(C)字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Snonvarchar50PNot null學(xué)號(hào)Cnonvarchar50PNot null課程號(hào)表2.3 選課信息表(SC)Cnvarchar50Not null分?jǐn)?shù)第3章 連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)此節(jié)可簡(jiǎn)寫(xiě),可適當(dāng)貼一些SQL Server數(shù)據(jù)庫(kù)連接的關(guān)鍵代碼,如:Connection dbConn=null;try Class.forName("net.sourceforge.j
4、tds.jdbc.Driver"); dbConn = DriverManager.getConnection( "jdbc:jtds:sqlserver:/localhost:1433/" + "student", "sa", "123"); catch (Exception e) e.printStackTrace(); return dbConn; / 返回Connection對(duì)象第4章 系統(tǒng)詳細(xì)設(shè)計(jì)4.1系統(tǒng)登錄模塊設(shè)計(jì)1、 運(yùn)行效果圖 圖4.1.1 登陸界面圖4.1.2 登陸成功 圖4.1.2
5、登陸失敗 2、 主要代碼import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class User extends JFrameprivate JLabel use,password;private JTextField k1;/用戶名輸入框private JPasswordField k2;/密碼輸入框private JButton b1,b2;/登錄窗口public User(JFrame f)super("系統(tǒng)登錄");Container c=ge
6、tContentPane();c.setLayout(new FlowLayout();use=new JLabel("username:");use.setFont(new Font("Serif",Font.PLAIN,20);password=new JLabel("password:");password.setFont(new Font("Serif",Font.PLAIN,20);k1=new JTextField(12);k2=new JPasswordField(12);b1=new JButton
7、("登錄");b2=new JButton("退出");/設(shè)置登錄方法BHandler b=new BHandler();EXIT d=new EXIT();b1.addActionListener(b);b2.addActionListener(d);/添加控件c.add(use);c.add(k1);c.add(password);c.add(k2);c.add(b1);c.add(b2);setBounds(600,300,250,150);setVisible(true);setResizable(false);setDefaultCloseOp
8、eration(JFrame.EXIT_ON_CLOSE);/主函數(shù)public static void main(String args) User f1=new User(new JFrame();/登錄按鈕方法private class BHandler implements ActionListenerpublic void actionPerformed(ActionEvent event)if(k1.getText().equals("")|k2.getText().equals("")JOptionPane.showMessageDialo
9、g(User.this,"用戶名密碼不能為空!" );elseStatement stmt=null;ResultSet rs=null;String sql; sql="select * from admin where username='"+k1.getText()+"'" try Connection dbConn1=Conn.CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CO
10、NCUR_READ_ONLY);rs=stmt.executeQuery(sql);if(rs.next()String xm=rs.getString("password");if(k2.getText().equals(xm.trim()JOptionPane.showMessageDialog(User.this,"登錄成功");dispose();new Menu();/管理窗口 elseJOptionPane.showMessageDialog(User.this,"密碼錯(cuò)誤"); elseJOptionPane.showM
11、essageDialog(User.this,"用戶名錯(cuò)誤");rs.close();stmt.close();catch(SQLException e)JOptionPane.showMessageDialog(User.this,"SQL錯(cuò)誤信息:"+e.getMessage(); /退出方法結(jié)束private class EXIT implements ActionListenerpublic void actionPerformed(ActionEvent even)System.exit(0);/父類(lèi)結(jié)束4.2系統(tǒng)主界面詳細(xì)設(shè)計(jì)1、 運(yùn)行效果圖
12、 圖4.2.1 登陸成功后界面圖4.2.2 學(xué)生管理菜單圖4.2.2 課程管理菜單圖4.2.2 選課管理菜單圖4.2.2 查詢管理菜單2、實(shí)現(xiàn)代碼:添加數(shù)據(jù)時(shí),若遇到必須信息未填寫(xiě)、不能重復(fù)的信息在數(shù)據(jù)庫(kù)中已存在,都會(huì)提示無(wú)法添加及其錯(cuò)誤原因。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Menu extends JFrame implements ActionListenerAddstu 增加學(xué)生界面;Updatastu 修改學(xué)生界面;Delstu 刪除學(xué)生界面;AddC 增加課程界面;
13、DelC 刪除課程界面;UpdateC 修改課程界面;AddSC 增加選課界面;DelSC 刪除選課界面;UpdateSC 修改選課界面;Selstu 學(xué)生查詢界面;Backup 備份界面;JPanel pCenter;CardLayout card=null;JLabel label=null;JMenuBar mb=new JMenuBar();/菜單欄JMenu m1=new JMenu("學(xué)生管理");JMenuItem add1=new JMenuItem("添加學(xué)生學(xué)籍 ");JMenuItem updata1=new JMenuItem(&
14、quot;更新學(xué)生學(xué)籍 ");JMenuItem delete1=new JMenuItem("刪除學(xué)生學(xué)籍 ");JMenu m2=new JMenu("課程管理");JMenuItem add2=new JMenuItem("增加課程 ");JMenuItem updata2=new JMenuItem("更新課程 ");JMenuItem delete2=new JMenuItem("刪除課程 ");JMenu m3=new JMenu("選課管理");JMe
15、nuItem add3=new JMenuItem("成績(jī)錄入 ");JMenuItem updata3=new JMenuItem("成績(jī)修改 ");JMenuItem delete3=new JMenuItem("成績(jī)刪除 ");JMenu m4=new JMenu("查詢管理");JMenuItem 學(xué)生查詢=new JMenuItem("查詢信息 ");JMenuItem backup=new JMenuItem("備份信息 ");JMenuItem m5=new J
16、MenuItem("系統(tǒng)退出");Font t=new Font ("sanerif",Font.PLAIN,12);public Menu ()this.setTitle("學(xué)生選課管理系統(tǒng)");try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println("不能設(shè)置外觀: "+e);/組合菜單addMenu1();addMenu2();addMenu3();a
17、ddMenu4();addJMenuBar();setJMenuBar(mb);label=new JLabel("歡迎使用江西理工大學(xué)應(yīng)科院選課管理系統(tǒng)",JLabel.CENTER);label.setFont(new Font("宋體",Font.BOLD,25);label.setHorizontalTextPosition(SwingConstants.CENTER);label.setForeground(Color.red);/點(diǎn)擊事件add1.addActionListener(this);updata1.addActionListene
18、r(this);delete1.addActionListener(this);m5.addActionListener(this);add2.addActionListener(this);delete2.addActionListener(this);updata2.addActionListener(this);add3.addActionListener(this);delete3.addActionListener(this);updata3.addActionListener(this);學(xué)生查詢.addActionListener(this);backup.addActionLi
19、stener(this);card=new CardLayout();pCenter=new JPanel();pCenter.setLayout(card);增加學(xué)生界面=new Addstu();修改學(xué)生界面=new Updatastu(); 刪除學(xué)生界面=new Delstu();增加課程界面=new AddC();刪除課程界面=new DelC();修改課程界面=new UpdateC();增加選課界面=new AddSC();刪除選課界面=new DelSC();修改選課界面=new UpdateSC();學(xué)生查詢界面=new Selstu();備份界面=new Backup();
20、pCenter.add("歡迎界面",label);pCenter.add("增加學(xué)生界面",增加學(xué)生界面);pCenter.add("修改學(xué)生界面",修改學(xué)生界面);pCenter.add("刪除學(xué)生界面",刪除學(xué)生界面);pCenter.add("增加課程界面",增加課程界面);pCenter.add("刪除課程界面",刪除課程界面);pCenter.add("修改課程界面",修改課程界面);pCenter.add("增加選課界面"
21、,增加選課界面);pCenter.add("刪除選課界面",刪除選課界面);pCenter.add("修改選課界面",修改選課界面);pCenter.add("學(xué)生查詢界面", 學(xué)生查詢界面);pCenter.add("備份界面", 備份界面);add(pCenter,BorderLayout.CENTER);validate();setVisible(true);setBounds(400,150,600,380);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); a
22、ddWindowListener(new WindowAdapter()/關(guān)閉程序時(shí)的操作public void windowClosing(WindowEvent e)System.exit(0););validate();private void addJMenuBar() mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5);private void addMenu4() m4.add(學(xué)生查詢);m4.add(backup); m4.setFont(t);private void addMenu3() m3.add(add3);m
23、3.add(updata3);m3.add(delete3);m3.setFont(t);private void addMenu2() /將菜單加入到菜單欄中m2.add(add2);m2.add(updata2);m2.add(delete2);m2.setFont(t);private void addMenu1() m1.add(add1);m1.add(updata1);m1.add(delete1);m1.setFont(t);/字體public void actionPerformed(ActionEvent e)Object obj=e.getSource();if(obj=m
24、5)System.exit(0);elseif(obj=add1)card.show(pCenter,"增加學(xué)生界面");elseif(obj=updata1)card.show(pCenter,"修改學(xué)生界面");elseif(obj=delete1)card.show(pCenter, "刪除學(xué)生界面");elseif(obj=add2)card.show(pCenter, "增加課程界面");elseif(obj=delete2)card.show(pCenter, "刪除課程界面");e
25、lseif(obj=updata2)card.show(pCenter, "修改課程界面");elseif(obj=add3)card.show(pCenter, "增加選課界面");elseif(obj=delete3)card.show(pCenter, "刪除選課界面");elseif(obj=updata3)card.show(pCenter, "修改選課界面");elseif(obj=學(xué)生查詢)card.show(pCenter, "學(xué)生查詢界面");elseif(obj=backup
26、)card.show(pCenter, "備份界面");public static void main(String args) new Menu();4.3學(xué)生管理模塊設(shè)計(jì)1、 運(yùn)行效果圖圖4.3.1 添加學(xué)生學(xué)籍圖4.3.1 修改學(xué)生學(xué)籍圖4.3.1 刪除學(xué)生學(xué)籍2、 實(shí)現(xiàn)代碼:Addstu.java/Updatastu.java/Delstu.javaimport java.awt.*;import javax.swing.*;import java.sql.*;import java.awt.event.*;public class Addstu extends J
27、Panel implements ActionListenerJTextField 學(xué)號(hào),姓名,系別;JButton 錄入;public Addstu()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println("不能設(shè)置外觀: "+e);學(xué)號(hào)=new JTextField(12);姓名=new JTextField(12);系別=new JTextField(12);錄入=new JButton("錄入&q
28、uot;);錄入.addActionListener(this);Box box1=Box.createHorizontalBox();/橫放boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();box1.add(new JLabel("學(xué)號(hào):"/*,JLabel.CENTER*/);box1.add(學(xué)號(hào));box2.add(new JLabel("姓名:"/*,JLabel.CENTER*/
29、);box2.add(姓名);box3.add(new JLabel("系別:"/*,JLabel.CENTER*/);box3.add(系別);box4.add(錄入);Box boxH=Box.createVerticalBox();/豎放boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(boxH);setLayout(new BorderL
30、ayout();add(messPanel,BorderLayout.CENTER);validate();public void actionPerformed(ActionEvent c)Object obj=c.getSource();if(obj=錄入)if(學(xué)號(hào).getText().equals("")|姓名.getText().equals("")|系別.getText().equals("")JOptionPane.showMessageDialog(this,"學(xué)生信息請(qǐng)?zhí)顫M再錄入!" );Stat
31、ement stmt=null;ResultSet rs1=null;String sql,sql1; sql1="select * from S where Sno='"+學(xué)號(hào).getText()+"'" sql="insert into S values('"+學(xué)號(hào).getText()+"','"+姓名.getText()+"','"+系別.getText()+"')" try Connection dbCo
32、nn1=Conn.CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs1=stmt.executeQuery(sql1);if(rs1.next()JOptionPane.showMessageDialog(this,"該學(xué)號(hào)以存在,無(wú)法添加");elsestmt.executeUpdate(sql);JOptionPane.showMessageDialog(this,"添加成功");
33、rs1.close();stmt.close(); catch(SQLException e) System.out.print("SQL Exception occur.Message is:"+e.getMessage(); 4.4課程管理模塊設(shè)計(jì)1、 運(yùn)行效果圖圖4.4.1 課程錄入界面圖4.4.2 課程修改界面圖4.4.3 課程刪除界面2、 運(yùn)行代碼:AddC.java/UpdataC.java/DelC.javaimport java.awt.*;import javax.swing.*;import java.sql.*;import java.awt.even
34、t.*;public class AddC extends JPanel implements ActionListenerJTextField 課號(hào),課名;JButton 錄入;public AddC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println("不能設(shè)置外觀: "+e);課號(hào)=new JTextField(12);課名=new JTextField(12);錄入=new JButton("
35、錄入");錄入.addActionListener(this);Box box1=Box.createHorizontalBox();/橫放boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();box1.add(new JLabel("課號(hào):");box1.add(課號(hào));box2.add(new JLabel("課名:");box2.add(課名);box4.add(錄入);Box
36、boxH=Box.createVerticalBox();/豎放boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(boxH);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();public void actionPerformed(ActionEvent c)Obje
37、ct obj=c.getSource();if(obj=錄入)if(課號(hào).getText().equals("")|課名.getText().equals("")JOptionPane.showMessageDialog(this,"學(xué)生信息請(qǐng)?zhí)顫M再錄入!" );Statement stmt=null;ResultSet rs=null,rs1=null;/結(jié)果集String sql,sql1; sql1="select * from C where Cno='"+課號(hào).getText()+"
38、39;" sql="insert into C values('"+課號(hào).getText()+"','"+課名.getText()+"')" try Connection dbConn1=Conn.CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs1=stmt.executeQuery(sql1);if(rs1.next()
39、JOptionPane.showMessageDialog(this,"該課號(hào)以存在,無(wú)法添加");elsestmt.executeUpdate(sql);JOptionPane.showMessageDialog(this,"添加成功");rs1.close();stmt.close(); catch(SQLException e) System.out.print("SQL 錯(cuò)誤信息:"+e.getMessage(); 4.5選課管理模塊設(shè)計(jì)1、運(yùn)行效果圖圖4.5.1 成績(jī)錄入界面圖4.5.2 成績(jī)修改界面圖4.5.3 成績(jī)刪除界
40、面2、運(yùn)行代碼:AddSC.java/UpdataSC.java/DelSC.javaimport java.awt.*;import javax.swing.*;import java.sql.*;import java.util.*;import javax.swing.filechooser.*;import java.io.*;import java.awt.event.*;public class AddSC extends JPanel implements ActionListenerJTextField 課號(hào),學(xué)號(hào),成績(jī);JButton 錄入;public AddSC()try
41、 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println("不能設(shè)置外觀: "+e);課號(hào)=new JTextField(12);學(xué)號(hào)=new JTextField(12);成績(jī)=new JTextField(12);錄入=new JButton("錄入");錄入.addActionListener(this);Box box1=Box.createHorizontalBox();/橫放boxBox bo
42、x2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();box1.add(new JLabel("課號(hào):");box1.add(課號(hào));box2.add(new JLabel("學(xué)號(hào):");box2.add(學(xué)號(hào));box3.add(new JLabel("成績(jī):");box3.add(成績(jī));box4.add(錄入);Box boxH=Box.createVerticalBox();/豎放bo
43、xboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(boxH);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();public void actionPerformed(ActionEvent c)Object obj=c.getSource();if(obj=錄入)if(課號(hào).getTex
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度互聯(lián)網(wǎng)企業(yè)派遣員工網(wǎng)絡(luò)安全合同3篇
- 2025年全新公對(duì)公借款合同模板下載及服務(wù)支持10篇
- 二零二五年度體育館租賃合同附體育賽事推廣及贊助招商服務(wù)
- 2025版智能工廠生產(chǎn)線改造施工合同4篇
- 二零二五年度新能源產(chǎn)品銷(xiāo)售代理合作合同范本3篇
- Bobath技術(shù)閆秀麗講解
- 2025年度個(gè)人藝術(shù)品租賃借款合同范本及租賃期限約定
- 2025年室內(nèi)墻面批白工程售后服務(wù)合同
- 二零二五年度戶外廣告照明外接電源供應(yīng)合同
- 2025年度個(gè)人房屋抵押貸款擔(dān)保及養(yǎng)老保障服務(wù)合同
- 道路瀝青工程施工方案
- 2025年度正規(guī)離婚協(xié)議書(shū)電子版下載服務(wù)
- 《田口方法的導(dǎo)入》課件
- 內(nèi)陸?zhàn)B殖與水產(chǎn)品市場(chǎng)營(yíng)銷(xiāo)策略考核試卷
- 電力電纜工程施工組織設(shè)計(jì)
- 醫(yī)生給病人免責(zé)協(xié)議書(shū)(2篇)
- 票據(jù)業(yè)務(wù)居間合同模板
- 高中物理選擇性必修2教材習(xí)題答案
- 應(yīng)急預(yù)案評(píng)分標(biāo)準(zhǔn)表
- “網(wǎng)絡(luò)安全課件:高校教師網(wǎng)絡(luò)安全與信息化素養(yǎng)培訓(xùn)”
- 鋰離子電池健康評(píng)估及剩余使用壽命預(yù)測(cè)方法研究
評(píng)論
0/150
提交評(píng)論