java程序设计之学生选课标准管理系统.doc
《java程序设计之学生选课标准管理系统.doc》由会员分享,可在线阅读,更多相关《java程序设计之学生选课标准管理系统.doc(34页珍藏版)》请在咨信网上搜索。
《Java程序设计》 结课汇报 课程名称 JAVA程序设计 设计题目 学生选课管理系统 专业班级 学 号 学生姓名 教 师 信息工程系 目 录 目 录 III 第1章 系统介绍 4 1.1 系统功效 4 第2章 表设计 5 2.1 系统数据库表结构: 5 第3章 连接数据库实现 6 第4章 系统具体设计 7 4.1 系统登录模块设计 7 4.2 系统主界面具体设计 11 4.3 学生管理模块设计 16 4.4 课程管理模块设计 20 4.5选课管理模块设计 23 答辩统计 27 成绩考评表 27 学生选课管理系统 第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.1 系统数据库表结构: 在此小节将系统数据库表结构用表形式画出,如: 字段名 字段类型 长度 主/外键 字段值约束 对应汉字名 Sno nvarchar 50 P Not null 学号 Sname nvarchar 50 Not null 学生名字 表2.1 学生信息表(S) Sx nvarchar 50 Not null 学生系别 字段名 字段类型 长度 主/外键 字段值约束 对应汉字名 Cno nvarchar 50 P Not null 课程号 Cname nvarchar 50 Not null 课程名字 表2.2 课程信息表(C) 字段名 字段类型 长度 主/外键 字段值约束 对应汉字名 Sno nvarchar 50 P Not null 学号 Cno nvarchar 50 P Not null 课程号 表2.3 选课信息表(SC) C nvarchar 50 Not null 分数 第3章 连接数据库实现 此节可简写,可合适贴部分SQL Server数据库连接关键代码,如: Connection dbConn=null; try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); dbConn = DriverManager.getConnection( "jdbc:jtds:sqlserver://localhost:1433/" + "student", "sa", "123"); } catch (Exception e) { e.printStackTrace(); } return dbConn; // 返回Connection对象 第4章 系统具体设计 4.1 系统登录模块设计 1、 运行效果图 图4.1.1 登陆界面 图4.1.2 登陆成功 图4.1.2 登陆失败 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",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 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); 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(); } catch(SQLException e){ JOptionPane.showMessageDialog(User.this,"SQL错误信息:"+e.getMessage()); } } } } //退出方法结束 private class EXIT implements ActionListener{ public void actionPerformed(ActionEvent even){ System.exit(0); } } }//父类结束 4.2 系统主界面具体设计 1、 运行效果图 图4.2.1 登陆成功后界面 图4.2.2 学生管理菜单 图4.2.2 课程管理菜单 图4.2.2 选课管理菜单 图4.2.2 查询管理菜单 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",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 JLabel("欢迎使用江西理工大学应科院选课管理系统",JLabel.CENTER); label.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.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(); 删除课程界面=new DelC(); 修改课程界面=new UpdateC(); 增加选课界面=new AddSC(); 删除选课界面=new DelSC(); 修改选课界面=new UpdateSC(); 学生查询界面=new Selstu(); 备份界面=new Backup(); pCenter.add("欢迎界面",label); 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); } 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, "修改课程界面"); } 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 添加学生学籍 图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);} 学号=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; 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()); } } } } 4.4 课程管理模块设计 1、 运行效果图 图4.4.1 课程录入界面 图4.4.2 课程修改界面 图4.4.3 课程删除界面 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()); 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()); }}}} 4.5选课管理模块设计 1、运行效果图 图4.5.1 成绩录入界面 图4.5.2 成绩修改界面 图4.5.3 成绩删除界面 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.cre- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 学生 选课 标准 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文