第一篇:员工信息管理系统
摘要
企业员工信息管理是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。如何管理好企业内部员工的信息,对员工实施高效的宏观管理,对企事业单位的人员构成情况和发展趋势进行统计、规划、分析并制定切实可行的人事政策,是一项繁重而艰巨的任务。
本文以企业管理信息系统建设中的员工信息管理子系统的设计和实现为目标,利用软件工程中系统开发的原理和方法,详细论述了系统的设计方案、开发、测试等过程。系统在Linux平台下,以Oracle10g为后台数据库管理系统,实现了以员工信息管理,考勤信息管理、工资管理及综合查询模块为主要功能的系统开发。为企业人事管理提供信息咨询,信息检索,信息存取等服务,系统的实施基本上能够满足现代企业对人事管理的需要,为提高企业人事管理效率提供了行之有效的手段。6
第一章 职工管理的背景
借助现代信息技术和管理理论,建立员工管理信息系统是当今社会的重要趋势。党和政府根据知识经济时代的特点,对国民经济建设提出了“用信息化带动工业化”的指导思想。对企业而言,全面开发和应用计算机管理信息系统就是近期不能回避的问题。在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线”,因此职工管理是企业的计算机管理信息系统重要组成部分。而职工管理又是人力资源管理的重中之重。实行电子化的职工管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。职工管理信息系统的实现可以减轻比较繁琐的手工职工管理。
现在应用在大中型企业的管理信息系统中,几乎都包括了职工管理模块。有些环境中是由作为大型ERP软件中的一个模块引进的,有些是作为企业的财务系统的一部分。这些根据规范的西方的管理制度设计的职工管理软件,在很多时候还不能完全解决中国特色的中小企业的问题,所以我们设计了一个简单的职工管理系统,为这些具有中国特色的中小企业解决他们在职工管理方面的问题。
1.2设计工具简介SQL Developer Oracle SQL Developer是针对Oracle数据库的交互式开发环境(IDE)。
Oracle SQL Developer简化了Oracle数据库的开发和管理。SQL Developer可以连接到任何Oracle 10g及其后续版本的数据库,并且能在Windows,Linux和Mac OSX上运行。最新版本的Oracle SQL Developer提供了PL / SQL单元测试,集成了数据模型浏览器和Subversion源代码版本控制系统,CVS(并行版本系统),还包括了许多更新功能,如SQL格式化,模式比较,复制、导出向导和迁移支持。1.3主要内容及目标
主要内容:创建人事信息管理系统,主要实现系统管理,员工基本信息管理、考勤管理、员工评价信息、员工工资管理等功能。
系统设计的目标是:从操作简便、界面友好、灵活、实用、安全的要求出发,完成人事、工资管理的全过程。
可行性分析
1、经济可行性 由于早期职工信息管理完全采用纯人工方式完成工作,且上传下递极不方便、快捷,所以耗用工时较多,且效率低下。后来设计一些简单的应用表格,能 通过计算机报表,但只是人工去登记、查找、计算大量数据后,人工输入计算机,制成表格,也很容易统计差错,输入过程差错,正确率无法保证,而且还会耗费大量的人力和物力;长年累月积攒起来的材料过多,不易保存,也容易丢失和损坏。目前,市场上“职工管理信息系统”类的软件开发出产品的比较少,且价格高,单机版价格在万元以上,网络版价格要几万元。一般公司的经费紧张根无法接受这样的价格。而软件的规模太大,有些模块根本用不到,所以购进之后部分功能闲置也构成了浪费。
2、操作可行性 一般公司的职工管理人员具有高学历、高水平、对外来的新事物接受能力快的特点,并且接受过教育系统的计算机等级培训,对Windows有基本的了解,所以,如果开发一套操作简单的职工管理信息系统,完全可以帮助他们从繁琐的重复性劳动中解脱出来,以提高的工作效率。
3、技术可行性(1).开发的软件可行性 从目前市场上比较流行的数据库开发、管理软件来看,对于比较简单的中小型数据库,SQL Server2008是在实际应用中较为成功的一种解决方案。并为用户提供了Windows所一贯坚持的非常友好、操作简单的用户界面、完善而强大的数据库操作功能,简洁明了的数据库,进而可对数据库实施操作、维护和权限识别功能。
4、可行性结论 系统的成功开发将进一步促进学校管理的现化化和科学化,培养了人才,也为职工信息管理系统体系积累了经验,从长远来看,其经济和社会效益是肯定的,根据以上分析,我们认为本系统开发条件成熟,实施方案可行。
第二章 需求分析
2.1需求分析
模块为系统的基本模块,具备企业人力资源管理部门的日常事务处理功能,其中包括:人员基本信息管理、合同管理、统计分析、综合查询、花名册等等。为管理者全方位地了解企业拥有的人力资源,并对这一资源进行开发提供决策支持。可根据企业实际需要自定义员工人事档案项目;员工人事信息的录入、增、删、修改等; 强大、灵活的查询功能,可以自定义查询、组合条件查询、快速定位查询及模糊查询,使用快捷方便、充分满足用户对人事信息的各种查询要求。步骤如下:
1.根据现有条件,设计出当前系统的具体模型。
2.分析当前系统与目标系统的差别,并做出相应调整方案。
3.对目标进行完善和补充,找到相关文献,安装试验环境和可用软件。
4.确认所用资料齐全,尽量满足用户需求。
2.2系统业务流程分析
2.2.1企业人事信息管理系统业务流程图
企业人事信息管理系统的业务流程图是对整个系统的职能的总体描述。根据对整体系统的一个了解和分析得出了以下的业务流程图。
如图2-2所示:
人力资源部聘用信息表基本信息管理员工信息管理员工考勤管理人力资源部人员需求信息各部门员工基本信息员工档案列表员工考勤考勤信息列表各部门员工评价列表员工评价员工评价管理员工工资管理员工工资信息工资信息表财务部工资总表代扣清单工资信息查询表
图2-2 员工信息管理系统总体业务流程图
2.3系统数据流图分析
22.3.2企业人事信息管理系统软件数据流程图
企业人事信息管理系统的数据流图。如图2-8所示:
各部门F2评价信息列表F1出勤信息列表P1出勤信息录入人力资源部F3人员信息表F4工资信息单财务部管理员F5出勤记录P2评价信息录入F3评价信息列表D1月出勤表F6月出勤信息表P3员工基本信息录入处理F7员工信息列表D2工作评价信息表F8员工评价信息表P4计算工资F11查P5F10员员工询信息F9员工基表D3员工信息表工信息信息本信息表表查询F12工资信息D4工资表F15工资信息表人力资源部F13代扣清单D5代扣项目财务部管理员各部门F14代扣信息表F18员工工资列表F19员工档案列表P6F16工资信息员工工汇总单工资信息资列表F17工资信息D6汇总表生成汇总单P7工资汇总
图2-8 人事管理信息系统数据流程图
第三章 系统详细设计 3.1系统总体设计目标
根据企业人事信息管理系统网络化的迫切需要,按着总体规划、集中实施的原则,考虑到系统的稳定性、安全性及数据的安全性和一致性要求,在系统设计过程中,坚持开放性和标准化的原则,以整个系统具有先进性、实用性、可靠性、扩展性和灵活性为设计目标,主要完成人员基本信息的管理、员工工作评价的管理、员工考勤信息的管理、员工工资的管理和系统拥护的管理。
3.2系统功能描述
系统开发的总体任务是实现企业人事信息管理,系统应包括以下的几个
方面内容: 3.2.1员工信息管理
实现对员工的基本信息的管理,如员工资本信息的添加、修改、删除和查询。员工基本信息主要包括:员工编号、姓名、所在部门、生日籍贯等员工基本情况的一个信息的录入查询修改以及删除。3.2.2考勤信息管理
包括正常出勤、异常出勤和加班处理3个功能模块。正常出勤是对员工的迟到和早退进行管理,同时能够查询人员信息,并对查询的人员信息进行添加。异常出勤是对员工的病假和事假进行管理。加班处理包括加班管理、人员信息和加班费率设置3部分。主要对员工的加班进行管理。对员工的加班费用进行汇总统计,为后续的功能模块提供数据。3.3.3工资管理
包括工资汇总、数据输入(可变动数据)、工资分配和工资查询4个功能模块。工资汇总是由系统自动进行,每月进行一次,该功能主要实现对员工的基本工资、福利、考勤进行汇总,为后续功能提供服务。数据输入主要是处理某员工的月度奖金和其他应扣、应发的数据。工资分配是对工资进行分配处理,记录工资的历史记录便于以后查询。工资查询功能主要实现按员工基本信息、部门信息和部门汇总进行查询、统计工资的详细信息。3.2.4评价信息管理
主要是员工的奖罚管理,其主要功能是添加员工奖罚信息、如员工编号奖罚类别、记录人员记录时间和备注等信息;删除员工的奖罚信息查看员工奖罚信息。3.2.5系统管理
主要是对用户和密码的管理。包括:添加系统用户信息,如用户名、密码和用户类型等信息;修改系统用户信息,如密码和用户类型等信息;删除系统用户信息;查看系统用户信息。3.3总体功能模块设计:功能层次图
根据前面的需求分析以及系统功能的分析可用以下图形来描述系统总体的功能模块。
企业人事信息管理系统员工基本信息员工考勤管理员工工资管理员工评价信息系统管理添加员工基本信息修改员工基本信息查询员工基本信息添加员工考勤信息修改员工考勤信息查询员工考勤信息添加工资基本信息修改工资基本信息查询员工基本信息添加员工评价信息修改员工评价信息查询员工评价信息添加用户修改用户密码
图3-1 功能模块图
3.4系统流程分析
所谓系统流程分析,就是用户使用系统时的工作过程。不同的用户有着不同的工作流程和使用权限。但是所有的用户都是从用户登录模块开始的。登录主要是判断是否是合法的用户,在数据库设计中用户的登录名是固定的,如果要添加用户则在用户主界面进行添加用户信息。本系统的系统流程分析如图3-2所示:
系统结构图
图3-2 系统流程分析图8
2.3.3系统功能提出
根据详细的需求分析,明确系统功能如下:
1.员工基本信息管理:主要完成职工基本信息的管理,如员工基本信息的添加、修改、删除和查询;
2.员工考勤信息管理:主要完成职工考勤信息的管理,管理员工基本信息的考勤添加、修改、删除和考勤信息的查询
3.员工评价信息管理:主要完成员工评价信息的管理,管理员工基本工作信息的添加、修改、删除和查询;
4.员工工资信息管理:主要完成员工工资信息的管理,主要是进行员工工资信息的添加、修改删除和查询
5.数据库管理部分:主要完成数据库的管理与维护;
6.系统管理部分:主要是完成用户的添加、密码信息的修改等。[4]
第四章 数据库设计
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。另外,合理的数据库结构将非常有利于程序的实现。
4.1数据库设计的一般性原则
数据库设计的一般性原则如下所示:
第一个基本规则:对于每一个要存储其信息的实体(或事物),我们都应该给他一个自己的表;
第二个处理规则了:如果你需要在一个列中存储多个值,那证明你的设计可能是有缺陷的。
简单的数据关系:一对一;一对多;多对一;多对多
在数据库的设计中:要做到数据规范化、完整性、数据冗于和规范实例化。
4.2数据库设计的步骤
数据库设计分五个阶段:
1.规划;
2.需求分析;
3.概念结构设计;
4.逻辑结构设计;
5.数据库物理设计。4.3数据库概念结构设计
数据库概念设计的目标就是要产生反映企业组织信息需求的数据库概念结构,即概念模型。
4.3.1概念模型
概念模式是独立与数据库逻辑结构,独立与支持数据库的DBMS,不依赖于计算机系统的。概念模型是表达概念设计结果的工具。它应该能够真实、充分地反映现实世界中事物和事物之间的联系;应该简洁、明晰、独立于机器,容易理解,方便数据库设计人员和应用人员进行交流;应该易于变动,便于修改;应该很容易向关系、层次或网状等各种数据模型转变,方便地导出与DBMS有关的逻辑模型。从而使概念模型成为现实世界到机器世界的一个过渡的中间层次。
概念模型有很多模型,其中最常用的方法之一是“实体—联系模型”(entity relationship model),即使用E-R图来描述某一组织的概念模型。
4.3.2 E-R图
E-R模型是指直接从现实世界中抽象出实体类型及实体间联系,是一种描述静态数据结构的概念模型。它的主要成分是实体、联系和属性。可利用E-R模型进行数据库概念设计。E-R图是直观表示概念模型的工具,再图中有四个基本成分如图4-1:
4.3.3系统E-R图
图4-5 E-R图
5.3心得体会
通过做这个系统设计,让我在实践上得到了很好的锻炼。由于本人是初次开发一个系统的后台数据库,无论是在知识、还是经验方面都存在着大大的不足。通过开发这个系统,我掌握了的项目过程,即开发一个管理信息系统需要运用系统的思想,使用系统的方法,进行系统的调查,以便完成管理信息系统的规划、分析、设计、实施等步骤。在整个过程中,绝对不能脱离实际,同时,应该重视软件开发中的易使用性、可操作性和可移植性等。
第二篇:员工信息管理系统
员工信息管理系统 系统的功能描述 设计一个员工信息管理系统,使之具有以下功能(1)系统以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理并且在此过程中能够尽可能地兼容用户使用过程中的输入异常情况(2)员工信息录入功能(员工信息用文件保存),注意员工按员工号进行区分,即每个员工的员工号都是唯一的,不允许出现两个员工或员工号相同的情况(3)可对员工信息进行查询,具体分为:按姓名查询、按员工号查询、按职务查询。(4)可对员工信息进行删除(5)可对员工信息进行修改,注意员工号不可修改,修改应逐个地进行,一个员工记录的更改不应影响其他的员工记录(6)可对全部员工信息进行显示(员工信息浏览),注意员工信息的显示要规范。其中员工信息应包括姓名、员工号、性别、年龄、最高学历、职务、薪水、联系电话、住址 系统的总体设计 本系统可以按功能进行模块划分,系统的总体设计如图如下所示。“系统功能菜单” 选择模块完成用户命令的接收,此模块也是员工信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能。“添加信息” 模块完成员工信息的录入功能,录入的信息包括姓名、员工号、性别、年龄、最高学历、职务、薪水、联系电话、住址(这里可以根据需要加入其他信息)“查询信息”
模块完成员工信息的查询,查询可分为三种方式:按姓名查询、按员工号查询、按职务查询(这里也可以根据需要根据其他方式进行查询)“修改信息” 模块完成员工信息的修改功能
“删除信息” 模块完成员工信息的删除功能
“显示信息” 模块完成所有员工的显示功能
第三篇:JAVA课程设计员工信息管理系统
JAVA员工管理系统
实验报告
姓名:张旭冉
学号:10105010117
班级:信10-1
北方工业大学理学院信息与计算科学系
2013年 12月 17日
员工管理系统一、实验目的
通过该课程设计,使同学们进一步理解概JAVA的基本概念、理论和方法,初步掌握JDK、Eclipse的调试和应用,以及程序中错误的解决方法,明确JAVA在实际程序设计中的应用。使课堂中学习到理论得到应用,练习文件形式在JAVA程序设计中的应用。
二、实验内容
A.设计题目:员工管理系统
设计要求:(1)完成员工信息的添加、删除、查询、修改功能
(2)使用用户界面操作
(3)使用文件形式完成
设计思路:首先设计界面进入面板,在面板中添加菜单选项,并将要实现的功能选项添加其中,然后对这些选项实施监听,实现其功能。通过文件类型知识的应用,实现对员工信息的管理。B.概要设计
面板设计:首先设计一个容器,然后再容器中添加菜单,在菜单中添加选项,并在容器中加入面板,面板布局设置为CardLayout,最后将面板添加进容器。
功能实现:在录入、查询、修改和删除界面中使用JButton、JLabel、ButtonGroup、JRadioButton、JTextField、Choice为界面中加入相应的组件,并对其进行监听,同时附加了文件流的处理。C.详细设计
1、定义员工类:
public class Employee implements java.io.Serializable { String number,name,discipling,grade,borth,sex;public Employee(){ } public void setNumber(String number){ this.number=number;} public String getNumber(){ return number;
} public void setName(String name){ this.name=name;} public String getName(){ return name;} public void setDiscipling(String discipling){ this.discipling=discipling;} public String getDisciping(){ return discipling;} public void setGrade(String grade){ this.grade=grade;} public String getGrade(){ return grade;} public void setBorth(String borth){ this.borth=borth;} public String getBorth(){ return borth;} public void setSex(String sex){ this.sex=sex;} public String getSex(){ return sex;}}
2、主程序:
import java.awt.*;
import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.Hashtable;public class EmployeeManager extends JFrame implements ActionListener { EmployeeSituation 基本信息录入=null;ModifySituation 基本信息修改=null;Inquest 基本信息查询=null;Delete 基本信息删除=null;JMenuBar bar;JMenu fileMenu;JMenuItem 录入,修改,查询,删除;Container con=null;Hashtable 基本信息=null;File file=null;CardLayout card=null;JLabel label=null;JPanel pCenter;public EmployeeManager(){ 录入=new JMenuItem(“录入员工基本信息”);修改=new JMenuItem(“修改员工基本信息”);查询=new JMenuItem(“查询员工基本信息”);删除=new JMenuItem(“删除员工基本信息”);bar=new JMenuBar();fileMenu=new JMenu(“菜单选项”);fileMenu.add(录入);fileMenu.add(修改);fileMenu.add(查询);fileMenu.add(删除);bar.add(fileMenu);setJMenuBar(bar);label=new JLabel(“欢迎进入员工信息管理系统”,JLabel.CENTER);label.setFont(new Font(“SansSerif”,Font.BOLD+Font.ITALIC,25));label.setForeground(Color.red);基本信息=new Hashtable();录入.addActionListener(this);修改.addActionListener(this);查询.addActionListener(this);删除.addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPanel();
pCenter.setLayout(card);pCenter.setBackground(Color.yellow);file=new File(“基本信息.txt”);if(!file.exists()){
try
{
FileOutputStream out=new FileOutputStream(file);ObjectOutputStream objectOut=new ObjectOutputStream(out);
objectOut.writeObject(基本信息);
objectOut.close();
out.close();
}
catch(IOException e)
{
} } 基本信息录入=new EmployeeSituation(file);基本信息修改=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=new Delete(file);pCenter.add(“欢迎语界面”,label);pCenter.add(“录入界面”,基本信息录入);pCenter.add(“修改界面”,基本信息修改);pCenter.add(“删除界面”,基本信息删除);con.add(pCenter,BorderLayout.CENTER);con.validate();addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){ System.exit(0);}});setVisible(true);setBounds(100,50,420,380);validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==录入){ card.show(pCenter,“录入界面”);} else if(e.getSource()==修改)
{ card.show(pCenter,“修改界面”);} else if(e.getSource()==查询){ 基本信息查询.setVisible(true);} else if(e.getSource()==删除){ card.show(pCenter,“删除界面”);} } public static void main(String args[]){ new EmployeeManager();}}
3、实现员工信息的录入: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class EmployeeSituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 员工号,姓名,工资;Choice 部门;JRadioButton 男,女;Employee 员工=null;ButtonGroup group=null;JButton 录入,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public EmployeeSituation(File file){
this.file=file;
员工号=new JTextField(10);
姓名=new JTextField(10);
部门=new Choice();部门.add(“请选择”);部门.add(“研发部”);部门.add(“销售部”);部门.add(“人事部”);部门.add(“安全部”);工资=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(“男”,true);女=new JRadioButton(“女”,false);group.add(男);group.add(女);录入=new JButton(“录入”);重置=new JButton(“重置”);录入.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(“员工号:”,JLabel.CENTER));box1.add(员工号);Box box2=Box.createHorizontalBox();box2.add(new JLabel(“姓名:”,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(“性别:”,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(“部门:”,JLabel.CENTER));box4.add(部门);Box box6=Box.createHorizontalBox();box6.add(new JLabel(“ ”,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(“工资:”,JLabel.CENTER));box5.add(工资);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);
pCenter.setBackground(Color.yellow);
setLayout(new BorderLayout());
add(pCenter,BorderLayout.CENTER);
JPanel pSouth=new JPanel();
pSouth.add(录入);
pSouth.add(重置);
pSouth.setBackground(Color.yellow);
add(pSouth,BorderLayout.SOUTH);
validate();
} public void actionPerformed(ActionEvent e){ if(e.getSource()==录入){ String number=“";number=员工号.getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String warning=”该员工基本信息已存在,请到修改页面修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);} else { String m=”基本信息将被录入!“;int ok=JOptionPane.showConfirmDialog(this,m,”确认“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();
String discipling=部门.getSelectedItem();String grade=工资.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} 员工=new Employee();员工.setNumber(number);员工.setName(name);员工.setDiscipling(discipling);员工.setGrade(grade);员工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);
基本信息表.put(number,员工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();
员工号.setText(null);
姓名.setText(null);
工资.setText(null);} catch(Exception ee){ System.out.println(ee);}}}} else { String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}
if(e.getSource()==重置)
{
员工号.setText(null);
姓名.setText(null);
部门.remove(部门.getSelectedIndex());
工资.setText(null);}}}
4、实现员工信息的修改: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class ModifySituation extends JPanel implements ActionListener { Hashtable 基本信息表=null;JTextField 员工号,姓名,工资;Choice 部门;JRadioButton 男,女;ButtonGroup group=null;JButton 开始修改,录入修改,重置;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file)
{ this.file=file;员工号=new JTextField(10);姓名=new JTextField(10);部门=new Choice();部门.add(”请选择“);部门.add(”研发部“);部门.add(”销售部“);部门.add(”人事部“);部门.add(”安全部“);工资=new JTextField(10);group=new ButtonGroup();男=new JRadioButton(”男“,true);女=new JRadioButton(”女“,false);group.add(男);group.add(女);开始修改=new JButton(”开始修改“);录入修改=new JButton(”录入修改“);录入修改.setEnabled(false);重置=new JButton(”重置“);员工号.addActionListener(this);开始修改.addActionListener(this);录入修改.addActionListener(this);重置.addActionListener(this);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”输入要修改信息的员工号:“,JLabel.CENTER));box1.add(员工号);box1.add(开始修改);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性别:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部门:“,JLabel.CENTER));box4.add(部门);Box box6=Box.createHorizontalBox();box6.add(new JLabel(” “,JLabel.CENTER));Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工资:“,JLabel.CENTER));box5.add(工资);Box boxH=Box.createVerticalBox();
boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box6);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.yellow);setLayout(new BorderLayout());add(pCenter,BorderLayout.CENTER);JPanel pSouth=new JPanel();pSouth.add(录入修改);pSouth.add(重置);pSouth.setBackground(Color.yellow);add(pSouth,BorderLayout.SOUTH);validate();
} public void actionPerformed(ActionEvent e){
if(e.getSource()==开始修改||e.getSource()==员工号)
{
String number=”“;
number=员工号.getText();
if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ 录入修改.setEnabled(true);Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部门.getSelectedItem();工资.setText(stu.getGrade());
if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} }
else
{
录入修改.setEnabled(false);String warning=”该员工号不存在!“;JOptionPane.showMessageDialog(this,warning,”警告
“,JOptionPane.WARNING_MESSAGE);员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem());工资.setText(null);
} }
else { 录入修改.setEnabled(false);String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem());工资.setText(null);}
}
else if(e.getSource()==录入修改)
{
String number=”“;
number=员工号.getText();
if(number.length()>0)
{
try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();
inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ String question=”该员工基本信息已存在,您想修改他(她)的基本信息吗?“;JOptionPane.showMessageDialog(this,question,”警告“,JOptionPane.QUESTION_MESSAGE);String m=”基本信息将被修改!“;int ok=JOptionPane.showConfirmDialog(this,m,”确认“,JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ String name=姓名.getText();String discipling=部门.getSelectedItem();String grade=工资.getText();String sex=null;if(男.isSelected()){ sex=男.getText();} else { sex=女.getText();} Employee 员工=new Employee();
员工.setNumber(number);
员工.setName(name);
员工.setDiscipling(discipling);
员工.setGrade(grade);
员工.setSex(sex);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表.put(number,员工);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();
员工号.setText(null);姓名.setText(null);部门.remove(部门.getSelectedItem());工资.setText(null);} catch(Exception ee){ System.out.println(ee);} 录入修改.setEnabled(false);} else if(ok==JOptionPane.NO_OPTION){ 录入修改.setEnabled(true);} }
else
{ String warning=”该员工号没有基本信息,不能修改!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);录入修改.setEnabled(false);
}
}
else
{
String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告
“,JOptionPane.WARNING_MESSAGE);
录入修改.setEnabled(false);
}
}
if(e.getSource()==重置)
{
员工号.setText(null);
姓名.setText(null);
部门.remove(部门.getSelectedItem());
工资.setText(null);}}}
5、实现员工信息的查询: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Inquest extends JDialog implements ActionListener { Hashtable 基本信息表=null;JTextField 员工号,姓名,部门,工资;JRadioButton 男,女;JButton 查询;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public Inquest(JFrame f,File file){
super(f,”查询对话框“,false);
this.file=file;
员工号=new JTextField(10);
查询=new JButton(”查询“);
员工号.addActionListener(this);
查询.addActionListener(this);姓名=new JTextField(10);姓名.setEditable(false);部门=new JTextField(10);部门.setEditable(false);工资=new JTextField(10);工资.setEditable(false);男=new JRadioButton(”男“,false);女=new JRadioButton(”女“,false);group=new ButtonGroup();group.add(男);group.add(女);Box box1=Box.createHorizontalBox();box1.add(new JLabel(”输入要查询的员工号:“,JLabel.CENTER));box1.add(员工号);box1.add(查询);Box box2=Box.createHorizontalBox();box2.add(new JLabel(”姓名:“,JLabel.CENTER));box2.add(姓名);Box box3=Box.createHorizontalBox();box3.add(new JLabel(”性别:“,JLabel.CENTER));box3.add(男);box3.add(女);Box box4=Box.createHorizontalBox();box4.add(new JLabel(”部门:“,JLabel.CENTER));box4.add(部门);Box box5=Box.createHorizontalBox();box5.add(new JLabel(”工资:“,JLabel.CENTER));box5.add(工资);Box boxH=Box.createVerticalBox();boxH.add(box1);boxH.add(box2);boxH.add(box3);boxH.add(box5);boxH.add(box4);boxH.add(Box.createVerticalGlue());JPanel pCenter=new JPanel();pCenter.add(boxH);pCenter.setBackground(Color.green);Container con=getContentPane();con.add(pCenter,BorderLayout.CENTER);con.validate();setVisible(false);setBounds(100,200,360,270);
addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ setVisible(false);} });} public void actionPerformed(ActionEvent e){ 姓名.setText(null);部门.setText(null);工资.setText(null);if(e.getSource()==查询||e.getSource()==员工号){ String number=”“;number=员工号.getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){ } if(基本信息表.containsKey(number)){ Employee stu=(Employee)基本信息表.get(number);姓名.setText(stu.getName());部门.setText(stu.getDisciping());工资.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} } else {
String warning=”该员工号不存在!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}} else { String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告“,JOptionPane.WARNING_MESSAGE);}}}}
6、实现员工信息的删除: import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class Delete extends JPanel implements ActionListener {
Hashtable 基本信息表=null;
JTextField 员工号,姓名,部门,工资;
JRadioButton 男,女;
JButton 删除;
ButtonGroup group=null;
FileInputStream inOne=null;
ObjectInputStream inTwo=null;
FileOutputStream outOne=null;
ObjectOutputStream outTwo=null;
File file=null;
public Delete(File file)
{
this.file=file;
员工号=new JTextField(10);
删除=new JButton(”删除“);
员工号.addActionListener(this);
删除.addActionListener(this);
姓名=new JTextField(10);
姓名.setEditable(false);
部门=new JTextField(10);
部门.setEditable(false);
工资=new JTextField(10);
工资.setEditable(false);
男=new JRadioButton(”男“,false);
女=new JRadioButton(”女“,false);
group=new ButtonGroup();
group.add(男);
group.add(女);
Box box1=Box.createHorizontalBox();
box1.add(new JLabel(”输入要删除的学号:“,JLabel.CENTER));
box1.add(员工号);
box1.add(删除);
Box box2=Box.createHorizontalBox();
box2.add(new JLabel(”姓名:“,JLabel.CENTER));
box2.add(姓名);
Box box3=Box.createHorizontalBox();
box3.add(new JLabel(”性别:“,JLabel.CENTER));
box3.add(男);
box3.add(女);
Box box4=Box.createHorizontalBox();
box4.add(new JLabel(”部门:“,JLabel.CENTER));
box4.add(部门);
Box box6=Box.createHorizontalBox();
box6.add(new JLabel(” “,JLabel.CENTER));
Box box5=Box.createHorizontalBox();
box5.add(new JLabel(”工资:“,JLabel.CENTER));
box5.add(工资);
Box boxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box5);
boxH.add(box6);
boxH.add(box4);
boxH.add(Box.createVerticalGlue());
JPanel pCenter=new JPanel();
pCenter.add(boxH);
pCenter.setBackground(Color.yellow);
setLayout(new BorderLayout());
add(pCenter,BorderLayout.CENTER);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==删除||e.getSource()==员工号)
{
String number=”“;
number=员工号.getText();if(number.length()>0){ try { inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表=(Hashtable)inTwo.readObject();inOne.close();inTwo.close();} catch(Exception ee){
} if(基本信息表.containsKey(number)){
Employee stu=(Employee)基本信息表.get(number);
姓名.setText(stu.getName());
部门.setText(stu.getDisciping());
工资.setText(stu.getGrade());if(stu.getSex().equals(”男“)){ 男.setSelected(true);} else { 女.setSelected(true);} String m=”确定要删除该员工号及全部信息吗?“;int ok=JOptionPane.showConfirmDialog(this,m,”确认
“,JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);if(ok==JOptionPane.YES_OPTION){ 基本信息表.remove(number);try { outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);outTwo.writeObject(基本信息表);outTwo.close();outOne.close();员工号.setText(null);姓名.setText(null);部门.setText(null);工资.setText(null);} catch(Exception ee){ System.out.println(ee);} } else if(ok==JOptionPane.NO_OPTION){ 员工号.setText(null);姓名.setText(null);部门.setText(null);
工资.setText(null);} } else {
String warning=”该员工号不存在!“;JOptionPane.showMessageDialog(this,warning,”警告
“,JOptionPane.WARNING_MESSAGE);} } else {
String warning=”必须要输入员工号!“;JOptionPane.showMessageDialog(this,warning,”警告",JOptionPane.WARNING_MESSAGE);}}}}
三、实验结果体会
本次JAVA课程设计我所编写的程序是员工信息管理系统,程序中实现了对员工信息的添加、查询、修改、删除的功能,我是应用文件的形式完成的,其中还应用到了图形用户界面。我设计的程序简单易懂,操作简单,且 适用于不同的单位使用,只需按照自己的需要将所要录入的信息名称做添加或修改就可以实现。通过这次JAVA的程序设计,使我对JAVA有了更加深入的了解,巩固了我对JAVA基础知识的掌握。
第四篇:《员工信息管理系统》详细设计说明书
《员工信息管理系统详细设计说明书》
一、引言
1.1编写目的
根据需求规格说明书、概要设计说明书,在仔细考虑讨论之后,我们对员工信息管理系统软件功能的划分、数据结构、软件总体结构的实现有了进一步的想法。本说明书的预期读者是与员工信息管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。
1.2背景
利用先进的管理手段,提高人事信息的管理水平,是每一现代公司所面临的重要课题。为了解决这一重要课题,就必须有一套科学,高效,严密,实用的人事信息管理系统。现代公司的人事信息管理都是在计算机上实现的,采用现代计算机管理系统来进行管理,提供规范,统一的服务,它在管理系统中的应用不仅可以简化,规范各机构的日常操作,而且可以使企业人事信息管理更加方便,简单,快捷,清晰,从而减轻工作人员的劳动强度,减少企业的财政消耗。
1.3定义
SQL Server:所用的数据库管理系统 VS 2010:所用的开发软件
二、程序
(一)设计说明
2.1程序描述
主模块
2.2功能
建立与数据库连接 获取系统设置
能够跳转至子模块:登陆、注册等模块。
2.3输入、输出项
用户鼠标点击登陆、注册按钮 跳转至相应模块界面
2.5流程逻辑
选择项登陆系统注册系统查询系统管理系统 2.6界面设计
2.7功能实现方法
'跳转登陆页面
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)Handles lbtnLogin.Click If Request.Cookies(“UserName”)Is Nothing Then Response.Redirect(“Login.aspx”)Else
Page.ClientScript.RegisterStartupScript(Page.GetType(), “", ”“)End If
End Sub
'跳转注册页面
Protected Sub lbtnRegister_Click(ByVal sender As Object, ByVal e As EventArgs)Handles lbtnRegister.Click Response.Redirect(”Register.aspx“)End Sub
三、程序
(二)设计说明
3.1程序描述
登陆模块
3.2功能
实现管理员账号登陆,以便继续后面操作
3.3输人项
输入:管理员账号、密码。输出:登陆成功界面
3.4流程逻辑
登陆输入帐号密码NO判断信息是否正确YES登陆成功
2.6界面设计
登陆界面
登陆成功界面
2.7功能实现方法
'登录
Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As EventArgs)Handles btnLogin.Click Dim Count As Integer'返回受影响的行数
Dim cookies As New HttpCookie(”UserName“)managemodel.ManageId = txtName.Text.Trim()managemodel.ManagePassword = txtPassWord.Text.Trim()Count = managebll.Login(managemodel)'注销登录
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load If Not IsPostBack Then
If Not Request.Cookies(”UserName“)Is Nothing Then '如果Cookie中有值则把值赋给标签并显示一些登陆后才显示的控件
lblUser.Text = Request.Cookies(”UserName“).Value lbtnSearch.Visible = True lblSucces.Visible = True lbtnOut.Visible = True lblWelcome.Visible = False
End If End If End Sub
四、程序
(三)设计说明
4.1程序描述
注册模块
4.2功能
提供管理员账号注册功能
4.3输入项
输入:新管理员账号、密码信息 输出:注册成功提示
4.4流程逻辑
注册填写新帐号密码并确认判断密码是否有误NONOYES判断帐号是否已被注册YES注册成功
2.6界面设计
2.7功能实现方法 '注册
Check = managebll.Check(managemodel)'执行判定
If Check = 0 Then '若表括中无同名用户则行添加用户 Count = managebll.Register(managemodel)If Count > 0 Then '若受影响行数大于0说明添加成功
Page.ClientScript.RegisterStartupScript(Page.GetType(), ”“)Else '否则添加不成功
Page.ClientScript.RegisterStartupScript(Page.GetType(), ”“)End If
Else '有同名用户时弹出提示
Page.ClientScript.RegisterStartupScript(Page.GetType(), ”“, ”“)End If
”“, ”“,五、程序
(四)设计说明
5.1程序描述
查询模块
5.2功能
提供员工信息查询
全部查询:显示所有员工信息
按员工ID查询:显示指定ID的员工信息 按性别查询:显示指定性别的员工信息
5.3输人、输出项
输入:选择查询条件,如员工ID或性别等。输出:显示满足条件的员工。
5.4流程逻辑
查询全部查询按员工ID查询按性别查询输入员工ID选择性别显示输出结果
2.6界面设计
全部查询
按员工ID查询
按性别查询
2.7功能实现方法
Protected Sub btnOk_Click(ByVal sender As Object, ByVal e As EventArgs)Handles btnOk.Click If rblSelect.SelectedValue = ”0“ Then '全部查询 SelectAllInfo()ElseIf rblSelect.SelectedValue = ”1“ Then '按员工ID查询 SelectIdInfo()ElseIf rblSelect.SelectedValue = ”2“ Then '按性别查询 SelectSexInfo()End If
End Sub
六、程序
(五)设计说明
6.1程序描述
管理模块
6.2功能
实现员工信息的添加、删除、修改
6.3输入、输出项
输入:员工信息
输出:变更后的员工信息
6.4流程逻辑
管理添加查询输入新员工信息YES显示输出结果判断ID是否重复修改员工信息删除员工信息显示输出结果 2.6界面设计
添加员工信息
修改员工信息
2.7功能实现方法
'删除数据
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs)Handles GridView1.RowDeleting Dim
index
As
Integer
= Convert.ToInt32(GridView1.DataKeys(e.RowIndex).Value.ToString)'获得主键
Dim Count As Integer
'调用业务逻辑层
Count = staffbll.DeleteInfo(index)'刷新页面? Bind()End Sub
'更新
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs)Handles GridView1.RowUpdating Dim index As Integer = Convert.ToInt32(GridView1.DataKeys(e.RowIndex).Value.ToString)'获取主键 staffmodel.StfId = index staffmodel.StfName =(CType((GridView1.Rows(e.RowIndex).Cells(2).Controls(0)), TextBox)).Text.Trim()staffmodel.StfSex =(CType((GridView1.Rows(e.RowIndex).Cells(3).Controls(0)), TextBox)).Text.Trim()staffmodel.StfAge =(CType((GridView1.Rows(e.RowIndex).Cells(4).Controls(0)), TextBox)).Text.Trim()staffmodel.StfJob =(CType((GridView1.Rows(e.RowIndex).Cells(5).Controls(0)), TextBox)).Text.Trim()staffmodel.StfTime =(CType((GridView1.Rows(e.RowIndex).Cells(6).Controls(0)), TextBox)).Text.Trim()staffbll.UpdataInfo(staffmodel)GridView1.EditIndex =-1 Bind()End Sub '执行添加
staffmodel.StfId = txtId.Text.Trim()staffmodel.StfName = txtName.Text.Trim()staffmodel.StfSex = txtSex.Text.Trim()staffmodel.StfAge = txtAge.Text.Trim()staffmodel.StfJob = txtJob.Text.Trim()staffmodel.StfTime = txtTime.Text.Trim()Check = staffbll.Check(staffmodel)'执行判定
If Check = 0 Then ' 如果表括中无值 则可进行添加
'调用业务逻辑层
staffbll.AddInfo(staffmodel)Bind()Else '如果有值则不能添加
Page.ClientScript.RegisterStartupScript(Page.GetType(), ”“)End If
”",七、参考资料
(1)张俊兰等。《软件工程》西安电子科技大学出版社,2003年8月。(2)萨师煊等。《数据库系统概论(第三版)》高等教育出版社,2000年。(3)郝兴伟。《Web开发技术》清华大学出版社,2004年。
第五篇:学生信息管理系统
摘 要
随着网络通信技术的迅速发展和信息技术的广泛应用,计算机的应用已普及到经济和社会生活的各个领域。教育领域也不例外,现今已经出现了各种远程网络在线教育系统、图书馆管理系统、学生信息管理系统等。其中学生信息管理是任一院校都不可缺少的部分,它的内容对于学校的决策者和教学管理者来说都至关重要,而传统的人工管理方式效率较低,为数据的查询、更新和维护带来了极大的不便。所以学生信息管理信息系统的开发和应用是必要的,它能够为管理人员提供充足的信息和快捷的查询手段,提高学校对学生信息的管理效率。
本文的学生信息管理系统是基于java语言的,它能够提供学生信息管理功能,方便系统管理员对学生学号、班级等信息的添加、修改、删除、查询等操作,同时可以一样方便的对学生的信息进行查询。本系统也主要利用java语言和access实现,因此它具有很强的可移植性,很方便。
关键字: 学生信息 管理系统
添加 删除 查询 修改
Abstract With the rapid development of network communication technology and extensive application of information technology, computer applications have spread to the economic and social life in various fields.The field of education is no exception, now there have been a variety of remote network online education system, library management system, student information management system.Which is either a student information management schools are an indispensable part of its contents and teaching for school managers, policy-makers are essential, and the traditional manual management inefficient for data query, update and maintenance brought great inconvenience.So the student information management system development and application of information is necessary, it is able to provide managers with sufficient information and quick inquiry means to improve school student information management efficiency.This student information management system is based on the java language, it is able to provide students with information management function to facilitate system administrators to students student number, class and other information to add, modify, delete, query and other operations, but can be just as convenient for students information to search.This system is mainly achieved using java language and access, so it is very portable, very convenient.Keywords: Student Information Management System add delet revise
前言
随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。学校在管理、教学、办公各个方面也在悄悄地变化。一个学校的信息化程度体现在将计算器与信息技术应用于教学与管理,以现代化工具代替传统手工作业。无疑,使用信息化管理使教学更先进、办公更高效、管理更科学,信息交流更迅速。
学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,故决定选择学生成绩管理系统来作为本人的毕业设计,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各规模学院的学生成绩管理系统。该学生成绩管理系统能有效的处理在校学生的成绩管理,具有成绩输入、成绩查询、成绩统计及打印功能。
学生成绩管理系统可以实施应用在各中、大、小院校中,适用范围很广,应用性强。随着系统实施的日益成熟,最终会使单机作业为主的教学管理活动提高到这个平台上来,从而实现学校学生成绩信息管理的办公自动化,籍以提高办学效率和质量。使学校充分利用计算机所带来的新技术,为培养人才打下坚实的基础。
第一章 相关技术简介
1.1 java语言简介
Java语言是sun公司与1995年5月正式发布的程序设计语言,他的前身是sun公司为智能消费类家用电器研究而开发的项目的一部分。
Java程序设计语言是新一代语言的代表,他强调了面向对象的特性,可以用来开发范围广泛的软件,它具有支持图形化的用户界面,网格以及数据库连接等复杂功能。Java语言的主要特点: 1)易于学习
Java语言很简单,对于熟悉C++的程序设计人员更不会对其感到陌生,因 为它的语法非常接近于C++,但他同时摒弃了C++许多的复杂易混淆的功能。利用java同样可以变质出非常复杂的系统,且运行占用很少的内存资源。2)高效率的执行方式
Java语言的执行方式是采用先经过编译器编译,在通过解释器解释执行的 方式来运行的。他综合了解释性语言与编译语言的众多有点,使其执行效率较以往的程序设计语言有了大幅度的提高。3)与平台的无关性
由于iava语言是解释执行的,他会被转换成一种字节码的“目标程序”。因此它可以跨平台运行 4)分布式安全性
Java从诞生之日起就与网络联系在了一起,他强调网络特性,内置TCPIP,HTTP,FTP协议库,便于开发网上应用系统。5)丰富的API文档和类库
Java为用户提供了详尽的API(Application Program Interface)文档说明。
1.2 access数据库简介
Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理。他拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在“表”中存储数据。
第二章 系统分析
2.1 系统分析
学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用access数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
本《学生管理系统》具有对学生进行学籍管理的功能。并于数据库相连接,能够对学生的学号、姓名、性别、班级、专业进行查询、添加和删除等,简捷方便,容易使用。2.2 应解决的问题
2.2.1合理的设计数据库
尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。作为学生成绩管理系统,必须能解决以下方面的问题:能录入信息。
在开发学生信息管理系统时,最重要的就是学生的基本信息,其学生信息表E-R图如图2.1所示。
图 2.1 学生信息E-R图
2.2.2设计出友好的界面
界面的友好与否是用户评价一个软件优劣的重要方面。因为该系统涉及到
学生成绩的真实性,所以该系统要具有一定的保密性和权限控制,首先应设计一个用户的登陆窗口界面,要求只能由特定的人员对该系统进行操作。此外还应设计登陆后系统的主窗口,要求能够显示学生成绩的基本信息,可以实现数据的录入,更新,删除、查询、统计等功能。
另外窗口界面要多用按钮,少用菜单,窗口的各个控键布局要合理,美观。要充分的利用java.awt和java.swing提供的强大的功能,多用窗口和控件,充分体现窗口的多元化格局。
2.2.3实现的基本功能
该系统要求除了能实现信息的录入,删除,插入,更新,数据导出excel文件等基本功能之外,还要求能够根据用户的需要进行操作。例如要查询学生成绩,要求可以按照专业、班级等多种方式查询。这些功能基本上能满足用户操作的需要,这样用户操作起来就更简单方便。部分文本框使用了下拉式,使用户可以不用花费大量的时间去输入信息。
2.3 数据库物理设计 1.1.1 3.3.1数据库物理设计
本系统采用Access数据库管理系统作为后台数据库的开发工具,设计的表结构如下:
第三章 程序代码及运行效果
3.1主类代码:
/*主类代码*/ package kcsj;import java.awt.*;import javax.swing.*;import java.awt.event.*;
import javax.swing.border.*;import javax.swing.JOptionPane;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.table.DefaultTableCellRenderer;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import java.sql.*;import java.awt.GridLayout;public class myStudent { public myStudent(){
}
public static void main(String[] args){ // TODO code application logic here loginFrame lf=new loginFrame();Font ft=new Font(“Serif”,Font.BOLD,18);lf.setVisible(true);lf.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){
System.exit(0);} });} }
3.2 登陆: public loginFrame(){
p=new JPanel();
user=new JTextField(10);
pass=new JPasswordField(10);
login=new JButton(“登录”);
cancel=new JButton(“退出”);
p.setBackground(Color.lightGray);
//user.setText(“王明玉”);
//pass.setText(“123456”);
login.addActionListener(this);
cancel.addActionListener(this);
p.add(new JLabel(“学生信息管理系统登录”));
p.add(new JLabel(“账号:”));
p.add(user);
p.add(new JLabel(“密码:”));
p.add(pass);
p.add(login);
p.add(cancel);
this.add(p);
this.setTitle(“学生管理系统登录界面”);
this.setSize(180,160);}
public void actionPerformed(ActionEvent e){
//查找
if(e.getSource()==login){
if(user.getText().toString().equals(“")){
JOptionPane.showMessageDialog(null, ”请输入用户名“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(pass.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入密码“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else{
myConnection conn=new myConnection();
ResultSet rs;
String sql=”select * from admin where 用户名 = '“+user.getText().toString()+”' and 密码 = '“+pass.getText().toString()+”'“;
try{
rs=conn.getResult(sql);
if(rs.next()){
this.dispose();
//JOptionPane.showMessageDialog(null, ”此用户已经存在“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
sql=”select * from student“;
mainFrame mf=new mainFrame();
mf.setTitle(”西北师范大学学生信息管理系统“);
mf.setSize(600,486);
mf.freshTable(sql);
mf.setVisible(true);
mf.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}else{
JOptionPane.showMessageDialog(null, ”用户名或密码错误“, ”登录失败“, JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception er){
System.out.println(er.toString());
}
}
//全部显示
}if(e.getSource()==cancel){
System.exit(0);
} } } 登陆界面:
3.3 修改数据:
/*修改数据*/ class editFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400;
JLabel 学号1,姓名1,性别1,民族1,年龄1,年级1,班级1,专业1;JTextField 学号,姓名,性别,民族,年龄,年级,班级,专业;JButton b;JPanel p;
mainFrame mf;
public editFrame(mainFrame mmf){ setTitle(”修改学生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180);
Container contentPane = getContentPane();contentPane.setLayout(new FlowLayout());
学号1=new JLabel(”学号“);姓名1=new JLabel(”姓名“);性别1=new JLabel(”性别“);民族1=new JLabel(”民族“);年龄1=new JLabel(”年龄“);年级1=new JLabel(”年级“);班级1=new JLabel(”班级“);
专业1=new JLabel(”专业“);
学号=new JTextField(5);姓名=new JTextField(5);性别=new JTextField(5);民族=new JTextField(5);年龄=new JTextField(5);年级=new JTextField(5);班级=new JTextField(10);专业=new JTextField(10);学号.setEnabled(false);b=new JButton(”确定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(民族1);p.add(民族);p.add(年龄1);p.add(年龄);p.add(年级1);p.add(年级);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按钮监听器
b.addActionListener(this);mf=mmf;}
public void actionPerformed(ActionEvent e){
if(学号.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null,”请输入学号“,”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(姓名.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null,”请输入姓名“,”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(年龄.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null,”请输入年龄“,”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else{
String sql=”update student set 姓名='“+姓名.getText()+”',性别='“+性别.getText()+”',年龄=“+年龄.getText()+”,年级='“+年级.getText()+”',班级='“+班级.getText()+”',专业='“+专业.getText()+”',民族='“+民族.getText()+”' where 学号='“ + 学号.getText()+ ”'“;
myConnection conn=new myConnection();
try{
//JOptionPane.showMessageDialog(null, sql, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
if(conn.executeSql(sql)){
JOptionPane.showMessageDialog(null, ”修改成功“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
mf.freshTable(”select * from student“);
this.dispose();
}else{
JOptionPane.showMessageDialog(null, ”修改失败“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception er){
System.out.println(er.toString());
}
}
}
}
3.4 查找数据:
class findFrame extends JDialog implements ActionListener{
mainFrame mf;JPanel p;JComboBox c;JTextField t;JButton b;JButton fAll;String sql=”select * from student“;String[] colStr={”学号“,”姓名“,”性别“,”民族“,”年龄“,”年级“,”班级“,”专业“};
public findFrame(mainFrame mmf){
mf=mmf;
p=new JPanel();
c=new JComboBox(colStr);
t=new JTextField(10);
b=new JButton(”查找“);
fAll=new JButton(”全部显示“);
b.addActionListener(this);
fAll.addActionListener(this);
p.add(new JLabel(”选择“));
p.add(c);
p.add(new JLabel(”查找内容“));
p.add(t);
p.add(b);
p.add(fAll);
this.add(p);
this.setTitle(”查找“);
this.setSize(450,80);}
public void actionPerformed(ActionEvent e){
//查找
if(e.getSource()==b){
String selectStr=c.getSelectedItem().toString();
if(selectStr==”年龄“){
sql=”select * from student where “+selectStr+” “+t.getText().toString();
}
else {
sql=”select * from student where “+selectStr+” '“+t.getText().toString()+”'“;
= = 12
}
mf.freshTable(sql);
//全部显示
}if(e.getSource()==fAll){
sql=”select * from student“;
mf.freshTable(sql);
} } }
3.5 添加数据:
class addFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400;
JLabel 学号1,姓名1,性别1,民族1,年龄1,年级1,班级1,专业1;JTextField 学号,姓名,性别,民族,年龄,年级,班级,专业;JButton b;JPanel p;
mainFrame mf;
public addFrame(mainFrame mmf){ setTitle(”修改学生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180);
Container contentPane = getContentPane();//contentPane.setBackground(Color.BLACK);//设置窗口颜色
contentPane.setLayout(new FlowLayout());
学号1=new JLabel(”学号“);
姓名1=new JLabel(”姓名“);
性别1=new JLabel(”性别“);
民族1=new JLabel(”民族“);
年龄1=new JLabel(”年龄“);
年级1=new JLabel(”年级“);
班级1=new JLabel(”班级“);
专业1=new JLabel(”专业“);
学号=new JTextField(”201071030240“,5);
姓名=new JTextField(5);
性别=new JTextField(”女“,5);
民族=new JTextField(5);
年龄=new JTextField(5);
年级=new JTextField(5);
班级=new JTextField(10);
专业=new JTextField(10);
b=new JButton(”确定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(学号1);p.add(学号);p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(民族1);p.add(民族);p.add(年龄1);p.add(年龄);p.add(年级1);p.add(年级);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按钮监听器
b.addActionListener(this);mf=mmf;}
public void actionPerformed(ActionEvent e){
if(学号.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入学号“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(姓名.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入姓名“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(年龄.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入年龄“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else{
String sql=”select * from student where 学号='“ + 学号.getText()+ ”'“;
myConnection conn=new myConnection();
ResultSet rs;
rs=conn.getResult(sql);
try{
//System.out.println(rs.getRow());
if(rs.next()){
JOptionPane.showMessageDialog(null, ”此学号已经存在“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else{
sql=”insert into student values('“ +学号.getText()+”','“+ 姓名.getText()+”','“+ 性别.getText()+”','“+ 民族.getText()+”',“+ 年龄.getText()+”,'“+ 年级.getText()+”','“+ 班级.getText()+”','“+ 专业.getText()+”')“;
if(conn.executeSql(sql)){
JOptionPane.showMessageDialog(null, ”添加成功“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
mf.freshTable(”select * from student“);
学号.setText(”“);
姓名.setText(”“);
性别.setText(”“);
民族.setText(”“);
年龄.setText(”“);
年级.setText(”“);
班级.setText(”“);
专业.setText(”“);
}else{
JOptionPane.showMessageDialog(null, ”添加失败“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}
}
}catch(Exception er){
System.out.println(er.toString());
}
}
}
}
3.6 修改数据:
class editFrame extends JDialog implements ActionListener{ public static final int WIDTH = 400;public static final int HEIGHT = 400;
JLabel 学号1,姓名1,性别1,民族1,年龄1,年级1,班级1,专业1;JTextField 学号,姓名,性别,民族,年龄,年级,班级,专业;JButton b;JPanel p;
mainFrame mf;
public editFrame(mainFrame mmf){ setTitle(”修改学生信息“);setSize(WIDTH,HEIGHT);setLocation(120,180);
Container contentPane = getContentPane();contentPane.setLayout(new FlowLayout());
学号1=new JLabel(”学号“);
姓名1=new JLabel(”姓名“);
性别1=new JLabel(”性别“);
民族1=new JLabel(”民族“);
年龄1=new JLabel(”年龄“);
年级1=new JLabel(”年级“);
班级1=new JLabel(”班级“);
专业1=new JLabel(”专业“);
学号=new JTextField(5);
姓名=new JTextField(5);
性别=new JTextField(5);
民族=new JTextField(5);
年龄=new JTextField(5);
年级=new JTextField(5);
班级=new JTextField(10);
专业=new JTextField(10);
学号.setEnabled(false);
b=new JButton(”确定“);p=new JPanel();p.setLayout(new GridLayout(10,2,5,5));p.add(学号1);p.add(学号);
p.add(姓名1);p.add(姓名);p.add(性别1);p.add(性别);p.add(民族1);p.add(民族);p.add(年龄1);p.add(年龄);p.add(年级1);p.add(年级);p.add(班级1);p.add(班级);p.add(专业1);p.add(专业);p.add(new Label(”“));p.add(new Label(”“));p.add(b);contentPane.add(p);//添加按钮监听器
b.addActionListener(this);mf=mmf;}
public void actionPerformed(ActionEvent e){
if(学号.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入学号“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(姓名.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入姓名“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else if(年龄.getText().toString().equals(”“)){
JOptionPane.showMessageDialog(null, ”请输入年龄“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
}else{
String sql=”update student set 姓名='“+姓名.getText()+”',性别='“+性别.getText()+”',年龄=“+年龄.getText()+”,年级='“+年级.getText()+”',班级='“+班级.getText()+”',专业='“+专业.getText()+”',民族='“+民族.getText()+”' where 学号='“ + 学号.getText()+ ”'“;
myConnection conn=new myConnection();
try{
//JOptionPane.showMessageDialog(null, sql, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
if(conn.executeSql(sql)){
JOptionPane.showMessageDialog(null, ”修改成功“, ”温馨提示“, JOptionPane.INFORMATION_MESSAGE);
mf.freshTable(”select * from student“);
this.dispose();
}else{
JOptionPane.showMessageDialog(null, ”修改失败“, ”温馨提示", JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception er){
System.out.println(er.toString());
}
} } }
运行效果:
第四章 总结
通过本次课程设计,不仅让我更深入的了解JAVA这门学科,更使自己有了继续探索的兴趣。
对我来说,在之前的学习过程中没有能够很好的掌握JAVA语言的学习,在很多地方还有生疏和遗漏,并且在此次课程设计过程中也遇到困难不能自己独立解决。但是,通过这次程序设计,除了增加了自己的编程能力,提高了我对JAVA的应用能力,同时我也深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我将继续保持严谨的学习态度。与此同时,在同学的帮助下,让我体会到了相互学习的重要性,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计让我获益匪浅。
第五章 总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理
论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
第六章 参考文献