C语言实现员工管理系统

该示例展示了如何使用C语言定义结构体来存储员工信息,包括姓名、年龄、地址和薪水,并通过数组管理多个员工。用户可以选择添加新员工、搜索员工、显示所有员工或退出程序。程序目前仅在内存中存储数据,未涉及文件保存。为了增强健壮性,可以添加输入验证和错误处理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在此示例中,我们使用结构体定义了一个员工的属性,包括姓名、年龄、地址和薪水。我们使用数组来存储所有员工的信息,并使用循环来遍历这个数组以执行不同的操作。

菜单选项提供了四个选项:添加新员工、搜索员工、显示所有员工和退出程序。每个选项都有相应的代码块来执行特定的操作。添加新员工选项通过 scanf 函数接收用户输入,搜索员工选项通过 strcmp 函数比较员工姓名来找到对应的员工,显示所有员工选项则通过循环遍历数组来显示所有员工的信息,退出程序选项则终止程序运行。

注意,在此示例中,我们仅仅使用了数组来存储员工信息,并没有将信息保存在文件中。如果想要将员工信息保存到文件中,可以使用文件输入/输出函数,如 fopenfreadfwritefclose 等。

此外,为了使程序更健壮,我们还可以添加输入验证和错误处理功能。例如,当用户输入无效的选项时,我们可以要求用户重新输入,或者我们可以添加输入验证来确保用户输入的是有效的值。同样地,当用户输入无效数据时,我们可以提示用户重新输入。

#include <stdio.h>
#include <string.h>

// 定义员工结构体
typedef struct {
    char name[50];
    int age;
    char address[100];
    float salary;
} Employee;

int main() {
    int option, i, n = 0;
    Employee employees[100];
    char search_name[50];

    do {
        // 显示菜单选项
        printf("\nEmployee Management System\n");
        printf("---------------------------\n");
        printf("1. Add new employee\n");
        printf("2. Search employee\n");
        printf("3. Display all employees\n");
        printf("4. Exit\n");
        printf("Enter your choice: ");
        scanf("%d", &option);

        switch (option) {
            case 1:
                // 添加新员工
                printf("\nEnter employee name: ");
                scanf("%s", employees[n].name);
                printf("Enter employee age: ");
                scanf("%d", &employees[n].age);
                printf("Enter employee address: ");
                scanf("%s", employees[n].address);
                printf("Enter employee salary: ");
                scanf("%f", &employees[n].salary);
                n++;
                break;
            case 2:
                // 搜索员工
                printf("\nEnter employee name to search: ");
                scanf("%s", search_name);
                for (i = 0; i < n; i++) {
                    if (strcmp(search_name, employees[i].name) == 0) {
                        printf("Name: %s\n", employees[i].name);
                        printf("Age: %d\n", employees[i].age);
                        printf("Address: %s\n", employees[i].address);
                        printf("Salary: %.2f\n", employees[i].salary);
                        break;
                    }
                }
                if (i == n) {
                    printf("Employee not found.\n");
                }
                break;
            case 3:
                // 显示所有员工
                printf("\nAll employees:\n");
                for (i = 0; i < n; i++) {
                    printf("\nEmployee %d:\n", i + 1);
                    printf("Name: %s\n", employees[i].name);
                    printf("Age: %d\n", employees[i].age);
                    printf("Address: %s\n", employees[i].address);
                    printf("Salary: %.2f\n", employees[i].salary);
                }
                break;
            case 4:
                // 退出程序
                printf("\nExiting program...\n");
                break;
            default:
                // 无效选项
                printf("\nInvalid option. Please try again.\n");
                break;
        }
    } while (option != 4);

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大鸵鸟

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值