用c语言代码实现以下功能:基本资料数据的维护管理 (1).添加:(批量、单个)添加员工基本资料数据。基本资料数据包括职工号、姓名、性别、部 门、岗位、工龄。 (2).修改:根据职工号来修改任意员工的除职工号外的其他基本资料数据。 (3).删除:根据职工号删除一个员工。 (4).查询:根据职工号查询一个员工的基本资料数据。
时间: 2024-03-08 21:48:56 浏览: 15
好的,以下是一个示例代码,它演示了如何通过 C 语言来实现基本资料数据的维护管理,包括添加、修改、删除和查询。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_EMPLOYEES 100
// 定义员工结构体
struct Employee {
int id; // 职工号
char name[50]; // 姓名
char gender[10]; // 性别
char department[50]; // 部门
char position[50]; // 岗位
int years_of_service; // 工龄
};
// 定义全局变量,存储员工信息
struct Employee employees[MAX_EMPLOYEES];
int num_employees = 0;
// 声明函数
void add_employee();
void add_employees();
void modify_employee();
void delete_employee();
void query_employee();
void print_employee(struct Employee employee);
int main() {
int choice;
while (1) {
printf("\n1. Add employee\n");
printf("2. Add employees\n");
printf("3. Modify employee\n");
printf("4. Delete employee\n");
printf("5. Query employee\n");
printf("6. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
add_employee();
break;
case 2:
add_employees();
break;
case 3:
modify_employee();
break;
case 4:
delete_employee();
break;
case 5:
query_employee();
break;
case 6:
exit(0);
default:
printf("Invalid choice.\n");
}
}
return 0;
}
// 添加单个员工
void add_employee() {
struct Employee employee;
printf("\nEnter employee ID: ");
scanf("%d", &employee.id);
printf("Enter employee name: ");
scanf("%s", employee.name);
printf("Enter employee gender: ");
scanf("%s", employee.gender);
printf("Enter employee department: ");
scanf("%s", employee.department);
printf("Enter employee position: ");
scanf("%s", employee.position);
printf("Enter employee years of service: ");
scanf("%d", &employee.years_of_service);
employees[num_employees] = employee;
num_employees++;
printf("Employee added successfully.\n");
}
// 添加多个员工
void add_employees() {
int num_employees_to_add;
printf("\nEnter the number of employees to add: ");
scanf("%d", &num_employees_to_add);
for (int i = 0; i < num_employees_to_add; i++) {
printf("\nEnter employee #%d information:\n", i + 1);
add_employee();
}
}
// 修改员工信息
void modify_employee() {
int id_to_modify;
int found = 0;
printf("\nEnter employee ID to modify: ");
scanf("%d", &id_to_modify);
for (int i = 0; i < num_employees; i++) {
if (employees[i].id == id_to_modify) {
printf("Enter employee name: ");
scanf("%s", employees[i].name);
printf("Enter employee gender: ");
scanf("%s", employees[i].gender);
printf("Enter employee department: ");
scanf("%s", employees[i].department);
printf("Enter employee position: ");
scanf("%s", employees[i].position);
printf("Enter employee years of service: ");
scanf("%d", &employees[i].years_of_service);
printf("Employee modified successfully.\n");
found = 1;
break;
}
}
if (!found) {
printf("Employee not found.\n");
}
}
// 删除员工
void delete_employee() {
int id_to_delete;
int found = 0;
printf("\nEnter employee ID to delete: ");
scanf("%d", &id_to_delete);
for (int i = 0; i < num_employees; i++) {
if (employees[i].id == id_to_delete) {
for (int j = i; j < num_employees - 1; j++) {
employees[j] = employees[j + 1];
}
num_employees--;
printf("Employee deleted successfully.\n");
found = 1;
break;
}
}
if (!found) {
printf("Employee not found.\n");
}
}
// 查询员工信息
void query_employee() {
int id_to_query;
int found = 0;
printf("\nEnter employee ID to query: ");
scanf("%d", &id_to_query);
for (int i = 0; i < num_employees; i++) {
if (employees[i].id == id_to_query) {
print_employee(employees[i]);
found = 1;
break;
}
}
if (!found) {
printf("Employee not found.\n");
}
}
// 打印员工信息
void print_employee(struct Employee employee) {
printf("\nEmployee ID: %d\n", employee.id);
printf("Employee name: %s\n", employee.name);
printf("Employee gender: %s\n", employee.gender);
printf("Employee department: %s\n", employee.department);
printf("Employee position: %s\n", employee.position);
printf("Employee years of service: %d\n", employee.years_of_service);
}
```
在上面的示例代码中,我们首先定义了一个员工结构体来表示员工的基本资料数据。然后,我们定义了一个全局变量 `employees` 数组来存储所有员工的信息,以及一个变量 `num_employees` 来记录员工数量。接下来,我们实现了四个函数,分别用于添加单个员工、添加多个员工、修改员工信息和删除员工。最后,我们实现了一个查询员工信息的函数,并且使用 `switch` 语句来调用这些函数。
请注意,上面的代码仅提供了一个示例。在实际应用中,您可能需要添加更多的错误检查和输入验证,以确保输入的数据是有效和安全的。同时,您需要将员工信息保存到文件中,并在程序启动时从文件中读取员工信息。