保安值班安排系统C语言课程设计

本文介绍了一个使用C语言设计的保安值班安排系统,支持个人信息管理、轮休表生成及查询,根据员工选择的休息日灵活安排。系统允许添加、修改、查询和删除保安人员信息,并能保存和读取数据至文件,确保轮休安排公平且满足每个人的需求。
摘要由CSDN通过智能技术生成

保安值班安排系统C语言课程设计

功能模块
1、问题描述 某公司的保安人员由于工作需要进行轮休制度,一星期中每个岗位每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制一程序,打印轮休的所有可能方案。当然要使每个人都满意。 (1)预先输入每名保安自己认为合适的休息日(可以多天); (2)打印轮休的所有方案 。。 2、功能要求 (1)对保安人员的个人信息的增删改查等操作。保安人员的信息包括姓名、年龄、岗位、合适的休息休息日(可以在周一至周日中选择)。 (2)生成人员轮休表,并可根据人员编号查询某人在某日轮休。 (3)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。 (4)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 例如学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下: 钱:星期一、星期六 赵:星期二、星期四 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日 运行结果: Solution: 1 赵 钱 孙 李 周 吴 陈 ============================================================= 星期四 星期一 星期三 星期五 星期六 星期二 星期日 Solution: 2 赵 钱 孙 李 周 吴 陈 ============================================================= 星期四 星期一 星期日 星期五 星期六 星期二 星期三 Solution: 3 赵 钱 孙 李 周 吴 陈 ============================================================= 星期四 星期六 星期三 星期五 星期一 星期二 星期日 Solution: 4 赵 钱 孙 李 周 吴 陈

星期四 星期六 星期日 星期五 星期一 星期二 星期三
在这里插入图片描述
在这里插入图片描述

/*以下为自定义结构体*/
struct   guardinfo{          /*保安个人信息结构体*/
	char number[5];         /*编号*/
   	char name[20];         /*姓名*/
   	int  age;             /*年龄*/
   	char post[20];       /*岗位*/
};
struct   restinfo{             /*休息日期结构体*/ 
	char number[5];           /*编号*/
	int  frequency;		     /*次数*/ 
	char week1[10];         /*选择日期1*/ 
	char week2[10];		   /*选择日期2*/
	char week3[10];		  /*选择日期3*/
	char week4[10];		 /*选择日期4*/
	char week5[10];		/*选择日期5*/
	char week6[10];	   /*选择日期6*/
	char week7[10];	  /*选择日期7*/
};

/*以下为自定义函数*/
int  guardmanage(void);           /*保安个人信息管理*/ 
int  rotationmanagement(void);   /*保安轮休管理*/ 

int  guard_add(void);        			    /*添加保安个人信息*/
int  guard_modify(void);                   /*修改保安个人信息*/
int  guard_delete(void);                  /*删除保安个人信息*/	
int  guard_query(void);                  /*查询保安个人信息*/
int  guard_exists(char *number,struct guardinfo *sinfo);   /*用编号判断保安个人信息是否已经存在,返回记录号和记录内容*/
void guard_append(FILE *file,  struct guardinfo *sinfo);  /*将一条个人信息写入文件,统一写入的格式*/

int  choice_modify();         /*更改保安选择休息日期*/
int  choice_query();         /*查询保安选择休息日期*/
int  rest_form();           /*生成保安轮休表*/
int  rest_query();         /*查询个人轮休日期*/
int  convert(char *k);    /*将星期转化为数字*/
int  rest_exists(char *number,struct restinfo *sinfo_im); /*用编号判断选择休息日期,返回记录号和记录内容*/
void rest_append(FILE *file,struct restinfo *sinfo);     /*将选择的轮休信息写入文件,统一写入的格式*/
#include "stdio.h"
#include "stdlib.h" 
#include "conio.h"
#include "process.h"
#include "string.h"
#include "duty.h"      /*头文件,包含自定义结构体和自定义函数声明*/

/*主程序*/
int main(int argc, char* argv[]){

	char menuid=' ';

	while(menuid!='0'){
		
		system("cls");   /*清屏*/                        

        printf("=======保安值班安排系统=======\n");  /*显示主菜单*/
        printf("========  主  菜  单  ========\n");
        printf("   1.保安个人信息管理\n");
        printf("   2.保安轮休管理\n");
		printf("   0.退出\n");
        printf("==============================\n");
        printf("请选择(0-2)\n");
        
		menuid=getch();
		switch(menuid){
		    case '1': guardmanage();          break;
		    case '2': rotationmanagement();   break;
			case '0': return 0;
		    default : break;
		}
	}
	return 0;
}
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值