南邮通达资料--简单的工资管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计报告

( 2013 / 2014 学年第 1学期)

题目:模拟工资管理系统

专业: 计算机科学与技术

学生姓名:

班级学号:

指导教师:

指导单位: 南京邮电大学通达学院

日期: 2013年 12月 9日

模拟工资管理系统

一课题内容和要求

工资管理系统是一个单位最基本的一项财务管理,该系统要求实现查找,修改,删除,统计,排序等。所以帐务数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件,数组,指针的各项操作,以及一些基本算法思想的应用。

基本要求:

管理员:

1)以密码系统登录

2)录入员工信息具体工资,计算相应的税金(计算规则参见最新公布的政策)

3)查询并显示所有员工具体信息

4)显示统计信息:员工数目,工资总数和税金总数

5)按照指定条件查询

6)增减具体员工记录

税金政策基本是不同收入等级的工资使用不同的比例收取税金。类似于下表:

工资税金

0~1500 0%(超出部分)

1500~2500 10%(超出部分)

2500~3500 15%(超出部分)

3500~5000 20%(超出部分)

5000~10000 30%(超出部分)

10000~ 40%(超出部分)

员工:

1)以工号为登录ID,密码自己设定;

2)可以查询本人的相关信息;

3)系统提供指定时间间隔的查询功能。

二需求分析

工资管理系统的功能框架图如图1所示。

图一(功能框架图)

(1)根据工资管理系统的要求,设计合适的数据结构。

(2)选择文件存储格式(文本或是二进制)和文件名。

(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。

(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确定义函数类型。

(5)根据设计结果分布开发实现各模块,最后进行总体集成。

三、概要设计

1 主要结构体

class worker

{

public:

worker()

{

}

void show();//职工信息显示

~worker()

{

}

double GetTax (); // 获取缴税

double GetAccumPay (); // 获取实发工资

friend class WorkerList;

private:

string num,name,sex,edu,address,tel;//姓名,性别,教育程度,住址,电话int age,salary,A;//年龄,薪水,税金

};

class WorkerList

{

private:

worker w[N];

int NUM;//用来计算职工数目

int count;//用来暂时记录当前操作第几个职工

public:

void add();//职工信息录入

void sort();//职工信息排序

void search();//职工信息查找

void dele();//职工信息删除

void modify();//职工信息修改

void save();//职工信息以文件形式保存

void showworker();//显示职工信息在屏幕上

void read();

WorkerList()

{

NUM=0;

count=0;

}

};

2 主要函数流程图

(1)登录函数(如图二所示)

图二(登录函数图)(2)职工信息录入如图三所示

图三(录入函数)(3)职工信息查找(如图四所示)

图四(查找函数)(4)职工信息统计(如图五所示)

图五(统计函数)(5)职工信息修改(如图六所示)

图六(修改函数)(6)职工信息删除(如图七所示)

图七(删除函数)(7)职工信息保存(如图八所示)

图八

(8)职工信息排序(如图九所示)

图九

四.源代码

#include

#include

#include

#include

#include

#include"conio.h"

using namespace std;

#define N 100//N作为最大职工总数

int f=0;//f作为开关

string p;//p作为接收菜单选项的字符串int error=0;

void menu();//显示菜单

class worker

{

public:

worker()

{

}

void show();//职工信息显示

~worker()

{

}

double GetTax (); // 获取缴税

double GetAccumPay (); // 获取实发工资

friend class WorkerList;

private:

string num,name,sex,edu,address,tel;//姓名,性别,教育程度,住址,电话int age,salary,A;//年龄,薪水,税金

};

class WorkerList

{

private:

worker w[N];

int NUM;//用来计算职工数目

int count;//用来暂时记录当前操作第几个职工

public:

void add();//职工信息录入

void sort();//职工信息排序

void search();//职工信息查找

void dele();//职工信息删除

void modify();//职工信息修改

void save();//职工信息以文件形式保存

void showworker();//显示职工信息在屏幕上

void read();

WorkerList()

{

NUM=0;

count=0;

}

};

double worker::GetTax () // 缴税

{

if(salary<=1500)

{

return A==0;

}

else

if(salary<=2500)

{

return A=(salary-1500)*10/100;

相关文档
最新文档