C程序课程设计报告
201 — 201学年第—学期
课程名称C语言课程设计
设计题目〈〈排班系统》
学生姓名
学 号
专业班级
指导教师
201年 月 日
目录
TOC \o "1-5" \h \z 一、设计任务书3
1、题目与要求 3
2、本程序涉及的知识点 3
\o "Current Document" 二、程序流程图 4
\o "Current Document" 三、程序代码设计 5
\o "Current Document" 四、程序调试过程 6
\o "Current Document" 五、程序运行过程 6
\o "Current Document" 六、程序有待改进的地方 9
\o "Current Document" 七、程序设计总结 9
\o "Current Document" 八、致谢 9
\o "Current Document" 参考文献 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语言知识储备有限,且时间精力有限,我们在设计程序程序的过程中遇到了不少问题。
首