编写一个简单的员工管理信息系统。包括查询、修改、插入、删除、等功能。 步骤: (1)员工信息包括:编号、姓名、电话、工资等,可以采用顺序存储(结构体数组)也可以是链式存储(单链表); (2)查询:按特定条件查询员工,如编号或姓名; (3)修改:按编号对员工信息进行修改; (4)插入:假如新员工; (5)删除:删除指定编号的员工信息;; (6)要求做一个简单的选择菜单,通过序号选择相应的功能
时间: 2023-12-22 16:05:29 浏览: 129
好的,这是一个非常基础的员工管理系统。我可以为您提供一些思路和代码示例,但是具体实现需要根据您的编程语言和技术栈来进行。
首先,我们可以定义一个员工的结构体,包括编号、姓名、电话和工资等信息:
```c
typedef struct Employee {
int id;
char name[50];
char phone[20];
float salary;
} Employee;
```
接下来,我们可以定义一个结构体数组或单链表来存储所有的员工信息。如果采用结构体数组,可以这样定义:
```c
#define MAX_EMPLOYEES 100
Employee employees[MAX_EMPLOYEES];
int num_employees = 0; // 当前员工数量
```
如果采用单链表,可以这样定义:
```c
typedef struct Node {
Employee emp;
struct Node* next;
} Node;
Node* head = NULL; // 头结点,指向第一个员工
```
接下来,我们可以实现查询、修改、插入和删除等功能。这里以结构体数组为例:
```c
// 按编号查询员工
void query_employee_by_id(int id) {
for (int i = 0; i < num_employees; i++) {
if (employees[i].id == id) {
printf("编号:%d,姓名:%s,电话:%s,工资:%f\n",
employees[i].id, employees[i].name, employees[i].phone, employees[i].salary);
return;
}
}
printf("未找到编号为%d的员工\n", id);
}
// 按姓名查询员工
void query_employee_by_name(char* name) {
int found = 0;
for (int i = 0; i < num_employees; i++) {
if (strcmp(employees[i].name, name) == 0) {
printf("编号:%d,姓名:%s,电话:%s,工资:%f\n",
employees[i].id, employees[i].name, employees[i].phone, employees[i].salary);
found = 1;
}
}
if (!found) {
printf("未找到姓名为%s的员工\n", name);
}
}
// 按编号修改员工信息
void modify_employee_by_id(int id, char* name, char* phone, float salary) {
for (int i = 0; i < num_employees; i++) {
if (employees[i].id == id) {
strcpy(employees[i].name, name);
strcpy(employees[i].phone, phone);
employees[i].salary = salary;
printf("修改成功\n");
return;
}
}
printf("未找到编号为%d的员工\n", id);
}
// 插入新员工
void insert_employee(int id, char* name, char* phone, float salary) {
if (num_employees >= MAX_EMPLOYEES) {
printf("员工数量已达到上限,无法插入新员工\n");
return;
}
employees[num_employees].id = id;
strcpy(employees[num_employees].name, name);
strcpy(employees[num_employees].phone, phone);
employees[num_employees].salary = salary;
num_employees++;
printf("插入成功\n");
}
// 删除员工
void delete_employee(int id) {
int found = 0;
for (int i = 0; i < num_employees; i++) {
if (employees[i].id == id) {
for (int j = i; j < num_employees - 1; j++) {
employees[j] = employees[j + 1];
}
num_employees--;
found = 1;
printf("删除成功\n");
break;
}
}
if (!found) {
printf("未找到编号为%d的员工\n", id);
}
}
```
最后,我们可以实现一个简单的选择菜单,让用户选择相应的功能:
```c
int main() {
while (1) {
printf("请选择功能:\n");
printf("1. 按编号查询员工\n");
printf("2. 按姓名查询员工\n");
printf("3. 按编号修改员工信息\n");
printf("4. 插入新员工\n");
printf("5. 删除员工\n");
printf("0. 退出程序\n");
int choice;
scanf("%d", &choice);
if (choice == 0) {
break;
}
switch (choice) {
case 1: {
int id;
printf("请输入员工编号:");
scanf("%d", &id);
query_employee_by_id(id);
break;
}
case 2: {
char name[50];
printf("请输入员工姓名:");
scanf("%s", name);
query_employee_by_name(name);
break;
}
case 3: {
int id;
char name[50], phone[20];
float salary;
printf("请输入员工编号:");
scanf("%d", &id);
printf("请输入员工姓名:");
scanf("%s", name);
printf("请输入员工电话:");
scanf("%s", phone);
printf("请输入员工工资:");
scanf("%f", &salary);
modify_employee_by_id(id, name, phone, salary);
break;
}
case 4: {
int id;
char name[50], phone[20];
float salary;
printf("请输入员工编号:");
scanf("%d", &id);
printf("请输入员工姓名:");
scanf("%s", name);
printf("请输入员工电话:");
scanf("%s", phone);
printf("请输入员工工资:");
scanf("%f", &salary);
insert_employee(id, name, phone, salary);
break;
}
case 5: {
int id;
printf("请输入员工编号:");
scanf("%d", &id);
delete_employee(id);
break;
}
default: {
printf("无效的选择\n");
break;
}
}
}
return 0;
}
```
这样,一个简单的员工管理信息系统就完成了。当然,这只是一个示例,实际应用中可能需要更加复杂的功能和更加健壮的代码。
阅读全文