c语言程序设保安值班,保安值班系统

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

保安值班系统

具体题目:学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。

#include

int main(void)

{

int j,k,h,n=0,flag=1;//用于判断的变量

int a,b,c,d,e,f,g;

int achoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice;//用于确定员工选择个数的变量

int q[7][7];//用于员工存储所选择的休假日的变量

int A[7];

printf("*******************欢迎进入值班系统********************\n");

printf("#\t\t提示说明!\t\t\t#\n");

printf("#\t  1.请各位保安人员输入自己想要选择的休假日:\t#\n");

printf("#\t  2.请先选择你要选择的次数\t\t\t#\n");

printf("#\t  3.再选择你要轮休的日期\t\t\t#\n");

printf("#\t\t\t\t\t\t#\n");

printf("#\t\t\t\t\t\t#\n");

printf("#\t\t\t\t\t\t#\n");

printf("****************欢迎进入值班系统*****************\n");//欢迎界面

printf("请钱输入你想选择的次数\n");

scanf("%d",&achoice);

printf("请钱输入选择的休假日\n:      ");

for(j=0;j

scanf("%d",&q[j][0]);     //a录入休假日

}

printf("请赵输入你想选择的次数\n");

scanf("%d",&bchoice);

printf("请赵输入选择的休假日\n:      ");

for(j=0;j

scanf("%d",&q[j][1]);    //b录入休假日

}

printf("请孙输入你想选择的次数\n");

scanf("%d",&cchoice);

printf("请孙输入选择的休假日\n:      ");

for(j=0;j

{

scanf("%d",&q[j][2]);           //c录入休假日

}

printf("请李输入你想选择的次数\n");

scanf("%d",&dchoice);

printf("请李输入选择的休假日\n:      ");

for(j=0;j

{

scanf("%d",&q[j][3]);            //d录入休假日

}

printf("请周输入你想选择的次数\n");

scanf("%d",&echoice);

printf("请周输入选择的休假日\n:      ");

for(j=0;j

{

scanf("%d",&q[j][4]);

}                                   //e录入休假日

printf("请吴输入你想选择的次数\n");

scanf("%d",&fchoice);

printf("请吴输入选择的休假日\n:      ");

for(j=0;j

{

scanf("%d",&q[j][5]);

}                                  //f录入休假日

printf("请陈输入你想选择的次数\n");

scanf("%d",&gchoice);

printf("请陈输入选择的休假日\n:      ");

for(j=0;j

{

scanf("%d",&q[j][6]);

}                                         //g录入休假日

for(a=0;a

{

for(b=0;b

{

for(c=0;c

{

for(d=0;d

{

for(e=0;e

{

for(f=0;f

{

for(g=0;g

{

//7个循环实现遍历

A[0]=q[a][0];

A[1]=q[b][1];

A[2]=q[c][2];

A[3]=q[d][3];

A[4]=q[e][4];

A[5]=q[f][5];

A[6]=q[g][6];

flag=1;

for(k=0;k<6;k++)

{

for(h=k+1;h<7;h++)

{

if(A[k]==A[h]) flag=0;

//比较任意两个数是否相等

}

}

if(flag==1)

{

//如果不等则输出结果

printf("得到以下组合:\n");

printf("钱:  ");

printf("星期%d \n",A[0]);

printf("赵:  ");

printf("星期%d \n",A[1]);

printf("孙:  ");

printf("星期%d \n",A[2]);

printf("李:  ");

printf("星期%d \n",A[3]);

printf("周:  ");

printf("星期%d \n",A[4]);

printf("吴:  ");

printf("星期%d \n",A[5]);

printf("陈:  ");

printf("星期%d \n",A[6]);

printf("   \n  ");

n++;

}

}

}

}

}

}

}

}

if(n==0)

{

printf("对不起,你们的选择不能实现排班,请重新选择!!\n");

}

return 0;

}

请哪位大佬帮忙添加点功能,这是我们的作业,老师说输出0种方案的话,就要输出显示一周中哪天没人选,然后让输入重叠的人的重新输入一下,在输出合理的方案

C程序 课程计报告 201— 201 学年第 学期 课程名称 C语言课程计题目 《排班系统》 学生姓名 学 号 专业班级 指导教师 201 年 月 日 目录 一、计任务书…………………………………………………………3 1、题目与要求…………………………………………………3 2、本程序涉及的知识点………………………………………3 二、程序流程图…………………………………………………………4 三、程序代码计………………………………………………………5 四、程序调试过程………………………………………………………6 五、程序运行过程………………………………………………………6 六、程序有待改进的地方………………………………………………9 七、程序计总结………………………………………………………9 八、致谢…………………………………………………………………9 参考文献…………………………………………………………………9 附录…………………………………………………………………… 10 一、计任务书 1、题目与要求 赵:星期二、星期四本程序实现的功能是对7名保安人员进行排班,要求每个人在一 星期中可以休息一天。每名保安可以自行选择自己想要的休息日,而对于休息日的选择 既可以是某一天,也可以是某几天中的其中一天。当7名保安依次输入自己想要的休息日 后,系统将会给出可能的值班安排。若系统给出的值班安排是0种,证明系统对7名保安 的选择无法作出排班,需要重新输入。 具体题目:学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需 要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日 。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息 日如下: 钱:星期一、星期六 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日 2、本程序涉及的知识点 输入函数和输出函数、变量的定义、for语句和switch-case语句的使用等 二、程序流程图 三、程序代码计 输入函数和输出函数、变量的定义、for语句和switch- case语句、ss字符串的使用等。 输入函数: 1)函数原形:自定义swap(int *a, int *b)函数 2) 功 能:swap()函数利用取地址符号&完成对程序中某个变量的赋值,进而程序中判断交换的 功能。 3)函数原形:get char() 4)功 能:向计算机输入一个字符。 5)变量及类型: int a,b,m,k: 整型形参变量,接收main()传过来的随机数字。 int i:循环控制变量,其中i 具有自加功能。 int j: 整型形参变量,其中j 具有自加功能。 6)说 明:输入字符后需要输入-1,待系统做出判断后往下执行。 选择判断结构 switch- case语句:从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行 ,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的 第一个语句继续执行,并忽略其他case;假如任何一个case语句的值都不等于表达式的 值,就运行可选标签default之下的语句。 假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会 跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。 for语句:for(语句1 ; 语句2 ; 语句3 ) {循环体} 执行时,先执行一次语句1(注意只执行一次) 之后判断语句2是否成立 1).如果成立执行循环体,之后执行语句3。再返回语句2判断条件是否成立?成立执行循 环体后再执行语句3,如此直到循环体不成立则跳出循环 2)如果语句2不成立,则不执行循环体也不执行语句3直接跳出循环。 输出函数: 1)函数原形:printf("======",*) 2)功 能:输出相关提示信息及最后结果。 3)相关变量: int n:输出正确结果。 int i,j:输出计算正确,计算排班情况。 4)说 明:输出时要把要输出的信息用双引号括起来,输出数字时要在其代表变量前 加逗号。 四、程序调试过程 由于对C语言知识储备有限,且时间精力有限,我们在程序程序的过程中遇到了 不少问题。 首先遇到的问题是:使用何种数组以及如何使输出变得简洁易懂,易操作。在思考讨 论之后,我们决定尽量"使输入数字化,输出结果文字化"的做法,也就是再输入星期几 的时候直接用数字代替,在输出的时候,为了更加直观,就需要把原先的数字输出为星 期几这种文字的形式;在单个对象输出结束之后,我们选择了 -1这个不会与其他日期混淆的数字,以此表示可以对下一个对象进行输出。这就需要
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值