C语言课程设计报告材料

上传人:cl****1 文档编号:430987068 上传时间:2022-09-06 格式:DOC 页数:18 大小:347.50KB
返回 下载 相关 举报
C语言课程设计报告材料_第1页
第1页 / 共18页
C语言课程设计报告材料_第2页
第2页 / 共18页
C语言课程设计报告材料_第3页
第3页 / 共18页
C语言课程设计报告材料_第4页
第4页 / 共18页
C语言课程设计报告材料_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《C语言课程设计报告材料》由会员分享,可在线阅读,更多相关《C语言课程设计报告材料(18页珍藏版)》请在金锄头文库上搜索。

1、wordXX大学课程设计报告课程设计名称:C语言课程设计课程设计题目:排班系统院系:XX学院专 业:XX班 级:XX学 号:XXXXXXXXXXXXX姓 名:XX指导教师:XXX完成日期:XX年X月X日 / 目 录第1章需求分析与概要设计11.1 需求分析11.2 概要设计1第2章详细设计22.1 排班系统根本结构22.1.1 排班系统细节剖析22.2 程序详细介绍算法实现3第3章调试分析53.1 我的调试:53.2 运行结果5第4章用户手册与完毕语84.1 用户手册84.2 完毕语8参考文献9附录程序清单10第1章 需求分析与概要设计1.1 需求分析1.题目要求:为多名保安设计一个排班系统,

2、每人可以自行预先选出一天为休息日,系统打印可能的轮班方案并存储结果。尽可能做到令所有人满意,保排班方案的公平性。2.题目分析:此题的重点和难点在于保安的人数是不确定的,且他们可能选择的休息日也无法确定,所以方案的结果也就不仅仅有一种。由此可以看出只有解决好这两个问题,才能够符合该题目的要求,完成保安的排班工作。1.2 概要设计1.总体思路:对于这道题目,我的思路是采用二维数组的方式来解决。大概过程是先假设所有人都上班,即没有休息日。然后再让每个人进展选择自己希望的休息日。先每个人选择出一天,然后系统进展排班,输出其所输入数据的对应方案。然后在第一次所输数据的根底上,假如还有其他选择,如此进展二

3、次输入,以此更改初始数据,重新设计可能的排班方案。2.细节实现:因为题目的要求是打印可能的方案,那么如何来实现打印呢?我采用了通过对二位数组中的每一个值用阿拉伯数字0和1来标记,以1来表示工作,0来表示休息。3.功能作用:本系统系保安的排班系统,可以完成根本的排班功能,在此根底上,还为用户设计了二次输入的选项,以此来解决当所输数据不满足要求,无法完成排班的问题,同时也可以为用户提供更多的可行方案,而不是仅仅局限于一种。第2章 详细设计开始2.1 排班系统根本结构屏幕显示欢迎界面输入选择排出方案其他选择有保存方案无完毕 排班系统根本结构此排班系统主要分为:显示欢迎界面、排班界面与选择界面。该系统

4、各局部间有序衔接,各尽其责,如图2.1所示,充分展现了该系统的协调性与整体性。2.1.1排班系统细节剖析此排班系统的重点在于每次对二维数组的赋值操作,最开始时是将所有的初值都赋为1,然后以0来赋给选择对应日期、对应人的对应数值。这样一来,便可以将每个人的每天上班与否进展标记1是工作,0是休息,这道题目的另一个难点在于对每个人有比拟公平的方案,所以该问题在设计时,我就将含有小于规定数量工作人数的方案标记为不可行方案,同时在屏幕输出该方案排出的结果,以供操作人员查阅该方案到底哪里不可行,利于下次输入数据地改动。2.2 程序详细介绍算法实现我的这套程序大致可以分为三个局部:1. 数据输入局部即第一次

5、输入数据每个人的选择,该局部是通过二位数组来实现的,以第几个人来控制数组的第一个下标,以周几来控制该数组的第二个下标,这样就可以将所有的人所有的天数看做一个二维表来实现选择信息的数字化,如表2.1、2.2所示。 每个人的工作选择周一周二周三周四周五周六周日工作工作工作休息工作工作工作工作工作工作工作工作休息工作工作工作工作工作工作工作休息工作工作休息工作工作工作工作工作工作休息工作工作工作工作工作工作工作工作工作工作休息 对应的数组a0(下标)1234560下标01101111下标11111012下标21111103下标31011114下标41011115下标51011116下标6111110

6、2. 数据转化为方案:该局部是以for循环为工具手段,对每一个数据进展扫描判断,然后将工作的人打印出来,即保安工作排班表。这样一个方案就完成了。3. 方案的更改:此局部如此是以更改个别数据为主,其他数据依然参照之前的数据,其实现的方法就是用第二次输入的数据,对第一次的数据进展覆盖,在这个覆盖的过程中,我们不仅要将二次选择的人与选择的天对应的数据更改为0,同时还要对原数组中此人的选择对应的数值恢复为零,我最开始设计时,就忽略了这一点,造成输出的方案有的人一周休息一天,有的人休息了两天,失去了设计方案的公平性。以此造成很多困扰,后来经过详细分析、查找,我采用了每次只覆盖数组中的数值,而将二次选择的

7、人的首选数字进展保存,这样就实现了公平排班的理念。第3章调试分析我的调试:1. 在刚刚完成编译时,程序中有很多语法错误,如将“;打成了中文输入法,甚至是干脆忘记打的情况,还有比如将for循环下面的括号只打了一半等,这些语法错误给我造成了许多困扰,后经逐条更改,最后终于得以运行。2. 除了一些语法错误,在运行的过程中还出现了许多其他的错误。如上文提到的由于没有将初次选择更改回为工作,造成方案的不公平等,这个问题我在初期一直没有弄懂,后经单步调试,对数组中的逐个数字进展跟踪,终于发现了这个问题,并想出方案解决3.2 运行结果该软件运行时会出现以下几种情况:1. 正常进展排班,显示出对应的排班方案,

8、如图3.1所示: 图3.1 正常排班2. 更改其中一个人的选择,输出第二方案,如图3.2:图3.2 其他选择3. 无其他选择,保存方案至文件“保安排班方案,如如下图: 图3.3 存储的方案4.当用户输入的选择对应的方案不可行时,软件会给出提示,如:图3.4 方案不可行5.这时我们对选择进展二次调整,如: 图3.5 调整方案第4章用户手册与完毕语用户手册本软件用户请注意以下几点:1. 当打开本软件时,会出现欢迎使用界面,同时出现输入提示,请您按照提示依次进展操作;2. 值得注意的是,本软件采用的是输入数字进展选择,每次输入数字后,请输入回车键;3. 当电脑屏幕提示更改选择时,在输入两个数字时,请

9、以空格隔开。4.2 完毕语本系统是我经过两周时间冥思苦想得来的结果。在设计该系统时我也遇到了许多困难。如最开始时我想采用的是想将所有数组同时赋值,然后同时进展扫描,可是后来发现这样的方法是行不通的或许以后学的多了能够解决,但目前来说知识量还很有限,因为在进展两个for循环时,会出现交叉限制的情况,无法完成扫描,所以我最终想出了一次只对一个二维表赋值、扫描。对于其他方案如此是以二次输入数据的方式进展更改初值,以达到排班的目的。当然,可能该系统在功能上还存在一些弊端,但至少这也是我两周来的辛苦成果。我以后一定会继续努力,对该系统进展进一步的完善。参考文献1 谭浩强著.C程序设计第三版.清华大学,2

10、0092 Harvey M.Deitel,Paul J.Deitel编著 聂雪军、贺军译.C程序设计经典教程.清华大学,20063 王敬华、林萍、X清国编著. C语言程序设计教程第二版. 清华大学,20134 谭浩强著. C程序设计题解与上机指导第三版. 清华大学,20085 温海、X友、童伟等编著. C语言精彩编程百例. 中国水利水电,2004附 录程序清单程序源代码:#define N 10#includestruct guard char name20; int choice;guN;void main()int i,j,k,m,total,x,y;int aN7,b7=0,0,0,0,

11、0,0,0;FILE *fp;fp=fopen(d:保安排班方案.txt,w);printf(nn*欢迎使用微微排班软件,本软件代表制作人祝您工作顺利,阖家欢乐*nn*下面就让我们一起开启排班的旅程吧!*nn);printf(请输入保安总人数:n);scanf(%d,&total);for(i=0;itotal;i+) /将所有值初始化为一for(j=0;j7;j+)aij=1;for(i=0;itotal;i+) /以每个人为线索进展循环printf(请输入保安的某某:n); scanf(%s,gui.name);printf(他的选择是:1.周一;2周二;3.周三;4.周四;5.周五;6.

12、周六;7.周日n);scanf(%d,&gui.choice);if(gui.choice=1)ai0=0;b0+;if(gui.choice=2)ai1=0;b1+;if(gui.choice=3)ai2=0;b2+;if(gui.choice=4)ai3=0;b3+;if(gui.choice=5)ai4=0;b4+;if(gui.choice=6)ai5=0;b5+;if(gui.choice=7)ai6=0;b6+; /赋值0for(k=0;k+)for(j=0;j=total-1) /判断方案是否可行printf(方案不可行!如下:n);fprintf(fp,n您所输入的数据派出的方案不可行!如下:n); fprintf(fp,n周一:); printf(n周一:); for(i=0;itotal;i+)if(ai0=1)printf(%st,gui.name);fprintf(fp,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号