java程序设计之学生选课管理系统_第1页
java程序设计之学生选课管理系统_第2页
java程序设计之学生选课管理系统_第3页
java程序设计之学生选课管理系统_第4页
java程序设计之学生选课管理系统_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Java程序设计》结课报告课程名称JAVA程序设计设计题目学生选课管理系统专业班级学号学生姓名教师信息工程系目录目录III第1章系统简介41.1系统功能4第2章表的设计52.1系统数据库表结构:5第3章连接数据库的实现6第4章系统详细设计74.1系统登录模块设计74.2系统主界面详细设计114.3学生管理模块设计164.4课程管理模块设计204.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系统数据库表结构:在此小节将系统数据库表结构用表的形式画出,如:字段名字段类型长度主/外键字段值约束对应中文名Snonvarchar50PNotnull学号Snamenvarchar50Notnull学生名字表2表2.1学生信息表〔S〕nvarchar50Notnull学生系别字段名字段类型长度主/外键字段值约束对应中文名Cnonvarchar50PNotnull课程号Cnamenvarchar50Notnull课程名字表2.2课程信息表〔C〕表2.2课程信息表〔C〕字段名字段类型长度主/外键字段值约束对应中文名Snonvarchar50PNotnull学号Cnonvarchar50PNotnull课程号表2.3选课信息表〔SC〕C表2.3选课信息表〔SC〕nvarchar50Notnull分数第3章连接数据库的实现此节可简写,可适当贴一些SQLServer数据库连接的关键代码,如:ConnectiondbConn=null;try{ Class.forName("net.sourceforge.jtds.jdbc.Driver"); dbConn=DriverManager.getConnection( "jdbc:jtds:sqlserver://localhost:1433/" +"student","sa","123"); }catch(Exceptione){ e.printStackTrace(); } returndbConn;//返回Connection对象第4章系统详细设计4.1系统登录模块设计运行效果图图4.1.1登陆界面图4.1.2登陆成功图4.1.2登陆失败主要代码importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassUserextendsJFrame{privateJLabeluse,password;privateJTextFieldk1;//用户名输入框privateJPasswordFieldk2;//密码输入框privateJButtonb1,b2; //登录窗口 publicUser(JFramef){ super("系统登录"); Containerc=getContentPane(); c.setLayout(newFlowLayout()); use=newJLabel("username:"); use.setFont(newFont("Serif",Font.PLAIN,20)); password=newJLabel("password:"); password.setFont(newFont("Serif",Font.PLAIN,20)); k1=newJTextField(12); k2=newJPasswordField(12); b1=newJButton("登录"); b2=newJButton("退出"); // 设置登录方法 BHandlerb=newBHandler(); EXITd=newEXIT(); 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); } //主函数 publicstaticvoidmain(String[]args){ Userf1=newUser(newJFrame()); } //登录按钮方法 privateclassBHandlerimplementsActionListener{ publicvoidactionPerformed(ActionEventevent){ if(k1.getText().equals("")||k2.getText().equals("")){ JOptionPane.showMessageDialog(User.this,"用户名密码不能为空!"); } else{ Statementstmt=null; ResultSetrs=null; Stringsql; sql="select*fromadminwhereusername='"+k1.getText()+"'"; try{ ConnectiondbConn1=Conn.CONN(); stmt=(Statement)dbConn1.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); if(rs.next()){ Stringxm=rs.getString("password"); if(k2.getText().equals(xm.trim())){JOptionPane.showMessageDialog(User.this,"登录成功"); dispose(); newMenu();//管理窗口 } else{JOptionPane.showMessageDialog(User.this,"密码错误");} } else{JOptionPane.showMessageDialog(User.this,"用户名错误");} rs.close(); stmt.close(); } catch(SQLExceptione){ JOptionPane.showMessageDialog(User.this,"SQL错误信息:"+e.getMessage()); } } } } //退出方法结束 privateclassEXITimplementsActionListener{ publicvoidactionPerformed(ActionEventeven){ System.exit(0); } }}//父类结束4.2系统主界面详细设计运行效果图 图4.2.1登陆成功后界面图4.2.2学生管理菜单图4.2.2课程管理菜单图4.2.2选课管理菜单图4.2.2查询管理菜单2、实现代码:添加数据时,假设遇到必须信息未填写、不能重复的信息在数据库中已存在,都会提示无法添加及其错误原因。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMenuextendsJFrameimplementsActionListener{ Addstu增加学生界面; Updatastu修改学生界面; Delstu删除学生界面; AddC增加课程界面; DelC删除课程界面; UpdateC修改课程界面; AddSC增加选课界面; DelSC删除选课界面; UpdateSC修改选课界面; Selstu学生查询界面; Backup备份界面; JPanelpCenter; CardLayoutcard=null; JLabellabel=null; JMenuBarmb=newJMenuBar();//菜单栏JMenum1=newJMenu("学生管理"); JMenuItemadd1=newJMenuItem("①添加学生学籍"); JMenuItemupdata1=newJMenuItem("②更新学生学籍"); JMenuItemdelete1=newJMenuItem("③删除学生学籍");JMenum2=newJMenu("课程管理"); JMenuItemadd2=newJMenuItem("①增加课程"); JMenuItemupdata2=newJMenuItem("②更新课程"); JMenuItemdelete2=newJMenuItem("③删除课程");JMenum3=newJMenu("选课管理"); JMenuItemadd3=newJMenuItem("①成绩录入"); JMenuItemupdata3=newJMenuItem("②成绩修改"); JMenuItemdelete3=newJMenuItem("③成绩删除");JMenum4=newJMenu("查询管理"); JMenuItem学生查询=newJMenuItem("①查询信息"); JMenuItembackup=newJMenuItem("②备份信息"); JMenuItemm5=newJMenuItem("系统退出"); Fontt=newFont("sanerif",Font.PLAIN,12);publicMenu(){this.setTitle("学生选课管理系统");try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println("不能设置外观:"+e);} //组合菜单 addMenu1(); addMenu2(); addMenu3(); addMenu4(); addJMenuBar(); setJMenuBar(mb); label=newJLabel("欢送使用江西理工大学应科院选课管理系统",JLabel.CENTER); label.setFont(newFont("宋体",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=newCardLayout(); pCenter=newJPanel(); pCenter.setLayout(card); 增加学生界面=newAddstu(); 修改学生界面=newUpdatastu(); 删除学生界面=newDelstu(); 增加课程界面=newAddC(); 删除课程界面=newDelC(); 修改课程界面=newUpdateC(); 增加选课界面=newAddSC(); 删除选课界面=newDelSC(); 修改选课界面=newUpdateSC(); 学生查询界面=newSelstu(); 备份界面=newBackup(); 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(newWindowAdapter(){//关闭程序时的操作publicvoidwindowClosing(WindowEvente){System.exit(0);} }); validate(); }privatevoidaddJMenuBar(){ mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5); }privatevoidaddMenu4(){ m4.add(学生查询); m4.add(backup); m4.setFont(t); }privatevoidaddMenu3(){ m3.add(add3); m3.add(updata3); m3.add(delete3); m3.setFont(t); }privatevoidaddMenu2(){//将菜单参加到菜单栏中 m2.add(add2); m2.add(updata2); m2.add(delete2); m2.setFont(t); }privatevoidaddMenu1(){ m1.add(add1); m1.add(updata1); m1.add(delete1); m1.setFont(t);//字体 }publicvoidactionPerformed(ActionEvente){ Objectobj=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,"备份界面"); } }} }}}}}}}}}}publicstaticvoidmain(String[]args){newMenu(); } }4.3学生管理模块设计运行效果图图4.3.1添加学生学籍图4.3.1修改学生学籍图4.3.1删除学生学籍实现代码:Addstu.java/Updatastu.java/Delstu.javaimportjava.awt.*;importjavax.swing.*;importjava.sql.*;importjava.awt.event.*;publicclassAddstuextendsJPanelimplementsActionListener{ JTextField学号,姓名,系别; JButton录入;publicAddstu(){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println("不能设置外观:"+e);} 学号=newJTextField(12); 姓名=newJTextField(12); 系别=newJTextField(12); 录入=newJButton("录入"); 录入.addActionListener(this); Boxbox1=Box.createHorizontalBox();//横放boxBoxbox2=Box.createHorizontalBoxBoxbox3=Box.createHorizontalBoxBoxbox4=Box.createHorizontalBox box1.add(newJLabel("学号:"/*,JLabel.CENTER*/)); box1.add(学号); box2.add(newJLabel("姓名:"/*,JLabel.CENTER*/)); box2.add(姓名); box3.add(newJLabel("系别:"/*,JLabel.CENTER*/)); box3.add(系别); box4.add(录入); BoxboxH=Box.createVerticalBox();//竖放box boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanelmessPanel=newJPanel(); messPanel.add(boxH); setLayout(newBorderLayout()); add(messPanel,BorderLayout.CENTER); validate(); }publicvoidactionPerformed(ActionEventc){ Objectobj=c.getSource();if(obj==录入){if(学号.getText().equals("")||姓名.getText().equals("")||系别.getText().equals("")){ JOptionPane.showMessageDialog(this,"学生信息请填满再录入!"); } Statementstmt=null; ResultSetrs1=null; Stringsql,sql1; sql1="select*fromSwhereSno='"+学号.getText()+"'"; sql="insertintoSvalues('"+学号.getText()+"','"+姓名.getText()+"','"+系别.getText()+"')";try{ ConnectiondbConn1=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(SQLExceptione){ System.out.print("SQLExceptionoccur.Messageis:"+e.getMessage()); } } }}4.4课程管理模块设计运行效果图图4.4.1课程录入界面图4.4.2课程修改界面图4.4.3课程删除界面运行代码:AddC.java/UpdataC.java/DelC.javaimportjava.awt.*;importjavax.swing.*;importjava.sql.*;importjava.awt.event.*;publicclassAddCextendsJPanelimplementsActionListener{ JTextField课号,课名; JButton录入;publicAddC(){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println("不能设置外观:"+e);} 课号=newJTextField(12); 课名=newJTextField(12); 录入=newJButton("录入"); 录入.addActionListener(this); Boxbox1=Box.createHorizontalBox();//横放boxBoxbox2=Box.createHorizontalBoxBoxbox3=Box.createHorizontalBoxBoxbox4=Box.createHorizontalBox box1.add(newJLabel("课号:")); box1.add(课号); box2.add(newJLabel("课名:")); box2.add(课名); box4.add(录入); BoxboxH=Box.createVerticalBox();//竖放box boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanelmessPanel=newJPanel(); messPanel.add(boxH); setLayout(newBorderLayout()); add(messPanel,BorderLayout.CENTER); validate(); }publicvoidactionPerformed(ActionEventc){ Objectobj=c.getSource();if(obj==录入){if(课号.getText().equals("")||课名.getText().equals("")){ JOptionPane.showMessageDialog(this,"学生信息请填满再录入!"); } Statementstmt=null; ResultSetrs=null,rs1=null;//结果集 Stringsql,sql1; sql1="select*fromCwhereCno='"+课号.getText()+"'"; sql="insertintoCvalues('"+课号.getText()+"','"+课名.getText()+"')";try{ ConnectiondbConn1=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(SQLExceptione){ System.out.print("SQL错误信息:"+e.getMessage()); }}}}4.5选课管理模块设计1、运行效果图图4.5.1成绩录入界面图4.5.2成绩修改界面图4.5.3成绩删除界面2、运行代码:AddSC.java/UpdataSC.java/DelSC.javaimportjava.awt.*;importjavax.swing.*;importjava.sql.*;importjava.util.*;importjavax.swing.filechooser.*;importjava.io.*;importjava.awt.event.*;publicclassAddSCextendsJPanelimplementsActionListener{ JTextField课号,学号,成绩; JButton录入; publicAddSC(){ try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());} catch(Exceptione){System.err.println("不能设置外观:"+e);} 课号=newJTextField(12); 学号=newJTextField(12); 成绩=newJTextField(12); 录入=newJButton("录入"); 录入.addActionListener(this); Boxbox1=Box.createHorizontalBox();//横放boxBoxbox2Boxbox3Boxbox4 box1.add(newJLabel("课号:")); box1.add(课号); box2.add(newJLabel("学号:")); box2.add(学号); box3.add(newJLabel("成绩:")); box3.add(成绩); box4.add(录入); BoxboxH=Box.createVerticalBox();//竖放box boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box4); boxH.add(Box.createVerticalGlue()); JPanelmessPanel=newJPanel(); messPanel.add(boxH); setLayout(newBorderLayout()); add(messPanel,BorderLayout.CENTER); validate(); } publicvoidactionPerformed(ActionEventc){ Objectobj=c.getSourc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论