JAVASQL学籍管理系统_第1页
JAVASQL学籍管理系统_第2页
JAVASQL学籍管理系统_第3页
JAVASQL学籍管理系统_第4页
JAVASQL学籍管理系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、 本科生课程设计本科生课程设计 课程名称Java 程序设计课程设计 课程编号 学号 学生姓名 所在专业 所在班级 指导教师 成绩 教师签字 评语: 课程设计时间:2010 年 12 月 20 日-2010 年 12 月 24 日 目目 录录 设计总说明 -II 1. 课程设计目的与需求分析 -3 1.1 课程设计目的 -3 1.2 需求分析 -3 2. 设计思路与主功能设计 -4 2.1 设计思路 -4 2.1.1 开发环境和软件 -4 2.1.2 数据库表结构 -4 2.1.3 程序设计图 -4 2.2 功能设计与介绍 -5 3. 具体功能的介绍和数据测试 -5 3.1 登录界面 -5 3.

2、2 主功能界面 -7 3.2.1 查询 -7 3.2.2 添加 -9 3.2.3 修改 -10 3.2.4 删除 -12 3.2.5 关于 -13 3.2.6 退出 -13 4. 课程设计总结 -14 5. 附录(程度代码) -15 设计总说明 1. 设计概况 名称:学生学籍管理系统 用途:学校等机构 功能:实现对学生学籍信息的管理与维护等功能 2. 设计说明 学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护, 使用方便,易用性强,图形界面清晰明了。该软件用 java 语言编写,用 SQLServer2005 数据库作为后台的数据库进行信息的存储,用 SQL 语句完成添加,

3、查询,修改,删除的操作。用 ODBC 驱动实现前台 Java 与后台 SQL 数据库的连接。 Java 语言跨平台性强,可以在 windows,linux,ubuntu 等系统下使用,方便简单, 安全性好。SQLServer2005 数据库高效安全,两者结合可相互利用各自的优势。系 统可供输入的属性有“学号” , “姓名” , “性别” , “班级” , “学院” , “籍贯” 。 该系统实现的大致功能: 1管理员登陆界面。该界面可以输入管理员号,登陆密码。用户通过验证通过后 方可进入管理系统。一定程度上保证了信息安全性,防止他人未经允许篡改学 生信息。 2查询学生信息。可以选择由用户选择“显

4、示系统中当前的所有学生信息” 。也可 以选择按照“某一个学号查询该学号的学生信息” 。查询到的信息会在窗口中依 次显示出来。 3添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号” , “姓名” , “性别” , “班级” , “学院” , “籍贯” 。完成新纪录的添加。 4修改学生信息。可以选择按照“学号”或者“姓名”找到该学生的学生信息并 输入要修改的属性,并输入新的数据。完成对学生记录的修改。 5删除学生记录。可以根据输入的“学号”或者”姓名”进行删除的操作。 3本系统只实现了基本操作功能, ,对于添加管理员,修改登录密码和数据库信息备 份等功能并未提供,便利性和安全性仍有不足

5、,使用过程中造成的不便还请谅解! 学生学籍管理系统 信管 1081 班,4,吴晓阳 信管 1081 班,4,陈秀丽 指导教师:陈亮 1课程设计目的与需求分析 1.1 课程设计目的 本课程设计作为Java 语言高级程序设计课程的延伸,在学生完成了Java 语言高级程序设计课程的理论知识学习后,希望通过本次课程设计的实践操作,能 够让学生懂得 Java 的各种相关知识的使用,真正的提高学生独立开发设计 Java 程序, 把课堂上的知识运用在实践上,一门编程语言只有在不断实践操作和练习上才会有进 步。 1.2 需求分析 在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理 信息的难

6、度也越来越大。而且效率也是很低的。所以如何自动高效地管理信息是这些 年来许多人所研究的。 随着这些年电脑计算机的速度质的提高,成本的下降,IT 互联网大众趋势的发展。 我们使用电脑的高效率才处理数据信息成为可能。 学生学籍管理系统的出现,正是管 理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明 的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。 学生学籍管理系统,以 SQL 数据库作为后台信息存储,Java 作为前台系统的语言。 提供了对学生信息添加,查询,修改,删除的功能。实现了最基本的信息管理。 2 设计思路与主功能设计 2.1 设计思路 2.1.

7、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 登录界面 登录界面输入“管理员号”和“登录密码” ,点击“确定” ,通过验证则进入主功能菜 单

8、。如果输入错误则会有相应的警告! 1.当输入了一个未存在的管理员号时,会出现下图! 2当输入一个错误的密码时,会出现下图! 当前系统有两个管理员账号: 管理员号:4 密码: 管理员号:4 密码: 3.2主功能界面 3.2.1 查询 点击 , 则弹出下面的选择菜单。 1) 选择“显示所有学生记录”时,在控制台会显示当前系统中所有的学生记录 2) 选择“查询某个学生记录”时,会弹出一下窗口要求用户输入“学号”。 当系统中有要查询的学号记录时,系统会显示查询到的详细信息。 如果没有查询到,则显示: 3.2.2 添加 点击 ,会弹出输入框,如下图: 在各个数据框中输入对应的信息(学号不能为空,且学号不

9、能与已存在的记录重复) ,如果输入的新纪录的学号已经存在则: 如果添加的新纪录学号为空,则 如果输入的各项数据正常时,则点击“添加”按钮后, 学生记录添加成功! 3.2.3 修改 点击 ,进行“修改”的操作,弹出下面的选择菜单。 1)选择按“学号”修改: 将相应的数据填入输入框中,如果修改的记录不存在,则提示: 如果数据正确且记录存在,则显示记录修改成功: 2) 按“姓名”修改,同上. 3.2.4 删除 点击 ,会显示下面的菜单。 1) 选择按“学号”删除,出现以下窗口。 在弹出的窗口输入你要删除的记录的学号。 如果要删除的记录不存在,则显示 如果输入的的学号存在,则删除成功。 3.2.5 关

10、于 点击 ,显示本学生管理系统的作者相关信息。 3.2.6 退出 点击 ,退出本学籍管理系统。 4 课程设计总结 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环 节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本 来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的 时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多 书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的 效果,但是我发现我学到的知识比整整一个学

11、期学到的都多。理论和实践的相结合是学习最有效的 方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够 牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只 有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己 的实际动手能力和独立思考的能力。 附 录(程序代码) import javax.swing.*; import java.awt.BorderLayout; import java.awt.Container; import ja

12、va.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,String jg) throws SQLException try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection c=Dr

13、iverManager.getConnection(jdbc:odbc:studentdatabase); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 学籍管理系统 where 学号 =+xh+); r.last(); if(r.getRow()=1) JOptionPane.showMessageDialog( null ,该学号的学生信息已存在); else if(xh

14、.equals() JOptionPane.showMessageDialog( null ,学号不能为空); else s.executeUpdate( insert into 学籍管理系统 values (+xh+,+xm+,+xb+,+ xy+,+bj+,+jg+); s.close(); c.close(); JOptionPane.showMessageDialog( null ,+学号:+xh+ +姓名:+xm+ +性别:+xb+ +学院:+xy+ +班级:+bj+ +籍贯:+jg+ 学生记录添加成功! ) ; catch(Exception e) JOptionPane.show

15、MessageDialog( null , 数据添加异常! ) ; Public void DisplayAll(ResultSet r) try r.last(); 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

16、.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.cr

17、eateStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 学籍管理系统 where 学号=+str22+); r.last(); int cc=r.getRow(); if(cc=0) JOptionPane.showMessageDialog( null ,未查询到相关信息! ) ; elser.beforeFirst(); while(r.nex JOptionPane.showMessageDialog( nul

18、l ,+学号:+r.getString (学号)+ +姓名:+r.getString(姓名)+ +性别:+r.getString(性别)+ +学院:+r.getString(学院)+ +班级:+r.getString(班级)+ +籍贯:+r.getString(籍贯)+ 已查询到相关记录! ) ; catch(Exception e) public void DeleteXh(String str11) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection c=DriverManager.getConnection(jdbc:o

19、dbc:studentdatabase); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 学籍管理系统 where 学号=+str11+); r.last(); if(r.getRow()=1) s.executeUpdate(delete from 学籍管理系统 where 学号=+str11+); JOptionPane.showMessageDialog( null ,

20、 学生记录删除成功! ) ; 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_SE

21、NSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 学籍管理系统 where 姓名=+str13+); r.last(); if(r.getRow()=1) s.executeUpdate(delete from 学籍管理系统 where 姓名=+str13+); JOptionPane.showMessageDialog( null , 学生记录删除成功! ) ; else JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; cat

22、ch(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.e

23、xecuteQuery(select * from 学籍管理系统 where 学号=+xg+); r.last(); if(r.getRow()=1) s.executeUpdate(update 学籍管理系统 set +str15+=+str16+ where 学号=+xg+); JOptionPane.showMessageDialog( null , 学生记录修改成功! ) ; else JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; ; catch(Exception e) JOptionPane.showMessageDia

24、log( 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);

25、ResultSet r=s.executeQuery(select * from 学籍管理系统 where 姓名=+str18+); r.last(); if(r.getRow()=1) s.executeUpdate(update 学籍管理系统 set +str19+=+str20+ where 姓名=+str18+); /直接执行 SQL 语句修改 JOptionPane.showMessageDialog( null , 学生记录修改成功! ) ; else JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; ; catch(Exc

26、eption 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, 请选择按何

27、种方式查询,选 择, 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(se

28、lect * from 学籍管理系统); DataBase a =new DataBase(); a. DisplayAll(r); catch (SQLException e1) elsetry Connection c= DriverManager.getConnection(jdbc:odbc:studentdatabase); Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); DataBase a=new DataBase(); String str1

29、1=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_ActionListen

30、er6 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 JTextFiel

31、d() ; 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

32、= 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.ad

33、d(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(8

34、0,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.

35、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

36、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 Actio

37、nListener /创建 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)

38、; 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=n

39、ew 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.se

40、tBounds(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(); St

41、ring 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(back

42、ground, new Integer(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(

43、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(修改); /创

44、 建”修改“按钮 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

45、,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=jtf

46、3.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, new Inte

47、ger(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

温馨提示

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

最新文档

评论

0/150

提交评论