> # ♻️ 资源
> **大小:** 2.36MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010060**](https://www.yuque.com/sxbn/ks/100010060)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87249013**](https://download.csdn.net/download/s1t16/87249013)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 高级程序设计实验报告
# 一、实验内容
设计一个职工信息管理案例,实现不同类别职工的工资数据。职工的种类包括:正式职工和临时工。定义一个基本的职工类,基本信息包括:编号、姓名、性别、年龄、家庭住址、基本职务工资。派生出正式职工类,增加的属性包括:岗位津贴、养老金、住房公积金、所得税、医疗保险、实发工资;临时工增加的属性包括:奖金、所得税、实发工资。
- 正式职工:实发工资=基本职务工资 + 岗位津贴-养老金-住房公积金-所得税-医疗保险-所得税;
- 临时工:实发工资=基本职务工资 + 奖金-所得税;
基本功能与技术要求
数据文件管理功能:创建新文件、打开文件、保存文件。
计算与统计功能:完成记录中相关数据的统计;
- 能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:工资总额、平均值)
- 计算每个职工的实发工资,排序输出。
记录管理功能:记录的管理采用链表或者指针数组实现。
- 输入/添加/插入记录,并保存到数据文件中。
- 查询、显示记录,根据用户要求按所给编号、姓名、工资等记录关键字排序,查询一个或多个相关联记录的各项信息。
- 修改记录:能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。
- 删除记录:能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能)和物理删除功能,并对新的数据表信息进行文件保存。
# 二、代码说明
## 2.1 类与函数功能
**main**:
主要实现功能选择,运用 flag 变量,用户输入,进入 swith 选择对应功能,在程序的开始和结束及时读取和写入文件,及时更新用户信息。
**print**:
主要负责打印出不同功能下所要对应的界面,有以下函数:
打印选择功能界面:
```c
void printFunction();
```
打印功能一对应界面:
```c
void printFunction1();
```
打印功能一用户选择的数据:
```c
void printFunction1(listpoint1 *head, int i);void printFunction1(listpoint2 *head, int i);
```
打印功能二对应界面:
```c
void printFunction2(listpoint1 *head1, listpoint2 *head2);
```
打印功能三对应界面:
```c
void printFunction3();
```
打印功能四选择界面,以及需要操作的员工类型界面:
```c
void printFunction4(string s);
```
打印功能四选择查询方式界面:
```c
void printFunction4();
```
打印功能五选择更改信息界面:
```c
void printFunction5(listpoint1 *head);void printFunction5(listpoint2 *head);
```
打印功能六选择删除方式界面:
```c
void printFunction6();
```
**function**:
主要负责对员工进行操作的一些函数,其中的函数有以下几个:
建立正式员工对应链表:
```c
typedef struct listpoint1 {
fullTimeEmployee *e;
bool fireEmployee = false;
struct listpoint1 *next;
struct listpoint1 *last;
} listpoint1;
```
建立临时员工对应链表:
```c
typedef struct listpoint2 {
temporaryEmployee *e;
bool fireEmployee = false;
struct listpoint2 *next;
struct listpoint2 *last;
} listpoint2;
```
增加正式员工和临时员工:
```c
void addEmployee(listpoint1 *head);void addEmployee(listpoint2 *head);
```
写入文件:
```c
void writeCsv(fullTimeEmployee e);void writeCsv(temporaryEmployee e);
```
读取 CSV 文件:
```c
void readCsv(listpoint1 *temp);void readCsv(listpoint2 *temp);
```
对员工进行排序:
```c
void update(listpoint1 *temp);void update(listpoint2 *temp);
```
输出员工总工资:
```c
void printWages(listpoint1 *temp, int i);void printWages(listpoint2 *temp, int i);
```
打印单个员工工资:
```c
void printEmployee(listpoint1 *temp);void printEmployee(listpoint2 *temp);
```
打印即将被操作的员工全部信息:
```c
void print(listpoint1 *flag);
void print(listpoint2 *flag);
打印全部员工信息:
void printEmployees(listpoint1 *head);
void printEmployees(listpoint2 *head);
```
按不同方式查找员工:
```c
listpoint1* findEmplpoyee(listpoint1 *head, int i);listpoint2* findEmplpoyee(listpoint2 *head, int i);
```
打印全部查询到的正式员工或临时员工:
```c
void printEmplpoyee(int i, int j, listpoint1 *head1, listpoint2 *head2);
```
更改员工信息:
```c
void changeEmplpoyee(int i,listpoint1 *head1,listpoint2 *head2);
```
删除员工:
```c
void deleteEmplpoyee(int i, int j, listpoint1 *head1, listpoint2 *head2);
```
保存员工信息:
```c
void saveEmployee(listpoint1 *head);void saveEmployee(listpoint2 *head);employee:
```
**主要员工类**,包含了员工的一些基本信息,:
普通员工类:
```c
class employee {
private:
int num = 0; //职工编号
string name = ""; //职工姓名
string gender = ""; //性别
int age = 0; //年龄
string address = ""; //家庭住址
int wages = 0; //基本职务工资
public:
void setNum(int _num);
void setName(string _name);
void setGender(string _gender);
void setAge(int _age);
void setAddress(string _address);
void setWages(int _wages);
void set();
int getNum();
string getName();
string getGender();
int getAge();
string getAddress();
int getWages();
employee();
};
```
派生出正式员工类:
```c
class fullTimeEmployee : public employee {
private:
int moreMoney1 = 0; //岗位津贴
int moreMoney2 = 0; //养老金
int moreMoney3 = 0; //住房公积金
int moreMoney4 = 0; //所得税
int moreMoney5 = 0; //医疗保险
int sumMoney = 0; //实发工资
public:
void setMoney1(int _moreMoney1);
void setMoney2(int _moreMoney2);
void setMoney3(int _moreMoney3);
void setMoney4(int _moreMoney4);
void setMoney5(int _moreMoney5);
void setSumMoney();
void set();
int getMoney1();
int getMoney2();
int getMoney3();
int getMoney4();
int getMoney5();
int getSumMoney();
fullTimeEmployee();
fullTimeEmployee(int i);
};
```
派生出临时员工类:
```c
class temporaryEmployee : public employee {
int moreMoney1 = 0; //奖金
int moreMonry2 = 0; //所得税
int sumMoney = 0; //实发工资
public:
void setMoney1(int _moreMoney1);
void setMoney2(int _moreMoney2);
void setSumMoney();
void set();
int getMoney1();
int getMoney2();
int getSumMoney();
temporaryEmployee();
temporaryEmployee(int i);
};
```
## 2.2 运行截图
开始界面:
![97ed756047ae19890cdb3fa86c05d0ed.png](https://cdn.nlark.com/yuque/0/2023/png/2469055/1699927346320-ddadcf66-4b97-41c7-963e-b392740834b0.png#averageHue=%23232323&clientId=u021b8057-cf75-4&from=paste&height=272&id=PuQx1&originHeight=340&origin
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++实现(控制台)职工信息管理系统【100010060】
共60个文件
png:14个
tlog:12个
obj:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 197 浏览量
2022-12-06
17:01:12
上传
评论 2
收藏 2.37MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010060 设计一个职工信息管理案例,实现不同类别职工的工资数据。职工的种类包括:正式职工和临时工。 基本功能与技术要求 数据文件管理功能:创建新文件、打开文件、保存文件。 计算与统计功能:完成记录中相关数据的统计; 能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:工资总额、平均值) 计算每个职工的实发工资,排序输出。 记录管理功能:记录的管理采用链表或者指针数组实现。 输入/添加/插入记录,并保存到数据文件中。 查询、显示记录,根据用户要求按所给编号、姓名、工资等记录关键字排序,查询一个或多个相关联记录的各项信息。 修改记录:能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。 删除记录:能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能)和物理删除功能,并对新的数据表信息进行文件保存。
资源推荐
资源详情
资源评论
收起资源包目录
100010060-基于C++实现(控制台)职工信息管理系统.zip (60个子文件)
employeemanagement_c
职工工资信息管理系统.vcxproj.user 162B
高级程序设计实验报告.pdf 654KB
temporaryEmployee.csv 230B
function.cpp 22KB
简要介绍.md 3KB
LICENSE 1KB
function.h 2KB
print.cpp 10KB
main.cpp 3KB
x64
Debug
vc141.pdb 548KB
vc141.idb 259KB
职工工资信息管理系统.log 3KB
职工工资信息管理系统.tlog
CL.write.1.tlog 3KB
职工工资信息管理系统.lastbuildstate 272B
CL.command.1.tlog 3KB
link.command.1.tlog 2KB
link.read.1.tlog 4KB
link.write.1.tlog 1KB
CL.read.1.tlog 56KB
function.obj 1.12MB
employee.obj 348KB
print.obj 129KB
main.obj 172KB
img
11-f4f59c7f03ea3e69d1aa74bbccba04fd.png 88KB
14-72e185c2c0c5bd58b679ce4fb20025d1.png 100KB
5-942433290d6c6e1741119d14accb5b04.png 61KB
7-2274e27a2fac58452cc9b894ca476759.png 89KB
12-f20dec78a4c0fc2feb5acf249d9fd05a.png 85KB
4-1ba4f732a2eadce86e72e95acd711f70.png 69KB
9-f974dedc4f9bc6f5e4b3eda33ebe4b1f.png 69KB
6-efaa449f3d9868b9cdfe7f515cb4a655.png 46KB
8-e900c31c76ac53962e29833540bcf241.png 77KB
13-2a25ba5d7c24ca9aaf1ec788d718c8bb.png 79KB
1-5cbf52a0b85d328f98f64479243abd1a.png 60KB
10-f0403235aaa9dfca9afdbeae0f82cbd6.png 76KB
2-04288a96c9848f1e6b15b2a8076d4a89.png 53KB
3-49b0617949eaca2951ced0c0c3a2ca41.png 59KB
print.h 486B
职工工资信息管理系统.vcxproj 6KB
employee.h 2KB
fullTimeEmployee.csv 323B
employee.cpp 4KB
职工工资信息管理系统.vcxproj.filters 1KB
Debug
vc141.pdb 692KB
vc141.idb 275KB
职工工资信息管理系统.log 595B
function.obj.enc 840KB
职工工资信息管理系统.tlog
CL.write.1.tlog 10KB
职工工资信息管理系统.lastbuildstate 248B
CL.command.1.tlog 6KB
link.command.1.tlog 4KB
link.read.1.tlog 8KB
link.write.1.tlog 2KB
CL.read.1.tlog 111KB
function.obj 844KB
main.obj.enc 56KB
employee.obj 264KB
print.obj 112KB
main.obj 144KB
README.md 15KB
共 60 条
- 1
资源评论
- m0_733418612023-06-11发现一个宝藏资源,赶紧冲冲冲!支持大佬~
- m0_504817702023-06-13总算找到了自己想要的资源,对自己的启发很大,感谢分享~
- 普通网友2023-06-27发现一个宝藏资源,赶紧冲冲冲!支持大佬~
神仙别闹
- 粉丝: 2667
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功