c语言编程排班表代码是什么
其他 7
-
以下是一个示例的C语言编程排班表代码:
#include <stdio.h> #define NUM_EMPLOYEES 7 // 员工人数 #define NUM_DAYS 30 // 排班天数 int main() { char employeeNames[NUM_EMPLOYEES][20] = { "员工1", "员工2", "员工3", "员工4", "员工5", "员工6", "员工7" }; char schedule[NUM_DAYS][20]; // 保存排班结果的数组 int i, j; // 初始化排班表,将所有的排班设置为默认值 for (i = 0; i < NUM_DAYS; i++) { for (j = 0; j < NUM_EMPLOYEES; j++) { schedule[i][j] = '-'; } } // 根据排班规则进行排班 for (i = 0; i < NUM_DAYS; i++) { for (j = 0; j < NUM_EMPLOYEES; j++) { if (i % NUM_EMPLOYEES == j) { schedule[i][j] = 'O'; // 设置为上班 } } } // 打印排班表 printf("排班表:\n"); for (i = 0; i < NUM_DAYS; i++) { printf("第%d天: ", i+1); for (j = 0; j < NUM_EMPLOYEES; j++) { printf("%s: %c\t", employeeNames[j], schedule[i][j]); } printf("\n"); } return 0; }上述代码实现了一个简单的排班表功能,包括了员工姓名、排班天数以及排班结果的存储和输出。通过设置排班规则,将员工按照轮流上班的方式进行排班,并将结果以表格形式输出。
1年前 -
C语言编程排班表代码可以根据具体需求进行编写,下面是一个简单的示例代码:
#include <stdio.h> #define MAX_EMPLOYEES 10 #define MAX_DAYS 31 typedef struct { int day; int month; int year; } Date; typedef struct { char name[20]; Date dateOfBirth; } Employee; typedef struct { Employee employees[MAX_EMPLOYEES]; int schedule[MAX_DAYS]; int numEmployees; } Schedule; void addEmployee(Schedule *schedule, Employee employee) { if (schedule->numEmployees < MAX_EMPLOYEES) { schedule->employees[schedule->numEmployees] = employee; schedule->numEmployees++; printf("Employee added successfully!\n"); } else { printf("Maximum number of employees reached!\n"); } } void assignShift(Schedule *schedule, int day, int shift) { if (day >= 1 && day <= MAX_DAYS) { schedule->schedule[day - 1] = shift; printf("Shift assigned successfully!\n"); } else { printf("Invalid day!\n"); } } void displaySchedule(Schedule schedule) { printf("Schedule:\n"); for (int i = 0; i < MAX_DAYS; i++) { printf("Day %d: Shift %d\n", i + 1, schedule.schedule[i]); } } int main() { Schedule schedule; schedule.numEmployees = 0; Employee employee1 = {"John Doe", {1, 1, 1990}}; Employee employee2 = {"Jane Smith", {10, 3, 1985}}; addEmployee(&schedule, employee1); addEmployee(&schedule, employee2); assignShift(&schedule, 1, 1); assignShift(&schedule, 2, 2); assignShift(&schedule, 3, 1); displaySchedule(schedule); return 0; }上述代码中定义了三个结构体:Date表示日期,Employee表示员工,Schedule表示排班表。通过addEmployee函数可以添加员工,通过assignShift函数可以为指定日期分配班次,通过displaySchedule函数可以显示排班表。在主函数中,首先创建一个排班表对象schedule,然后添加两个员工,分配三个日期的班次,并最后显示排班表。
1年前 -
编写排班表的C语言代码可以根据具体需求的复杂程度而有所不同。下面是一个简单的示例代码,用来实现一个基本的排班表功能:
#include <stdio.h> #include <string.h> #define MAX_EMPLOYEES 100 // 最大员工数量 #define MAX_DAYS 7 // 一周的天数 // 员工结构体 typedef struct { char name[50]; // 姓名 int schedule[MAX_DAYS]; // 排班表 } Employee; // 初始化排班表 void initSchedule(Employee* employee) { for (int i = 0; i < MAX_DAYS; i++) { employee->schedule[i] = 0; } } // 添加员工 void addEmployee(Employee* employees, int* count) { if (*count >= MAX_EMPLOYEES) { printf("员工数量已达上限!\n"); return; } Employee newEmployee; printf("请输入员工姓名:"); scanf("%s", newEmployee.name); initSchedule(&newEmployee); // 初始化排班表 employees[*count] = newEmployee; (*count)++; printf("员工添加成功!\n"); } // 编辑排班表 void editSchedule(Employee* employee) { int day; int shift; printf("请输入要编辑的日期(1-7):"); scanf("%d", &day); if (day < 1 || day > MAX_DAYS) { printf("输入的日期无效!\n"); return; } printf("请输入要编辑的班次(1-3):"); scanf("%d", &shift); if (shift < 1 || shift > 3) { printf("输入的班次无效!\n"); return; } employee->schedule[day - 1] = shift; printf("排班表编辑成功!\n"); } // 打印排班表 void printSchedule(Employee* employees, int count) { printf("姓名\t周一\t周二\t周三\t周四\t周五\t周六\t周日\n"); for (int i = 0; i < count; i++) { printf("%s\t", employees[i].name); for (int j = 0; j < MAX_DAYS; j++) { printf("%d\t", employees[i].schedule[j]); } printf("\n"); } } int main() { Employee employees[MAX_EMPLOYEES]; int employeeCount = 0; int choice; while (1) { printf("1. 添加员工\n"); printf("2. 编辑排班表\n"); printf("3. 打印排班表\n"); printf("4. 退出程序\n"); printf("请输入选择:"); scanf("%d", &choice); switch (choice) { case 1: addEmployee(employees, &employeeCount); break; case 2: if (employeeCount == 0) { printf("还没有添加员工!\n"); } else { char name[50]; printf("请输入员工姓名:"); scanf("%s", name); for (int i = 0; i < employeeCount; i++) { if (strcmp(name, employees[i].name) == 0) { editSchedule(&employees[i]); break; } if (i == employeeCount - 1) { printf("找不到该员工!\n"); } } } break; case 3: if (employeeCount == 0) { printf("还没有添加员工!\n"); } else { printSchedule(employees, employeeCount); } break; case 4: printf("程序退出!\n"); return 0; default: printf("选择无效!\n"); break; } } }上述代码实现了一个简单的排班表功能,具体功能包括:
- 添加员工:可以输入员工姓名,系统会为该员工初始化一个空的排班表;
- 编辑排班表:根据输入的员工姓名和日期、班次,修改相应的排班表;
- 打印排班表:将所有员工的姓名和排班表打印出来;
- 退出程序:退出排班表程序运行。
以上只是一个简单的排班表代码示例,具体根据需求的复杂程度,可以在此基础上进行进一步的扩展和优化。
1年前