您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页java程序设计之学生选课管理系统

java程序设计之学生选课管理系统

来源:吉趣旅游网
 《Java程序设计》 结课报告 课程名称 JAVA程序设计 设计题目 学生选课管理系统 专业班级 学 号 学生姓名 教 师 信息工程系 《Java程序设计》结课报告 目 录 目 录 .......................................................................................................................... II 第1章 系统简介 ....................................................................................................... 3 1.1 系统功能 ......................................................................................................... 3 第2章 表的设计 ....................................................................................................... 4 2.1 系统数据库表结构: ..................................................................................... 4 第3章 连接数据库的实现 ....................................................................................... 5 第4章 系统详细设计 ............................................................................................... 6 4.1 系统登录模块设计 ...................................................................................... 6 4.2 系统主界面详细设计 ................................................................................ 10 4.3 学生管理模块设计 .................................................................................... 15 4.4 课程管理模块设计 .................................................................................... 19 4.5选课管理模块设计 ........................................................................................ 22 答辩记录 ..................................................................................................................... 26 成绩考核表 ................................................................................................................. 26 《Java程序设计》结课报告 学生选课管理系统 第1章 系统简介 1.1 系统功能 本系统主要功能: 1)管理学生信息,其中包括添加,删除,修改等操作。 2)管理课程信息,其中包括添加,删除,修改等操作。 3)管理选课信息,其中包括添加,删除,修改等操作。 4)查询信息,其中包括查询学生信息,查询课程信息,查询选课信息.。 5 )维护系统,备份所有表格为Excel格式。 1.2 系统引用例子 课本P237页 13.10 课本P364页 20.5 课本P389页 20.10 课本P387页 21.6 《Java程序设计》结课报告 第2章 表的设计 2.1 系统数据库表结构: 在此小节将系统数据库表结构用表的形式画出,如: 字段名 Sno Sname Sx 字段类型 nvarchar nvarchar nvarchar 长度 50 50 50 主/外键 P 字段值约束 Not null Not null Not null 对应中文名 学号 学生名字 学生系别 字段名 Cno Cname 字段类型 nvarchar nvarchar 表2.1 学生信息表(S) 长度 50 50 主/外键 P 字段值约束 Not null Not null 对应中文名 课程号 课程名字 字段名 Sno Cno C 字段类型 nvarchar nvarchar nvarchar 表2.2 课程信息表(C) 长度 50 50 50 主/外键 P P 字段值约束 Not null Not null Not null 对应中文名 学号 课程号 分数 表2.3 选课信息表(SC) 《Java程序设计》结课报告 第3章 连接数据库的实现 此节可简写,可适当贴一些SQL Server数据库连接的关键代码,如: Connection dbConn=null; try { Class.forName(\"net.sourceforge.jtds.jdbc.Driver\"); dbConn = DriverManager.getConnection( \"jdbc:jtds:sqlserver://localhost:1433/\" + \"student\ } catch (Exception e) { e.printStackTrace(); } return dbConn; // 返回Connection对象 《Java程序设计》结课报告 第4章 系统详细设计 4.1 系统登录模块设计 1、 运行效果图 图4.1.1 登陆界面 图4.1.2 登陆成功 图4.1.2 登陆失败 《Java程序设计》结课报告 2、 主要代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class User extends JFrame{ private JLabel use,password; private 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\ password=new JLabel(\"password:\"); password.setFont(new Font(\"Serif\ 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(b2); setBounds(600,300,250,150); setVisible(true); setResizable(false); 《Java程序设计》结课报告 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //主函数 public static void main(String[] args) { User f1=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 * from 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.showMessageDialog(User.this,\"登录成功\"); dispose(); new Menu();//管理窗口 } else{JOptionPane.showMessageDialog(User.this,\"密码错误\");} } else{JOptionPane.showMessageDialog(User.this,\"用户名错误\");} rs.close(); stmt.close(); } 《Java程序设计》结课报告 catch(SQLException e){ JOptionPane.showMessageDialog(User.this,\"SQL错误息:\"+e.getMessage()); } } } } //退出方法结束 private class EXIT implements ActionListener{ public void actionPerformed(ActionEvent even){ System.exit(0); } } }//父类结束 信《Java程序设计》结课报告 4.2 系统主界面详细设计 1、 运行效果图 图4.2.1 登陆成功后界面 图4.2.2 学生管理菜单 图4.2.2 课程管理菜单 图4.2.2 选课管理菜单 图4.2.2 查询管理菜单 《Java程序设计》结课报告 2、实现代码: 添加数据时,若遇到必须信息未填写、不能重复的信息在数据库中已存在,都会提示无法添加及其错误原因。 import 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 学生查询界面; Backup 备份界面; JPanel pCenter; CardLayout card=null; JLabel label=null; JMenuBar mb=new JMenuBar();//菜单栏 JMenu m1=new JMenu(\"学生管理\"); 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(\"选课管理\"); 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\PLAIN,12); 《Java程序设计》结课报告 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 JLabel(\"欢迎使用江西理工大学应科院选课管理系统\CENTER); label.setFont(new 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.addActionListener(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(); 修改学生界面=new Updatastu(); 删除学生界面=new Delstu(); 增加课程界面=new AddC(); 《Java程序设计》结课报告 删除课程界面=new DelC(); 修改课程界面=new UpdateC(); 增加选课界面=new AddSC(); 删除选课界面=new DelSC(); 修改选课界面=new UpdateSC(); 学生查询界面=new Selstu(); 备份界面=new Backup(); pCenter.add(\"欢迎界面\pCenter.add(\"增加学生界面\增加学生界面); pCenter.add(\"修改学生界面\修改学生界面); pCenter.add(\"删除学生界面\删除学生界面); pCenter.add(\"增加课程界面\增加课程界面); pCenter.add(\"删除课程界面\删除课程界面); pCenter.add(\"修改课程界面\修改课程界面); pCenter.add(\"增加选课界面\增加选课界面); pCenter.add(\"删除选课界面\删除选课界面); pCenter.add(\"修改选课界面\修改选课界面); pCenter.add(\"学生查询界面\学生查询界面); pCenter.add(\"备份界面\备份界面); add(pCenter,BorderLayout.CENTER); validate(); setVisible(true); 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 addMenu4() { m4.add(学生查询); m4.add(backup); m4.setFont(t); } 《Java程序设计》结课报告 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(delete1); m1.setFont(t);//字体 } public void actionPerformed(ActionEvent e){ Object obj=e.getSource(); if(obj==m5){System.exit(0);} else{if(obj==add1){ card.show(pCenter,\"增加学生界面\"); } else{if(obj==updata1){ card.show(pCenter,\"修改学生界面\"); } else{if(obj==delete1){ card.show(pCenter, \"删除学生界面\"); } else{if(obj==add2){ card.show(pCenter, \"增加课程界面\"); } else{if(obj==delete2){ card.show(pCenter, \"删除课程界面\"); } else{if(obj==updata2){ card.show(pCenter, \"修改课程界面\"); } 《Java程序设计》结课报告 else{if(obj==add3){ card.show(pCenter, \"增加选课界面\"); } else{if(obj==delete3){ card.show(pCenter, \"删除选课界面\"); } else{if(obj==updata3){ card.show(pCenter, \"修改选课界面\"); } else{if(obj==学生查询){ card.show(pCenter, \"学生查询界面\"); } else{if(obj==backup){ card.show(pCenter, \"备份界面\"); } }} }}}}}}}}}} public static void main(String[] args) { new Menu(); } } 4.3 学生管理模块设计 1、 运行效果图 图4.3.1 添加学生学籍 《Java程序设计》结课报告 图4.3.1 修改学生学籍 图4.3.1 删除学生学籍 2、 实现代码: Addstu.java/Updatastu.java/Delstu.java import java.awt.*; import javax.swing.*; import java.sql.*; import java.awt.event.*; public class Addstu extends JPanel implements ActionListener{ JTextField 学号,姓名,系别; JButton 录入; public Addstu(){ try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());} catch(Exception e){System.err.println(\"不能设置外观: \"+e);} 《Java程序设计》结课报告 学号=new JTextField(12); 姓名=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(); box1.add(new JLabel(\"学号:\"/*,JLabel.CENTER*/)); box1.add(学号); box2.add(new JLabel(\"姓名:\"/*,JLabel.CENTER*/)); box2.add(姓名); box3.add(new JLabel(\"系别:\"/*,JLabel.CENTER*/)); box3.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 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,\"学生信息请填满再录入!\" ); } Statement stmt=null; ResultSet rs1=null; 《Java程序设计》结课报告 String sql,sql1; sql1=\"select * from S where Sno='\"+学号.getText()+\"'\"; sql=\"insert into S values('\"+学号.getText()+\"','\"+姓名.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()){JOptionPane.showMessageDialog(this,\"该学号以存在,无法添加\");} else{ stmt.executeUpdate(sql); JOptionPane.showMessageDialog(this,\"添加成功\"); } rs1.close(); stmt.close(); } catch(SQLException e){ System.out.print(\"SQL Exception occur.Message is:\"+e.getMessage()); } } } } 《Java程序设计》结课报告 4.4 课程管理模块设计 1、 运行效果图 图4.4.1 课程录入界面 图4.4.2 课程修改界面 图4.4.3 课程删除界面 《Java程序设计》结课报告 2、 运行代码: AddC.java/UpdataC.java/DelC.java 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());} 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(); box1.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 BorderLayout()); 《Java程序设计》结课报告 add(messPanel,BorderLayout.CENTER); validate(); } public void actionPerformed(ActionEvent c){ Object obj=c.getSource(); if(obj==录入){ if(课号.getText().equals(\"\")||课名.getText().equals(\"\")){ JOptionPane.showMessageDialog(this,\"学生信息请填满再录入!\" ); } Statement stmt=null; ResultSet rs=null,rs1=null;//结果集 String sql,sql1; sql1=\"select * from C where Cno='\"+课号.getText()+\"'\"; sql=\"insert into C values('\"+课号.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()){JOptionPane.showMessageDialog(this,\"该课号以存在,无法添加\");} else{ stmt.executeUpdate(sql); JOptionPane.showMessageDialog(this,\"添加成功\"); } rs1.close(); stmt.close(); } catch(SQLException e){ System.out.print(\"SQL 错误信息:\"+e.getMessage()); }}}} 《Java程序设计》结课报告 4.5选课管理模块设计 1、运行效果图 图4.5.1 成绩录入界面 图4.5.2 成绩修改界面 图4.5.3 成绩删除界面 《Java程序设计》结课报告 2、运行代码: AddSC.java/UpdataSC.java/DelSC.java import 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 ActionListener{ JTextField 课号,学号,成绩; JButton 录入; public AddSC(){ 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.createHorizontalBox();//横放box Box box2=Box.createHorizontalBox(); Box box3=Box.createHorizontalBox(); Box box4=Box.createHorizontalBox(); box1.add(new JLabel(\"课号:\")); box1.add(课号); box2.add(new JLabel(\"学号:\")); box2.add(学号); box3.add(new JLabel(\"成绩:\")); box3.add(成绩); box4.add(录入); Box boxH=Box.createVerticalBox();//竖放box boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); 《Java程序设计》结课报告 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(\"\")){ JOptionPane.showMessageDialog(this,\"填写课号与学号才能录入!\" ); } else { Statement stmt=null; ResultSet rs=null,rs1=null,rsC=null,rsS=null; String sql,sql1,sqlS,sqlC; sqlC=\"select * from C where Cno='\"+课号.getText()+\"'\"; sqlS=\"select * from S where Sno='\"+学号.getText()+\"'\"; sql1=\"select * from SC where Cno='\"+课号.getText()+\"' and Sno='\"+学号.getText()+\"'\"; sql=\"insert into SC values('\"+课号.getText()+\"','\"+学号.getText()+\"','\"+成绩.getText()+\"')\"; try{ Connection dbConn1=Conn.CONN(); stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rsC=stmt.executeQuery(sqlC); if(rsC.next()){ rsS=stmt.executeQuery(sqlS); if(rsS.next()){ rs1=stmt.executeQuery(sql1); if(rs1.next()){JOptionPane.showMessageDialog(this,\"该学生以选该课程号,无法添加\");} else{ stmt.executeUpdate(sql); JOptionPane.showMessageDialog(this,\"添加成功\"); } 《Java程序设计》结课报告 rs1.close(); } else{JOptionPane.showMessageDialog(this,\"该学生不存在,无法添加\");} rsS.close(); } else{JOptionPane.showMessageDialog(this,\"该课程不存在,无法添加\");} rsC.close(); stmt.close(); } catch(SQLException e){ System.out.print(\"SQL Exception occur.Message is:\"+e.getMessage()); }}}}}

答辩记录

答辩日期 答辩地点 主要问题 答辩要点 成绩考核表

成1、作品质量程度(100分计) 0.4 绩2、报告书写(100分计) 0.2 评3、答辩(100分计) 0.4 定 总 成 绩 项 目 参考权重 实际权重 原始 成绩 加权 成绩

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务