課程設計題目:學生選課系統(tǒng)課程設計_第1頁
課程設計題目:學生選課系統(tǒng)課程設計_第2頁
課程設計題目:學生選課系統(tǒng)課程設計_第3頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設計題目:學生選課系統(tǒng)課程設計一、課程設計目的通過這次的設計, 主要是做出一個小型的管理系統(tǒng),來加強對 JAVA 所學知識的鞏固和融會貫通,可以說是對一個學期所學知識的一個小結(jié),加深對JAVA+ACCESS(SQL) 數(shù)據(jù)庫的理解。二、需求分析功能需求分析:該系統(tǒng)具備管理學生信息、課程信息、 選課信息的功能: 用戶通過輸入賬號和密碼進下該系統(tǒng)后,可以進行一些基礎維護(學生信息維護、課程信息維護、選課信息維護)。全部都可以進行增加、修改、刪除、模糊查詢。三、數(shù)據(jù)項 :1 表 admin(用戶表)FieldTypeNullKeyCommentUsernamechar(10)PRI用戶名pass

2、wordchar(10)密碼NameChar(10)用戶昵稱2 表 S(學生信息表)FieldTypeNullKeyCommentSnonvarchar(50)PRI學號Snamenvarchar(50)姓名Sxnvarchar(50)系別3 表 C(課程信息表)FieldTypeNullKeyCommentCnonvarchar(50)PRI課號Cnamenvarchar(50)課名4 表 SC(學生信息表)FieldTypeNullKeyCommentCnonvarchar(50)PRI課號Snonvarchar(50)PRI學號Cnvarchar(50)成績四、系統(tǒng)功能描述該小型系統(tǒng)主要

3、是用于管理學生及課程的基本信息,主要功能包括四方面的:1.管理學生信息,其中包括添加,刪除,修改等操作。2.管理課程信息,其中包括添加,刪除,修改等操作。3.管理選課信息,其中包括添加,刪除,修改等操作。4.查詢信息,其中包括查詢學生信息,查詢課程信息,查詢選課信息等操作。學生選課管理系統(tǒng)學課選查生程課詢管管管管理理理理添修刪添修刪添修刪學課選加改除加改除加改除生程課信信信信信信信信信信信信息息息息息息息息息息息息五、代碼分析連接數(shù)據(jù)庫方法:這是 java 連接數(shù)據(jù)庫的驅(qū)動,有關(guān)數(shù)據(jù)庫的操作都要用到他。publicstaticConnection CONN()String driverName

4、 =;/加載 JDBC 驅(qū)動String dbURL ="jdbc:sqlserver:/localhost:1433;DatabaseName=student"/連接服務器和數(shù)據(jù)庫test,此處 student是數(shù)據(jù)庫名String userName ="sa"/默認用戶名String userPwd ="mima"/密碼Connection dbConn=null;tryClass.forName(driverName);dbConn = DriverManager.getConnection(dbURL, userName, u

5、serPwd);System.out .println("Connection Successful!");/如果連接成功控制臺輸出 Connection Successful!catch(Exception e) e.printStackTrace();returndbConn;用戶登錄界面user.java:登錄時, 凡是賬號密碼未填寫、密碼后,會讀取數(shù)據(jù)庫里admin面。輸入錯誤賬號密碼都會提出錯誤提示框。 在填寫好賬號表,并查詢其輸入是否存在,若無誤,則登錄到用戶界publicclass private private private privateUserexte

6、ndsJFrameJLabeluse , password;JTextFieldk1 ; /用戶名輸入框JPasswordFieldk2 ; /密碼輸入框JButtonb1 , b2 ;/登錄窗口publicUser(JFrame f)super( " 系統(tǒng)登錄 " );Container c=getContentPane();c.setLayout(new FlowLayout();use =new JLabel("username:");use .setFont(new Font("Serif",Font.password=new

7、 JLabel("password:");password.setFont(new Font("Serif"k1 = new JTextField(12);k2 = new JPasswordField(12);b1 = new JButton(" 登錄 " );b2 = new JButton(" 退出 " );PLAIN ,20);,Font.PLAIN ,20);/ 設置登錄方法BHandler b=new BHandler();EXIT d=new EXIT();b1 .addActionListener(

8、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);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );/主函數(shù)publicstaticvoidmain(String args) User f1=new User(new JFrame();效果圖:用戶界面: Menu

9、.java用戶界面能菜單欄有4個一級菜單,學生管理、課程管理、選課管理都能添加、修改、刪除數(shù)據(jù),分別操作數(shù)據(jù)庫里的 S表(學生), C表(課程 ), SC表(選課)。查詢管理則可進行三個表的查詢。public class Menu extends JFrame implements ActionListenerAddstu 增加學生界面;Updatastu 修改學生界面;Delstu 刪除學生界面;AddC增加課程界面 ;DelC 刪除課程界面 ;UpdateC 修改課程界面;AddSC 增加選課界面 ;DelSC 刪除選課界面;UpdateSC 修改選課界面 ;Selstu 學生查詢界面 ;

10、JPanel pCenter;CardLayout card=null;JLabel label=null;JMenuBar mb=new JMenuBar();/ 菜單欄JMenu m1=new JMenu(" 學生管理 ");JMenuItem add1=new JMenuItem("add1");JMenuItem updata1=new JMenuItem("updata1");JMenuItem delete1=new JMenuItem("delete1");JMenu m2=new JMenu(&qu

11、ot; 課程管理 ");JMenuItem add2=new JMenuItem("add2");JMenuItem updata2=new JMenuItem("updata2");JMenuItem delete2=new JMenuItem("delete2");JMenu m3=new JMenu(" 選課管理 ");JMenuItem add3=new JMenuItem("add3");JMenuItem updata3=new JMenuItem("updata

12、3");JMenuItem delete3=new JMenuItem("delete3");JMenu m4=new JMenu(" 查詢管理 ");JMenuItem 學生查詢 =new JMenuItem(" 查詢信息");JMenuItem m5=new JMenuItem(" 系統(tǒng)退出 ");Font t=new Font ("sanerif",Font.PLAIN,12);public Menu ()this.setTitle(" 學生選課管理系統(tǒng)");

13、try UIManager.setLookAndFeel(UIManage不能設置外觀 : "+e); /組合菜單addMenu1();addMenu2();addMenu3();addMenu4();addJMenuBar();setJMenuBar(mb);label=new JLabel(" 選課管理系統(tǒng)",JLabel.CENTER);label.setFont(new Font(" 宋體 ",Font.BOLD,36);label.setHorizontalTextPosition(SwingConstants.CENTER);lab

14、el.setForeground(Color.red);/點擊事件add1.addActionListener(this);updata1.addActionListener(this);delete1.addActionListener(this);m5.addActionListener(this);add2.addActionListener(this);delete2.addActionListener(this);updata2.addActionListener(this);add3.addActionListener(this);delete3.addActionListener

15、(this);updata3.addActionListener(this);學生查詢 .addActionListener(this);card=new CardLayout();pCenter=new JPanel();pCenter.setLayout(card);增加學生界面 =new Addstu();修改學生界面 =new Updatastu();刪除學生界面 =new Delstu();增加課程界面 =new AddC();刪除課程界面 =new DelC();修改課程界面 =new UpdateC();增加選課界面 =new AddSC();刪除選課界面 =new DelSC(

16、);修改選課界面 =new UpdateSC();學生查詢界面 =new Selstu();pCenter.add("歡迎界面 ",label);pCenter.add("增加學生界面 ", 增加學生界面);pCenter.add("修改學生界面 ", 修改學生界面);pCenter.add("刪除學生界面 ", 刪除學生界面);pCenter.add("增加課程界面 ", 增加課程界面);pCenter.add("刪除課程界面 ", 刪除課程界面);pCenter.add(

17、"修改課程界面 ", 修改課程界面);pCenter.add("增加選課界面 ", 增加選課界面);pCenter.add("刪除選課界面 ", 刪除選課界面);pCenter.add("修改選課界面 ", 修改選課界面);pCenter.add("學生查詢界面 ", 學生查詢界面 );add(pCenter,BorderLayout.CENTER);validate();setVisible(true);setBounds(400,150,400,280);setDefaultCloseOpe

18、ration(JFrame.EXIT_ON_CLOSE);addWindowListener(new WindowAdapter()/關(guān)閉程序時的操作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(學生查詢 );m4.setFont(t);private void addMenu3

19、() m3.add(add3);m3.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.getS

20、ource();if(obj=m5)System.exit(0);elseif(obj=add1)card.show(pCenter,"增加學生界面");elseif(obj=updata1) card.show(pCenter,"修改學生界面");elseif(obj=delete1) card.show(pCenter, "刪除學生界面 ");elseif(obj=add2) card.show(pCenter, "增加課程界面 ");elseif(obj=delete2) card.show(pCenter,

21、 "刪除課程界面 ");elseif(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= 學生查詢 ) card.show(pCenter, "

22、; 學生查詢界面 ");public static void main(String args) new Menu();效果圖:添加界面 :AddC.java/AddSC.java/Addstu.java添加數(shù)據(jù)時, 若遇到必須信息未填寫、 不能重復的信息在數(shù)據(jù)庫中已存在, 都會提示無法添加及其錯誤原因。importimportimportimportpublicclassAddCextendsJPanelimplementsActionListenerJTextField課號, 課名;JButton錄入 ;publicAddC()tryUIManager.setLookAndFee

23、l(UIManager.getSystemLookAndFeelClassName(); catch (Exception e)System.err.println(" 不能設置外觀 : " +e);課號 =new JTextField(12);課名 =new JTextField(12);錄入 =newJButton("錄入");錄入 .addActionListener(this);Box box1=Box.createHorizontalBox(); / 橫放 boxBox box2=Box.createHorizontalBox();Box bo

24、x3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();box1.add(newJLabel("課號:");box1.add(課號 );box2.add(newJLabel("課名:");box2.add(課名 );box4.add(錄入 );Box boxH=Box.createVerticalBox();/豎放 boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVer

25、ticalGlue();JPanel messPanel=new JPanel();messPanel.add(boxH);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();效果圖:添加界面 :UpdateC.java/UpdateSC.java /Updatestu.java先查找你想要修改的項目,若修改的信息包括號碼(學號、課號),則會進行查詢,如果修改后的號碼已存在,以及修改后必須的信息變成空都會提示無法修改和其錯誤原因。此外,若修改 C表或則 S表,會連同 SC表中對應的信息一起修改。i

26、mportimportimportjava.sql.*;importjavax.swing.*;publicclassUpdateCextends JPanelimplementsActionListenerStringsave=null;JTextField課號1,課號,課名 ;JButton修改, 查找;publicUpdateC()tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch(Exception e)System.err .println(" 不能設置外觀 : "

27、; +e);課號 1= new JTextField(12);課號 =new JTextField(12);課名 =new JTextField(12);修改 =new JButton("修改");查找 =new JButton("查找");Box box1=Box.createHorizontalBox(); / 橫放 boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box5=B

28、ox.createHorizontalBox();box1.add(new JLabel("課號:",JLabel.CENTER);box1.add(課號 );box2.add(new JLabel("課名:",JLabel.CENTER);box2.add(課名 );box3.add(修改 );box5.add(new JLabel("課號:",JLabel.CENTER);box5.add(課號 1);box5.add(查找 );修改 .addActionListener(this);查找 .addActionListener(t

29、his);Box boxH=Box.createVerticalBox(); / 豎放 boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();JPanel picPanel=new JPanel();JPanel messPanel=new JPanel();messPanel.add(box5);picPanel.add(boxH);setLayout(new BorderLayout();JSplitPane splitV=newJSplitPane(

30、JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);add(splitV,BorderLayout.CENTER);/分割validate();刪除界面 :DelC.java/DelSC.java /Deltu.java先查找你想要刪除的項目,然后刪除,此外,若刪除C表或則 S表的內(nèi)容,會連同SC表中對應的信息一起修改。importjava.awt.*;importjava.awt.event.*;importjava.sql.*;importjavax.swing.*;publicclassDelCextends JPanelimplementsAct

31、ionListenerStringsave =null;JTextField課號1, 課號, 課名;JButton刪除, 查找;publicDelC()tryUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch (Exception e)System.err .println(" 不能設置外觀 : " +e);課號 1= new JTextField(12);課號 =new JTextField(12);課名 =new JTextField(12);刪除 =new JButton(

32、"刪除");查找 =new JButton("查找");Box box1=Box.createHorizontalBox(); / 橫放 boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();Box box5=Box.createHorizontalBox();box1.add(new JLabel("課號:",JLabel.CENTER);box1.add(課號 );box

33、2.add(new JLabel("課名:",JLabel.CENTER);box2.add(課名 );box4.add(刪除 );box5.add(new JLabel("課號:",JLabel.CENTER);box5.add(課號 1);box5.add(查找 );Box boxH=Box.createVerticalBox();/豎放 boxboxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box4);boxH.add(Box.createVerticalGlue();刪除 .addAct

34、ionListener(this);查找 .addActionListener(this);JPanel picPanel=new JPanel();JPanel messPanel=new JPanel();messPanel.add(box5);picPanel.add(boxH);setLayout(new BorderLayout();JSplitPane splitV=newJSplitPane(JSplitPane.VERTICAL_SPLIT ,messPanel,picPanel);/ 分割add(splitV,BorderLayout.CENTER);validate();查

35、詢界面 :Selsto.java可以以任意條件模糊查找相關(guān)的表。importimportimportjimportpublicclassSelstuJTextField學號JButton查找 ;JTextField課號JButton查找1;JTextField課號JButton查找2;extendsJPanel, 姓名, 系別;, 課名;1, 學號1, 成績;implementsActionListenerpublicSelstu ()學號 = new JTextField(12);姓名 = new JTextField(12);系別 = new JTextField(12);課號 = new

36、 JTextField(12);課名 = new JTextField(12);課號 1=new JTextField(12);學號 1=new JTextField(12);成績 = new JTextField(12);查找 = new JButton(" 查找學生信息 " );查找 1=new JButton(" 查找課程信息 " );查找 2=new JButton(" 查找選課信息 " );Box box1=Box.createHorizontalBox(); / 橫放 boxBox box2=Box.createHoriz

37、ontalBox();Box box4=Box.createHorizontalBox();Box box5=Box.createHorizontalBox();Box box6=Box.createHorizontalBox();Box box7=Box.createHorizontalBox();box1.add(new JLabel(" 學號:",JLabel.CENTER);box1.add(學號 );box1.add(new JLabel(" 姓名:",JLabel.CENTER);box1.add(姓名 );box1.add(new JLab

38、el(" 系別:",JLabel.CENTER);box1.add(系別 );box2.add(查找 );box4.add(new JLabel(" 課號:",JLabel.CENTER);box4.add(課號 );box4.add(new JLabel(" 課名:",JLabel.CENTER);box4.add(課名 );box6.add(查找1);box5.add(new JLabel(" 課號:",JLabel.CENTER);box5.add(課號1);box5.add(new JLabel("

39、; 學號:",JLabel.CENTER);box5.add(學號1);box5.add(new JLabel(" 成績:",JLabel.CENTER);box5.add(成績 );box7.add(查找2);Box boxH1=Box.createVerticalBox();/豎放 boxboxH1.add(box1);boxH1.add(box2);boxH1.add(Box.createVerticalGlue();Box boxH2=Box.createVerticalBox();/豎放 boxboxH2.add(box4);boxH2.add(box6

40、);boxH2.add(Box.createVerticalGlue();Box boxH3=Box.createVerticalBox();/豎放 boxboxH3.add(box5);boxH3.add(box7);boxH3.add(Box.createVerticalGlue();查找 .addActionListener(this );查找 1 .addActionListener(this);查找 2 .addActionListener(this);JPanel messPanel=new JPanel();JPanel picPanel=new JPanel();JPanel

41、threePanel=new JPanel();messPanel.add(boxH1);picPanel.add(boxH2);threePanel.add(boxH3);setLayout(new BorderLayout();JSplitPane splitV=newJSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割add(splitV,BorderLayout.CENTER);JSplitPane splitV1=newJSplitPane(JSplitPane.VERTICAL_SPLIT,splitV,three

42、Panel);/分割add(splitV1,BorderLayout.CENTER);validate();效果圖:五、課程設計學習心得*課程設計題目: 學生選課系統(tǒng)課程設計源代碼下面是 java的源代碼,總共有15個類。分別是 AddC.java ,AddSC.java ,Addstu.java ,Delstu.java , DelC.java , DelSC.java , Menu.java , SelC.java, SelSC.java, Selstu.java,Student.java, Updatastu.java , UpdateC.java , UpdateSC.java ,Us

43、er.java。數(shù)據(jù)庫用的是sql2005,如果用別的數(shù)據(jù)庫就要改驅(qū)動。AddC.java :public class AddC extends JPanel implements ActionListener JTextField 課號 ,課名 ;JButton 錄入 ;public AddC()try UIManager.setLookAnd不能設置外觀 : "+e);課號 =new JTextField(12);課名 =new JTextField(12);錄入 =new JButton(" 錄入 ");錄入 .addActionListener(this)

44、;Box box1=Box.createHorizontalBox();/橫放 boxBox box2=Box.createHorizontalBox();Box box3=Box.createHorizontalBox();Box box4=Box.createHorizontalBox();box1.add(new JLabel(" 課號 :");box1.add(課號 );box2.add(new JLabel(" 課名 :");box2.add(課名 );box4.add(錄入 );Box boxH=Box.createV erticalBox(

45、);/ 豎放 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)Object obj=c.getSource();if(o

46、bj= 錄入 )if( 課號 .getText().equals("")| 課名 .getText().equals("")JOptionPane.showMessageDialog(this," 學生信息請?zhí)顫M再錄入!" );Statement stmt=null;ResultSet rs=null,rs1=null;String sql,sql1;sql1="select * from C where Cno='"+課號 .getText()+"'"sql="ins

47、ert into C values('"+ 課號 .getText()+"','"+ 課名 .getText()+"')"tryConnection dbConn1=CONN();stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,Resu ltSet.CONCUR_READ_ONL Y);rs1=stmt.executeQuery(sql1);if(rs1.next()JOptionPane.showMessageDialog(this,"該課號以存在,無法添加");elsestmt.executeUpdate(sql);JOptionPane.showMessageDialog(this," 添加成功 ");rs1.close();stmt.close();catch(SQLException e)/連接數(shù)據(jù)庫方法public stati

溫馨提示

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

最新文檔

評論

0/150

提交評論