《JAVA数据库学籍信息管理系统要点(共40页).doc》由会员分享,可在线阅读,更多相关《JAVA数据库学籍信息管理系统要点(共40页).doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第一章 绪论1.1管理信息系统的概述在计算机技术与信息技术迅猛发展的今天,作为信息系统核心和基础的数据库技术得到了越来越广泛的应用。从小型单项事务处理系统到大型共享系统,从一般商用事务处理到计算机辅助设计与制造(CAD/CAM)、计算机集成制造系统(CIMS)、办公信息系统(OIS)等等,越来越多新的应用领域采用数据库存储和处理他们的信息资源。正是由于计算机的应用,才有可能使现代社会组织和企事业单位的信息处理能力适应现代化管理的要求。随着学校规模的不断扩大,学生数量的急剧增加,有关学生的各种信息资料也成倍增长。办学者们所头疼的问题,就是如何面对这庞大的信息量。只有利用
2、计算机,利用学生管理信息系统才能解决这一问题,才能提高学生管理的工作效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。在这里首先我们先了解一下管理信息系统。随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。学生管理正在逐步迈向管理信息现代化。但是,我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的基本信息管理、学生的档案管理还是采用原有的人工管理方式。这就造成工作效率低、误差大,也造成了人力、物力、财力资源的浪费。与此同时,学校是培养国家栋梁之材的场所,无论是在教育,还是在管理上都应走在最前列,而其中管理又是学校运转良好的关键。如
3、何提高管理,是当前学校管理者所面临的重要课题。1.2 课题背景学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生学籍进行管理,具有手工管理所无法比拟的优点.
4、例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。在当今的时代,网络技术与计算机软件技术已经愈来愈广泛地应用到教育系统中各个方面。使用计算机管理系统不仅可以简化学校传统的管理模式,使学校管理人员能够方便地利用学校内部信息对学生个人基本信息进行全面管理,对学生在校档案、学生在校情况进行全面管理。更重要的是利用计算机的技术可以使学生管理规范化。计算机技术在校园中的应用顺应了我国的国情,实现了教育要面向现代化,面向未来的指导思想,是学生管理走向现代化的有力武器。第二章 需求分析2.1
5、 功能需求在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。而且效率也是很低的。所以如何自动高效地管理信息是这些年来许多人所研究的。随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。 学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。学生学籍管理系统,以SQL数据库作为后台信息存储,Java作为前台系统的语言。提供了对学生信息添加,查询,修改,删除的功能。实现了最基本
6、的信息管理。第三章 相关技术介绍3.1 前台开发工具语言Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。3.2 数据库简介数据库是按照数据结构来组织、存储和管理数据的仓库。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常
7、常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个数据仓库我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种数据库,使其可以利用计算机实现财务、仓库、生产的自动化管理。第四章 系统模型构建4.1 系统结构设计学生学籍管理系统登录登录验证成功退出查询添加修改删除失败 图 4.1 系统结构图学籍管理系统首先要有用户管理系统,主要对用户权限设置进行管理。用户名:
8、密码设置学生信息管理模块主要对学生信息(如学号、姓名、性别、班级、家庭住址等)进行管理,本模块又分为四个子模块。学生信息添加学生信息查询学生信息修改学生信息删除4.2 数据库设计4.2.1 SQL数据库表结构 图4.2.1 数据表结构管理员表用来保存管理员登陆的用户名及密码。列名数据类型及长度可否为空主键用户名文本型(16)NOTNULL密码文本型(16)NOTNULL表 4.2.1 管理员表 4.2.2 学生信息表学生信息表用来保存学生的信息情况。学生信息包括专业、班级、学号、姓名、性别、家庭住址、出生年月。表 4.2.2 学生信息表列名数据类型及长度可否为空主键专业文本型(20)NOTNU
9、LL班级文本型(20)NOTNULL学号文本型(8)NOTNULL主键姓名文本型(8)NOTNULL性别逻辑型(2)NOTNULL籍贯文本型(8)NOTNULL出生年月日期型(8)NOTNULL家庭住址文本型(60)NOTNULL第五章 系统实现5.1 主要模块功能说明5.1.1 登陆界面登录界面输入“管理员号”和“登录密码”,点击“确定”,通过验证则进入主功能菜单。如果输入错误则会有相应的警告!当输入了一个错误的管理员号时,会出现下图!图 5.1.1 登陆界面5.1.2 查询界面点击查询,出现以下菜单。点击确定后,会显示所有记录。图 5.1.2 查询界面选择查询某一学生时。图5.1.3 个人
10、查询界面5.1.3 添加界面点击添加,出现下图。图5.1.4 添加界面输入正确后点添加。图5.1.5 添加成功界面5.1.4 修改界面点击添加,进行信息修改工作。图5.1.6 修改界面图 5.1.7 修改成功界面修改其他项同上。5.1.5 删除界面点击删除进入删除界面,进行信息的删除。图 5.1.8 删除界面图 5.1.9 删除成功界面5.2 问题分析此次课程设计中遇到了很多问题,刚开始设计时不知从何下手,最终在图书、网络、同学和老师的帮助下得到了解决,是我学会了很多书本上没有的东西。程序的编写及运行在老师帮助下得到了解决。使我受益颇深。总结与心得课程设计是培养学生综合运用所学知识,发现,提出
11、,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前
12、所学过的知识重新温故。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。附录源代码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 ja
13、va.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=DriverManager.getConnection(jdbc:odbc:studentdatabase); Statement s=c.createStatement( ResultSet.TYPE_SCROL
14、L_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet r=s.executeQuery(select * from 学籍管理系统where 学号=+xh+); r.last(); if(r.getRow()=1) JOptionPane.showMessageDialog( null ,该学号的学生信息已存在); else if(xh.equals() JOptionPane.showMessageDialog( null ,学号不能为空); else s.executeUpdate( insert into 学籍管理系统 values (+x
15、h+,+xm+,+xb+,+ xy+,+bj+,+jg+); s.close(); c.close();JOptionPane.showMessageDialog( null ,+学号:+xh+ +姓名:+xm+ +性别:+xb+学院:+xy+班级:+bj+籍贯:+jg+ 学生记录添加成功! ) ; catch(Exception e) JOptionPane.showMessageDialog( null , 数据添加异常! ) ; Public void DisplayAll(ResultSet r) try r.last(); System.out.println(数据库表共有+r.ge
16、tRow()+行记录); 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
17、( 籍贯为:+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 * fr
18、om 学籍管理系统 where 学号=+str22+); r.last(); int cc=r.getRow(); if(cc=0) JOptionPane.showMessageDialog( null ,未查询到相关信息! ) ; elser.beforeFirst(); while(r.nexJOptionPane.showMessageDialog( null ,+学号:+r.getString(学号)+ +姓名:+r.getString(姓名)+ +性别:+r.getString(性别)+ +学院:+r.getString(学院)+ +班级:+r.getString(班级)+ +籍贯
19、:+r.getString(籍贯)+ 已查询到相关记录! ) ; catch(Exception e) public void DeleteXh(String str11) 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); Re
20、sultSet r=s.executeQuery(select * from 学籍管理系统 where 学号=+str11+); r.last(); if(r.getRow()=1) s.executeUpdate(delete from 学籍管理系统 where 学号=+str11+); JOptionPane.showMessageDialog( null , 学生记录删除成功! ) ; else JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ); catch(Exception e) public void DeleteXm(Stri
21、ng 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+); r.last(); if(r
22、.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.JdbcOdbcDrive
23、r);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+); r.last(); if(r.getRow()=1) s.executeUpdate(update 学籍管理系统 set +str15+=+s
24、tr16+ where 学号=+xg+); JOptionPane.showMessageDialog( null , 学生记录修改成功! ) ; elseJOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; public void UpdateXm(String str18,String str19,String str20) try Class.forName(sun.jdbc.odbc.
25、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+); r.last(); if(r.getRow()=1) s.executeUpdate(update 学籍管理系统
26、 set +str19+=+str20+ where 姓名=+str18+); /直接执行SQL语句修改 JOptionPane.showMessageDialog( null , 学生记录修改成功! ) ; elseJOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; ; catch(Exception e) JOptionPane.showMessageDialog( null ,学籍系统中并无相关记录! ) ; class J_ActionListener1 extends JFrame implements ActionListen
27、er /创建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 = DriverMana
28、ger.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) elsetryConnection c= DriverManager.getCon
29、nection(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 impleme
30、nts 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 j
31、tf2 = 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.se
32、tResizable(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) ; thi
33、s.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(jtf
34、1) ; 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)
35、; /设置按钮的大小和位置 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
36、.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