用c语言写一个排班系统
时间: 2024-12-13 10:18:23 浏览: 15
创建一个简单的排班系统可以用C语言编写,但需要考虑到它将是一个比较复杂的程序,涉及到数据结构、用户交互以及时间管理等多个部分。这里提供一个基础框架的思路:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义员工结构体
typedef struct {
char name[50];
int id;
char shifts[][50]; // 假设一周有7天的轮班,每项代表一天的工作安排
} Employee;
// 功能函数
void add_employee(Employee* employees, int* num_employees);
void display_schedule(Employee* employees, int num_employees);
void input_shifts(Employee* employees);
int main() {
int num_employees = 0;
Employee* employees = malloc(sizeof(Employee) * 10); // 初始容量足够
while (1) {
printf("欢迎来到排班系统,请输入操作(1.添加员工 2.查看排班): ");
int choice;
scanf("%d", &choice);
if (choice == 1) {
add_employee(employees, &num_employees);
} else if (choice == 2) {
display_schedule(employees, num_employees);
} else {
printf("无效选择,退出系统。\n");
break;
}
}
free(employees);
return 0;
}
// 添加员工函数
void add_employee(Employee* employees, int* num_employees) {
// 提示输入员工信息并添加到数组
}
// 显示排班函数
void display_schedule(Employee* employees, int num_employees) {
for (int i = 0; i < num_employees; i++) {
printf("员工 %d: ", employees[i].id);
for (int j = 0; j < 7; j++) {
if (strlen(employees[i].shifts[j]) > 0)
printf("%s ", employees[i].shifts[j]);
else
printf("- ");
}
printf("\n");
}
}
// 输入员工轮班函数
void input_shifts(Employee* employee) {
// 获取员工输入,并更新shifts数组
}
```
这个例子只给出了基本的框架,实际的排班系统会更复杂,需要处理如员工数据的动态增加、删除、编辑等操作,以及可能的冲突检查等功能。如果你想要详细了解如何实现这些功能,可以告诉我你对排班系统的具体需求,我可以提供更详细的指导。
阅读全文