当前位置:文档之家› 基于Java与SQL数据库技术的学生成绩管理系统_

基于Java与SQL数据库技术的学生成绩管理系统_

目录设计总说明 --------------------------------------------------------------II 1. 课程设计目的与需求分析 ------------------------------------------------3 1.1 课程设计目的 ------------------------------------------------------31.2 需求分析 ----------------------------------------------------------32. 设计思路与主功能设计 --------------------------------------------------4 2.1 设计思路 ----------------------------------------------------------4 2.1.1 开发环境和软件 ------------------------------------------------42.1.2 数据库表结构 --------------------------------------------------42.1.3 程序设计图 ----------------------------------------------------42.2 功能设计与介绍 ----------------------------------------------------53. 具体功能的介绍和数据测试 ----------------------------------------------5 3.1 登录界面 ----------------------------------------------------------5 3.2 主功能界面 --------------------------------------------------------7 3.2.1 查询 ----------------------------------------------------------7 3.2.2 添加 ----------------------------------------------------------9 3.2.3 修改 ---------------------------------------------------------10 3.2.4 删除 ---------------------------------------------------------12 3.2.5 关于 ---------------------------------------------------------133.2.6 退出 ---------------------------------------------------------134. 课程设计总结 ---------------------------------------------------------145. 附录(程度代码) -------------------------------------------------------15设计总说明1.设计概况名称:学生学籍管理系统用途:学校等机构功能:实现对学生学籍信息的管理与维护等功能2.设计说明学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。

该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。

用ODBC驱动实现前台Java与后台SQL数据库的连接。

Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。

SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。

系统可供输入的属性有“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。

该系统实现的大致功能:1.管理员登陆界面。

该界面可以输入管理员号,登陆密码。

用户通过验证通过后方可进入管理系统。

一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。

2.查询学生信息。

可以选择由用户选择“显示系统中当前的所有学生信息”。

也可以选择按照“某一个学号查询该学号的学生信息”。

查询到的信息会在窗口中依次显示出来。

3.添加学生信息。

可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。

完成新纪录的添加。

4.修改学生信息。

可以选择按照“学号”或者“姓名”找到该学生的学生信息并输入要修改的属性,并输入新的数据。

完成对学生记录的修改。

5.删除学生记录。

可以根据输入的“学号”或者”姓名”进行删除的操作。

3.本系统只实现了基本操作功能,,对于添加管理员,修改登录密码和数据库信息备份等功能并未提供,便利性和安全性仍有不足,使用过程中造成的不便还请谅解!学生学籍管理系统信管1081班,200811622124,吴晓阳信管1081班,200811622104,陈秀丽指导教师:陈亮1课程设计目的与需求分析1.1 课程设计目的本课程设计作为《Java语言高级程序设计》课程的延伸,在学生完成了《Java语言高级程序设计》课程的理论知识学习后,希望通过本次课程设计的实践操作,能够让学生懂得Java的各种相关知识的使用,真正的提高学生独立开发设计Java程序,把课堂上的知识运用在实践上,一门编程语言只有在不断实践操作和练习上才会有进步。

1.2需求分析在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。

而且效率也是很低的。

所以如何自动高效地管理信息是这些年来许多人所研究的。

随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。

我们使用电脑的高效率才处理数据信息成为可能。

学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。

友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。

学生学籍管理系统,以SQL数据库作为后台信息存储,Java作为前台系统的语言。

提供了对学生信息添加,查询,修改,删除的功能。

实现了最基本的信息管理。

2 设计思路与主功能设计2.1 设计思路2.1.1 开发环境和软件本学籍采用Java语言编写前台程序,后台采用SQL Server2005软件管理数据库,调试和运行皆由Eclipse SDK 3.5.2完成。

2.1.2 SQL数据库表结构2.1.3 程序设计图学生学籍管理系统登录登录验证失败成功退出查询添加修改删除2.2 功能设计与介绍1)显示已有学生信息2)添加新的学生信息3)修改已有学生信息4)删除已有学生信息5)关于学籍管理系统6)退出学籍管理系统3具体功能的介绍和数据测试3.1登录界面登录界面输入“管理员号”和“登录密码”,点击“确定”,通过验证则进入主功能菜单。

如果输入错误则会有相应的警告!1.当输入了一个未存在的管理员号时,会出现下图!2.当输入一个错误的密码时,会出现下图!当前系统有两个管理员账号:管理员号:200811622124 密码:123456管理员号:200811622104 密码:1234563.2主功能界面3.2.1 查询点击,则弹出下面的选择菜单。

1)选择“显示所有学生记录”时,在控制台会显示当前系统中所有的学生记录 2)选择“查询某个学生记录”时,会弹出一下窗口要求用户输入“学号”。

当系统中有要查询的学号记录时,系统会显示查询到的详细信息。

如果没有查询到,则显示:3.2.2添加点击,会弹出输入框,如下图:在各个数据框中输入对应的信息(学号不能为空,且学号不能与已存在的记录重复),如果输入的新纪录的学号已经存在则:如果添加的新纪录学号为空,则如果输入的各项数据正常时,则点击“添加”按钮后,学生记录添加成功!!!3.2.3 修改点击,进行“修改”的操作,弹出下面的选择菜单。

1)选择按“学号”修改:将相应的数据填入输入框中,如果修改的记录不存在,则提示:如果数据正确且记录存在,则显示记录修改成功:2)按“姓名”修改,同上…….3.2.4 删除点击,会显示下面的菜单。

1)选择按“学号”删除,出现以下窗口。

在弹出的窗口输入你要删除的记录的学号。

如果要删除的记录不存在,则显示如果输入的的学号存在,则删除成功。

3.2.5 关于点击,显示本学生管理系统的作者相关信息。

3.2.6 退出点击,退出本学籍管理系统。

4 课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。

本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。

理论和实践的相结合是学习最有效的方法。

在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

附录(程序代码)import javax.swing.*;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.*;class DataBase{ // DataBase类public void Add(String xh,String xm,String xb,String xy,String bj,Stringjg) throws SQLException {try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统where 学号='"+xh+"'");st();if(r.getRow()==1) { JOptionPane.showMessageDialog( null ,"该学号的学生信息已存在");} else if(xh.equals("")){JOptionPane.showMessageDialog( null ,"学号不能为空");}else{ s.executeUpdate(" insert into 学籍管理系统values('"+xh+"','"+xm+"','"+xb+"','"+ xy+"','"+bj+"','"+jg+"')");s.close();c.close();JOptionPane.showMessageDialog( null ,"<html>"+"学号:"+xh+"<br>"+"姓名:"+xm+"<br>"+"性别:"+xb+"<br>"+"学院:"+xy+"<br>"+"班级:"+bj+"<br>"+"籍贯:"+jg+"<br> 学生记录添加成功!" ) ; }}catch(Exception e) {JOptionPane.showMessageDialog( null , "数据添加异常!" ) ;}}Public void DisplayAll(ResultSet r){try{st();System.out.println("数据库表共有"+r.getRow()+"行记录");r.beforeFirst();while(r.next()){System.out.print("第"+r.getRow()+"行记录:");System.out.print(" 学号为:"+r.getString("学号"));System.out.print(" 姓名为:"+r.getString("姓名"));System.out.print(" 性别为:"+r.getString("性别"));System.out.print(" 学院为:"+r.getString("学院"));System.out.print(" 班级为:"+r.getString("班级"));System.out.println(" 籍贯为:"+r.getString("籍贯"));}}catch(Exception e){ }}public void DisplayOne(String str22) throws Exception{try{Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统 where学号='"+str22+"'");st();int cc=r.getRow();if(cc==0){ JOptionPane.showMessageDialog( null ,"未查询到相关信息!" ) ; } else{r.beforeFirst();while(r.nex{JOptionPane.showMessageDialog( null ,"<html>"+"学号:"+r.getString("学号")+"<br>"+"姓名:"+r.getString("姓名")+"<br>"+"性别:"+r.getString("性别")+"<br>"+"学院:"+r.getString("学院")+"<br>"+"班级:"+r.getString("班级")+"<br>"+"籍贯:"+r.getString("籍贯")+"<br> 已查询到相关记录!" ) ;}} }catch(Exception e){}}public void DeleteXh(String str11) {try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectionc=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统where 学号='"+str11+"'");st();if(r.getRow()==1){s.executeUpdate("delete from 学籍管理系统 where 学号='"+str11+"'");JOptionPane.showMessageDialog( null , "学生记录删除成功!" ) ;}else { JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ); } }catch(Exception e){ }}public void DeleteXm(String str13){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统 where姓名='"+str13+"'");st();if(r.getRow()==1) {s.executeUpdate("delete from 学籍管理系统 where 姓名='"+str13+"'");JOptionPane.showMessageDialog( null , "学生记录删除成功!" ) ;}else{ JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ; } }catch(Exception e){}}public void UpdateXh(String xg,String str15,String str16){try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统where 学号='"+xg+"'");st();if(r.getRow()==1){ s.executeUpdate("update 学籍管理系统 set "+str15+"='"+str16+"'where 学号='"+xg+"'");JOptionPane.showMessageDialog( null , "学生记录修改成功!" ) ; } else{JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ;};}catch(Exception e){JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ;} }public void UpdateXm(String str18,String str19,String str20) {try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection c=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统where 姓名='"+str18+"'");st();if(r.getRow()==1){ s.executeUpdate("update 学籍管理系统set"+str19+"='"+str20+"' where 姓名='"+str18+"'"); //直接执行SQL语句修改JOptionPane.showMessageDialog( null , "学生记录修改成功!" ) ;}else{JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ;}; }catch(Exception e){ JOptionPane.showMessageDialog( null ,"学籍系统中并无相关记录!" ) ; }}}class J_ActionListener1 extends JFrame implements ActionListener //创建J_ActionListener1类监听功能选项面板"显示已有学生信息"的按钮{public void actionPerformed(ActionEvent e){ JButton b1=(JButton)e.getSource();Object aa= JOptionPane.showInputDialog(null, "请选择按何种方式查询","选择", JOptionPane.QUESTION_MESSAGE,null, new String []{"显示所有学生记录", "查询某个学生记录"},"显示所有学生记录");if(aa=="显示所有学生记录"){ try { Connection c = DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet r=s.executeQuery("select * from 学籍管理系统");DataBase a =new DataBase();a.DisplayAll(r);}catch (SQLException e1) { }}else{ try{Connection c= DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);DataBase a=new DataBase();String str11=JOptionPane.showInputDialog("请输入要查询的记录的学号");a.DisplayOne(str11);}catch (Exception e1) { }}}}class J_ActionListener2 extends JFrame implements ActionListener {Public void actionPerformed(ActionEvent e) {JButton b2=(JButton)e.getSource();try {new J_ActionListener6(); } catch (Exception e2) { }}}Class J_ActionListener6 extends J_ActionListener2 implements ActionListener{ DataBase a = new DataBase();JTextField jtf1 = new JTextField();JTextField jtf2 = new JTextField() ;JTextField jtf3 = new JTextField() ;JTextField jtf4 = new JTextField() ;JTextField jtf5 = new JTextField() ;JTextField jtf6 = new JTextField() ;JButton btn = null ;J_ActionListener6(){this.setTitle("请输入数据:") ; //创建框架的标题 this.setBounds(250, 100, 220,320) ; //框架的大小和坐标this.setResizable(false);this.setVisible(true);this.setLayout(null) ;JLabel jlb1 = new JLabel("学号:") ; //创建"学号"的标签jlb1.setBounds(43,23,100,25) ;this.add(jlb1) ;JLabel jlb2 = new JLabel("姓名:") ;jlb2.setBounds(43,58,100,25) ;this.add(jlb2) ;JLabel jlb3 = new JLabel("性别:") ;jlb3.setBounds(43,93,100,25) ;this.add(jlb3) ;JLabel jlb4 = new JLabel("学院:") ;jlb4.setBounds(43,128,100,25) ;this.add(jlb4) ;JLabel jlb5 = new JLabel("班级:") ;jlb5.setBounds(43,163,100,25) ;this.add(jlb5) ;JLabel jlb6 = new JLabel("籍贯:") ;jlb6.setBounds(43,198,100,25) ;this.add(jlb6) ;jtf1.setBounds(80,25,100,25) ;this.add(jtf1) ;jtf2.setBounds(80,60,100,25) ;this.add(jtf2) ;jtf3.setBounds(80,95,100,25) ;this.add(jtf3) ;jtf4.setBounds(80,130,100,25) ;this.add(jtf4) ;jtf5.setBounds(80,165,100,25) ;this.add(jtf5) ;jtf6.setBounds(80,200,100,25) ;this.add(jtf6) ;btn = new JButton("添加") ;btn.setBounds(68,245,80,30) ; //设置按钮的大小和位置this.add(btn) ; //将按钮添加进面板里btn.addActionListener(this) ;((JComponent) this.getContentPane()).setOpaque(false);.URL url = JavaSql.class.getResource("背景1.jpg");ImageIcon img = new ImageIcon(url);JLabel background = new JLabel(img);this.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));background.setBounds(0,0,img.getIconWidth(),img.getIconHeight());}public void actionPerformed(ActionEvent e) {JButton btn=(JButton)e.getSource();String xh = jtf1.getText() ;String xm = jtf2.getText() ;String xb = jtf3.getText() ;String xy = jtf4.getText() ;String bj = jtf5.getText() ;String jg = jtf6.getText() ;try {a.Add(xh,xm,xb,xy,bj,jg);this.setVisible(false); }catch (SQLException e1) {} }}class J_ActionListener3 extends JFrame implements ActionListener //创建J_ActionListener3监听功能面板”修改已有学生信息“的按钮{ final DataBase a=new DataBase();JFrame xiugai=new JFrame();String b=null;public void jiemian(){ //在J_ActionListener3类里添加jiemian()方法,创建按学号修改数据的界面this.setTitle("请输入数据:") ;this.setSize(230,320) ;this.setLocation(200,130);this.setResizable(false);this.setVisible(true);JLabel jlb1 = new JLabel("请输入要修改的学生的"+b) ; //设置3个标签JLabel jlb2 = new JLabel("请输入要修改的属性") ;JLabel jlb3 = new JLabel("请输入新的数据") ;final JTextField jtf1 = new JTextField() ; //设置三个文本框final JTextField jtf2 = new JTextField() ;final JTextField jtf3 = new JTextField() ;JButton xg=new JButton("修改"); //创建”修改“按钮Container c=getContentPane();c.setLayout(null);jlb1.setBounds(20,15,170,30);c.add(jlb1);jlb2.setBounds(20,80,170,30);c.add(jlb2);jlb3.setBounds(20,145,170,30);c.add(jlb3);jtf1.setBounds(20,45,170,30);c.add(jtf1);jtf2.setBounds(20,110,170,30);c.add(jtf2);jtf3.setBounds(20,180,170,30);c.add(jtf3);xg.setBounds(80,230,60,35);c.add(xg);xg.addActionListener(new ActionListener() //为”修改“按钮添加事件触发{public void actionPerformed( ActionEvent e) // 当修改的按钮被点击时执行{JButton xg=(JButton)e.getSource();String xuehao=jtf1.getText(); //获取文本框的数据String shuxin=jtf2.getText();String xinshuju=jtf3.getText();a.UpdateXh(xuehao,shuxin,xinshuju);setVisible(false);;}});((JComponent) this.getContentPane()).setOpaque(false); //设置背景图片.URL url = JavaSql.class.getResource("背景2.jpg");ImageIcon img = new ImageIcon(url);JLabel background = new JLabel(img);this.getLayeredPane().add(background, newInteger(Integer.MIN_VALUE));background.setBounds(0, 0, img.getIconWidth(),img.getIconHeight());}public void jiemian2(){ //在J_ActionListener3类里添加jiemian2()方法,创建按姓名修改数据的界面this.setTitle("请输入数据:") ;this.setSize(230,320) ;this.setLocation(200,130);this.setResizable(false);this.setVisible(true);JLabel jlb1 = new JLabel("请输入要修改的学生的"+b) ; //设置3个标签JLabel jlb2 = new JLabel("请输入要修改的属性") ;JLabel jlb3 = new JLabel("请输入新的数据") ;final JTextField jtf1 = new JTextField() ; //设置三个文本框final JTextField jtf2 = new JTextField() ;final JTextField jtf3 = new JTextField() ;JButton xg=new JButton("修改"); //创建”修改“按钮Container c=getContentPane();c.setLayout(null);jlb1.setBounds(20,15,170,30);c.add(jlb1);jlb2.setBounds(20,80,170,30);c.add(jlb2);jlb3.setBounds(20,145,170,30);c.add(jlb3);jtf1.setBounds(20,45,170,30);c.add(jtf1);jtf2.setBounds(20,110,170,30);c.add(jtf2);jtf3.setBounds(20,180,170,30);c.add(jtf3);xg.setBounds(80,230,60,35);c.add(xg);xg.addActionListener(new ActionListener()//为”修改“按钮添加事件触发{public void actionPerformed( ActionEvent e) // 当修改的按钮被点击时执行{JButton xg=(JButton)e.getSource();String xinming=jtf1.getText(); //获取文本框的数据String shuxin=jtf2.getText();String xinshuju=jtf3.getText();a.UpdateXm(xinming,shuxin,xinshuju);setVisible(false);;}});((JComponent) this.getContentPane()).setOpaque(false); //设置背景图片.URL url = JavaSql.class.getResource("背景2.jpg");ImageIcon img = new ImageIcon(url);JLabel background = new JLabel(img);this.getLayeredPane().add(background, newInteger(Integer.MIN_VALUE));background.setBounds(0, 0, img.getIconWidth(),img.getIconHeight());}public void actionPerformed(ActionEvent e){ JButton b3=(JButton)e.getSource(); //当主功能选项面板的”修改已有学生信息“的按钮被点击时执行Object aa= JOptionPane.showInputDialog(null, "请选择按何种方式修改","选择", //弹出窗口让用户选择按何种方式进行修改JOptionPane.QUESTION_MESSAGE,null,new String []{"学号","姓名"},"学号");if(aa=="学号"){ //当用户选择按”学号“修改时执行b="学号";this.jiemian();}if(aa=="姓名"){ //当用户选择按”姓名“修改时执行b="姓名";this.jiemian2();}}}class J_ActionListener4 implements ActionListener{ //创建J_ActionListener2类监听功能选项面板"添加新的学生信息"的按钮 public void actionPerformed(ActionEvent e){ JButton b4=(JButton)e.getSource();DataBase a=new DataBase(); //实例化DataBase类Object aa= JOptionPane.showInputDialog(null, "请选择按何种方式删除","选择",JOptionPane.QUESTION_MESSAGE, //弹出窗口让用户选择按何种方式进行删除null,new String []{"学号","姓名"},"学号");if(aa=="学号"){ String str11=JOptionPane.showInputDialog("请输入要删除的记录的学号"); //当用户选择按”学号“删除时执行a.DeleteXh(str11); //执行DataBase类的DeleteXh方法}else{ String str13=JOptionPane.showInputDialog("请输入要删除的记录的姓名"); //当用户选择按”姓名“修改时执行a.DeleteXm(str13); //执行DataBase 类的DeleteXm方法}}}class J_ActionListener5 implements ActionListener{ //创建J_ActionListener2类监听功能选项面板"关于学籍管理系统"的按钮public void actionPerformed(ActionEvent e) //按钮被点击执行{ JButton b5=(JButton)e.getSource();JOptionPane.showMessageDialog( null ,"******本系统由吴晓阳陈秀丽制作******\n************ 日期:2010年12月 ************" ) ;}}class JavaSql extends JFrame implements ActionListener{ //主类JavaSql//添加设置用户名和密码输入的图形界面JFrame denglu=new JFrame("登录"); //创建”登录“的框架JButton quedin = new JButton(" 确定"); //创建”确定“按钮JLabel t1=new JLabel("管理员号:"); //创建标签”管理员号“JTextField t2=new JTextField(null,15); //创建管理员号的输入栏JLabel t3=new JLabel("登录密码:"); //创建标签"登录密码"JTextField t4=new JPasswordField(null,15); //创建登录密码的输入栏public void init(){ //在数据库中创建一张”学籍管理系统“表try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectionc=DriverManager.getConnection("jdbc:odbc:studentdatabase");Statement s=c.createStatement();s.executeUpdate("create table 学籍管理系统(" +"学号 char(15) CONSTRAINT authIndex PRIMARY KEY,"+"姓名 char(10),"+"性别 char(4),"+"学院 char(8),"+"班级 char(8),"+"籍贯 char(5))");s.close();c.close();System.out.println("********欢迎使用学籍管理系统**********");}catch(Exception e) //该表已存在{System.out.println("********欢迎使用学籍管理系统**********");}}public void zhujiemian() //定义jiemian()的方法,创建主功能的图形界面{Container c=getContentPane(); //设置主功能界面的按钮的大小和坐标位置c.setLayout(null);JButton b1=new JButton("显示已有学生信息");b1.setBounds(10,10,160,30);JButton b2=new JButton("添加新的学生信息");b2.setBounds(10,45,160,30);JButton b3=new JButton("修改已有学生信息");b3.setBounds(10,80,160,30);JButton b4=new JButton("删除已有学生信息");b4.setBounds(10,115,160,30);JButton b5=new JButton("关于学籍管理系统");b5.setBounds(10,150,160,30);JButton b6=new JButton("退出学籍管理系统");b6.setBounds(10,185,163,30);J_ActionListener1 a1=new J_ActionListener1(); // 实例化各个按钮监听的类J_ActionListener2 a2=new J_ActionListener2();J_ActionListener3 a3=new J_ActionListener3();J_ActionListener4 a4=new J_ActionListener4();J_ActionListener5 a5=new J_ActionListener5();b1.addActionListener(a1);b2.addActionListener(a2);b3.addActionListener(a3);b4.addActionListener(a4);b5.addActionListener(a5);b6.addActionListener(new ActionListener() //为”退出学籍管理系统“的按钮添加事件监听触发{public void actionPerformed(final ActionEvent e){System.exit(0); //该按钮点击时,退出学籍管理系统}});c.add(b1); //将按钮逐个添加到面板里c.add(b2);c.add(b3);c.add(b4);c.add(b5);c.add(b6);}public void denglumenu(){denglu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置登录界面的按钮标签的的大小和具体坐标位置denglu.setSize(680,530);denglu.setVisible(false);denglu.setLocation(200,200);Container n=denglu.getContentPane();n.setLayout(null);t1.setBounds(405,228,70,25);t2.setBounds(470,228,120,25);t3.setBounds(405,270,70,25);t4.setBounds(470,270,120,25);quedin.setBounds(470,322,63,35);n.add(t1); //将登陆界面的按钮和标签添加到登录的面板里n.add(t2);n.add(t3);n.add(t4);denglu.add(quedin);denglu.setVisible(true);quedin.addActionListener(this);((JComponent) denglu.getContentPane()).setOpaque(false); //设置登录图形界面的背景图片.URL url = JavaSql.class.getResource("未命名1111.jpg");ImageIcon img = new ImageIcon(url);JLabel background = new JLabel(img);denglu.getLayeredPane().add(background, newInteger(Integer.MIN_VALUE));background.setBounds(0, 0, img.getIconWidth(),img.getIconHeight());public void actionPerformed(ActionEvent e){ //当登录界面的确定按钮被点击时if(e.getSource()==quedin){ //对输入的管理员号和密码进行验证String zh="200811622124";String zh1="200811622104";String mm="123456";String ming=t2.getText();if(ming.equals(zh)||ming.equals(zh1)){ String mima=t4.getText();if(mima.equals(mm)){this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //验证通过,则调用zhujiemian()方法this.setSize(640,480);this.setLocation(200,200);this.setVisible(true);zhujiemian();((JComponent)this.getContentPane()).setOpaque(false); //主界面的背景图片.URL url = JavaSql.class.getResource("111.jpg");ImageIcon img = new ImageIcon(url);JLabel background = new JLabel(img);this.getLayeredPane().add(background, newInteger(Integer.MIN_VALUE));background.setBounds(0, 0, img.getIconWidth(),img.getIconHeight());denglu.setVisible(false);} else{ JOptionPane.showMessageDialog( null ,"密码输入错误!" ) ;} //验证失败,弹出错误的提示!}else{ JOptionPane.showMessageDialog( null ,"学号输入错误!" ) ;}}}public static void main(String args[]){ //主方法JavaSql app=new JavaSql(); //实例化JavaSql类app.init(); //为数据库创建学籍管理系统表app.denglumenu(); //执行登陆界面附录。

相关主题