1、java学生选课系统完整源代码课程设计说明文档学生选课管理系统的设计与实现学校:华南理工大学广州汽车学院系别:计算机工程系专业班级:信息与计算科学姓名: 学号:一、课程设计目的通过这次的设计,主要是做出一个小型的管理系统,来加强对JAVA所学知识的巩固和融会贯通,可以说是对一个学期所学知识的一个小结,加深对JAVA数据库的理解。二、需求分析功能需求分析: 该系统具备管理学生信息、课程信息、选课信息的功能:用户通过输入账号和密码进下该系统后,可以进行一些基础维护(学生信息维护、课程信息维护、选课信息维护)。全部都可以进行增加、修改、删除、模糊查询。三、数据项:1表admin(用户表)FieldT
2、ypeNullKeyComment Usernamechar(10)PRI用户名passwordchar(10)密码NameChar(10)用户昵称2表S(学生信息表)FieldTypeNullKeyComment Snonvarchar(50)PRI学号Snamenvarchar(50)姓名Sxnvarchar(50)系别3表C(课程信息表)FieldTypeNullKeyComment Cnonvarchar(50)PRI课号Cnamenvarchar(50)课名4表SC(学生信息表)FieldTypeNullKeyComment Cnonvarchar(50)PRI课号Snonvarch
3、ar(50)PRI学号Cnvarchar(50)成绩四、系统功能描述该小型系统主要是用于管理学生及课程的基本信息,主要功能包括四方面的:1.管理学生信息,其中包括添加,删除,修改等操作。2.管理课程信息,其中包括添加,删除,修改等操作。3.管理选课信息,其中包括添加,删除,修改等操作。4.查询信息,其中包括查询学生信息,查询课程信息,查询选课信息等操作。五、代码分析连接数据库方法:这是java连接数据库的驱动,有关数据库的操作都要用到他。public static Connection CONN() String driverName = com.microsoft.sqlserver.jdb
4、c.SQLServerDriver; /加载JDBC驱动 String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=student; /连接服务器和数据库test,此处student是数据库名 String userName = sa; /默认用户名 String userPwd = mima; /密码 Connection dbConn=null; try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd
5、); System.out.println(Connection Successful!); /如果连接成功 控制台输出Connection Successful! catch (Exception e) e.printStackTrace(); return dbConn;用户登录界面user.java:登录时,凡是账号密码未填写、输入错误账号密码都会提出错误提示框。在填写好账号密码后,会读取数据库里admin表,并查询其输入是否存在,若无误,则登录到用户界面。public class User extends JFrame private JLabel use,password; priv
6、ate JTextField k1;/用户名输入框 private JPasswordField k2;/密码输入框 private JButton b1,b2;/登录窗口public User(JFrame f) super(系统登录); Container c=getContentPane(); c.setLayout(new FlowLayout(); use=new JLabel(username:); use.setFont(new Font(Serif,Font.PLAIN,20); password=new JLabel(password:); password.setFont(
7、new Font(Serif,Font.PLAIN,20); k1=new JTextField(12); k2=new JPasswordField(12); b1=new JButton(登录); b2=new JButton(退出);/ 设置登录方法 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(b
8、2); setBounds(600,300,250,150); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/主函数public static void main(String args) User f1=new User(new JFrame();效果图:用户界面:Menu.java用户界面能菜单栏有4个一级菜单,学生管理、课程管理、选课管理都能添加、修改、删除数据,分别操作数据库里的S表(学生),C表(课程),SC表(选课)。查询管理则可进行三个表的查询。impo
9、rt java.awt.*;import java.awt.event.*;import javax.swing.*;public class Menu extends JFrame implements ActionListener Addstu 增加学生界面; Updatastu 修改学生界面; Delstu 删除学生界面; AddC 增加课程界面; DelC 删除课程界面; UpdateC 修改课程界面; AddSC 增加选课界面; DelSC 删除选课界面; UpdateSC 修改选课界面; Selstu 学生查询界面; JPanel pCenter; CardLayout card=
10、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(课程管理); JMenuItem add2=new JMenuItem(add2 ); JMenuItem updata2=new JMenuItem
11、(updata2 ); JMenuItem delete2=new JMenuItem(delete2 ); JMenu m3=new JMenu(选课管理); JMenuItem add3=new JMenuItem(add3 ); JMenuItem updata3=new JMenuItem(updata3 ); JMenuItem delete3=new JMenuItem(delete3 ); JMenu m4=new JMenu(查询管理); JMenuItem 学生查询=new JMenuItem(查询信息 ); JMenuItem m5=new JMenuItem(系统退出);
12、 Font t=new Font (sanerif,Font.PLAIN,12); public Menu () this.setTitle(学生选课管理系统); try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch(Exception e)System.err.println(不能设置外观: +e); /组合菜单 addMenu1(); addMenu2(); addMenu3(); addMenu4(); addJMenuBar(); setJMenuBar(mb); label=new
13、JLabel(选课管理系统,JLabel.CENTER); label.setFont(new Font(宋体,Font.BOLD,36); label.setHorizontalTextPosition(SwingConstants.CENTER); label.setForeground(Color.red); /点击事件 add1.addActionListener(this); updata1.addActionListener(this); delete1.addActionListener(this); m5.addActionListener(this); add2.addAct
14、ionListener(this); delete2.addActionListener(this); updata2.addActionListener(this); add3.addActionListener(this); delete3.addActionListener(this); updata3.addActionListener(this); 学生查询.addActionListener(this);card=new CardLayout(); pCenter=new JPanel(); pCenter.setLayout(card);增加学生界面=new Addstu();
15、修改学生界面=new Updatastu(); 删除学生界面=new Delstu(); 增加课程界面=new AddC(); 删除课程界面=new DelC(); 修改课程界面=new UpdateC(); 增加选课界面=new AddSC(); 删除选课界面=new DelSC(); 修改选课界面=new UpdateSC(); 学生查询界面=new Selstu();pCenter.add(欢迎界面,label); pCenter.add(增加学生界面,增加学生界面); pCenter.add(修改学生界面,修改学生界面); pCenter.add(删除学生界面,删除学生界面); pCe
16、nter.add(增加课程界面,增加课程界面); pCenter.add(删除课程界面,删除课程界面); pCenter.add(修改课程界面,修改课程界面); pCenter.add(增加选课界面,增加选课界面); pCenter.add(删除选课界面,删除选课界面); pCenter.add(修改选课界面,修改选课界面); pCenter.add(学生查询界面, 学生查询界面); add(pCenter,BorderLayout.CENTER); validate(); setVisible(true); setBounds(400,150,400,280); setDefaultClos
17、eOperation(JFrame.EXIT_ON_CLOSE); addWindowListener(new WindowAdapter()/关闭程序时的操作 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
18、addMenu3() 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
19、 obj=e.getSource(); 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, 删除课程界面); elseif(obj=updata2) car
20、d.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, 学生查询界面); public static void main(String args) new Menu();效果图:添加界面:AddC.java/AddSC.java/Addstu.java
21、添加数据时,若遇到必须信息未填写、不能重复的信息在数据库中已存在,都会提示无法添加及其错误原因。import java.awt.*;import javax.swing.*;import java.sql.*;import java.awt.event.*;public class AddC extends JPanel implements ActionListener JTextField 课号,课名; JButton 录入; public AddC() try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName
22、();catch(Exception e)System.err.println(不能设置外观: +e); 课号=new JTextField(12); 课名=new JTextField(12); 录入=new JButton(录入); 录入.addActionListener(this); Box box1=Box.createHorizontalBox();/横放box Box box2=Box.createHorizontalBox(); Box box3=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox(); box
23、1.add(new JLabel(课号:); box1.add(课号); box2.add(new JLabel(课名:); box2.add(课名); box4.add(录入); Box boxH=Box.createVerticalBox();/竖放box boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(Box.createVerticalGlue(); JPanel messPanel=new JPanel(); messPanel.add(boxH); setLayout(new Bord
24、erLayout(); add(messPanel,BorderLayout.CENTER); validate();效果图:添加界面:UpdateC.java/UpdateSC.java /Updatestu.java先查找你想要修改的项目,若修改的信息包括号码(学号、课号),则会进行查询,如果修改后的号码已存在,以及修改后必须的信息变成空都会提示无法修改和其错误原因。此外,若修改C表或则S表,会连同SC表中对应的信息一起修改。import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;pu
25、blic class UpdateC extends JPanel implements ActionListener String save=null; JTextField 课号1,课号,课名; JButton 修改,查找;public UpdateC() try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println(不能设置外观: +e); 课号1=new JTextField(12); 课号=new JTextField(12); 课
26、名=new JTextField(12); 修改=new JButton(修改); 查找=new JButton(查找); Box box1=Box.createHorizontalBox();/横放box Box box2=Box.createHorizontalBox(); Box box3=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox(); Box box5=Box.createHorizontalBox(); box1.add(new JLabel(课号:,JLabel.CENTER); box1.add(课号)
27、; box2.add(new JLabel(课名:,JLabel.CENTER); box2.add(课名); box3.add(修改); box5.add(new JLabel(课号:,JLabel.CENTER); box5.add(课号1); box5.add(查找); 修改.addActionListener(this); 查找.addActionListener(this); Box boxH=Box.createVerticalBox();/竖放box boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); b
28、oxH.add(Box.createVerticalGlue(); JPanel picPanel=new JPanel(); JPanel messPanel=new JPanel(); messPanel.add(box5); picPanel.add(boxH); setLayout(new BorderLayout(); JSplitPane splitV=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messPanel,picPanel);/分割 add(splitV,BorderLayout.CENTER); validate();删除界面:De
29、lC.java/DelSC.java /Deltu.java先查找你想要删除的项目,然后删除,此外,若删除C表或则S表的内容,会连同SC表中对应的信息一起修改。import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class DelC extends JPanel implements ActionListener String save=null; JTextField 课号1,课号,课名; JButton 删除,查找; public DelC() try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.er
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1