用c语言编写保安排班系统
时间: 2023-11-30 13:02:41 浏览: 153
保安值班安排系统-c语言课设.pdf
5星 · 资源好评率100%
好的,我可以为您提供一些思路和建议。
保安排班系统需要实现的功能主要包括:
1. 记录保安员的基本信息,包括姓名、性别、年龄、联系方式等;
2. 记录每个保安员的排班情况,包括日期、班次等;
3. 支持查询某个时间段内某个保安员的排班情况;
4. 支持查询某个时间段内某个班次的保安员排班情况;
5. 支持添加、修改、删除保安员的信息和排班情况。
下面是一个简单的实现思路:
1. 定义保安员结构体
```
typedef struct {
char name[50]; // 姓名
char gender[10]; // 性别
int age; // 年龄
char phone[20]; // 联系方式
} SecurityGuard;
```
2. 定义排班结构体
```
typedef struct {
char date[20]; // 日期,格式为YYYY-MM-DD
char shift[20]; // 班次,如“早班”、“中班”、“晚班”等
int guard_id; // 保安员编号
} Schedule;
```
3. 定义保安员和排班的数组
```
#define MAX_GUARDS 50
#define MAX_SCHEDULES 1000
SecurityGuard guards[MAX_GUARDS];
int num_guards = 0;
Schedule schedules[MAX_SCHEDULES];
int num_schedules = 0;
```
4. 实现添加、修改、删除保安员信息的函数
```
void add_guard() {
SecurityGuard guard;
printf("请输入保安员姓名:");
scanf("%s", guard.name);
printf("请输入保安员性别:");
scanf("%s", guard.gender);
printf("请输入保安员年龄:");
scanf("%d", &guard.age);
printf("请输入保安员联系方式:");
scanf("%s", guard.phone);
guards[num_guards++] = guard;
printf("添加成功!\n");
}
void modify_guard() {
int id;
printf("请输入要修改的保安员编号:");
scanf("%d", &id);
if (id < 1 || id > num_guards) {
printf("保安员编号无效!\n");
return;
}
SecurityGuard guard = guards[id - 1];
printf("请输入保安员姓名:");
scanf("%s", guard.name);
printf("请输入保安员性别:");
scanf("%s", guard.gender);
printf("请输入保安员年龄:");
scanf("%d", &guard.age);
printf("请输入保安员联系方式:");
scanf("%s", guard.phone);
guards[id - 1] = guard;
printf("修改成功!\n");
}
void delete_guard() {
int id;
printf("请输入要删除的保安员编号:");
scanf("%d", &id);
if (id < 1 || id > num_guards) {
printf("保安员编号无效!\n");
return;
}
for (int i = id - 1; i < num_guards - 1; i++) {
guards[i] = guards[i + 1];
}
num_guards--;
printf("删除成功!\n");
}
```
5. 实现添加、修改、删除保安员排班的函数
```
void add_schedule() {
Schedule schedule;
printf("请输入日期(格式为YYYY-MM-DD):");
scanf("%s", schedule.date);
printf("请输入班次:");
scanf("%s", schedule.shift);
printf("请输入保安员编号:");
scanf("%d", &schedule.guard_id);
if (schedule.guard_id < 1 || schedule.guard_id > num_guards) {
printf("保安员编号无效!\n");
return;
}
schedules[num_schedules++] = schedule;
printf("添加成功!\n");
}
void modify_schedule() {
int id;
printf("请输入要修改的排班编号:");
scanf("%d", &id);
if (id < 1 || id > num_schedules) {
printf("排班编号无效!\n");
return;
}
Schedule schedule = schedules[id - 1];
printf("请输入日期(格式为YYYY-MM-DD):");
scanf("%s", schedule.date);
printf("请输入班次:");
scanf("%s", schedule.shift);
printf("请输入保安员编号:");
scanf("%d", &schedule.guard_id);
if (schedule.guard_id < 1 || schedule.guard_id > num_guards) {
printf("保安员编号无效!\n");
return;
}
schedules[id - 1] = schedule;
printf("修改成功!\n");
}
void delete_schedule() {
int id;
printf("请输入要删除的排班编号:");
scanf("%d", &id);
if (id < 1 || id > num_schedules) {
printf("排班编号无效!\n");
return;
}
for (int i = id - 1; i < num_schedules - 1; i++) {
schedules[i] = schedules[i + 1];
}
num_schedules--;
printf("删除成功!\n");
}
```
6. 实现查询保安员排班情况的函数
```
void query_guard_schedule() {
int id;
char start_date[20], end_date[20];
printf("请输入保安员编号:");
scanf("%d", &id);
printf("请输入起始日期(格式为YYYY-MM-DD):");
scanf("%s", start_date);
printf("请输入结束日期(格式为YYYY-MM-DD):");
scanf("%s", end_date);
printf("保安员%s在%s至%s期间的排班情况如下:\n", guards[id - 1].name, start_date, end_date);
printf("日期\t班次\n");
for (int i = 0; i < num_schedules; i++) {
if (schedules[i].guard_id == id && strcmp(schedules[i].date, start_date) >= 0 && strcmp(schedules[i].date, end_date) <= 0) {
printf("%s\t%s\n", schedules[i].date, schedules[i].shift);
}
}
}
```
7. 实现查询班次保安员排班情况的函数
```
void query_shift_schedule() {
char shift[20], start_date[20], end_date[20];
printf("请输入班次:");
scanf("%s", shift);
printf("请输入起始日期(格式为YYYY-MM-DD):");
scanf("%s", start_date);
printf("请输入结束日期(格式为YYYY-MM-DD):");
scanf("%s", end_date);
printf("%s班在%s至%s期间的排班情况如下:\n", shift, start_date, end_date);
printf("日期\t姓名\n");
for (int i = 0; i < num_schedules; i++) {
if (strcmp(schedules[i].shift, shift) == 0 && strcmp(schedules[i].date, start_date) >= 0 && strcmp(schedules[i].date, end_date) <= 0) {
printf("%s\t%s\n", schedules[i].date, guards[schedules[i].guard_id - 1].name);
}
}
}
```
以上是一个简单的保安排班系统的实现思路和代码示例,具体实现还需要根据实际需求进行调整和优化。希望能对您有所帮助!
阅读全文