功能设计要求
-
输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
-
显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
-
修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
-
删除记录:可删除数据文件中的任一记录。
-
统计: (A)计算各项工资平均工资及总工资,(B)统计符合指定条件(如职工工资前三项之和在3000元以上、30002000元、20001000元) 以内的工资职工人数及占总职工人数的百分比。©按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。
7.保存数据文件功能。
功能模块
1.主函数 main(void):调用设计者的相关信息函数、调用 Menu()函数,实现系统的主要功能处理;
2.主菜单Menu()函数:确定如何选择所需功能,调用数据输入、显示、查找、增加、删除、修改、保存等函数,完成职工工资管理系统的数据处理;
3.数据输入Input():完成职工信息添加;
4.数据修改函数 update():修改职工工资等信息数据;
5.数据删除函数Delete():删除职工信息数据;
6.数据查找函数 select():查找某一职工工资等信息情况;
7.数据统计函数tongji():统计职工人数;
8.数据显示函数print():将职工信息数据显示出来;
9.文件保存函数Save():将录入的职工信息保存到文件;
10 文件读取函数Read(): 从文件中读取职工信息;
代码的流程图
#ifndef __MONEY__
#define __MONEY__
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
#define MAX_NAME 10//定义姓名的最大长度
#define START 3//初始化为职工开辟的空间
#define ADD 5//每次为职工增加的空间
#define FILENAME "staff.dat"//存入的文件名
//定义一个职工类
class Staff
{
public:
//显示职工信息
void print()
{
cout<<id<<" "<<name<<" "<<mon1<<" "<<mon2<<" "<<mon3<<" "
<<mon4<<" "<<mon5<<" "<<Staff::summoney()<<" "<<Staff::avgmoney()<<endl;
}
//求每个人的总工资
double summoney()
{
double sum;
sum= mon1 + mon2 + mon3 + mon4 + mon5;
return sum;
}
//求每个人的平均工资
double avgmoney()
{
double avg;
avg= (Staff::summoney())/5;
return avg;
}
char name[MAX_NAME];
int id ;
double mon1,mon2,mon3,mon4,mon5;
};
//定一个系统类
class System
{
public:
//显示系统内的职工信息
void print()
{
size_t i =0;
if(System::len ==0)
{
cout<<"系统中没有职工信息"<<endl;
}
for(i = 0;i< System::len;i++)
{
(System::staff+i)->print();
}
}
Staff *staff;//职工类的指针
size_t len ;//职工人数
size_t width;//为职工创建的空间大小
};
//初始化系统
void Initclass(System * my_sys);
//添加职工信息
void Input(System * my_sys);
//查找职工信息
void Select(System * my_sys);
//修改职工信息
void Update(System * my_sys);
//删除职工信息
void Delete(System * my_sys);
//统计职工信息
void tongji(System * my_sys);
//求每一项的平均值
void money(System * my_sys);
//从文件读取职工信息
void Read(System *my_sys);
//将职工信息写入文件
void Save(System *my_sys);
//释放动态开辟的空间
void Free(System *my_sys);
#endif //__MONEY__