ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:163.60KB ,
资源ID:23933133      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23933133.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(保安值班安排系统c语言课设.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、保安值班安排系统c语言课设成 绩 评 定 表学生姓名王金强班级学号 1203030224专 业电子信息工程课程设计题目保安值班安排系统评语组长签字:成绩日期 2013 年 1 月 5日课程设计任务书学 院信息科学与工程学院专 业电子信息工程学生姓名王金强班级学号1203030224课程设计题目保安值班安排系统实践教学要求与任务:某公司有 7 名保安人员:赵、钱、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星 期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制一程序,打印轮休 的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下: 赵:星期二、星期四 钱:星期一、星期六

2、 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日工作计划与进度安排:本课程设计时间为19教学周。其中包含设计、代码调试、课程设计论文撰写几个阶段。第19周星期一:设计任务分析和总体设计星期五:软件算法和流程设计、软件编码实现星期六:软件总体调试、软件运行分析、答辩、验收程序、书写课程设计报告,提交指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日1 需求分析. 42 概要设计. 5 2.1 题目概述.5 2.2 算法流程图. .63 详细设计.83.1算法分析 .8 3.2核心代码 . .9

3、4 调试分析 .135 课设总结.176 参考文献.181 需求分析 该程序有多种功能,是一套保安值班安排系统。设计这个程序希望可以把保安轮休的所有可能方案打印出来,可以通过输入保安姓名将对应保安的信息打印到屏幕上;整个过程在一个可操作的界面内实现,操作方便,菜单简单易懂,能准确无误的显示需要的信息该程序具有程序运行效率高的优点,数据类型丰富,结构化控制语句功能强等优点2 概要设计2.1 题目概述程序实现的功能是对7个员工实现排班,7个员工每个员工有一天的休假日,但是这一天的休假日可由员工自行选择,选择他们想要休假的时间,可由多个选择,也可只有一个选择,7个员工依次输入完毕后,程序会输出满足7

4、个员工的多种排班方式。对于7个人选择有冲突的,输出相应的提示。具体题目:学校实验楼有7名保安人员:赵,钱,孙,李,周,吴,陈。由于工作需求要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。输出轮休的所有可能方案。当然使每个人都满意。例如每人选择的休息日如下:赵:星期二,星期四钱:星期一,星期六孙:星期三,星期日李:星期五周:星期一,星期四,星期六吴:星期二,星期五陈:星期三,星期六,星期日2.2 算法流程图如图2-2:图22 总流程图2.3 for循环的流程图如图2-3: 图2-3 7个嵌套for循环的流程图3 详细设计3.1算法分析 该程序实现对7个员工进行排班的

5、功能,输出7个员工的休息日。该程序首先给出提示对员工们实现数据录入,录入7个人对于休假日的不同选择,这个需求本程序通过7个独立的for循环来实现,然后针对大家不同的选择经过编译后通过7个嵌套的for循环采取遍历查找的方法输出满足要求的组合,对于7个人选择有冲突,而未能输出满足要求组合的给予提示,让他们重新选择。该程序未通过定义和调用其他函数来实现,仅一个main()函数就可以了,在main()函数里实现数据录入和比较得出结果的功能1.定义变量2.输出欢迎界面;3.通过7个独立的for循环,依次输入7个人的选择情况;4.通过7个嵌套的循环依次进行遍历按要求组合。5.通过两个for循环依次判断组合

6、里的任意两个数不相等6.若任意两个数不相等,输出对应组合。此处函数通过7个嵌套的for()循环依次进行遍历按要求排列出组合。每一次遍历下来,就把a,b,c,d,e,f,g输入的选择情况分别赋给A0,A1,A2,A3,A4,A5,A6.说明:因为每个人有多个选择,本程序利用的思想是通过7个嵌套的for遍历循环,找出符合条件的组合。从a的第一个选择,b的第一个选择,c的第一个选择,d的第一个选择,e的第一个选择,f的第一个选择,g的第一个选择排出一个组合,再a的第一个选择,b的第一个选择,c的第一个选择,d的第一个选择,e的第一个选择,f的第一个选择,g的第二个选择。直到结束g的选择为止,前面不变

7、,开始从f的第二个选择开始。这样依次遍历下去,得到N个组合,但是,这样遍历下来得到的N个组合必有两个人选择相同的情况。这时候就得定义两个变量。一个是一维数组A7和判断变量flag。 3.2核心代码#includeint main(void)int j,k,h,n=0,flag=1;/用于判断的变量int a,b,c,d,e,f,g;int achoice,bchoice,cchoice,dchoice,echoice,fchoice,gchoice;/用于确定员工选择个数的变量int q77;/用于员工存储所选择的休假日的变量int A7;printf(*欢迎进入排班系统*n);printf(

8、#tt特别注意!ttt#n);printf(#t请各位工作人员输入自己想要轮休的日期t#n);printf(#t请先选择你要选择的次数ttt#n);printf(#t再选择你要轮休的日期ttt#n);printf(#tttttt#n);printf(#tttttt#n);printf(#tttttt#n);printf(*欢迎进入排班系统*n);/欢迎界面printf(请赵输入你想选择的次数n);scanf(%d,&achoice);printf(请赵输入轮休日期n: );for(j=0;jachoice;j+) scanf(%d,&qj0); /a录入休假日printf(请钱输入你想选择的次

9、数n);scanf(%d,&bchoice);printf(请钱输入轮休日期n: );for(j=0;jbchoice;j+) scanf(%d,&qj1); /b录入休假日printf(请孙输入你想选择的次数n);scanf(%d,&cchoice);printf(请孙输入轮休日期n: );for(j=0;jcchoice;j+) scanf(%d,&qj2); /c录入休假日printf(请李输入你想选择的次数n);scanf(%d,&dchoice);printf(请李输入轮休日期n: );for(j=0;jdchoice;j+) scanf(%d,&qj3); /d录入休假日print

10、f(请周输入你想选择的次数n);scanf(%d,&echoice);printf(请周输入轮休日期n: );for(j=0;jechoice;j+) scanf(%d,&qj4); /e录入休假日printf(请吴输入你想选择的次数n);scanf(%d,&fchoice);printf(请吴输入轮休日期n: );for(j=0;jfchoice;j+) scanf(%d,&qj5); /f录入休假日printf(请陈输入你想选择的次数n);scanf(%d,&gchoice);printf(请陈输入轮休日期n: );for(j=0;jgchoice;j+) scanf(%d,&qj6);

11、/g录入休假日for(a=0;aachoice&qa0!=0;a+) for(b=0;bbchoice&qb1!=0;b+) for(c=0;ccchoice&qc2!=0;c+) for(d=0;ddchoice&qd3!=0;d+) for(e=0;eechoice&qe4!=0;e+) for(f=0;ffchoice&qf5!=0;f+) for(g=0;ggchoice&qg6!=0;g+) /7个循环实现遍历 A0=qa0; A1=qb1; A2=qc2; A3=qd3; A4=qe4; A5=qf5; A6=qg6; flag=1; for(k=0;k6;k+) for(h=k+

12、1;h7;h+) if(Ak=Ah) flag=0; /比较任意两个数是否相等 if(flag=1) /如果不等则输出结果 printf(得到以下组合:n); printf(赵: ); printf(星期%d n,A0); printf(钱: ); printf(星期%d n,A1); printf(孙: ); printf(星期%d n,A2); printf(李: ); printf(星期%d n,A3); printf(周: ); printf(星期%d n,A4); printf(吴: ); printf(星期%d n,A5); printf(陈: ); printf(星期%d n,A

13、6); printf( n ); n+; if(n=0)printf(对不起,你们的选择不能实现排班,请重新选择!n);return 0;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 课程总结程序设计是一次让我们综合自己所学习的知识,把他应用到实际的一次机会,平常我们

14、学的编程语言总显得那么的不灵活,很多时候我们一本书学下来了,仍编不出一个简单的程序,通过对一个小项目功能的实现,我们不仅重温了平时所学的知识点,还增强了自己的动手能力。对于一个程序,在我看来,最重要的莫过于思路, 同一个程序可以由多个思路来实现,然而我们所要做的就是通过多次的编码调试找出最简,最优思路。好的思路能无疑能使一个程序员实现事半功倍的效果。接着就要根据自己的思路为该程序设计算法,只有轮廓形成后才能开始编码,编写的过程中还应搜索记忆中的语言基础,找到最简便的表达方式,增加程序的可读性,代码编写完成后,经过多次编译后无错误了也不代表程序就完成了,运行程序时还应通过多组不同情况,看能否实现

15、。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次课程设计之后,让我养成了编程的好习惯,就是先列清自己的思路,写清自己的算法,必要时还要画流程图,编写程序时也不是依次由上而下写,而是先把主要函数列出来再一一编写。通过这次实践,我对很多函数有了新的认识,我也明白了写程序的基本过

16、程和基本方法。这次课程设计总的来说让我受益匪浅。我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时请教,解决问题,从而更好的掌握书本中知识。还有通过这次实践也让我懂得了:学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。因此,我会认真地对待我的每一次实验。6 参考文献1谭浩强编著. C+程序设计. 北京:清华大学出版社,20052谭浩强编著. C+程序设计解题与上机指导. 北京:清华大学出版社,20053谭浩强编著. C程序设计(第二版). 北京:清华大学出版社,19994谭浩强编著. C程序设计设计解题与上机指导(第二版). 北京:清华大学出版社,19995 孙淑霞等C/C+程序设计实验指导与测试(第2版),电子工业出版社,2007.1

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

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