《保安值班安排系统》word版.docx
- 文档编号:9093345
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:16
- 大小:259.50KB
《保安值班安排系统》word版.docx
《《保安值班安排系统》word版.docx》由会员分享,可在线阅读,更多相关《《保安值班安排系统》word版.docx(16页珍藏版)》请在冰豆网上搜索。
《保安值班安排系统》word版
保安值班安排系统
第一章课程设计的目的和要求
1.1课程设计的目的
C/C++语言课程设计的主要目的是培养我们综合运用C/C++语言程序设计课程所学到的知识,做相应的自主练习,消化课堂所讲解的内容,通过编写C/C++程序,积累调试C/C++程序的经验,完成所要求的题目,逐渐培养编程能力,解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。
1.进一步掌握和利用C/C++语言进行程序设计的能力。
2.进一步培养我们结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。
3.针对C/C++语言中的重点和难点内容进行训练,独立完成有一定工作量的课程设计任务,同时强调好课程设计风格。
4.掌握C/C++语言的编程技巧和上机调试程序的方法。
5.掌握程序设计的常用算法。
6.掌握书写程序开发文档的能力。
通过课程设计的训练,应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C/C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。
另外,C语言本身的复杂性也是其比较难学的原因之一。
C/C++不仅可以用来开发应用程序,更可用来设计系统程序。
比起其他语言,C/C++增加的许多特点就是为了设计高质量的系统软件。
因此,在程序设计的时候必须树立以下观念:
学习思考的方法比学习语言更重要,琢磨程序设计的思维模式比琢磨C/C++语言的知识更重要,培养自己的思考能力比记忆语言知识更重要。
C/C++语言程序设计的主要任务是要求我们遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C/C++语言程序及编写设计报告。
1.2课程设计的要求
课程设计的选题必须围绕本课程内容,确定一个或几个难度、份量适当的具体的工程实际项目,以便较系统地训练学生综合运用本课程所学知识解决工程实际问题的能力
。
课程设计题目都应给出原始数据。
课程设计题目需要完成的工作量。
课程设计的工作量包括:
设计计算(包括程序控制),绘图设计说明书。
学生在课程设计中初次运用本课程内容进行综合计算及设计,课程设计指导书要比较详细地指导学生进行规范化计算与设计步骤及有关要求,并附有完成各部分工作量所需时间及评分标准,以及检查学生设计进度及每一步应达到的基本要求。
课程设计的参考资料除本课程所用教材外,还应准备相应的工程设计规范、设计手册,国家标准及其他资料。
一方面为学生提供必要的设计资料,另一方面培养学生查阅、使用资料的能力。
课程设计任务书及指导书每个学生一份,并于课程设计之前发给学生。
学生综合解决问题的能力将反映在设计的程序和编写的课程设计报告中,因此本课程设计的考核内容应该由以下两部分组成。
(1)编写的C/C++语言程序
●针对编写的C/C++程序,应该主要考查下列内容:
●是否符合题目要求,是否完成了主要功能;
●是否存在语法错误、逻辑错误及运行错误;
●程序设计是否合理;
●程序是否具有良好的可读性和可靠性;
●是否符合结构化程序设计所倡导的基本理念;
(2)课程设计报告
●针对提交的课程设计报告,应该主要考查下列内容:
●程序设计的报告内容是否全面,观点是否正确;
●设计过程是否符合结构化程序设计方法的基本原则;
●层次是否清楚,语言是否通顺;
●各种图表是否规范;是否具有良好的程序设计习惯。
第二章课程设计任务内容
程序实现的功能是对7个员工实现排班,7个员工每个员工有一天的休假日,但是这一天的休假日可由员工自行选择,选择他们想要休假的时间,可由多个选择,也可只有一个选择,7个员工依次输入完毕后,程序会输出满足7个员工的多种排班方式。
对于7个人选择有冲突的,输出相应的提示。
具体题目:
学校实验楼有7名保安人员:
赵,钱,孙,李,周,吴,陈。
由于工作需求要进行轮休制度,一星期中每人休息一天。
预先让每一个人选择自己认为合适的休息日。
输出轮休的所有可能方案。
当然使每个人都满意。
例如每人选择的休息日如下:
赵:
星期二,星期四
钱:
星期一,星期六
孙:
星期三,星期日
李:
星期五
周:
星期一,星期四,星期六
吴:
星期二,星期五
陈:
星期三,星期六,星期日
第三章详细设计说明
3.1程序设计思路
课题要求设计一个保安排班系统:
需要通过建立结构体及定义其指针变量,设计含有数组的输入函数并由键盘输入所需要的数据,如姓名,休息日等,再通过建立安排时间的函数对输入的信息进行处理,并最终通过输出函数输出所有合适的方案。
3.2函数模块、功能分析、参数说明
1.定义结构体
建立结构体structpeopleclass并分别定义其成员。
利用结构体用来定义存储由键盘输入所需要的数据,七位员工的姓名和相应的休息日。
2.输出欢迎界面函数
建立输出欢迎界面函数intCoutInterface(peopleclass*people)。
利用此函数用来输出该系统的欢迎界面。
3.输入保安姓名函数
建立输入保安姓名函数intCinName(peopleclass*people)并调用结构体,通过for循环和next指针变量进行输入保安姓名。
3-1输入保安姓名函数流程图
4.输入保安休息日函数
建立输入保安休息时间函数intCinDay(peopleclass*people),通过数组和指针变量以及if选择语句进行输入休息日期。
3-2输入保安休息日函数流程图
5.安排时间函数
建立时间安排程序intCoutPeople(peopleclass*people,intd,abcde*No),并通过for循环和不断赋值而建立时间安排程序。
6.输出函数
建立输出函数intcoutf(peopleclass*people,abcde*No),利用for循环和指针变量依次输出所得方案。
3-3输出函数流程图
7.主函数
通过主函数调用定义结构体,CoutInterface(people)函数,CinName(people)函数,CinDay(people)函数,CoutPeople(people,namber,No)函数,
coutf(people,No),来完成员工休息日安排这一工作。
3-4主函数流程图
第四章软件使用说明
该软件为管理者提供了一种自动排班功能,可任意选定员工的休息日,软件可自动生成最为合理的排班方案。
进入程序后,如图所示:
图4-1欢迎界面
输入保安姓名:
图4-2输入保安姓名
程序运行展示:
1.只输出一组结果:
图4-3输出一种结果的排序输入
结果:
图4-4输出一种结果
2.输出多组结果(按题目中的休息日输入)
图4-5输出多种结果的排序输入
结果:
图4-6输出多种组合
第五章课程设计心得与体会
程序设计是一次让我们综合自己所学习的知识,把他应用到实际的一次机会,平常我们学的编程语言总显得那么的不灵活,很多时候我们一本书学下来了,仍编不出一个简单的程序,通过对一个小项目功能的实现,我们不仅重温了平时所学的知识点,还增强了自己的动手能力。
对于一个程序,在我看来,最重要的莫过于思路,同一个程序可以由多个思路来实现,然而我们所要做的就是通过多次的编码调试找出最简,最优思路。
好的思路能无疑能使一个程序员实现事半功倍的效果。
接着就要根据自己的思路为该程序设计算法,只有轮廓形成后才能开始编码,编写的过程中还应搜索记忆中的语言基础,找到最简便的表达方式,增加程序的可读性,代码编写完成后,经过多次编译后无错误了也不代表程序就完成了,运行程序时还应通过多组不同情况,看能否实现。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过这次课程设计之后,让我养成了编程的好习惯,就是先列清自己的思路,写清自己的算法,必要时还要画流程图,编写程序时也不是依次由上而下写,而是先把主要函数列出来再一一编写。
通过这次实践,我对很多函数有了新的认识,我也明白了写程序的基本过程和基本方法。
这次课程设计总的来说让我受益匪浅。
我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时请教,解决问题,从而更好的掌握书本中知识。
还有通过这次实践也让我懂得了:
学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。
因此,我会认真地对待我的每一次实验。
附录一参考文献
[1]谭浩强编著.C++程序设计.北京:
清华大学出版社,2005
[2]谭浩强编著.C++程序设计解题与上机指导.北京:
清华大学出版社,2005
[3]谭浩强编著.C程序设计(第二版).北京:
清华大学出版社,1999
[4]谭浩强编著.C程序设计设计解题与上机指导(第二版).北京:
清华大学出版社,1999
[5]孙淑霞等C/C++程序设计实验指导与测试(第2版),电子工业出版社,2007.1
附录二程序代码
#include
#include
#include
usingnamespacestd;
structpeopleclass
{
stringname;
intday[7];
intmax;
inta;
};
structabcde
{
intb[7];
structabcde*next;
}*p1,*p2;
//////////////////////////////////////////////////////////////////////////////////欢迎界面
intCinInterface(peopleclass*people)
{cout<<"****************欢迎进入排班系统*****************\n";
cout<<"#\t\t特别注意!
\t\t\t#\n";
cout<<"#\t请各位员工按照提示输入\t\t\t#\n";
cout<<"#\t先输入自己的姓名\t\t\t#\n";
cout<<"#\t然后输入自己想要休息日\t\t\t#\n";
cout<<"#\t\t\t\t\t\t#\n";
cout<<"#\t\t\t\t\t\t#\n";
cout<<"#\t\t\t\t\t\t#\n";
cout<<"****************欢迎进入排班系统*****************\n";
return0;}
////////////////////////////////////////////////////////////////////////////////
intCinName(peopleclass*people)//输入保安名字
{
inti,j;
for(i=0;i<7;i++)
{
cout< "; cin>>people[i].name; people[i].max=0; people[i].a=0; for(j=0;j<7;j++) people[i].day[j]=0; } return0;} //////////////////////////////////////////////////////////////////////////////// //输入保安选择的休息时间 intCinDay(peopleclass*people) { inti,x,z=0; for(i=0;i<7;i++,z=0) { cout< < <<"合适的休息日是(输入数字1-7表示周一到周日): "; do { cin1: cin>>x; if(x>=0&&x<=7) { if(x==0&&z! =1) { cout< 必须要选择合适的休息时间,请重新输入: "; gotocin1; } if(x==0) break; people[i].day[x-1]=1; z=1; } else { cout< 请重新输入: "; gotocin1; } people[i].max++; cout<<"添加合适的休息时间(选择“0”退出): "; }while (1); } return0;} //////////////////////////////////////////////////////////////////////////////////// intCoutPeople(peopleclass*people,intd,abcde*No)//安排时间 { for(intk=0;k<7;k++) if((people[k].day[7-d]==1)&&(people[k].a==0)) { people[k].a=1; p1->b[7-d]=k; if(d==1) { p2=p1; p1=newabcde; p2->next=p1; p1->next=NULL; for(intj=0;j<7;j++) { p1->b[j]=p2->b[j]; } } inte=d-1; CoutPeople(people,e,No); people[k].a=0; } return0;} /////////////////////////////////////////////////////////////////////////////////////// intcoutf(peopleclass*people,abcde*No)//输出函数 { abcde*p1; inti,j; p1=No; for(;p1->next! =NULL;p1=p1->next) { for(i=0;i<7;i++) { j=p1->b[i]; cout< }cout< } return0;} ////////////////////////////////////////////////////////////////////////////////////// //主函数 intmain() { structpeopleclasspeople[7]; intnamber=7; abcde*No=newabcde; No->next=NULL; p1=No; CinInterface(people); CinName(people); CinDay(people); CoutPeople(people,namber,No); coutf(people,No); return0; } (本资料素材和资料部分来自网络,仅供参考。 请预览后才下载,期待您的好评与关注! )
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 保安值班安排系统 保安 值班 安排 系统 word