南邮通达资料--简单的工资管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;