工资系统实验报告

工资系统实验报告
工资系统实验报告

《工资管理系统》

——软件开发相应文档

目录:

1.实验课程任务和要求------------------- 第2 页

2.可行性分析报告 ------------------- 第3 页

3.需求分析报告 ------------------- 第5 页

4.数据库建立文档 ------------------- 第8 页

5.系统测试及功能介绍 ------------------ 第12页

6.程序代码 ------------------ 第15页

7.学习总结 ------------------ 尾页

一、实验课程任务与要求

目的与任务:

1. 掌握数据库设计和实现的基本过程

2. 掌握数据库模式设计、分析和实现的方法

3. 了解数据库应用系统软件开发的一般过程。

实验基本要求:

(1)学习相关的预备知识

(2)按照数据库设计与实现过程完成数据库的设计,应用程序的开发,上机调试、运行

(3)写出课程设计报告

二、课程设计基础知识

数据库设计与实现的基本过程包括需求分析、概念结构设计、逻辑结构设计、数据库的物理设计以及数据库的实施和维护等内容。需求分析确定系统的数据需求和处理需求;概念结构设计通过对用户需求的综合、归纳和抽象,形成一个独立的概念模型;逻辑结构设计则将概念模型转换为具体的数据库管理系统所支持的数据模型;数据库的物理设计结合应用确定数据模型的存储结构和存取方式。在这些工作完成之后,就可以建立数据库并开始调试运行了,在数据库的运行过程中必须对其进行维护——包括数据库的备份与恢复、性能分析与改进等等。

三。课程设计题目:

工资管理系统

工资管理部门希望建立一个数据库来管理员工的工资。要计算员工的工资,就需要考虑不在休假日期以内的假期、工作期间的病假时间、奖金和扣除的部分。必须指明给每个员工发薪水的方式,随着时间的推移,方式可能会有些改变。大多数的员工是通过银行卡来结算工资的,但是也有一部分人使用现金或支票。如果是通过银行卡,就需要知道账号和卡的类型。付款方式只可能是一种方式。有几种原因可以扣除工资:例如,个人所得税、国家税、医疗保险、退休保险或者预付款。

四、开发环境说明

采用C/S架构,使用Java进行客户端应用程序的开发,

数据库管理系统建议采用SQL SERVER 2000。

《工资管理系统》可行性分析报告

引言:

针对这次数据库课程设计,我们组编写的课程设计题目为《工资管理系统》。为了规范化开发过程。此次设计采用软件开发过程。故先做出如下可行性分析报告。因时间等原因。只考虑部分可行性分析的要求。

一.开发目的:

1编写目的:这份报告目的为了解软件开发的规范过程,指出开发本软件所采用的方法和手段,并对软件的前景以及后续工作进行分析。针对的读者

为指导老师

2 项目背景:

●此次所开发的软件名称为《工资管理系统》

●项目的任务提出者为指导老师。

开发者为我们开发小组。组员有:

因为此次开发为学习过程,故此次所开发的软件无实际用户。

3 参考资料:

《信息系统开发理论教案》,《数据库原理教材》,《可视化编程技术》

二.可行性研究的前提

1 此次开发软件的的基本要求:

●功能:

为某设想企业建立一工资管理系统软件。使该企业能做到对员工的工资况入库。并且能使企业修改资料,让员工能够查询自己的资料。

●完成日期定在08.7.12日

2 此次可行性分析的目标:

了解此次软件开发的基本步骤。根据个人能力做到人力及相应工作的分工。从而提高工作效率

3 决定可行性的主要因素:

这次开发是否可行主要受时间限制。如果时间不够可先完成最基础的功能。留下其他未完善的功能界面,先不编写代码,以后再具体完成。

4 所需人员的专业技术类别和数量:

项目组长一名,程序员两名,数据库设计开发员两名,软件测试员一名。

三.对系统的简要描述:

此次开发的工资管理系统,用户针对企业(假想)以及企业内部的员工。

故应有两层界面,一层为企业管理者提供,另一层为员工提供。管理者有权限查看,添加和修改工资数据。而员工只有查看数据的权限。在录入工资数据时应相应录入员工数据。

系统的程序编写使用JAVA语言。数据库使用SQLSEVER2000.

四:技术可行性评价:

●在限制条件下,功能目的很难全部完成,故可完成基本录入查询修改功能。

●利用现有技术,我们并为接触过软件开发的相关课程。只是曾学习过可

视化编程技术及JAVA编程技术,数据库技术,故简单功能能实现。

●在规定的期限内,开发预计能完成功能有:

人员资料录入,工资资料录入,工资资料查找和输出。权限限制预计无法完成。

五其他可供选择的方案

没有其他的选择方案

六.结论意见

可在预习和熟悉可视化编程,JAVA编程,数据库技术后着手开发。

《工资管理系统》需求分析说明书

1 引言

对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员、管理人员之间的交流、协作。

1.1 编写目的

1.1.1使开发人员能清楚该软件的开发要求和目标,使得此次开发的软件功能完善,满足课题的需求

1.1.2 本说明书的预期读者为指导老师,需求分析人员、程序编写人员,测试

人员、用户文档编写者。

1.2 开发背景

1.2.1 工程的名称:工资管理系统

1.2.2 工程产品的名称:企业工资管理应用软件

1.2.3 产品生产者:计算机1班6人学习小组

1.3 定义,术语:

●工资管理系统软件:它是由我们六人课题学习小组组完全自主开发的工资管理软件,以企业各部门为基本元素的、用图形界面编程来实现其功能的软件。

●需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。

●需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保开发者能明确其含义并找出其中的错误,遗憾或其它不足的地方。

2 项目概述:

2.1 目标:

本软件的目标使企业工资管理电子化、简单化,以方便企业公布,修改员工工资情况。对于企业管理应用系统软件最终用户为:企业的管理人员和企业的员工。

2.2产品功能:

2.2.1 功能简述:

为某设想企业建立一工资管理系统软件。使该企业能做到对员工的工资情况入库。故应有两层界面,一层为企业管理者提供,另一层为员工提供。

管理者有权限查看,添加和修改工资数据。而员工只有查看数据的权限。在录入工资数据时应相应录入员工数据。

2.2.2 功能图:

3.工程开发规划:

通过功能的分析,可知此次开发步骤:

●程序员必须编程完成登陆界面,管理员界面和员工查看界面这三个界面。

●数据库开发人员必须合理建立数据库表,在建立工资资料表的同时,还

应建立对应的管理员资料表,员工其他资料表。使程序不是只能针对工资查询,还应该考虑到其他因素,使软件更加完善。

●完成界面和数据库的连接。

●测试人员需给出相应界面的功能描述文档,制成操作手册。

●最终整理所有开发工程的文档,组合成课题报告。

4.文档:

本系统相关的文档为:

《工资管理应用软件可行性研究报告》

《工资管理应用软件需求说明书》

《工资管理应用软件操作手册》

5.要求设备

a. Microsoft鼠标或其它兼容鼠标;

b. Windows XP中文版或更高操作系统。

6.设计约束条件:

因为课程设计,故无具体分析。

数据库建立文档

1、概念结构设计:

(1)实体设计

工资管理(员工编号,奖金,应发工资,个人所得税,国家税,医疗保险,退休保险,扣除总数,实际工资,银行卡号)

职工信息(员工编号,员工姓名,员工性别,员工年龄,员工职务,员工工龄,银行卡号,上半天数,病假天数,休假天数)

(2)E-R图设计,如下图所示:

(3)创建数据库:根据所设计的概念模型(实体和ER图)建立两个数据库表,如图所示:

(4)数据字典:

(5)数据表字段字典

系统测试及操作介绍

一.系统测试含义和任务

●系统测试是将系统的各个部分连接在一起,对整个系统进行总的功能、性能等方面的测试。系统测试就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。

●系统测试的任务是测试系统各个部分是否能正常配套工作。通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。

●系统测试是保证系统质量的主要手段,对于查找系统缺陷、保证系统质量具有不可替代的作用。

二.系统的性能测试:

系统的性能测试是检测系统是否满足系统分析说明书对性能的要求,验证系统的有效性,检查系统的功能和性能是否与用户的要求一样。

三.操作介绍(附操作图):

1.在工资管理界面中选择职工可进入职工信息查询界面

2.在职工信息查询界面中输入职工编号和姓名可查询出职工的信息,显示职工信息界面。

4.只有在管理员登入界面输入用户名admin和密码123456才能进入管理员界面,显示出职工基本信息和职工的奖金、工资医疗保险、退休保险。

5. 由职工基本信息和职工的奖金、工资医疗保险、退休保险可计算出职工的扣除数和实际工资:输入员工编号。显示员工信息点击确定计算扣除工

资和实际工资

程序代码

主界面

import java.awt.*; import java.awt.event.*; import javax.swing.ImageIcon; import java.sql.*;

class MyPanel extends Panel{ Frame f = null;

public MyPanel(){ }

public MyPanel(Frame f){ this.f = f;

}

public void paint(Graphics g){

//画一幅图

int w = f.getSize().width;//得到当前窗体的宽和高

int h = f.getSize().height;

ImageIcon

imgIcon

=

new

ImageIcon("1.jpg");

Image img = imgIcon.getImage();

g.drawImage(img,0,0,w,h,this);//根据窗体

的大小来存放图片,可以动态调整图片大

}

}

public class SalaytSystemFrame extends Frame{

Panel p; //制作菜单项 MenuBar mb;

Menu empmu,manegmu;

MenuItem empItop,manegItop,allMesge;

EmployeeDemo eTest = null; MagLoginDemo mTest = null;

ShowAllInfo saiTest = null; public SalaytSystemFrame() { super("工资管理系统"); this.init(); }

public void init(){ p = new MyPanel(this);

//关于菜单的制作 mb = new MenuBar();

empmu = new Menu("职员信息");

manegmu = new Menu("管理员");

allMesge = new MenuItem("显示全部信息");

empItop = new MenuItem("打开职工");

manegItop = new MenuItem("打开管理");

empmu.add(empItop);

empmu.add(allMesge);

manegmu.add(manegItop);

mb.add(empmu);

mb.add(manegmu);

empItop.addActionListener(new OnClickDemo());

manegItop.addActionListener(new OnClickDemo());

allMesge.addActionListener(new OnClickDemo());

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

} });

this.add(p);

this.setLocation(100,100);

this.setMenuBar(mb);

this.setSize(800,600);

this.setResizable(false);

this.setVisible(true);

}

private class OnClickDemo implements ActionListener{

public void actionPerformed(ActionEvent e){

if(e.getActionCommand().equals("

打开管理")){

if(mTest == null){

mTest = new MagLoginDemo();

}

else

mTest.setVisible(true);

}

else

if(e.getActionCommand().equals("打开职工")){

if(eTest == null){

eTest = new EmployeeDemo();

}

else

eTest.setVisible(true);

}

else

if(e.getActionCommand().equals("显示全部信息")){

if(saiTest == null){

saiTest = new ShowAllInfo();

}

else

saiTest.setVisible(true);

}

}

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

new SalaytSystemFrame();

}

}

职工信息显示

* @(#)EmployeeDemo.java

import javax.swing.ImageIcon;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

import java.util.List;

import java.util.Map;

import java.util.HashMap;

import java.util.ArrayList;

import java.util.Iterator;

public class EmployeeDemo extends Frame{

Panel pinf,pinfcon;

Label

eNo,eName,onDays,sickDays,restDays,post,lbinf,eSe x,eAge,eWorktime,cardID;

TextField

tfeNo,tfeName,tfonDays,tfsickDays,tfrestDays,tfpost,

tfeSex,tfeAge,tfeWorktime,tfcardID;

Button sure1,cancel1;

ScrollPane sp =null;

ResultSet rs1,rs2,rs3,rs4,rs5,rs6,rs7,rs8,rs9,rs;

List lst1,lst2,lst3,lst4,lst5,lst6,lst7,lst8,lst9,lst;

Object

obj1,obj2,obj3,obj4,obj5,obj6,obj7,obj8,obj9,obj;

DBManager db;

/**

* Creates a new instance of EmployeeDemo.

*/

public EmployeeDemo() {

super("职工信息");

this.init();

}

public void init(){

Panel p2 = new MyPanel(this);

pinf = new Panel();

pinfcon = new Panel();

sp = new ScrollPane();

pinf.setLayout(new BorderLayout(5,5));

pinfcon.setLayout(new GridLayout(6,4,5,5));

lbinf = new Label("输入用户信息");

//面板pinfcon上的标签

eNo = new Label("员工编号");

eName = new Label("员工姓名");

eSex = new Label("员工性别");

eAge = new Label("员工年龄");

post = new Label("员工职务");

eWorktime = new Label("员工工龄");

cardID = new Label("银行卡号");

onDays = new Label("上班天数");

restDays = new Label("休假天数");

sickDays = new Label("病假天数");

sure1 = new Button("确定");

cancel1 = new Button("取消");

//面板1上的文本框

tfeNo = new TextField(20);

tfeName = new TextField(20);

tfeSex = new TextField(20);

tfeAge = new TextField(20);

tfpost = new TextField(20);

tfeWorktime = new TextField(20);

tfcardID = new TextField(20);

tfonDays = new TextField(20);

tfsickDays = new TextField(20);

tfrestDays = new TextField(20);

//把组建添加到显示面板中,该面板的作用是输入员工的编号,在各个文本框中输出相应的信息

pinfcon.add(eNo);pinfcon.add(tfeNo);pinfcon.a dd(sure1);pinfcon.add(cancel1);

pinfcon.add(eName);pinfcon.add(tfeName);pinf con.add(eSex);pinfcon.add(tfeSex);

pinfcon.add(eAge);pinfcon.add(tfeAge);pinfcon. add(post);pinfcon.add(tfpost);

pinfcon.add(eWorktime);pinfcon.add(tfeWorkti me);pinfcon.add(cardID);pinfcon.add(tfcardID);

pinfcon.add(onDays);pinfcon.add(tfonDays);

pinfcon.add(sickDays);pinfcon.add(tfsickDays); pinfcon.add(restDays);pinfcon.add(tfrestDays);

//把显示标签lbinf和pincon分别添加到pinf 的北边

pinf.add(lbinf,BorderLayout.NORTH);

pinf.add(pinfcon,BorderLayout.CENTER);

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

dispose();

}

});

//给按钮添加事件触发

sure1.addActionListener(new OnClickDemo());

cancel1.addActionListener(new OnClickDemo());

pinf.setBackground(Color.pink);

sp.add(pinf);

this.setLocation(200,200);

this.add(sp);

sp.setSize(700,250);

this.setResizable(false);

this.pack();

this.setVisible(true);

}

private class OnClickDemo implements ActionListener{

public void actionPerformed(ActionEvent e){

if(e.getActionCommand().equals("确定")){

db = new DBManager();

String sql = "select 员工姓名from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs = db.getResult(sql);//返回结果集

lst = db.convert(rs);//把结果集转换成list类型的

obj = db.queryOne(sql,lst);//单个查询,

String x1 = obj.toString();

tfeName.setText(x1);

String sSex = "select 员工性别from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs = db.getResult(sSex);//返回resultset类型

lst = db.convert(rs);//返回list类型

obj = db.queryOne(sSex,lst);//返回object 类型

String x2 = obj.toString();

tfeSex.setText(x2);//把结果转换成字符串输出到文本框

String sAge = "select 员工年龄from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs3 = db.getResult(sAge);//返回resultset类型

lst3 = db.convert(rs3);//返回list类型

obj3 = db.queryOne(sAge,lst3);//返回object 类型

tfeAge.setText(obj3.toString());//把结果转换成字符串输出到文本框

String sPost = "select 员工职务from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs4 = db.getResult(sPost);//返回resultset类型

lst4 = db.convert(rs4);//返回list类型

obj4 = db.queryOne(sPost,lst4);//返回object 类型

tfpost.setText(obj4.toString());//把结果转换成字符串输出到文本框

String sWorktime= "select 员工工龄from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs5 = db.getResult(sWorktime);//返回resultset类型

lst5 = db.convert(rs5);//返回list类型

obj5 = db.queryOne(sWorktime,lst5);//返回object 类型

tfeWorktime.setText(obj5.toString());//把结果转换成字符串输出到文本框

String sCardID= "select 银行卡号from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs6 = db.getResult(sCardID);//返回resultset类型

lst6 = db.convert(rs6);//返回list类型

obj6 = db.queryOne(sCardID,lst6);//返回object 类型

tfcardID.setText(obj6.toString());//

把结果转换成字符串输出到文本框

String sOnDays= "select 上班天数from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs7 = db.getResult(sOnDays);//返回resultset类型

lst7 = db.convert(rs7);//返回list类型

obj7 = db.queryOne(sOnDays,lst7);//返回object 类型

tfonDays.setText(obj7.toString());//把结果转换成字符串输出到文本框

String sSickDays= "select 病假天数from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs8 = db.getResult(sSickDays);//返回resultset类型

lst8 = db.convert(rs8);//返回list类型

obj8 = db.queryOne(sSickDays,lst8);//返回object 类型

tfsickDays.setText(obj8.toString());//把结果转换成字符串输出到文本框

String sRestDays= "select 休假天数from 职工信息where 员工编号= '" + tfeNo.getText().trim() + "'";

rs9 = db.getResult(sRestDays);//返回resultset类型

lst9 = db.convert(rs9);//返回list类型

obj9 = db.queryOne(sRestDays,lst9);//返回object 类型

tfrestDays.setText(obj9.toString());//把结果转换成字符串输出到文本框

}

else if(e.getActionCommand().equals("取消")){

tfeNo.setText("");

}

}

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

new EmployeeDemo();

}

}

管理员登录界面

/**

* @(#)MagLoginDemo.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.JOptionPane;

public class MagLoginDemo extends Frame {

Panel p,pInput,pBut;

Label lbName,lbPwd;

TextField tfName,tfPwd;

Button sure,cancle;

ManagementTest mTest = null;

/**

* Creates a new instance of MagLoginDemo.

*/

public MagLoginDemo() {

super("登入界面");

this.init();

}

public void init(){

p = new Panel();

pInput = new Panel();

pBut = new Panel();

lbName = new Label("输入用户名");

lbPwd = new Label("输入密码");

tfName = new TextField(40);

tfPwd = new TextField(40);

sure = new Button("确定");

cancle = new Button("重设");

p.setLayout(new BorderLayout(5,5));

pInput.setLayout(new GridLayout(4,1));

pBut.setLayout(new GridLayout(1,2,5,5));

pInput.add(lbName);

pInput.add(tfName);

pInput.add(lbPwd);

pInput.add(tfPwd);

pBut.add(sure);

pBut.add(cancle);

sure.addActionListener(new OnClickDemo());

cancle.addActionListener(new OnClickDemo());

p.add(pInput,BorderLayout.CENTER);

p.add(pBut,BorderLayout.SOUTH);

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

dispose();

}

});

p.setBackground(Color.cyan);

this.add(p);

this.pack();

this.setSize(250,200);

this.setLocation(500,250);

this.setResizable(false);

this.setVisible(true);

}

private class OnClickDemo implements ActionListener{

public void actionPerformed(ActionEvent e){

if(e.getActionCommand().equals("

确定")){

if(tfName.getText().equals("admin") && tfPwd.getText().equals("123456")){

if(mTest == null){

mTest = new ManagementTest();

dispose();

}

else

mTest.setVisible(true);

}

else

JOptionPane.showMessageDialog(null, "请输入正确用户名和密码");

}

else

if(e.getActionCommand().equals("重设")){

tfName.setText("");

tfPwd.setText("");

}

}

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

new MagLoginDemo();

}

}

管理员界面

import java.awt.*;

import java.awt.event.*;

import javax.swing.ImageIcon;

import java.sql.*;

import java.util.List;

import java.util.Map;

import java.util.HashMap;

import java.util.ArrayList;

import java.util.Iterator;

class ManagementTest extends Frame{

Panel

pin,pincon,pinconinner,pinconmid,pinconbton,p;

Label

award,payMeth,salary,pensTax,staTax,medInsure,retIn sure,actiSalary,

subSly,null1,null2,null3,null4;

TextField

tfaward,tfsalary,tfpensTax,tfstaTax,tfmedInsure, tfretInsure,tfactiSalary,tfhidpay,tfsubSly;

Button sure2,cancel2,sure3,showAll,delete,insert;

Label lbwrt;

CheckboxGroup payM;

Checkbox bankCard,cash,check;

ScrollPane sp ;

ResultSet rs,rsupe,rsupm,rsdele,rsdelm,rsinse;

ShowAllInfo saiTest = null;

DBManager db;

ResultSet

rs1,rs2,rs3,rs4,rs5,rs6,rs7,rs8,rs9,rs10,rs11,rs12,rs13,rs 14,rs15,rs16,rs17;

List

lst1,lst2,lst3,lst4,lst5,lst6,lst7,lst8,lst9,lst,lst10,lst11,lst 12,lst13,lst14,lst15,lst16,lst17;

Object

obj1,obj2,obj3,obj4,obj5,obj6,obj7,obj8,obj9,obj,obj1 0,obj11,obj12,obj13,obj14,obj15,obj16,obj17;

Panel pinf,pinfcon;

Label

eNo,eName,onDays,sickDays,restDays,post,eSex,eAg e,eWorktime,cardID;

TextField

tfeNo,tfeName,tfonDays,tfsickDays,tfrestDays,tfpost,

tfeSex,tfeAge,tfeWorktime,tfcardID;

Button sure1,cancel1;

public ManagementTest(){

super("管理员信息");

this.init();

}

public void init(){

pinf = new Panel();

pinfcon = new Panel();

sp = new ScrollPane();

pinf.setLayout(new BorderLayout(5,5));

pinfcon.setLayout(new GridLayout(6,4,5,5));

//面板pinfcon上的标签

工资管理系统开发实验报告

信息系统设计与开

(1)编写目的 随着社会的发展,中国的中小型企业越来越多,而对企业而言,人力资源是企业最宝贵的资源,也是企业的“生命线”。工资管理又是人力资源管理的重中之重。实行电子化智能化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。实现企业更大的工作效益和利润。提高工作效率,减少人力;节省开支;先前人工劳动的自动化;针对使用企业与人群为中小型的管理者。 (2)背景 借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势,企业要在当今激烈的社会竞争中生存并发展,单靠人工或九十年代的手动,机械化操作是不够的,社会的发展,要求企业要跟上时代的步伐,抓住新时代的新科技的机遇,运用自动化,智能化的电脑管理,实现企业的高效益发展,这其中,企业员工的工资管理,对一个企业起着很关键的作用。因此开发一个能自动化的管理企业员工工资的发放,员工内部信息的管理,企业招聘的管理等功能的系统,对一个企业的发展铺上了一条奔向高速发展的道路。在一个企业中,工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

操作系统实验报告三

课程实验报告 课程名称姓名实验名称实验目的及要求 实验3进程并发与同步 1、加深对进程概念的理解,区分进程并发执行与串行执行; 2、掌握进程并发执行的原理,理解进程并发执行的特点; 3、了解fork()系统调用的返回值,掌握用fork()创建进程的方法;熟悉wait、exit等系统调用; 4、能利用相应的系统调用实现进程树与进程间的同 步。 实 验操作系统:linux Un bu ntu 11.10 环 境实验工具:Vmware 实验内容 1、编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father ”,儿子进 程执行时屏幕显示“ I am son ",女儿进程执行时屏幕显示“ I am daughter ”。 要求多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。要求有运行结果截图与结果分析 2、连续4个fork()的进程家族树,family1-1.c 程序清单如下: #in clude main () { fork(); fork(); fork(); fork(); printf( A\n ”); } 请根据程序运行结果,画出进程家族树,并分析原 因。

3、 修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束, 才可以输出消息。 写出相应的同 步控制,并分析运行结果。 4、 创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 写出相应的程序代码并分析程序运行结果。 1、编写一 C 语言程序,实现在程序运行时通过系统调用 fork()创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“ I am father ”, 儿子进程执行时屏幕显示“ I am son ”,女儿进程执行时屏幕显示“ I am daughter "。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用 wait 、exit 等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ ls -I ”,已知 该键盘命令的路径与文件名为: /bin/ls 。父进程创建子进程, 并加载./child2 程序。 法 描 述 及 实 验 步 骤 调 试过 程及实 验结果

薪资管理实验报告

篇一:erp 薪资管理系统实验报告 《erp》实验报告(二) 专业班级学号姓名 实验时间课时数: 4 实验名称: 薪资管理系统 一、实验目的 系统学习薪资系统初始化、日常业务处理的主要内容与操作方法。 二、实验要求 要求掌握建立工资帐套、建立工资类别、建立人员类别、设置工资项目与计算公式的方法。了解工资帐套与企业帐套的区别;掌握工资项目与计算公式的方法。了解工资企业与企业帐套的区别;掌握工资数据计算、个人所得税计算的方法;掌握工资分摊与生成转账凭证的方法。三、实验内容及过程 ●实验一:薪资管理系统初始化 1、建立工资套 (1)执行“基础设置”|“基本信息”|“系统启用”,进行重注册。 (2)执行“人力资源”|“薪资管理”,打开“建立工资套—参数设置”,工资类别选择“多个”。 (3)打开“建立工资套—扣税设置”|“就是否从工资中代扣个人所得税”,点下一步,打开“建立工资套—扣税设置”|“扣零”|“扣零至元??”,点下一步,完成。 2、设置人员附加信息 (1)执行“设置”|“人员附加信息设置”,单击“增加”|“栏目参照”|“性别”,同理增加“学历”。 3、设置工资项目 (1)执行“设置”|“工资项目设置”,“增加”所给的工资项目资料。(2)点“确定”“退出”。 4、设置银行名称 (1)执行“基础档案”|“收付结算”|“银行档案”。 (2)按实验资料修改已有银行名称信息。 5、建立工资类别 (1)执行“工资类别”|“新建工资类别”,输入工资类别名称。 (2)下一步,打开“新建工资类别—请选择部门”|“选定全部部门”,点完成退出。 6、设置在岗人员工资套人员档案 (1)执行“工资类别”|“打开工资类别”|“在岗人员”,单击“确定”。 (2)执行“设置”|“人员档案”。 (3)单击“增加”,打开“人员档案明细”,输入所给的资料。 7、设置在岗人员工资类别的工资项目 (1)执行“设置”|“工资项目设置”,增加工资项目,并将工资项目移动到相应的位置。 8、设置“缺勤扣款”与“住房公基金”的计算公式 (1)在工资项目设置对话框中单击“公式设置”,打开“工资项目设置—公式设置”。 (2)单击“增加”,选择“缺勤扣款”|“缺勤扣款公式定义”,录入“缺勤扣款”的计算公式,同理设置“住房公积金”的计算公式。 9、设置“交通补贴”的计算公式 (1)在“工资项目设置—公式设置”,增加“交通补贴”的计算公式。 ●实验二:薪资管理业务处理 1、确认个人收入所得税的计提基数 (1)增加会计科目“221101 应付工资”“221102 应付福利费”。 (2)选择“人力资源”|“薪资管理”,打开“工资类别”|“在岗人员”,点确定。 (3)执行“业务管理”|“扣款所得税”,单击“确定”进入“个人所得税扣款申请表”。

用友U8工资系统操作实例实验报告

一、实验目的: 通过上机实验,熟悉工资系统初始化和业务处理的各项功能,理解工资系统初始化和业务处理的基本步骤,掌握工资系统初始化和业务处理的操作技能。同时理解并掌握工资系统与总账系统的数据关系。 二、实验内容: ①系统初始化: 1. 建立工资账套 2. 基础设置 3. 设置工资项目 4. 设置人员档案 5. 设置工资计算公式 ②业务处理: 1. 工资变动数据管理 2. 扣缴个人所得税 3. 银行代发工资 4. 分摊工资并生成转账凭证 5. 查询记账凭证。 三、实验步骤: 实验步骤流程图 参数设置 扣税设置 扣零设置 人员编码设置 部门设置 人员类别设置 人员附加信息设置 工资项目设置 银行名称设置 人员档案设置 计算公式设置

(一)建立工资账套 调用用友“工资”启动程序,进入注册登陆画面。由于所选账套是首次使用,系统自动进入工资建账套向导状态。在向导状态下,完成如下参数设置: 工资类别:单类别;核算币种:人民币RMB;扣税设置:代扣个人所得税;扣零设置:不进行扣零处理;人员编码长度:3。 注:关于工资类别设置:如果企业中所有员工的工资发放项目相同、工资计算方法也相同,那么可以对全部员工进行统一的工资核算方案,对应地选择系统提供的单工资类别应用方案;如果企业存在下列情况之一,则需要选择系统提供的多工资类别应用方案。首先,企业存在不同类别的人员,不同类别的人员工资发放项目不同、计算公式也不相同,但需要进行统一的工资核算管理,如企业需要分别对在职人员、退休人员等进行工资核算等情况。其次,企业每月进行多次工资发放,月末需要进行统一核算。再次,企业在不同地区设有分支机构,而工资核算由总部统一管理或工资发放使用多种货币。 如果在建账过程中选择进行多工资类别核算,系统会提示建立相关工资类别。完成后会出现“打开工资类别”选项,通过该选项可以对各工资类别基础信息分别进行设置。 (二)基础档案设置 建立工资账套以后,要对整个系统运行所需的一些基础信息进行设置。包括部门设置、人员类别设置、人员附加信息设置部门设置、银行名称设置、 人员档案设置等,可以由企业自行设计工资项目及计算公式。 ①人员类别设置 实验中,人员类别包括:企业管理人员、基本生产人员、车间管理人员、辅助车间人员、销

操作系统实验报告三

课程实验报告

3、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。写出相应的同步控制,并分析运行结果。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。写出相应的程序代码并分析程序运行结果。 算法描述及实验步骤 1、编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进 程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”, 儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。并且反复的测试,观察每一次的执行的顺序有什么不同 2、修改程序1,在父、子进程中分别使用wait、exit等系统调用“实现”其同 步推进,父进程必须等待儿子进程与女儿进程结束,才可以输出消息。 4、创建一个子进程,并给它加载程序,其功能是调用键盘命令“ls -l”,已知该键盘命令的路径与文件名为:/bin/ls。父进程创建子进程,并加载./child2程序。 调试过程及实验结果

总结 1、实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。这一点需要注意。返回结果时,由于每一次的不确定性,所以要想得到比较具有说服性的,就必须经过多次的测试。 2、连续4个fork()的进程家族树在进行实验的时候可能会出现进程输出信息一直一样的情况,需要多次执行输出才有可能会看到输出结果不一样的情况

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

人事工资管理系统实验报告

武汉工业学院 数据库应用系统设计 实验报告 学号:090501102 姓名:毕波 班级: 计算机091 指导教师:

人事工资管理系统 设计总说明:在当今社会,工资管理是一项必要而且很关键的工作。现在随着企业数量的急剧增加,处理人们的工资数据变的越来越烦琐艰巨。如今,计算机已经普及到了几乎每个学校、家庭,我们的学习和生活已经处处离不开计算机的存在。 本系统依据开发要求主要应用于企业人事系统,完成对日常的工资增删查改的数字化管理。比较系统地对员工的信息和工资进行管理,查询、增添、修改、删除都变的非常简便,节省了大量的工作量。 本课程设计是在学习了《数据库应用系统》和相关开发软件课程之后,让学生通过实际项目的设计、开发,培养学生独立进行数据库软件的建模、在计算机中进行数据库设计、并通过相关软件开发系统的能力。 本系统的基本功能包括:部门信息的管理(查询、添加、修改、删除学生部门等)、职员信息的管理(录入、查询、修改、删除员工的信息等)、工资信息的管理(录入、查询、修改员工的工资等)。 本系统主要用于对员工工资进行管理,能够进行插入、删除、修改、查询和显示员工的信息。登录该系统时,用户需要输入口令和密码,以确保数据的安全性,成功登录的用户,可以插入员工的信息和工资,并对员工的信息和工资进行增、删、改操作。 基于上述想法,我们将员工数据保存到数据库中。我们要求系统能够高效快速的处理数据,并且要保证数据的正确性、相容性和安全性。所以在数据库中需要定义很多触发器,比如删除了某个员工的信息则删除对应的所有工资信息、活着删除了某部门则删除该部门所有的信息等。 所以我们要从数据库中读取数据,并且和界面联系起来,同时也能将用户界面上的数据存储到数据库中。以上是设计此系统应该注意的地方和设计原则,以下就是遵循这些原则和标准设计出的一套完整的管理系统。

操作系统实验报告 实验三

昆明理工大学信息工程与自动化学院学生实验报告 (2012 —2013 学年第二学期) 课程名称:操作系统开课实验室:信自楼445 2013 年 5 月 16 日 一、实验要求 对给定的一个页面走向序列,请分别用先进先出算法和二次机会算法,计算淘汰页面的顺序、缺页次数和缺页率,具体的页面走向可参考教材例题或习题。 二、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。通过本次实验,要求学生通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解,通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 三、实验原理及基本技术路线图(方框原理图) 用C或C++语言模拟实现请求式分页管理。要求实现:页表的数据结构、分页式内存空间的分配及回收(建议采用位图法)、地址重定位、页面置换算法(从FIFO,LRU,NRU中任选一种)。 提示:可先用动态申请的方式申请一大块空间,然后假设该空间为内存区域,对该空间进行

流程图:

数据结构定义: 我提供定义了两个类。第一个类就是页面类,在这类里面包括一些重要的数据成员。

有页号(page_no),页框号(frame_no),页面是否在内存的标志(flag(1表示在内存,0表示不在内存)),访问次数(times)。另一个类是进程控制块类PCB。类的数据成员有id(进程编号),name(进程名),size(进程大小),*p(页类指针)。在本类中,有一些成员函数:构造函数(用来初始化本类的所有数据),displayPCB(输出函数),convert(地址映射函数),allocation(分配函数),restore(回收函数)。另外还有一些类外的函数:initMemorySpace(初始化内存空间的函数),displayMemorySpace(输出内存空间的状态1(表示占用)0(表示空))。 四、所用仪器、材料(设备名称、型号、规格等)。 计算机一台 五、实验方法、步骤 程序代码: #include #include #include using namespace std; const int frame_size=1024;//页框长度,固定为 1k const int page_size=1024;//页面长度,固定为 1k const int memory_size=102400;//内存容量,固定为 100k const int frame_number=memory_size/frame_size;// 100k/1k=100 frames int *memory;//指针变量,用来存内存的状态1还是0。 void initMemorySpace()//初始化内存空间 { int i,ran,times; time_t t;//定义time_t对象 t t=time(0); srand(t);//随机改变每秒 times=0;//变量times初始化为0,变量的功能是检查内存空间是否有一半空了没。 memory=new int[frame_number];//申请内存空间,有frame_number 这么大的空间 for(i=0;i

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

ERP1---用友ERP财务管理系统实验报告

用友ERP财务管理系统实验报告 ERP财务管理系统实验这门教程共分为八章,以用友ERP-U8.72为实验平台,以一个单位的经济业务贯穿始终,分别介绍了ERP财务管理系统中最重要和最基础的总账、报表、薪资管理、固定资产、应收款管理和应付款管理6个子系统的应用方法。 用友ERP财务管理系统是“用友U8软件系统”中是核心的模块和职能,负责三大模块中的财务链。企业在实施信息化管理的时候,必须要紧紧围绕着财务管理系统,使传统的财务会计核算职能,可以向财务分析、预测职能转变,提供决策相关的高质量财务信息。实时、持续、多元化的财务信息,以供企业决策使用。在ERP 系统条件下,企业的各项生产经营活动实时地反映在系统中,各项生产经营活动指标都是企业当前的状况。 本实验报告要针对的实验项目是财务管理系统中薪资管理子系统的应用方法。 一、实验目的 (一)掌握薪资系统初始化 (二)掌握薪资系统日常业务的处理 二、实验内容 (一)薪资系统初始化 1.建立工资账套 2.基础设置 3.工资类别管理 4.设置在岗人员账套的工资项目 5.设置人员档案 6.设置计算公式 (二)薪资系统日常业务的处理 1.对在岗人员进行薪资核算与管理 2.录入并计算一月薪资数据 3.扣缴所得税 4.银行代发工资 5.工资分摊并生成转账凭证 6.月末处理 7.查看工资发放条 8.查看部门工资汇总表

9.按部门进行工资项目构成分析 10.查询1月份工资核算的记账凭证。 三、实验步骤 (一)薪资系统初始化 1.以账套主管的身份注册进入企业应用平台,启用薪资管理系统。 2. 在企业应用平台中,执行“人力资源”|“薪资管理”命令,打开“建立工资套|参数设置对话框”,按照要求建立工资套: ①选择本账套需要处理的工资类别个数为“多个”; ②单击“下一步”,在“建立工资套|扣税对话框”中选中“是否从工资中代扣个人所得税”复选框; ③单击“下一步”,在“建立工资套|扣零设置”中选中“扣零至元” ④继续单击“下一步”和“完成”,完成建立工资套的过程。 3. 执行“设置”|“人员附加信息设置”命令,打开“人员附加信息设置”对话框,设置人员附加信息:单击“增加”按钮,单击“栏目参照”栏的下三角按钮,依次选择“性别”、“学历”等。如果工资管理系统提供的有关人员的基本信息不能满足实际需要,可以根据需要进行人员附加信息的设置。 4. 执行“设置”|“工资项目设置”命令,设置工资项目: ①单击“增加”按钮,从“名目参照”下拉列表中选择“基本工资”,默认类型为“数字”,小数位为“2”,增减项为“增项”,同理,增加“职务补贴”、“福利补贴”等工资项目。 ②单击“确定”按钮,系统弹出“工资项目已经改变,请确认各工资类别的公式是否正确,否则计算结果可能不正确”信息提示框,单击“确定”,完成工资项目的设置。 5. 在企业应用平台的“基础设置”选项卡中,执行“基础设置”|“收费结算”|“银行档案”命令,设置银行名称,根据实验资料修改已有银行的名称信息,完成后单击“退出”按钮退出。 6.在薪资管理系统中,执行“工资类别”|“新建工资类别”,建立工资类别:①输入工资类别名称“在岗人员” ②单击“下一步”,打开“新建工资类别——请选择部门”对话框,分别打击选择各部门 ③单击“完成”按钮,系统提示“是否以2009—01-01为当前工资类别的

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

ERP实验报告-薪资管理系统

《 ERP 》实验报告(二 ) 专业班级学号姓名 实验时间 3月27日课时数:8 实验名称:薪资系统管理 (以下内容:字体小四,单倍行距。整篇报告至少5页,其中实验总结至少1页。) 一、实验目的 系统学习薪资系统初始化.日常业务处理的主要内容和操作方法。要求掌握建立工资套帐,建立工资类别,建立人员类别,设置工资项目和计算公式的方法。了解工资帐套与企业帐套的区别;掌握工资数据计算,个人所得税计算的方法;掌握工资分摊和生成转账凭证的方法。熟悉查询有关帐表资料并进行统计分析的方法。 二、实验要求 实验一:建立工资帐套 基础设置 工资类别设置 设置在岗人员工资帐套的工资项目 设置人员档案 设置计算公式 帐套备份 实验二:薪资管理业务处理

对在岗人员进行薪资核算与管理 录入并计算1月份的薪资数据 扣缴所得税 银行代发工资 工资分摊并生成转账凭证 月末处理 查看工资发放条 查看部门工资汇总表 按部门进行工资项目构成分析 查询1月份工资核算的记账凭证 帐套备份 三、实验内容及过程 实验一: 1.建立工资套 (1)在企业应用平台中,执行“人力资源”“薪资管理”命令,打开“建立工资套帐—参数设置”对话框。 (2)选择本帐套所需处理的工资类别个数为多个 (3)单击“下一步”按钮,打开“建立工资套扣税设置”对话框,选中“是否从工资中代扣个人所得税”复选框,单击“下一步”按钮,打开“建立工资套扣0设置”对话框。 (4)单击选中“扣0”前的复选框,再选择‘“扣0至元.......” (5)单击下一步 (6)点击完成 2.设置人员附加信息 (1)执行“设置”“人员附加信息设置”命令,打开“人员附加信息设置”对话 框。 (2)单击“增加”按钮,单击“栏目参照”栏的下三角按钮,选择“性别”同理, 增加“学历”。

薪酬管理实验报告

《薪酬管理》实验报告 实验一:组织规划、职员管理 这是学习自北森人事测评软件之后接触的第二个人力资源管理软件。金蝶人力资源管理软件是一个综合性的软件,其功能涵盖了大部分的人事管理功能,将管理这门艺术变得更为规范化有利于我们加深对人力资源管理的理解。在下面为时一周的上机课程中我们将学习操作金蝶K/3软件。 在组织规划的相关试验中包括组织机构、职务设置、职位设置的新增、修改、移动及删除操作等。组织规划的意义在于组织的变动对于企业来说是必然的,组织结构是企业为了达到战略目标的一种手段,如果企业的组织战略发生了重大变化,组织结构也会发生变化来服务于战略。由于企业外部环境与企业自身条件都是时刻变化的,因而战略是时时刻刻需要改进的,组织结构的变化也就因此成为了必然的,所以组织规划对于企业来说至关重要。组织架构变动的内容有很多,最基本的就是人事变动,包括人员入职、转正、人员调动、人员晋升、人员离职、人员退休等,在实验中有相关的操作来将这些人事变动数据化,服务于人事管理。职位层级是根据员工履行岗位职责的程度而赋予员工的职位级别,在设置和调整职位层级时,要根据岗位说明做具体的分析,灵活运用职位层级的属性。 实验二:薪酬设计 薪酬设计的流程包括一开始的薪酬项目,薪点项目,计算项目的属性的设置,薪酬方案的确定,然后确定薪酬公式,定薪调薪等。其中,薪酬项目,薪点项目,计算项目的属性设置属于薪酬设计的基础设置。薪酬方案设置包括薪酬方案和公式设置,在操作时需要进行灵活调整。薪酬设计的过程较为繁琐,而且更为灵活,需要结合实际情况设计出合理的方案。合理的薪酬方案与人力资源管理的其他职能也有必要联系,一定要根据职位说明书做出准确的岗位评价,还要薪酬调查等。

计算机操作系统 实验报告

操作系统实验报告 学院:计算机与通信工程学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 成绩: 2014年 1 月 1 日

实验一线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码; (2)修改EOS的源代码,为线程增加挂起状态。 2 完成的实验内容 2.1 EOS线程状态转换过程的跟踪与源代码分析 (分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) 1.EOS 准备了一个控制台命令“loop ”,这个命令的命令函数是 ke/sysproc.c 文件中的ConsoleCmdLoop 函数(第797行,在此函数中使用 LoopThreadFunction 函数(第755 行)创建了一个优先级为 8 的线程(后面简称为“loop 线程”),该线程会在控制台中不停的(死循环)输出该线程的ID和执行计数,执行计数会不停的增长以表示该线程在不停的运行。loop命令执行的效果可以参见下图: 2. 线程由阻塞状态进入就绪状态 (1)在虚拟机窗口中按下一次空格键。 (2)此时EOS会在PspUnwaitThread函数中的断点处中断。在“调试”菜单中选择“快速监视”,在快速监视对话框的表达式编辑框中输入表达式“*Thread”,然后点击“重新计算”按钮,即可查看线程控制块(TCB)中的信息。其中State域的值为3(Waiting),双向链表项StateListEntry的Next和Prev指针的值都不为0,说明这个线程还处于阻塞状态,并在某个同步对象的等待队列中;StartAddr域的值为IopConsoleDispatchThread,说明这个线程就是控制台派遣线程。 (3)关闭快速监视对话框,激活“调用堆栈”窗口。根据当前的调用堆栈,可以看到是由键盘中断服务程序(KdbIsr)进入的。当按下空格键后,就会发生键盘中断,从而触发键盘中断服务程序。在该服务程序的最后中会唤醒控制台派遣线程,将键盘事件派遣到活动的控制台。 (4)在“调用堆栈”窗口中双击PspWakeThread函数对应的堆栈项。可以看到在此函数中连续调用了PspUnwaitThread函数和PspReadyThread函数,从而使处于阻塞状态的控制台派遣线程进入就绪状态。 (5)在“调用堆栈”窗口中双击PspUnwaitThread函数对应的堆栈项,先来看看此函数是如何改变线程状态的。按F10单步调试直到此函数的最后,然后再从快速监视对

操作系统实验报告

操作系统实验报告 银行家算法 班级:计算机()班 姓名:李君益 学号:(号) 提交日期: 指导老师: 林穗 一、设计题目 加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、设计要求

内容: 编制银行家算法通用程序,并检测思考题中所给状态的安全性。 要求: (1)下列状态是否安全?(三个进程共享个同类资源) 进程已分配资源数最大需求数 (状态) (状态) (2)考虑下列系统状态 分配矩阵最大需求矩阵可用资源矩阵 问系统是否安全?若安全就给出所有的安全序列。若进程请求(),可否立即分配? 三、设计分析 一.关于操作系统的死锁 .死锁的产生 计算机系统中有许多独占资源,他们在任一时刻只能被一个进程使用,如磁带机,绘图仪等独占型外围设备,或进程表,临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据库错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一辞源的能力。一个进程需要使用独占型资源必须通过以下的次序: ●申请资源 ●使用资源 ●归还资源 若申请施资源不可用,则申请进程进入等待状态。对于不同的独占资源,进程等待的方式是有差别的,如申请打印机资源、临界区资源时,申请失败将一位这阻塞申请进程;而申请打开文件文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。只得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。 在许多应用中,一个进程需要独占访问多个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。这种现象称为“死锁”。 2.死锁的定义 一组进程处于死锁状态是指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的时间,则称一组进程或系统此时发生了死锁。 .死锁的防止 .死锁产生的条件: ●互斥条件

会计电算化实训实验报告讲解

实验报告 实验课名称:会计电算化案例实训 学生姓名:------- 专业班级: 学号: 开课时间:1-13周 教务处制

《会计电算化》实验报告 实验序号: 1 实验项目名称:建账及财务分工 学号姓名专业、班级 实验地点计算机楼302 指导教师时间2014-03-07 一、实验目的及要求 建立账套、财务分工、基础档案的设置 二、实验设备(环境)及要求 计算机平台:windows xp 软件环境:sql server2000、用友8.52 三、实验内容与步骤 1、添加用户 2、建立账套 3、财务分工 4、数据备份 四、实验结果与数据处理 建立起怡讯公司2009年1月份账套、并对账套主管、出纳、应收会计、应付会计、总账会计进行权限分配,最终输出账套 五、分析与讨论 通过“建账及财务分工设置”的学习,我掌握了新建帐套的方法以及给账套用户分配权限的功能,为电算化这门课程以后的学习奠定了基础。在实训的过程中,我意识到了认真谨慎的重要性,为了防止给以后的操作带来不便,现在的每一个流程都必须做到万无一失。这和我们在会计上要求的谨慎性原则是一致的。会计电算化对我们学会计的人来说是必须得掌握的一种知识和技能,对我们以后的工作起着非常重要的作用。所以说,在现在以及以后的电算化理论和案例实训的学习过程中,我们必须用端正的态度和求知的欲望学好这门课程! 成绩 六、教师评语 思路清晰,能顺利完成实验 签名:日期:2014-03-07

《会计电算化》实验报告 实验序号:2 实验项目名称:基础档案设置 学号姓名专业、班级 实验地点计算机楼302 指导教师时间2014-03-14 一、实验目的及要求 通过实训掌握各项基础档案的内容及设置方法 二、实验设备(环境)及要求 计算机平台:windows xp 软件环境:sql server2000、用友8.52 三、实验内容与步骤 1、引入上次实验备份的账套 2、设置部门档案、职员档案、客户档案、供应商档案 3、设置会计科目 4、设置凭证类型、外币、项目档案、结算方式、指定科目 5、备份账套数据 四、实验结果与数据处理 引入怡讯公司2009年1月份账套,并对基础档案进行设置,最终输出账套 五、分析与讨论 通过实训我掌握了各项基础档案的内容及设置方法,为电算化这门课程以后的学习奠定了基础。会计电算化对我们学会计的人来说是必须得掌握的一种知识和技能,对我们以后的工作起着非常重要的作用。在实训的过程中,按照案例实训的步骤依次设置,内容较多,需要很细心,要遵循会计的谨慎性原则。在现在以及以后的电算化理论和案例实训的学习过程中,我们必须用端正的态度和求知的欲望学好这门课程,同时也为我们以后从事会计工作做了准备! 成绩 六、教师评语 思路清晰,过程完整,实验感想深刻并且有个人见解 签名:日期:2014-03-14

操作系统实验报告

操作系统教程实验报告 专业班级 学号 姓名 指导教师

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows “命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序:E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环:

操作系统实验报告.

学生学号0121210680225 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李安福 学生专业班级软件sy1201 2014 — 2015 学年第一学期

《操作系统》实验教学大纲 课程编号: 课程名称:操作系统/Operating System 实验总学时数:12学时 适应专业:计算机科学与技术、软件工程 承担实验室:计算机科学与技术学院实验中心 一、实验教学的目的和任务 通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。 二、实验项目及学时分配 序号实验项目名称实验学时实验类型开出要求 01 Linux键盘命令和vi 2 设计必开 02 Linux下C编程 2 设计必开 03 SHELL编程和后台批处理 2 设计必开 04 Linux系统调用(time) 2 设计必开 05 Linux进程控制(fork) 4 设计必开 三、每项实验的内容和要求: 1、Linux键盘命令和vi 要求:掌握Linux系统键盘命令的使用方法。 内容:见教材p4, p9, p40, p49-53, p89, p100 2、Linux下的C编程 要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。 内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。 3、SHELL编程和后台批处理 要求:掌握Linux系统的SHELL编程方法和后台批处理方法。 内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。 (2) 将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。 (3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键 盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容, 然后输出到屏幕。 4、Linux系统调用使用方法。

薪资管理实验报告

篇一:erp 薪资管理系统实验报告 《erp》实验报告(二) 专业班级学号姓名 实验时间课时数: 4 实验名称:薪资管理系统 一、实验目的 系统学习薪资系统初始化、日常业务处理的主要内容和操作方法。 二、实验要求 要求掌握建立工资帐套、建立工资类别、建立人员类别、设置工资项目和计算公式的方法。了解工资帐套与企业帐套的区别;掌握工资项目和计算公式的方法。了解工资企业与企业帐套的区别;掌握工资数据计算、个人所得税计算的方法;掌握工资分摊和生成转账凭证的方法。 三、实验内容及过程 ●实验一:薪资管理系统初始化 1、建立工资套 (1)执行“基础设置”|“基本信息”|“系统启用”,进行重注册。 (2)执行“人力资源”|“薪资管理”,打开“建立工资套—参数设置”,工资类别选择“多个”。 (3)打开“建立工资套—扣税设置”|“是否从工资中代扣个人所得税”,点下一步,打开“建立工资套—扣税设置”|“扣零”|“扣零至元??”,点下一步,完成。 2、设置人员附加信息 (1)执行“设置”|“人员附加信息设置”,单击“增加”|“栏目参照”|“性别”,同理增加“学历”。 3、设置工资项目 (1)执行“设置”|“工资项目设置”,“增加”所给的工资项目资料。(2)点“确定”“退出”。 4、设置银行名称 (1)执行“基础档案”|“收付结算”|“银行档案”。 (2)按实验资料修改已有银行名称信息。 5、建立工资类别 (1)执行“工资类别”|“新建工资类别”,输入工资类别名称。 (2)下一步,打开“新建工资类别—请选择部门”|“选定全部部门”,点完成退出。 6、设置在岗人员工资套人员档案 (1)执行“工资类别”|“打开工资类别”|“在岗人员”,单击“确定”。 (2)执行“设置”|“人员档案”。 (3)单击“增加”,打开“人员档案明细”,输入所给的资料。 7、设置在岗人员工资类别的工资项目 (1)执行“设置”|“工资项目设置”,增加工资项目,并将工资项目移动到相应的位置。 8、设置“缺勤扣款”和“住房公基金”的计算公式 (1)在工资项目设置对话框中单击“公式设置”,打开“工资项目设置—公式设置”。 (2)单击“增加”,选择“缺勤扣款”|“缺勤扣款公式定义”,录入“缺勤扣款”的计算公式,同理设置“住房公积金”的计算公式。 9、设置“交通补贴”的计算公式 (1)在“工资项目设置—公式设置”,增加“交通补贴”的计算公式。 ●实验二:薪资管理业务处理

相关文档
最新文档