教师工资管理系统课程设计

  • 格式:doc
  • 大小:194.10 KB
  • 文档页数:17

《数据库课程设计》任务书一、课程设计的目的《数据库课程设计》是软件工程专业(本科)教学大纲要求的重要实践性环节之一,是学习完《数据库原理及应用》和《Oracle数据库应用》两门课程后进行的一次数据库方面的综合练习。

其目的在于:配合《数据库原理及应用》和《Oracle数据库应用》课程的教学,使学生能巩固和加深对数据库基础理论和基本知识的理解;掌握使用数据库进行软件设计的基本思想和方法;提高学生运用数据库理论解决实际问题的能力;培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。

二、课程设计的内容及要求内容:用一种高级语言和当前流行的数据库管理系统相结合,完成一个小型管理系统的设计与开发。

所设计的小型管理系统应包含两个以上(不多于4个)的模块以及输入输出、查询、插入、删除等基本功能。

根据课程设计2周时间的安排选择适当大小的设计课题,课题的选择可以是实际问题,也可以是虚构的问题。

根据题目的基本需求,画出系统结构图,并对数据库进行详细设计,编写程序,同时写出关于本数据库管理系统的报告书。

要求:(1) 要求学生按照《数据库原理及应用》和《Oracle数据库应用》相关知识以及《数据库课程设计》教学大纲完成一个数据库设计,并撰写相应的课程设计报告。

(2)提交课程设计报告。

要求完成课程设计报告大约15页-20页,包括相应的模块设计文档、数据库设计文档、所承担模块的核心代码、测试过程分析与运行结果等。

分组进行的同学共同完成基本设计与数据库设计,但每个人至少必须独立完成一个模块设计与实现,并写入课程设计报告中。

三、课程设计时间课程设计时间为2周(10个工作日)四、课程设计分组一人一组五、课程设计的成果和形式1.报告一篇建议论文按下列的提纲书写2.符合设计要求的数据库应用系统一个指导教师签字:年月日目录1 需求分析 (3)1.1引言 (3)1.2任务概述 (3)1.2.1 用户角色 (3)1.2.2 管理员角色 (3)2 数据库概要设计 (4)2.1逻辑模型 (4)2.2数据字典 (4)3. 数据库逻辑设计 (6)3.1关系模式 (6)3.2实体间的关系 (6)3.3完整性约束 (6)3.4范式 (6)3.5DBMS选择 (6)4. 数据库实施 (7)4.1基于SQL S ERVER的数据表设计 (7)4.1.1教工信息表 (7)4.1.2 用户信息表 (7)4.1.3 工资等级表 (7)4.2角色 (7)4.3关系图 (8)5 系统实现 (8)5.1登陆界面 (8)5.2主菜单界面 (11)参考文献 (16)附件: (17)1 需求分析1.1 引言随着全球信息化的发展,人事信息化建设也赶上时代的步伐。

工资管理系统的主要目标是支持企、事业的财政管理与事务处理业务人员的劳动强度,辅助企、事业管理,辅助高层领导决策,提高企、事业的工作效率,从而使企、事业能够以少的投入获得更好的社会效益与经济效益,像人事系统、工资管理系统等就属于人事工资管理系统的范畴。

它是单位实现现代化建设的基础工程,是提高单位的管理水平、业务的运转效率和服务质量的必要手段。

因此许多的程序员都可能面对如何开发一套比较完善的人事工资管理系统是相当有必要的问题。

随着计算机技术的飞速发展,计算机在企、事业管理中应用的普及,利用计算机实现企、事业人事工资的管理势在必行。

本系统结合人事、财务制度,经过需求分析、总体设计和详细设计,采用功能强大的Visual C++6.0作为开以语言,以Microsoft access 作为后台数据库,来开发模拟我校的、单机版的人事工资管理系统。

整个系统从符合操作简便、接口友好、灵活、实用、安全的要求出发,完成人事、工资管理的全过程,包括新进员工加入时人事档案的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询、统计等人事管理工作以及新进员工工资的新增、老员工工资修改等工资管理工作。

论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。

重点说明了系统设计的重点、思想、难点技术和解决方案。

1.2 任务概述教师工资管理系统共有2个角色选择:用户角色,管理员角色。

1.2.1 用户角色玩家角色能够实现如下2项功能:1. 信息查询:用户可以查询自己工资的发放情况2. 密码修改:用户可以修改需要更改的密码1.2.2 管理员角色管理员角色能够实现如下3项功能:1.添加功能:向系统中添加新的数据2.删除功能:删除系统中不需要的数据3.修改功能:修改系统中修要更新的数据2 数据库概要设计2.1 逻辑模型图2-1总体逻辑模型2.2 数据字典表2-1 工资信息数据字典表表 1.3 教工信息数据字典表E-R图根据所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。

教师工资管理系统可划分3个实体:用E-R图描述这些实体。

3. 数据库逻辑设计3.1 关系模式本系统含有3个实体,将之转换为2个关系模式种族-职业选择(种族名称,职业名称)职业-装备选择(职业名称,装备属性,装备名称)3.2 实体间的关系本系统含有3个实体(为主码,为外码)职称(种族名称,阵营,职业名称,种族介绍)教工(职业名称,装备属性,职业介绍,种族名称)装备(装备名称,装备属性,装备部位,伤害加成,暴击加成,急速加成)3.3 完整性约束3.3.1实体完整性:3个实体中的4个主码都不为空,满足实体完整性。

3.3.2参照完整性:3个实体之间外码已经给出,都能找到主码关系表中属性与之对应,满足参照完整性3.4 范式本系统3个实体,众多属性之间不存在任何函数依赖关系,所以满足第三范式。

3.5 DBMS选择本系统选择SQL Server为数据库管理系统。

4. 数据库实施4.1 基于SQL Server的数据表设计4.1.1教工信息表图4-1 种族表4.1.2 用户信息表图 4-2 职业表4.1.3 工资等级表图 4-3 装备表4.2 角色建立了用户和管理员2个角色用户角色:只能执行查询和密码修改操作。

管理员角色:能进行查询,修改,添加,删除操作。

4.3 关系图图4-4 关系图5 系统实现5.1 登陆界面package salary;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.sql.*;class LandFrame extends JFrame{JComboBox list;JLabel jLabel1;JLabel jLabel2;JTextField jtf1;// TextField jtf2;JPasswordField jpwf;JButton jbtn,jbtn1;LandFrame(String s){super(s);setLayout(null);setBounds(100,100,500,400);list=new JComboBox();list.setBorder(BorderFactory.createTitledBorder("请选择登录"));list.addItem("管理员登录");list.addItem("用户登录");list.setBounds(175,50,150,50);jLabel1=new JLabel("用户名:");jLabel2=new JLabel("密码:");jbtn=new JButton("登录");jbtn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){testify();}});jbtn1=new JButton("退出");jbtn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){dispose();}});jtf1=new JTextField(10);// jtf2=new TextField(10);// jtf2.setEchoChar('*');jpwf=new JPasswordField(10);jpwf.setEchoChar('*');jLabel1.setBounds(155,150,50,30);jLabel2.setBounds(155,190,50,30);jtf1.setBounds(210,150,100,25);// jtf2.setBounds(230,190,100,25);jpwf.setBounds(210,190,100,25);jbtn.setBounds(120,250,80,40);jbtn1.setBounds(290,250,80,40);//jbtn.setBounds(110,110,50,50);Container con=getContentPane();con.add(list);con.add(jLabel1);con.add(jtf1);con.add(jLabel2);// con.add(jtf2);con.add(jpwf);con.add(jbtn);con.add(jbtn1);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);getRootPane().setDefaultButton(jbtn);setVisible(true);//validate();}void testify(){String str;str=(String)list.getSelectedItem();if(str=="管理员登录"){test_manage();//System.out.println("Hello");}else{test_employee();}//System.out.println(list.getSelectedItem());}图 5-1 登陆界面5.2主菜单界面package salary;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.table.*;import java.util.*;/*public class ManageFrame{public static void main(String[] args){Manage mf=new Manage("工资管理系统");}}*/class ManageFrame extends JFrame{JLabel jLabel1,jLabel2,jLabel4,jLabel5,jLabel6,jLabel7;JTextField jtf1,jtf2,jtf3,jtf4,jtf5;JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8;JComboBox jcb1,jcb2;ManageFrame(String s){super(s);setLayout(null);setBounds(100,100,500,500);jcb1=new JComboBox();jcb1.addItem("1");jcb1.addItem("2");jcb1.addItem("3");jcb1.addItem("4");jcb1.addItem("5");jcb1.addItem("6");jcb1.addItem("7");jcb1.addItem("8");jcb1.addItem("9");jcb1.addItem("10");jcb1.addItem("11");jcb1.addItem("12");jcb2=new JComboBox();jcb2.setBorder(BorderFactory.createTitledBorder("请选择月份"));jcb2.addItem("1");jcb2.addItem("2");jcb2.addItem("3");jcb2.addItem("4");jcb2.addItem("5");jcb2.addItem("6");jcb2.addItem("7");jcb2.addItem("8");jcb2.addItem("9");jcb2.addItem("10");jcb2.addItem("11");jcb2.addItem("12");jLabel1=new JLabel("员工号:");jLabel2=new JLabel("日期:");jLabel4=new JLabel("月");jLabel5=new JLabel("工作天数:");jLabel6=new JLabel("缺席天数:");jLabel7=new JLabel("按月份查询员工工资:");jtf1=new JTextField(10);jtf4=new JTextField(2);jtf5=new JTextField(2);btn1=new JButton("更改基本工资");btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){S_change sc=new S_change("修改工资");}});btn2=new JButton("修改员工信息");btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Alter al=new Alter("修改");}});btn3=new JButton("增加员工");btn3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){IncreaseFrame inf=new IncreaseFrame("增加员工");}});btn4=new JButton("删除员工");btn4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Delete dl=new Delete("删除员工");}});btn5=new JButton("查看所有员工信息");btn5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {// TODO自动生成方法存根lookover();}});btn6=new JButton("确定");btn6.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {// TODO自动生成方法存根count();}});btn7=new JButton("查询");btn7.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){query();}});btn8=new JButton("退出");btn8.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){dispose();}});jLabel1.setBounds(60, 40, 50, 20);jtf1.setBounds(115,40,100,20);jLabel2.setBounds(300,40,30,20);jcb1.setBounds(340,40,45,20);jLabel4.setBounds(395,40,20,20);jLabel5.setBounds(60,80,60,20);jtf4.setBounds(125,80,30,20);jLabel6.setBounds(200,80,60,20);jtf5.setBounds(265,80,30,20);jLabel7.setBounds(80,120,130,30);jcb2.setBounds(215,120,80,50);btn1.setBounds(90,230,130,30);btn2.setBounds(270,230,130,30);btn3.setBounds(100,290,100,30);btn4.setBounds(280,290,100,30);btn5.setBounds(150,370,200,30);btn6.setBounds(340,75,60,30);btn7.setBounds(340,130,60,30);btn8.setBounds(200,420,80,30);Container con=getContentPane();con.add(jLabel1);con.add(jtf1);con.add(jLabel2);con.add(jcb1);con.add(jLabel4);con.add(jLabel5);con.add(jtf4);con.add(jLabel6);con.add(jtf5);con.add(jLabel7);con.add(jcb2);con.add(btn1);con.add(btn2);con.add(btn3);con.add(btn4);con.add(btn5);con.add(btn6);con.add(btn7);con.add(btn8);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setVisible(true);}图5-2 主菜单界面参考文献[1] 耿祥主编.JAVA 2 实用教程.清华大学出版社.2006.8[2] 钱雪忠主编.数据库原理及应用[M].北京邮电大学出版社.2007.8[3] 朱辉生主编.大型数据库系统概论.高等教育出版社.2006.9[4] 陈昊鹏主编.Java编程思想.机械工业出版社.2007.6[5] 李钟尉主编.Java从入门到精通.清华大学出版社.2008.9附件:。