C语言课程设计-保安值班系统支持任意输入保安值班时间
//.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语言课程设计-保安值班系统支持任意输入保安值班时间的更多相关文章
- 学生管理系统-火车订票系统 c语言课程设计
概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...
- Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)
#Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...
- C语言课程设计
目录 实现目的 游戏玩法介绍 实现流程与作品架构 任务列表及贡献度 总结感想 作品源码与仓库地址(附页) 资料引用与出处(附页) 实现目的 2048,作为一款极其经典的游戏,从发行到现在,已经有了极多 ...
- C语言课程设计—图书管理系统
这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ网络硬盘中找到了当初的teta版,公布于此,以作纪念. C源码例如以下: #include<std ...
- C语言课程设计(成绩管理系统)
C语言课程设计(成绩管理系统) 翻到了大学写的C语言课程设计,缅怀一下 内容: 增加学生成绩 查询学生成绩 删除 按照学生成绩进行排序 等 #include <stdio.h> #incl ...
- C语言课程设计——电影院订票系统
1. 课题简介 大家都爱看电影,现请参考一个熟悉电影票预订系统,实现C语言版的订票系统.了解订票如何实现的.系统主要有2类用户:管理员用户和顾客用户. 管理员用户登录系统后,实现电影放映厅信息管理和电 ...
- C++ 课程设计——电梯调度系统
这是我在本学期C++课程最后的课程设计报告,源代码将会上传到GitHub上. 一.背景 随着经济的不断发展,越来越多的摩天大楼拔地而起,而电梯作为高层建筑物种的运送人员货物的设备也越来越被广泛使用.电 ...
- 大一C语言课程设计——班级档案管理系统
记录我在大一第二学期期末做的C语言课程毕业设计 1. 班级档案管理系统运用到的主要结构体 typedef struct birthday //出生日期{int year;int month;int d ...
- C语言课程设计大整数运算
该大整数运算系统用于对有符号的位数不超过500位的大整数进行加.减.乘.除四则运算和计算N(0<=N<=10000)的阶乘.注意事项 : 1.操作期间,进行四则运算时若大整数为正数请 ...
随机推荐
- pandas数组(pandas Series)-(2)
pandas Series 比 numpy array 要强大很多,体现在很多方面 首先, pandas Series 有一些方法,比如: describe 方法可以给出 Series 的一些分析数据 ...
- ISO27001适用性-导图
大图请戳这里
- c#多线程 Invoke方法的使用
在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界 ...
- ubantu 单用户模式进入系统
提到如何在gurb界面进入单用户模式,此模式下,用户不需要输入任何密码即可进入系统.于是查了一下ubuntu如何通过grub界面以单用户模式进入系统.实验步骤如下: 1.重启系统 按住shift键 进 ...
- win7如何不用点击用户名 直接自动登录桌面
win7如何不用点击用户名 直接自动登录桌面 在win7系统中开机时必须点击相应的用户名才能登陆系统桌面那么如何取消这一功能使当前账户自动登录到系统桌面呢? 1 .在开始菜单搜索框输入 “netplw ...
- 【Linux】Linux根目录下各文件夹的意义
[root@localhost /]# ll / total 102 dr-xr-xr-x. 2 root root 4096 Dec 1 07:37 bin # binary file,二进制执行文 ...
- 解决chrome extension无法下载的问题
由于GFW把谷歌应用商店给屏蔽了,下载chrome扩展变得很困难. 我使用的是版本30.0.1599.101 m. 那么你需要做的第一个处理是,修改host文件,保证chrome应用商店可以登录.如下 ...
- 【Linux】svn添加用户
1. 找到svn安装路径 /svn/repositories/ (如果不知道,可以搜索 :find / -name svn或者是ps -ef | grep svn) 2.进入该目录的conf,其中包 ...
- jetty debug修改 java static 静态变量值不会生效
在jetty debug模式下修改static静态变量值不会重新Load 因为jetty是嵌入式web容器,static静态变量是全局的,如果想生效,就必须重启jetty 在热部署的时候tomcat会 ...
- tf.Variable
tf.Variable __init__( initial_value=None, trainable=True, collections=None, validate_shape=True, cac ...