保安值班安排系统.docx
《保安值班安排系统.docx》由会员分享,可在线阅读,更多相关《保安值班安排系统.docx(8页珍藏版)》请在冰豆网上搜索。
![保安值班安排系统.docx](https://file1.bdocx.com/fileroot1/2023-1/30/b3677331-7f21-4d43-89e9-26fcbc874300/b3677331-7f21-4d43-89e9-26fcbc8743001.gif)
保安值班安排系统
一、课程设计的内容保安值班安排系统
某公司有7名保安人员:
赵、钱、孙、李、周、吴、陈。
由于工作需要进行轮休制度,一星期中每人休息一天。
预先让每一个人选择自己认为合适的休息日。
请编制一程序,打印轮休的所有可能方案。
当然使每个人都满意,例如每人选择的休息日如下:
赵:
星期二、星期四
钱:
星期一、星期六
孙:
星期三、星期日
李:
星期五
周:
星期一、星期四、星期六
吴:
星期二、星期五
陈:
星期三、星期六、星期日
二、课程设计的要求与数据
1、进一步掌握和利用C语言进行程设计的能力;
2、进一步理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或N-S图表示算法;
6、掌握书写程序设计开发文档的能力。
三、课程设计应完成的工作
1、编写完成相应题目的程序;
2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:
1)需求分析:
包括设计题目、设计要求以及系统功能需求分析;
2)总体设计:
包括系统总体设计框架和系统功能模块图;
3)详细设计:
包括主要功能模块的算法设计思路以及对应的工作流程图;
4)调试分析过程描述:
包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);
5)总结:
课程设计完成了哪些功能,有没有什么扩展功能?
还有哪些地方需要改进?
课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;
6)附录:
主要源程序代码,含必要的注释。
3、答辩:
在实验室建立程序运行的环境,并在指导教师的监督下,独立解
决问题、运行程序和回答教师提出的问题。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
下达任务书,说明设计要求;收集资料
实验3#517
6.18
2
总体方案设计、详细设计
实验3#517
6.19
3
编写程序,调试分析
实验3#517
6.20
4
撰写报告并上交,答辩
实验3#517
6.21
五、应收集的资料及主要参考文献
[1]谭浩强.C程序设计(第三版)[M],北京:
清华大学出版社,2005.9
[2]谭浩强.C程序设计题解与上机指导(第三版)[M],北京:
清华大学出版社,2005.7
[3]张宏烈C语言程序设计方法哈尔滨工业大学出版社2004.02
[4]胡建平C语言程序设计学习指导书天津大学出版社2005-8-1
发出任务书日期:
2007年6月18日指导教师签名:
计划完成日期:
2007年6月22日基层教学单位责任人签章:
主管院长签章:
目录
1设计目的与要求………………………………………………………………页码
2总体设计………………………………………………………………………页码
3详细设计………………………………………………………………………页码
3.1功能模块设计………………………………………………………………页码
3.1.1XX功能模块(可选)…………………………………………………页码
3.1.1YY功能模块(可选)…………………………………………………页码
3.1.1ZZ功能模块(可选)…………………………………………………页码
3.2数据结构设计………………………………………………………………页码
4调试分析……………………………………………………………………页码
5总结……………………………………………………………………………页码
6附录……………………………………………………………………………页码
6答辩记录(正文处请留出适当空白)………………………………………页码
7指导教师意见(正文处请留出十行空白)…………………………………页码
1目的与要求
1.课程设计的目的
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程序调试能力。
2.课程设计的内容及要求
利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,帮助学生熟悉程序编写,及时查究错误,独立完成。
2)总体要求
①对系统进行功能模块分析、控制模块分析正确;
②系统设计要实用;
③编程简练,可用,功能全面,具有较好的健壮性;
④说明书、流程图要清楚。
(3)课程设计报告要求
①需求和规格说明:
问题描述:
题目要解决的问题是什么?
②设计
⊕设计思路:
主要算法思想。
⊕总体设计:
程序设计组成框图、N-S流程图。
⊕详细设计:
模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描
述等)。
③调试与测试:
调试过程中遇到的主要问题,是如何解决的;对设计和编码的回顾讨论
和分析;改进设想;经验和体会等。
④附录:
源程序清单和结果。
如果题目规定了测试数据,则结果要包含这些测试数据和
运行输出,当然还可以含其他测试数据和运行输出;清单中应有足够的注释。
2总体设计
让计算机随机安排值班情况
判断是否符合第一个人的要求,
若符合,再判断是否符合第二个人的要求
若第二个人的要求也符合,继续判断是否符合第三人要求,
······
若一直到判断出第七个人的要求也符合,这输出这种安排
若以上几次判断中有出现某次判断不符合要求的,
则跳出判断语句,让计算机重新给出新的安排情况。
然后开始对新的安排情况进行以上判断
······
不断循环进行以上操作,直到对所有情况都判断完毕
输出最后符合条件的安排结果
3详细设计
(内容可以适当调整,清晰的有条理的把你的设计思路表达出来)
3.1功能模块设计
3.1.1XX功能模块(可选)
3.1.2YY功能模块(可选)
3.1.3ZZ功能模块(可选)
3.2数据结构设计(可选)
使用了for语句执行最外面的循环
使用if-else语句执行多次层层深入的判断
#include
#include
staticchar*WEEK[7]={"Sun.","Mon.","Tues.","Wedn.","Thur.","Fri.","Sat."};
intIsChecked(constintpSon[]){
inti,j;
for(i=0;i<7;++i){
for(j=0;j<7&&pSon[j]!
=i;++j);
if(j==7)return0;
}
return1;
}
voidmain()
{
int t=0,j,person[7];
longi;
printf("ZHAO, QIAN, SUN, LI, ZHOU, WU, CHEN\n\n");
for(i=0;i<2097152;++i){
for(j=0;j<7;++j){
person[j]=(i>>(3*j))&7L;
}
if(!
(person[0]==2||person[0]==4))continue;
elseif(!
(person[1]==1||person[1]==6))continue;
elseif(!
(person[2]==3||person[2]==0))continue;
elseif(!
(person[3]==5))continue;
elseif(!
(person[4]==1||person[4]==4||person[4]==6))continue;
elseif(!
(person[5]==2||person[5]==5))continue;
elseif(!
(person[6]==3||person[6]==6||person[6]==0))continue;
elseif(!
IsChecked(person))continue;
for(j=0;j<7;++j){
printf("%s ",WEEK[person[j]]);
}
printf("\n");
++t;
}
printf("\n%dMethods!
\n",t);
getch();
}
4调试分析
改正后的程序运行一切正常
编译结果:
保安.exe-0error(s),0warning(s)
运行结果:
ZHAO,QIAN,SUN,LI,ZHOU,WU,CHEN
Thur.Sat.Wedn.Fri.Mon.Tues.Sun.
Thur.Mon.Wedn.Fri.Sat.Tues.Sun.
Thur.Sat.Sun.Fri.Mon.Tues.Wedn.
Thur.Mon.Sun.Fri.SatTues.Wedn.
4Methods!
5总结
在编写程序过程中,自己老犯漏符号的毛病
但是,一次次地纠正后,终于完成了这项程序的编写工作
结果是可以正常运行
程序设计工作总会在实际操作中出现各种困难与错误
要求我们要有耐心,与寻找错误,纠正错误的能力
同时,编写程序要求有缜密的思维,严谨的态度
7.附录
#include
#include
staticchar*WEEK[7]={"Sun.","Mon.","Tues.","Wedn.","Thur.","Fri.","Sat."};
intIsChecked(constintpSon[]){
inti,j;
for(i=0;i<7;++i){
for(j=0;j<7&&pSon[j]!
=i;++j);
if(j==7)return0;
}
return1;
}
voidmain()
{
int t=0,j,person[7];
longi;
printf("ZHAO, QIAN, SUN, LI, ZHOU, WU, CHEN\n\n");
for(i=0;i<2097152;++i){
for(j=0;j<7;++j){
person[j]=(i>>(3*j))&7L;
}
if(!
(person[0]==2||person[0]==4))continue;
elseif(!
(person[1]==1||person[1]==6))continue;
elseif(!
(person[2]==3||person[2]==0))continue;
elseif(!
(person[3]==5))continue;
elseif(!
(person[4]==1||person[4]==4||person[4]==6))continue;
elseif(!
(person[5]==2||person[5]==5))continue;
elseif(!
(person[6]==3||person[6]==6||person[6]==0))continue;
elseif(!
IsChecked(person))continue;
for(j=0;j<7;++j){
printf("%s ",WEEK[person[j]]);
}
printf("\n");
++t;
}
printf("\n%dMethods!
\n",t);
getch();
}
编译结果:
保安.exe-0error(s),0warning(s)
运行结果:
ZHAO,QIAN,SUN,LI,ZHOU,WU,CHEN
Thur.Sat.Wedn.Fri.Mon.Tues.Sun.
Thur.Mon.Wedn.Fri.Sat.Tues.Sun.
Thur.Sat.Sun.Fri.Mon.Tues.Wedn.
Thur.Mon.Sun.Fri.SatTues.Wedn.
4Methods!
7答辩记录
序号
问题
回答
1
2
3
4
5
8指导教师意见
指导教师签名: