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)函数 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(语句1 ; 语句2 ; 语句3 ) {循环体}
执行时,先执行一次语句1(注意只执行一次) 之后判断语句2是否成立 1).如果成立执行循环体,之后执行语句3。再返回语句2判断条件是否成立?成立执行循环体后再执行语句3,如此直到循环体不成立则跳出循环 2)如果语句2不成立,则不执行循环体也不执行语句3直接跳出循环数组中存放星期一星期二我们可以通过前面输入的数字来引用文字#include
int n = 0;
int rest[7][7];
void swap(int *a, int *b)
{
int m;
m = *a;
*a = *b;
*b = m;
}
void perm(int list[], int k, int m)
{
int i;
int j;
if(k > m)
{
for (i=0; i<7;