//.cpp : Defines the entry point for the console application.
//
#include "string.h"
#include <stdio.h>
char *WEEK[] = { "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; struct demand
{
char name[];
int day[];
} man[]; int main()
{
int IsChecked(int p[]);
int t = , j, ren[];
long i, k;
printf("****************保安值班系统****************\n");
printf("请各位分别输入各自合适的休假日\n");
printf("如赵保安选择星期二和星期三,就输入2 3 然后回车\n");
printf("数字0 1 2 3 4 5 6分别代表\n星期天 星期一 星期二 星期三 星期四 星期五 星期六\n");
printf("注意要输入星期天请输入数字0 \n");
for (i = ; i<; i++)
{
printf("请第%d个人输入\n", i + );
for (k = ; k<; k++)
{
//scanf("%d",&man[i].day[k]);
char c;
scanf("%c", &c);
if (c == '\n')
{
break;//读取到换行符,即回车,退出循环。
}
else if (c >= && c <= )
{
man[i].day[k] = (int)(c - '');
//printf("%d %c\n", k, c);
}
else if (c == ' ')
{
k--;
}
} // printf("你输入的day是:");
// for(k=0;k<7;k++)
// {
// printf("%d ",man[i].day[k]);
// }
// printf("\n"); printf("你输入的day是:");
for (int m = ; m < k; m++)
{
printf("%d ", man[i].day[m]);
}
for (int m = k; m < ; ++m)
{
man[i].day[m] = ;
printf("%d ", man[i].day[m]);
}
printf("\n");
} printf("**********************************************");
printf("\n* 赵, 钱, 孙, 李, 周 , 吴, 陈 , *\n");
printf("*--------------------------------------------*\n");
printf("");
for (i = ; i < ; ++i)
{
for (j = ; j<; ++j)
{
ren[j] = (i >> ( * j)) & ; //*通过这个循环,穷尽0-7在数组中所有的排列组合方式*//
} if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue;//*如果赵保安不是休周二或周四,就不用循环了。*//
else if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue; //*如果钱保安不是休周一或周六,就不用循环了。*//
else if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue; //*如果孙保安不是休周三或周日,就不用循环了。*//
else if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue; //*如果李保安不是休周五,就不用循环了。*//
else if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue; //*如果周保安不是休周一或周四或周六,就不用循环了。*//
else if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue; //*如果吴保安不是休周二或周五,就不用循环了。*//
else if (!(ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[] || ren[] == man[].day[]))
continue; //*如果陈保安不是休周三或周六或周日,就不用循环了。*//
else if (!IsChecked(ren))
continue; //*至此,所有的保安可按他们的愿望休假,但是此时的方案可能有两个人同休一天的*//
//*情况发生,因此用这个函数排除,如果0-6这七个数字(一周七天)任何一个包含在数组中则此次匹配失败。*//
for (j = ; j<; ++j)
{
printf("%s ", WEEK[ren[j]]);
} printf(" *");
printf("\n"); //*输出成功匹配方案*//
++t; //*记录成功匹配个数*//
} printf("*--------------------------------------------*");
printf("\n* %d 种 情 况! *", t); //*输出成功匹配方案个数*//
printf("\n**********************************************");
getchar();
return ;
} int IsChecked(int p[])
{
int i, j;
for (i = ; i<; ++i)
{
for (j = ; j< && p[j] != i; ++j); /*从0到6循环,如果数组中缺少0-6的任何一位数字,则返回0,如果0-6都有,则返回。*/
if (j == )
return ;
}
return ; //*这个函数的作用是确保0-6这7个数字均包含在该数组中*//
}

C语言课程设计-保安值班系统支持任意输入保安值班时间的更多相关文章

  1. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  2. Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)

    #Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...

  3. C语言课程设计

    目录 实现目的 游戏玩法介绍 实现流程与作品架构 任务列表及贡献度 总结感想 作品源码与仓库地址(附页) 资料引用与出处(附页) 实现目的 2048,作为一款极其经典的游戏,从发行到现在,已经有了极多 ...

  4. C语言课程设计—图书管理系统

    这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ网络硬盘中找到了当初的teta版,公布于此,以作纪念. C源码例如以下: #include<std ...

  5. C语言课程设计(成绩管理系统)

    C语言课程设计(成绩管理系统) 翻到了大学写的C语言课程设计,缅怀一下 内容: 增加学生成绩 查询学生成绩 删除 按照学生成绩进行排序 等 #include <stdio.h> #incl ...

  6. C语言课程设计——电影院订票系统

    1. 课题简介 大家都爱看电影,现请参考一个熟悉电影票预订系统,实现C语言版的订票系统.了解订票如何实现的.系统主要有2类用户:管理员用户和顾客用户. 管理员用户登录系统后,实现电影放映厅信息管理和电 ...

  7. C++ 课程设计——电梯调度系统

    这是我在本学期C++课程最后的课程设计报告,源代码将会上传到GitHub上. 一.背景 随着经济的不断发展,越来越多的摩天大楼拔地而起,而电梯作为高层建筑物种的运送人员货物的设备也越来越被广泛使用.电 ...

  8. 大一C语言课程设计——班级档案管理系统

    记录我在大一第二学期期末做的C语言课程毕业设计 1. 班级档案管理系统运用到的主要结构体 typedef struct birthday //出生日期{int year;int month;int d ...

  9. C语言课程设计大整数运算

    该大整数运算系统用于对有符号的位数不超过500位的大整数进行加.减.乘.除四则运算和计算N(0<=N<=10000)的阶乘.注意事项 :    1.操作期间,进行四则运算时若大整数为正数请 ...

随机推荐

  1. Vue2 原理解析

    现代主流框架均使用一种数据=>视图的方式,隐藏了繁琐的dom操作,采用了声明式编程(Declarative Programming)替代了过去的类jquery的命令式编程(Imperative ...

  2. 如何使用KVM 虚拟机安装RHEL7系统

    KVM(基于内核的虚拟机)是标准的RHEL内核中内置的完整的虚拟化解决方案.它可以运行多款未经修改的Windows和Linux虚拟客户机操作系统.RHEL中的KVM系统管理程序通过libvirtAPI ...

  3. (转)在Docker中运行Java:为了防止失败,你需要知道这些

    转自:https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=2649693848&idx=1&sn=4e9ef7e2a9d ...

  4. 连接web端,mysql,返回乱码解决

    参考:http://yushan.iteye.com/blog/265019

  5. MySQL字段数据全部查出【只保留中文、英文、数字、空格的词表】

    select * from xxx_xxx_bak where slot_type_id in ('xxx', 'xxx') ; by @大超超 记录备查

  6. Logistic回归分析简介

    Logistic回归:实际上属于判别分析,因拥有很差的判别效率而不常用. 1. 应用范围: ①     适用于流行病学资料的危险因素分析 ②     实验室中药物的剂量-反应关系 ③     临床试验 ...

  7. Scala开发入门指南

    作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.下载Scala 当前Scala的最新版本为2.10.2版,Windows有两种发布包: 1)Windo ...

  8. log4e下载地址

    Log4e的插件的下载地址:log4e.jayefem.de/content/view/3/1/

  9. .net System.IO之Stream的使用详解

    本篇文章是对.Net中System.IO之Stream的使用进行了详细的分析介绍,需要的朋友参考下 Stream在msdn的定义:提供字节序列的一般性视图(provides a generic vie ...

  10. java基础篇---文件上传(commons-FileUpload组件)

    上一篇讲解了smartupload组件上传,那么这一篇我们讲解commons-FileUpload组件上传 FileUpload是Apache组织(www.apache.org)提供的免费的上传组件, ...