//.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. Binlog中最容易踩到的坑

    MySQL高可用架构中,主库复制是非常常见的一种. 当主库宕机后,可以提升一个从库作为新的主库,保证服务可用性:同时可以通过扩展从库,提高整个集群的QPS. 在主从复制架构下,MySQL通过binlo ...

  2. Win8/Win10下程序经常无响应的解决办法

    如果你使用Win8/Win10系统时经常出现程序无响应的问题不仿试下如下解决办法. 表现症状: 任何程序都有可能出现无响应(记事本.Visual Studio.QQ.视频播放器等) 一旦一个程序出现未 ...

  3. vim学习笔记(11):vim 去掉<200b>

    vim查看文件,发现多了<200b>字符,使用/200b搜索匹配不上:grep 200b 也匹配不上 查询后才知道:200b是:Unicode Character 'ZERO WIDTH ...

  4. (转)Maven学习-处理资源文件

    转自:http://www.cnblogs.com/now-fighting/p/4888343.html 在前面两篇文章中,我们学习了Maven的基本使用方式和Maven项目的标准目录结构.接下来, ...

  5. DIOCP开源项目-数据库连接池的使用<多帐套数据库>

    很久没有写DIOCP的Demo了,主要公司的事情太繁琐,工作之余都不想动了,之前承若的群里面朋友们的DEMO,昨天晚上恶补了一下,把对数据库连接池的操作加入到了Demo中,大家可以通过SVN下载到最新 ...

  6. 【转】(四)unity4.6Ugui中文教程文档-------概要-UGUI Visual Components

    原创至上,移步请戳:(四)unity4.6Ugui中文教程文档-------概要-UGUI Visual Components 3.Visual Components 有新的组件和游戏对象已添加到uG ...

  7. CSS动画实现菜单栏从左边滑出

    盗用一下图片吧:实际效果图如下: 1,有一个nav的侧边栏,有一个遮罩层,随着侧边栏打开,然后点击遮罩层关闭侧边栏 关键代码: 1.给slideNav(侧边栏设置如下属性) .slideNav { p ...

  8. Python爬取新浪微博评论数据,写入csv文件中

    因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...

  9. u盘引导制作工具

    https://rufus.ie/en_IE.html

  10. ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN

    问题描述:FatalListenerStartupException: Authentication failure 问题原因:连接RabbitMQ服务器异常,要么是用户名和密码错误,要么是使用的用户 ...