【C语言课设计划】职工信息管理系统(C语言大作业 结构体 运行截图 完整代码)

要求

使用C语言完成一个职工信息管理系统,职工的信息为:

char id[20]; // 职工号
char name[20]; // 姓名
char sex[10]; // 性别
int age; // 年龄
char degree[20]; // 学历
int salary; // 工资
char address[20]; // 住址
int phone; // 电话

要求含有的功能为添加、浏览、查看、修改、排序和删除。

运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

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

#define MAX_EMPLOYEES 100

struct Employee {
	int id;
	char name[50];
	int age;
};

struct Employee employees[MAX_EMPLOYEES];
int numEmployees = 0;

void addEmployee() {
	if (numEmployees >= MAX_EMPLOYEES) {
		printf("员工数量已达上限。\n");
		return;
	}

	struct Employee newEmployee;
	printf("请输入员工ID:");
	scanf("%d", &newEmployee.id);
	printf("请输入员工姓名:");
	scanf("%s", newEmployee.name);
	printf("请输入员工年龄:");
	scanf("%d", &newEmployee.age);

	employees[numEmployees] = newEmployee;
	numEmployees++;

	printf("员工信息已添加成功。\n");
}

void viewEmployees() {
	if (numEmployees == 0) {
		printf("当前没有员工信息。\n");
		return;
	}

	printf("员工信息列表:\n");
	int i;
	for (i = 0; i < numEmployees; i++) {
		printf("ID:%d,姓名:%s,年龄:%d\n", employees[i].id, employees[i].name, employees[i].age);
	}
}

void searchEmployee() {
	if (numEmployees == 0) {
		printf("当前没有员工信息。\n");
		return;
	}

	int searchId;
	printf("请输入要查找的员工ID:");
	scanf("%d", &searchId);
	int i;
	for (i = 0; i < numEmployees; i++) {
		if (employees[i].id == searchId) {
			printf("ID:%d,姓名:%s,年龄:%d\n", employees[i].id, employees[i].name, employees[i].age);
			return;
		}
	}

	printf("未找到该员工信息。\n");
}

void modifyEmployee() {
	if (numEmployees == 0) {
		printf("当前没有员工信息。\n");
		return;
	}

	int modifyId;
	printf("请输入要修改的员工ID:");
	scanf("%d", &modifyId);
	int i;
	for ( i = 0; i < numEmployees; i++) {
		if (employees[i].id == modifyId) {
			printf("请输入新的员工姓名:");
			scanf("%s", employees[i].name);
			printf("请输入新的员工年龄:");
			scanf("%d", &employees[i].age);
			printf("员工信息已修改成功。\n");
			return;
		}
	}

	printf("未找到该员工信息。\n");
}

void sortEmployees() {
	if (numEmployees == 0) {
		printf("当前没有员工信息。\n");
		return;
	}

	printf("请选择排序方式(1-按ID升序,2-按ID降序):");
	int sortOption;
	scanf("%d", &sortOption);
	int i,j;
	switch (sortOption) {
		case 1:
			for ( i = 0; i < numEmployees - 1; i++) {
				for ( j = 0; j < numEmployees - i - 1; j++) {
					if (employees[j].id > employees[j + 1].id) {
						struct Employee temp = employees[j];
						employees[j] = employees[j + 1];
						employees[j + 1] = temp;
					}
				}
			}
			printf("员工信息已按ID升序排序。\n");
			break;

		case 2:
			for ( i = 0; i < numEmployees - 1; i++) {
				for (j = 0; j < numEmployees - i - 1; j++) {
					if (employees[j].id < employees[j + 1].id) {
						struct Employee temp = employees[j];
						employees[j] = employees[j + 1];
						employees[j + 1] = temp;
					}
				}
			}
			printf("员工信息已按ID降序排序。\n");
			break;

		default:
			printf("无效的选项。\n");
			break;
	}
}

void deleteEmployee() {
	if (numEmployees == 0) {
		printf("当前没有员工信息。\n");
		return;
	}

	int deleteId;
	printf("请输入要删除的员工ID:");
	scanf("%d", &deleteId);

	int deleteIndex = -1;
	int i;
	for ( i = 0; i < numEmployees; i++) {
		if (employees[i].id == deleteId) {
			deleteIndex = i;
			break;
		}
	}

	if (deleteIndex != -1) {
		for (i = deleteIndex; i < numEmployees - 1; i++) {
			employees[i] = employees[i + 1];
		}
		numEmployees--;
		printf("员工信息已删除成功。\n");
	} else {
		printf("未找到该员工信息。\n");
	}
}

int main() {
	int choice;

	do {
		printf("\n职工信息管理系统\n");
		printf("1. 添加职工信息\n");
		printf("2. 浏览职工信息\n");
		printf("3. 查看职工信息\n");
		printf("4. 修改职工信息\n");
		printf("5. 排序职工信息\n");
		printf("6. 删除职工信息\n");
		printf("0. 退出程序\n");
		printf("请选择要执行的操作:");
		scanf("%d", &choice);

		switch (choice) {
			case 1:
				addEmployee();
				break;

			case 2:
				viewEmployees();
				break;

			case 3:
				searchEmployee();
				break;

			case 4:
				modifyEmployee();
				break;

			case 5:
				sortEmployees();
				break;

			case 6:
				deleteEmployee();
				break;

			case 0:
				printf("程序已退出。\n");
				break;

			default:
				printf("无效的选项,请重试。\n");
				break;
		}
	} while (choice != 0);

	return 0;
}

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值