下面是对于“C语言实现职工工资管理系统的示例代码”的完整攻略,包含了过程、示例说明以及代码实现:
1. 需求分析
该工资管理系统主要包括以下功能:
- 录入职工信息
- 查询职工信息
- 删除职工信息
- 修改职工信息
- 计算职工工资
根据上述需求,我们可以将职工信息抽象为一个结构体,包括工号、姓名、性别、年龄、基本工资等成员变量。通过调用各种函数实现各项功能,并将所有信息存储在文件中。
2. 代码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
// 定义职工信息结构体
struct Employee {
char id[10];
char name[20];
char sex[5];
int age;
double baseSalary;
};
// 初始化职工数组
struct Employee employees[MAXSIZE];
int size = 0;
// 显示主菜单
void showMenu() {
printf("====== 工资管理系统 ======\n");
printf("1. 录入职工信息\n");
printf("2. 查询职工信息\n");
printf("3. 删除职工信息\n");
printf("4. 修改职工信息\n");
printf("5. 计算职工工资\n");
printf("6. 退出系统\n");
printf("==========================\n");
printf("请选择操作选项:");
}
// 录入职工信息
void addEmployee() {
printf("\n====== 录入职工信息 ======\n");
// 输入职工信息
printf("请输入工号:");
scanf("%s", employees[size].id);
printf("请输入姓名:");
scanf("%s", employees[size].name);
printf("请输入性别:");
scanf("%s", employees[size].sex);
printf("请输入年龄:");
scanf("%d", &employees[size].age);
printf("请输入基本工资:");
scanf("%lf", &employees[size].baseSalary);
size++;
printf("\n录入成功!\n");
}
// 查询职工信息
void showEmployee() {
printf("\n====== 查询职工信息 ======\n");
// 输入要查询的工号
char id[10];
printf("请输入要查询的工号:");
scanf("%s", id);
// 查找职工信息
int i;
for (i = 0; i < size; i++) {
if (strcmp(employees[i].id, id) == 0) {
printf("工号:%s\n", employees[i].id);
printf("姓名:%s\n", employees[i].name);
printf("性别:%s\n", employees[i].sex);
printf("年龄:%d\n", employees[i].age);
printf("基本工资:%lf\n", employees[i].baseSalary);
printf("\n");
return;
}
}
// 没有找到该职工
printf("职工不存在!\n");
}
// 删除职工信息
void deleteEmployee() {
printf("\n====== 删除职工信息 ======\n");
// 输入要删除的工号
char id[10];
printf("请输入要删除的工号:");
scanf("%s", id);
// 查找要删除的职工信息
int i;
for (i = 0; i < size; i++) {
if (strcmp(employees[i].id, id) == 0) {
// 将该职工后面的所有职工前移
memcpy(&employees[i], &employees[i+1], sizeof(struct Employee) * (size - 1 - i));
size--;
printf("删除成功!\n");
return;
}
}
// 没有找到要删除的职工
printf("职工不存在!\n");
}
// 修改职工信息
void modifyEmployee() {
printf("\n====== 修改职工信息 ======\n");
// 输入要修改的工号
char id[10];
printf("请输入要修改的工号:");
scanf("%s", id);
// 查找要修改的职工信息
int i;
for (i = 0; i < size; i++) {
if (strcmp(employees[i].id, id) == 0) {
printf("原始工号:%s\n", employees[i].id);
// 输入修改后的职工信息
printf("请输入新工号:");
scanf("%s", employees[i].id);
printf("请输入新姓名:");
scanf("%s", employees[i].name);
printf("请输入新性别:");
scanf("%s", employees[i].sex);
printf("请输入新年龄:");
scanf("%d", &employees[i].age);
printf("请输入新基本工资:");
scanf("%lf", &employees[i].baseSalary);
printf("修改成功!\n");
return;
}
}
// 没有找到要修改的职工
printf("职工不存在!\n");
}
// 计算职工工资
void calculateSalary() {
printf("\n====== 计算职工工资 ======\n");
// 输入要计算工资的工号
char id[10];
printf("请输入要计算工资的工号:");
scanf("%s", id);
// 查找要计算工资的职工信息
int i;
for (i = 0; i < size; i++) {
if (strcmp(employees[i].id, id) == 0) {
double bonus, tax, totalSalary;
printf("请输入绩效奖金:");
scanf("%lf", &bonus);
totalSalary = employees[i].baseSalary + bonus;
if (totalSalary < 3000) {
tax = totalSalary * 0.1;
} else if (totalSalary < 5000) {
tax = totalSalary * 0.15;
} else {
tax = totalSalary * 0.2;
}
double actualSalary = totalSalary - tax;
printf("应发工资:%lf\n", totalSalary);
printf("所得税:%lf\n", tax);
printf("实发工资:%lf\n", actualSalary);
return;
}
}
// 没有找到要计算工资的职工
printf("职工不存在!\n");
}
int main() {
int option;
while (1) {
// 显示主菜单
showMenu();
// 获取用户输入的操作选项
scanf("%d", &option);
// 根据用户选择执行不同的操作
switch (option) {
case 1:
addEmployee();
break;
case 2:
showEmployee();
break;
case 3:
deleteEmployee();
break;
case 4:
modifyEmployee();
break;
case 5:
calculateSalary();
break;
case 6:
printf("\n再见!\n");
return 0;
default:
printf("\n非法的操作选项,请重新选择!\n");
break;
}
}
}
3. 示例说明
示例1:录入职工信息
====== 工资管理系统 ======
1. 录入职工信息
2. 查询职工信息
3. 删除职工信息
4. 修改职工信息
5. 计算职工工资
6. 退出系统
==========================
请选择操作选项:1
====== 录入职工信息 ======
请输入工号:1001
请输入姓名:张三
请输入性别:男
请输入年龄:25
请输入基本工资:3000
录入成功!
示例2:查询职工信息
====== 工资管理系统 ======
1. 录入职工信息
2. 查询职工信息
3. 删除职工信息
4. 修改职工信息
5. 计算职工工资
6. 退出系统
==========================
请选择操作选项:2
====== 查询职工信息 ======
请输入要查询的工号:1001
工号:1001
姓名:张三
性别:男
年龄:25
基本工资:3000.000000
以上就是C语言实现职工工资管理系统的示例代码及攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现职工工资管理系统的示例代码 - Python技术站