C语言课程设计报告_计算机-.NET.pdf
欢迎下载 XX大学 课 程 设 计 报 告 课程设计名称:C 语言课程设计 课程设计题目:排班系统 院(系):XX学院 专 业:XX 班 级:XX 学 号:XXXXXXXXXXXXX 姓 名:XX 指导教师:XXX 完成日期:XX年X月X日 欢迎下载 目 录 第1章 需求分析与概要设计.1 1.1 需求分析.1 1.2 概要设计.1 第2章 详细设计.2 2.1 排班系统基本结构.2 2.1.1 排班系统细节剖析.2 2.2 程序详细介绍(算法实现).3 第3章 调试分析.5 3.1 我的调试:.5 3.2 运行结果.5 第4章 用户手册及结束语.8 4.1 用户手册.8 4.2 结束语.8 参考文献.9 附 录(程序清单).10 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 第 1 章 需求分析与概要设计 1.1 需求分析 1.题目要求:为多名保安设计一个排班系统,每人可以自行预先选出一天为休息日,系统打印可能的轮班方案并存储结果。尽可能做到令所有人满意,保排班方案的公平性。2.题目分析:本题的重点和难点在于保安的人数是不确定的,且他们可能选择的休息日也无法确定,所以方案的结果也就不仅仅有一种。由此可以看出只有解决好这两个问题,才能够符合该题目的要求,完成保安的排班工作。1.2 概要设计 1.总体思路:对于这道题目,我的思路是采用二维数组的方式来解决。大概过程是先假设所有人都上班,即没有休息日。然后再让每个人进行选择自己希望的休息日。先每个人选择出一天,然后系统进行排班,输出其所输入数据的对应方案。然后在第一次所输数据的基础上,若还有其他选择,则进行二次输入,以此更改初始数据,重新设计可能的排班方案。2.细节实现:因为题目的要求是打印可能的方案,那么如何来实现打印呢?我采用了通过对二位数组中的每一个值用阿拉伯数字0 和 1 来标记,以 1 来表示工作,0 来表示休息。3.功能作用:本系统系保安的排班系统,可以完成基本的排班功能,在此基础上,还为用户设计了二次输入的选项,以此来解决当所输数据不满足要求,无法完成排班的问题,同时也可以为用户提供更多的可行方案,而不是仅仅局限于一种。期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 第 2 章 详细设计 2.1 排班系统基本结构 有 无 图 2.1 排班系统基本结构 此排班系统主要分为:显示欢迎界面、排班界面及选择界面。该系统各部分间有序衔接,各尽其责,如图 2.1 所示,充分展现了该系统的协调性与整体性。2.1.1 排班系统细节剖析 此排班系统的重点在于每次对二维数组的赋值操作,最开始时是将所有的初值都赋为 1,然后以 0 来赋给选择对应日期、对应人的对应数值。这样一来,便可以将每个人的每天上班与否进行标记(1 是工作,0 是休息),这道题目的另一个难点在于对每个人有比较公平的方案,所以该问题在设计时,我就将含有小于规定数量工作人数的方案标记为不可行方案,同时在屏幕输出该方案排出的结果,开始 屏幕显示欢迎界面 输入选择 排出方案 其他选择 保存方案 结束 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 以供操作人员查阅该方案到底哪里不可行,利于下次输入数据地改动。2.2 程序详细介绍(算法实现)我的这套程序大致可以分为三个部分:1.数据输入部分 即第一次输入数据(每个人的选择),该部分是通过二位数组来实现的,以第几个人来控制数组的第一个下标,以周几来控制该数组的第二个下标,这样就可以将所有的人所有的天数看做一个二维表来实现选择信息的数字化,如表2.1、2.2 所示。表 2.1 每个人的工作选择 周一 周二 周三 周四 周五 周六 周日 1.zhao 工作 工作 工作 休息 工作 工作 工作 2.qian 工作 工作 工作 工作 工作 休息 工作 3.sun 工作 工作 工作 工作 工作 工作 休息 4.li 工作 工作 休息 工作 工作 工作 工作 5.zhou 工作 工作 休息 工作 工作 工作 工作 6.wu 工作 工作 工作 工作 工作 工作 休息 表 2.2 对应的数组 a 0(下标)1 2 3 4 5 6 0(下标)0 1 1 0 1 1 1 1(下标)1 1 1 1 1 0 1 2(下标)2 1 1 1 1 1 0 3(下标)3 1 0 1 1 1 1 4(下标)4 1 0 1 1 1 1 5(下标)5 1 0 1 1 1 1 6(下标)6 1 1 1 1 1 0 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 2.数据转化为方案:该部分是以 for 循环为工具手段,对每一个数据进行扫描判断,然后将工作的人打印出来,即保安工作排班表。这样一个方案就完成了。3.方案的更改:此部分则是以更改个别数据为主,其他数据依然参照之前的数据,其实现的方法就是用第二次输入的数据,对第一次的数据进行覆盖,在这个覆盖的过程中,我们不仅要将二次选择的人及选择的天对应的数据更改为 0,同时还要对原数组中此人的选择对应的数值恢复为零,我最开始设计时,就忽略了这一点,造成输出的方案有的人一周休息一天,有的人休息了两天,失去了设计方案的公平性。以此造成很多困扰,后来经过详细分析、查找,我采用了每次只覆盖数组中的数值,而将二次选择的人的首选数字进行保留,这样就实现了公平排班的理念。期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 第 3 章 调试分析 3.1 我的调试:1.在刚刚完成编译时,程序中有很多语法错误,如将“;”打成了中文输入法,甚至是干脆忘记打的情况,还有比如将 for 循环下面的括号只打了一半等,这些语法错误给我造成了许多困扰,后经逐条更改,最后终于得以运行。2.除了一些语法错误,在运行的过程中还出现了许多其他的错误。如上文提到的由于没有将初次选择更改回为工作,造成方案的不公平等,这个问题我在初期一直没有弄懂,后经单步调试,对数组中的逐个数字进行跟踪,终于发现了这个问题,并想出方案解决 3.2 运行结果 该软件运行时会出现以下几种情况:1.正常进行排班,显示出对应的排班方案,如图3.1 所示:图 3.1 正常排班 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 2.更改其中一个人的选择,输出第二方案,如图 3.2:图 3.2 其他选择 3.无其他选择,保存方案至文件“保安排班方案”,如下图:图 3.3 存储的方案 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 4.当用户输入的选择对应的方案不可行时,软件会给出提示,如图 3.4 所示:图 3.4 方案不可行 5.这时我们对选择进行二次调整,如图 3.5 所示:图 3.5 调整方案 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 第 4 章 用户手册及结束语 4.1 用户手册 本软件用户请注意以下几点:1.当打开本软件时,会出现欢迎使用界面,同时出现输入提示,请您按照提示依次进行操作;2.值得注意的是,本软件采用的是输入数字进行选择,每次输入数字后,请输入回车键;3.当电脑屏幕提示更改选择时,在输入两个数字时,请以空格隔开。4.2 结束语 本系统是我经过两周时间冥思苦想得来的结果。在设计该系统时我也遇到了许多困难。如最开始时我想采用的是想将所有数组同时赋值,然后同时进行扫描,可是后来发现这样的方法是行不通的(或许以后学的多了能够解决,但目前来说知识量还很有限),因为在进行两个 for 循环时,会出现交叉限制的情况,无法完成扫描,所以我最终想出了一次只对一个二维表赋值、扫描。对于其他方案则是以二次输入数据的方式进行更改初值,以达到排班的目的。当然,可能该系统在功能上还存在一些弊端,但至少这也是我两周来的辛苦成果。我以后一定会继续努力,对该系统进行进一步的完善。期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 参考文献 1 谭浩强著.C 程序设计(第三版).清华大学出版社,2009 2 Harvey M.Deitel,Paul J.Deitel编著 聂雪军、贺军译.C 程序设计经典教程.清华大学出版社,2006 3 王敬华、林萍、张清国编著.C 语言程序设计教程(第二版).清华大学出版社,2013 4 谭浩强著.C 程序设计题解与上机指导(第三版).清华大学出版社,2008 5 温海、张友、童伟等编著.C 语言精彩编程百例.中国水利水电出版社,2004 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 附 录(程序清单)程序源代码:#define N 10#include struct guard char name20;int choice;guN;void main()int i,j,k,m,total,x,y;int aN7,b7=0,0,0,0,0,0,0;FILE*fp;fp=fopen(d:保安排班方案.txt,w);printf(nn*欢迎使用微微排班软件,本软件代表制作人祝您工作顺利,阖家欢乐*nn*下面就让我们一起开启排班的旅程吧!*nn);printf(请输入保安总人数:n);scanf(%d,&total);for(i=0;itotal;i+)/将所有值初始化为一 for(j=0;j7;j+)aij=1;for(i=0;itotal;i+)/以每个人为线索进行循环 printf(请输入保安的姓名:n);期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 scanf(%s,gui.name);printf(他的选择是:1.周一;2 周二;3.周三;4.周四;5.周五;6.周六;7.周日n);scanf(%d,&gui.choice);if(gui.choice=1)ai0=0;b0+;if(gui.choice=2)ai1=0;b1+;if(gui.choice=3)ai2=0;b2+;if(gui.choice=4)ai3=0;b3+;if(gui.choice=5)ai4=0;b4+;期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 if(gui.choice=6)ai5=0;b5+;if(gui.choice=7)ai6=0;b6+;/赋值 0 for(k=0;k+)for(j=0;j=total-1)/判断方案是否可行 printf(方案不可行!如下:n);fprintf(fp,n 您所输入的数据派出的方案不可行!如下:n);fprintf(fp,n 周一:);printf(n 周一:);for(i=0;itotal;i+)if(ai0=1)printf(%st,gui.name);fprintf(fp,%st,gui.name);fprintf(fp,n 周二:);期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 printf(n 周二:);for(i=0;itotal;i+)if(ai1=1)printf(%st,gui.name);fprintf(fp,%st,gui.name);fprintf(fp,n 周三:);printf(n 周三:);for(i=0;itotal;i+)if(ai2=1)printf(%st,gui.name);fprintf(fp,%st,gui.name);fprintf(fp,n 周四:);printf(n 周四:);for(i=0;itotal;i+)if(ai3=1)printf(%st,gui.name);fprintf(fp,%st,gui.name);fprintf(fp,n 周五:);printf(n 周五:);for(i=0;itotal;i+)if(ai4=1)期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 printf(%st,gui.name);fprintf(fp,%st,gui.name);fprintf(fp,n 周六:);printf(n 周六:);for(i=0;itotal;i+)if(ai5=1)printf(%st,gui.name);fprintf(fp,%st,gui.name);fprintf(fp,n 周日:);printf(n 周日:);for(i=0;itotal;i+)if(ai6=1)printf(%st,gui.name);fprintf(fp,%st,gui.name);/完成一次 printf(n 请问还有其他选择吗?n1.有;2,没有n);fprintf(fp,nnn 其他选择:n);scanf(%d,&m);if(m=1)printf(n 请问是第几个人?他的选择是?);scanf(%d%d,&x,&y);x-;y-;期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 axgux.choice-1=1;axy=0;bgux.choice-1-;by+;else fprintf(fp,无);break;fclose(fp);期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择 欢迎下载 课程设计总结:在本次课程设计中,我收获颇多,从以前简简单单的仅有理论知识,到现在的通过理论知识来解决实际问题,我收获的不仅仅是一个排班系统,更是一种能力,一种实实在在的动手能力。感谢老师能给我们这个实践的机会。这次课程设计,从构思,到设想,到实际动手去编程,到每一次的发现问题,解决问题,再到最后的报告,都是我一步一步,一个脚印一个脚印自己走出来的,而这每一次困难,每一次磨砺,也都使我收获的更多,成长的更快。我觉得这不仅仅是一次小小的课设,同时更是我们重塑自我的一个转折,走好这一步,我们也就离我们的目的地更近了一些。都说十年磨一剑,我们只有在这样的不断地实践中,才能真正地收获自我。另外从这次课程设计中,我也领悟到了一点,那就是人是在不断地实践与尝试中进步的,我以后也一定力求做到这点,以后多多进行专业知识实践,而不是仅仅局限在课程设计当中。即使没有课设,我们也要为自己创造问题。只有这样,我们才能真正提高自己的能力。指导教师评语:指导教师(签字):年 月 日 课程设计成绩 期年月日欢迎下载目录第章需求分析与概要设计需求分析概要设计第章详细设计排班系统基本结构排班系统细节剖析程序详细介绍算法实现第章调试分析我的调试运行结果第章用户手册及结束语用户手册结束语参考文献附录程序清为休息日系统打印可能的轮班方案并存储结果尽可能做到令所有人满意保排班方案的公平性题目分析本题的重点和难点在于保安的人数是不确定的且他们可能选择的休息日也无法确定所以方案的结果也就不仅仅有一种由此可以看出采用二维数组的方式来解决大概过程是先设所有人都上班即没有休息日然后再让每个人进行选择自己希望的休息日先每个人选择出一天然后系统进行排班输出其所输入数据的对应方案然后在第一次所输数据的基础上若还有其他选择