1、程序设计之学生选课管理系统Java程序设计结课报告课程名称 JAVA程序设计 设计题目 学生选课管理系统 专业班级 学 号 学生姓名 教 师 信息工程系学生选课管理系统第1章 系统简介1.1 系统功能本系统主要功能:1)管理学生信息,其中包括添加,删除,修改等操作。2)管理课程信息,其中包括添加,删除,修改等操作。3)管理选课信息,其中包括添加,删除,修改等操作。4)查询信息,其中包括查询学生信息,查询课程信息,查询选课信息.。5 )维护系统,备份所有表格为Excel格式。1.2 系统引用例子课本P237页 13.10课本P364页 20.5课本P389页 20.10课本P387页 21.6第
2、2章 表的设计2.1 系统数据库表结构:在此小节将系统数据库表结构用表的形式画出,如:字段名字段类型长度主/外键字段值约束对应中文名Snonvarchar50PNot null学号Snamenvarchar50Not null学生名字表2.1 学生信息表(S)Sxnvarchar50Not null学生系别字段名字段类型长度主/外键字段值约束对应中文名Cnonvarchar50PNot null课程号Cnamenvarchar50Not null课程名字表2.2 课程信息表(C)字段名字段类型长度主/外键字段值约束对应中文名Snonvarchar50PNot null学号Cnonvarchar
3、50PNot null课程号表2.3 选课信息表(SC)Cnvarchar50Not null分数第3章 连接数据库的实现此节可简写,可适当贴一些SQL Server数据库连接的关键代码,如:Connection dbConn=null;try dbConn = DriverManager.getConnection( + student, sa, 123); catch (Exception e) e.printStackTrace(); return dbConn; / 返回Connection对象系统登录模块设计1、运行效果图 图4.1.1 登陆界面图4.1.2 登陆成功 图4.1.2
4、登陆失败2、主要代码import java.awt.*;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(系统登录); Container c=getContentPane(); c.setLayout(new Fl
5、owLayout(); 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(登录); b2=new JButton(退出); / 设置登录方法 BHandler b=new BHandler(); EXIT d=new E
6、XIT(); 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); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /主函数 public static void main(String args) User f1
7、=new User(new JFrame(); /登录按钮方法 private class BHandler implements ActionListener public void actionPerformed(ActionEvent event) if(k1.getText().equals()|k2.getText().equals() JOptionPane.showMessageDialog(User.this,用户名密码不能为空! ); else Statement stmt=null; ResultSet rs=null; String sql; sql=select * f
8、rom admin where username=+k1.getText()+; try Connection dbConn1=Conn.CONN(); stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); if(rs.next() String xm=rs.getString(password); if(k2.getText().equals(xm.trim()JOptionPane.sh
9、owMessageDialog(User.this,登录成功); dispose(); new Menu();/管理窗口 elseJOptionPane.showMessageDialog(User.this,密码错误); elseJOptionPane.showMessageDialog(User.this,用户名错误); rs.close(); stmt.close(); catch(SQLException e) JOptionPane.showMessageDialog(User.this,SQL错误信息:+e.getMessage(); /退出方法结束 private class E
10、XIT implements ActionListener public void actionPerformed(ActionEvent even) System.exit(0); /父类结束1、运行效果图 图4.2.1 登陆成功后界面图4.2.2 学生管理菜单图4.2.2 课程管理菜单图4.2.2 选课管理菜单图4.2.2 查询管理菜单2、实现代码:添加数据时,若遇到必须信息未填写、不能重复的信息在数据库中已存在,都会提示无法添加及其错误原因。import java.awt.*;importimport javax.swing.*; public class Menu extends JF
11、rame implements ActionListener Addstu 增加学生界面; Updatastu 修改学生界面; Delstu 删除学生界面; AddC 增加课程界面; DelC 删除课程界面; UpdateC 修改课程界面; AddSC 增加选课界面; DelSC 删除选课界面; UpdateSC 修改选课界面; Selstu 学生查询界面; Backup 备份界面; JPanel pCenter; CardLayout card=null; JLabel label=null; JMenuBar mb=new JMenuBar();/菜单栏 JMenu m1=new JMen
12、u(学生管理); JMenuItem add1=new JMenuItem(添加学生学籍 ); JMenuItem updata1=new JMenuItem(更新学生学籍 ); JMenuItem delete1=new JMenuItem(删除学生学籍 ); JMenu m2=new JMenu(课程管理); JMenuItem add2=new JMenuItem(增加课程 ); JMenuItem updata2=new JMenuItem(更新课程 ); JMenuItem delete2=new JMenuItem(删除课程 ); JMenu m3=new JMenu(选课管理);
13、 JMenuItem add3=new JMenuItem(成绩录入 ); JMenuItem updata3=new JMenuItem(成绩修改 ); JMenuItem delete3=new JMenuItem(成绩删除 ); JMenu m4=new JMenu(查询管理); JMenuItem 学生查询=new JMenuItem(查询信息 ); JMenuItem backup=new JMenuItem(备份信息 ); JMenuItem m5=new JMenuItem(系统退出); Font t=new Font (sanerif,Font.PLAIN,12); publi
14、c Menu () this.setTitle(学生选课管理系统); try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch(Exception e)System.err.println(不能设置外观: +e); /组合菜单 addMenu1(); addMenu2(); addMenu3(); addMenu4(); addJMenuBar(); setJMenuBar(mb); label=new JLabel(欢迎使用江西理工大学应科院选课管理系统,JLabel.CENTER); labe
15、l.setFont(new Font(宋体,Font.BOLD,25); label.setHorizontalTextPosition(SwingConstants.CENTER); label.setForeground(Color.red); /点击事件 add1.addActionListener(this); updata1.addActionListener(this); delete1.addActionListener(this); m5.addActionListener(this); add2.addActionListener(this); delete2.addActi
16、onListener(this); updata2.addActionListener(this); add3.addActionListener(this); delete3.addActionListener(this); updata3.addActionListener(this); 学生查询.addActionListener(this); backup.addActionListener(this); card=new CardLayout(); pCenter=new JPanel(); pCenter.setLayout(card); 增加学生界面=new Addstu();
17、修改学生界面=new Updatastu(); 删除学生界面=new Delstu(); 增加课程界面=new AddC(); 删除课程界面=new DelC(); 修改课程界面=new UpdateC(); 增加选课界面=new AddSC(); 删除选课界面=new DelSC(); 修改选课界面=new UpdateSC(); 学生查询界面=new Selstu(); 备份界面=new Backup(); pCenter.add(欢迎界面,label); pCenter.add(增加学生界面,增加学生界面); pCenter.add(修改学生界面,修改学生界面); pCenter.add
18、(删除学生界面,删除学生界面); pCenter.add(增加课程界面,增加课程界面); pCenter.add(删除课程界面,删除课程界面); pCenter.add(修改课程界面,修改课程界面); pCenter.add(增加选课界面,增加选课界面); pCenter.add(删除选课界面,删除选课界面); pCenter.add(修改选课界面,修改选课界面); pCenter.add(学生查询界面, 学生查询界面); pCenter.add(备份界面, 备份界面); add(pCenter,BorderLayout.CENTER); validate(); setVisible(true
19、); setBounds(400,150,600,380); setDefaultCloseOperation(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 addMenu
20、4() m4.add(学生查询); m4.add(backup); m4.setFont(t); private void 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(del
21、ete1); m1.setFont(t);/字体 public void actionPerformed(ActionEvent e) Object 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, 增加课程界
22、面); elseif(obj=delete2) card.show(pCenter, 删除课程界面); 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, 学生查询界面); elseif(obj=bac
23、kup) card.show(pCenter, 备份界面); public static void main(String args) new Menu(); 1、运行效果图图4.3.1 添加学生学籍图4.3.1 修改学生学籍图4.3.1 删除学生学籍2、实现代码:Addstu.java/Updatastu.java/Delstu.javaimport java.awt.*;import javax.swing.*;import java.sql.*;importpublic class Addstu extends JPanel implements ActionListener JText
24、Field 学号,姓名,系别; JButton 录入; public Addstu() try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); catch(Exception e)System.err.println(不能设置外观: +e); 学号=new JTextField(12); 姓名=new JTextField(12); 系别=new JTextField(12); 录入=new JButton(录入); 录入.addActionListener(this); Box box1=Box.crea
25、teHorizontalBox();/横放box Box box2=Box.createHorizontalBox(); Box box3=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox(); box1.add(new JLabel(学号:/*,JLabel.CENTER*/); box1.add(学号); box2.add(new JLabel(姓名:/*,JLabel.CENTER*/); box2.add(姓名); box3.add(new JLabel(系别:/*,JLabel.CENTER*/); box3.ad
26、d(系别); 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 BorderLayout(); add(messPanel,BorderLayout.CENTER); validate(); public void actionPerformed(ActionEvent c) Object obj=c.getSource(); if(obj=录入) if(学号.getText().equals()|姓名.getText().equals()|系别.getText().equals() JOptionPane.showMessageDialog(this,学生信息请填满再录入! ); St
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2