保安值班安排系统c语言课设.docx

上传人:b****7 文档编号:23933133 上传时间:2023-05-22 格式:DOCX 页数:16 大小:163.60KB
下载 相关 举报
保安值班安排系统c语言课设.docx_第1页
第1页 / 共16页
保安值班安排系统c语言课设.docx_第2页
第2页 / 共16页
保安值班安排系统c语言课设.docx_第3页
第3页 / 共16页
保安值班安排系统c语言课设.docx_第4页
第4页 / 共16页
保安值班安排系统c语言课设.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

保安值班安排系统c语言课设.docx

《保安值班安排系统c语言课设.docx》由会员分享,可在线阅读,更多相关《保安值班安排系统c语言课设.docx(16页珍藏版)》请在冰豆网上搜索。

保安值班安排系统c语言课设.docx

保安值班安排系统c语言课设

成绩评定表

学生姓名

王金强

班级学号

1203030224

专业

电子信息工程

课程设计题目

保安值班安排系统

 

 

组长签字:

成绩

 

日期

 

2013年1月5日

课程设计任务书

学院

信息科学与工程学院

专业

电子信息工程

学生姓名

王金强

班级学号

1203030224

课程设计题目

保安值班安排系统

实践教学要求与任务:

某公司有7名保安人员:

赵、钱、孙、李、周、吴、陈。

由于工作需要进行轮休制度,一星期中每人休息一天。

预先让每一个人选择自己认为合适的休息日。

请编制一程序,打印轮休的所有可能方案。

当然使每个人都满意,例如每人选择的休息日如下:

赵:

星期二、星期四

钱:

星期一、星期六

孙:

星期三、星期日

李:

星期五

周:

星期一、星期四、星期六

吴:

星期二、星期五

陈:

星期三、星期六、星期日

工作计划与进度安排:

本课程设计时间为19教学周。

其中包含设计、代码调试、课程设计论文撰写几个阶段。

第19周

星期一:

设计任务分析和总体设计

星期五:

软件算法和流程设计、软件编码实现

星期六:

软件总体调试、软件运行分析、答辩、验收程序、书写课程设计报告,提交

指导教师:

201年月日

专业负责人:

201年月日

学院教学副院长:

201年月日

1需求分析……………………………………………………..4

2概要设计…………………………………………………..…5

2.1题目概述……………………………………….………5

2.2算法流程图……………………………….……….…..6

3详细设计……………………………………………….….….8

3.1算法分析………………………………….….…8

3.2核心代码………………………….….……..…9

4调试分析……………………………………………..…….13

5课设总结………………………………………………..…….17

6参考文献………………………………………………..……..18

1需求分析

该程序有多种功能,是一套保安值班安排系统。

设计这个程序希望可以把保安轮休的所有可能方案打印出来,可以通过输入保安姓名将对应保安的信息打印到屏幕上;整个过程在一个可操作的界面内实现,操作方便,菜单简单易懂,能准确无误的显示需要的信息.该程序具有程序运行效率高的优点,数据类型丰富,结构化控制语句功能强等优点.

 

2概要设计

2.1题目概述

程序实现的功能是对7个员工实现排班,7个员工每个员工有一天的休假日,但是这一天的休假日可由员工自行选择,选择他们想要休假的时间,可由多个选择,也可只有一个选择,7个员工依次输入完毕后,程序会输出满足7个员工的多种排班方式。

对于7个人选择有冲突的,输出相应的提示。

具体题目:

学校实验楼有7名保安人员:

赵,钱,孙,李,周,吴,陈。

由于工作需求要进行轮休制度,一星期中每人休息一天。

预先让每一个人选择自己认为合适的休息日。

输出轮休的所有可能方案。

当然使每个人都满意。

例如每人选择的休息日如下:

赵:

星期二,星期四

钱:

星期一,星期六

孙:

星期三,星期日

李:

星期五

周:

星期一,星期四,星期六

吴:

星期二,星期五

陈:

星期三,星期六,星期日

 

2.2算法流程图如图2-2:

图2—2总流程图

 

2.3for循环的流程图如图2-3:

图2-37个嵌套for循环的流程图

 

3详细设计

3.1算法分析

该程序实现对7个员工进行排班的功能,输出7个员工的休息日。

该程序首先给出提示对员工们实现数据录入,录入7个人对于休假日的不同选择,这个需求本程序通过7个独立的for循环来实现,然后针对大家不同的选择经过编译后通过7个嵌套的for循环采取遍历查找的方法输出满足要求的组合,对于7个人选择有冲突,而未能输出满足要求组合的给予提示,让他们重新选择。

该程序未通过定义和调用其他函数来实现,仅一个main()函数就可以了,在main()函数里实现数据录入和比较得出结果的功能

1.定义变量

2.输出欢迎界面;

3.通过7个独立的for循环,依次输入7个人的选择情况;

4.通过7个嵌套的循环依次进行遍历按要求组合。

5.通过两个for循环依次判断组合里的任意两个数不相等

6.若任意两个数不相等,输出对应组合。

此处函数通过7个嵌套的for()循环依次进行遍历按要求排列出组合。

每一次遍历下来,就把a,b,c,d,e,f,g输入的选择情况分别赋给A[0],A[1],A[2],A[3],A[4],A[5],A[6].

说明:

因为每个人有多个选择,本程序利用的思想是通过7个嵌套的for遍历循环,找出符合条件的组合。

从a的第一个选择,b的第一个选择,c的第一个选择,d的第一个选择,e的第一个选择,f的第一个选择,g的第一个选择排出一个组合,再a的第一个选择,b的第一个选择,c的第一个选择,d的第一个选择,e的第一个选择,f的第一个选择,g的第二个选择。

直到结束g的选择为止,前面不变,开始从f的第二个选择开始。

这样依次遍历下去,得到N个组合,但是,这样遍历下来得到的N个组合必有两个人选择相同的情况。

这时候就得定义两个变量。

一个是一维数组A[7]和判断变量flag。

 

3.2核心代码

#include

intmain(void)

{

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

inta,b,c,d,e,f,g;

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

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

intA[7];

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

printf("#\t\t特别注意!

\t\t\t#\n");

printf("#\t请各位工作人员输入自己想要轮休的日期\t#\n");

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

printf("#\t再选择你要轮休的日期\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

=0;a++){

for(b=0;b

=0;b++){

for(c=0;c

=0;c++){

for(d=0;d

=0;d++){

for(e=0;e

=0;e++){

for(f=0;f

=0;f++){

for(g=0;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");}

return0;}

4调试分析

进入程序后,如图4-1所示:

图4-1欢迎界面

1.只输出一组如图4-2:

图4-2输出一种结果的排序输入

 

输出结果如图4-3:

图4-3输出一种结果

2.不能输出结果的输入如图4-4:

图4-4无法输出结果的排序输入

输出结果如图4-5:

图4-5输出无法实现排班的结果

3.输出多组结果的输入如图4-6:

图4-6输出多种结果的排序输入

 

输出结果如图4-7:

图4-7输出多种组合

 

5课程总结

程序设计是一次让我们综合自己所学习的知识,把他应用到实际的一次机会,平常我们学的编程语言总显得那么的不灵活,很多时候我们一本书学下来了,仍编不出一个简单的程序,通过对一个小项目功能的实现,我们不仅重温了平时所学的知识点,还增强了自己的动手能力。

对于一个程序,在我看来,最重要的莫过于思路,同一个程序可以由多个思路来实现,然而我们所要做的就是通过多次的编码调试找出最简,最优思路。

好的思路能无疑能使一个程序员实现事半功倍的效果。

接着就要根据自己的思路为该程序设计算法,只有轮廓形成后才能开始编码,编写的过程中还应搜索记忆中的语言基础,找到最简便的表达方式,增加程序的可读性,代码编写完成后,经过多次编译后无错误了也不代表程序就完成了,运行程序时还应通过多组不同情况,看能否实现。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

通过这次课程设计之后,让我养成了编程的好习惯,就是先列清自己的思路,写清自己的算法,必要时还要画流程图,编写程序时也不是依次由上而下写,而是先把主要函数列出来再一一编写。

通过这次实践,我对很多函数有了新的认识,我也明白了写程序的基本过程和基本方法。

这次课程设计总的来说让我受益匪浅。

我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时请教,解决问题,从而更好的掌握书本中知识。

还有通过这次实践也让我懂得了:

学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。

因此,我会认真地对待我的每一次实验。

 

6参考文献

[1]谭浩强编著.C++程序设计.北京:

清华大学出版社,2005

[2]谭浩强编著.C++程序设计解题与上机指导.北京:

清华大学出版社,2005

[3]谭浩强编著.C程序设计(第二版).北京:

清华大学出版社,1999

[4]谭浩强编著.C程序设计设计解题与上机指导(第二版).北京:

清华大学出版社,1999

[5]孙淑霞等C/C++程序设计实验指导与测试(第2版),电子工业出版社,2007.1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1