




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 I欢迎下载 XX大学 课课 程程 设设 计计 报报 告告 课程设计名称 C C 语言课程设计语言课程设计 课程设计题目 排班系统 院 系 XX学院 专 业 XX 班 级 XX 学 号 XXXXXXXXXXXXX 姓 名 XX 指导教师 XXX 完成日期 XX年X月X日 精品文档 I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载I欢迎下载 目目 录录 第第 1 1 章章 需求分析与概要设计需求分析与概要设计 1 1 1 1 需求分析 1 1 2 概要设计 1 第第 2 2 章章 详细设计详细设计 2 2 2 1 排班系统基本结构 2 2 1 1 排班系统细节剖析 2 2 2 程序详细介绍 算法实现 3 第第 3 3 章章 调试分析调试分析 5 5 3 1 我的调试 5 3 2 运行结果 5 第第 4 4 章章 用户手册及结束语用户手册及结束语 8 8 4 1 用户手册 8 4 2 结束语 8 参考文献参考文献 9 9 附附 录 程序清单 录 程序清单 1010 精品文档 1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载1欢迎下载 第 1 章 需求分析与概要设计 1 11 1 需求分析需求分析 1 题目要求 为多名保安设计一个排班系统 每人可以自行预先选出一天为 休息日 系统打印可能的轮班方案并存储结果 尽可能做到令所有人满意 保排 班方案的公平性 2 题目分析 本题的重点和难点在于保安的人数是不确定的 且他们可能选 择的休息日也无法确定 所以方案的结果也就不仅仅有一种 由此可以看出只有 解决好这两个问题 才能够符合该题目的要求 完成保安的排班工作 1 21 2 概要设计概要设计 1 总体思路 对于这道题目 我的思路是采用二维数组的方式来解决 大概 过程是先假设所有人都上班 即没有休息日 然后再让每个人进行选择自己希望 的休息日 先每个人选择出一天 然后系统进行排班 输出其所输入数据的对应 方案 然后在第一次所输数据的基础上 若还有其他选择 则进行二次输入 以 此更改初始数据 重新设计可能的排班方案 2 细节实现 因为题目的要求是打印可能的方案 那么如何来实现打印呢 我采用了通过对二位数组中的每一个值用阿拉伯数字 0 和 1 来标记 以 1 来表示 工作 0 来表示休息 3 功能作用 本系统系保安的排班系统 可以完成基本的排班功能 在此基 础上 还为用户设计了二次输入的选项 以此来解决当所输数据不满足要求 无 法完成排班的问题 同时也可以为用户提供更多的可行方案 而不是仅仅局限于 一种 精品文档 2欢迎下载2欢迎下载2欢迎下载2欢迎下载2欢迎下载2欢迎下载2欢迎下载2欢迎下载 第 2 章 详细设计 2 12 1 排班系统基本结构排班系统基本结构 有有 无无 图图 2 12 1 排班系统基本结构排班系统基本结构 此排班系统主要分为 显示欢迎界面 排班界面及选择界面 该系统各部分 间有序衔接 各尽其责 如图 2 1 所示 充分展现了该系统的协调性与整体性 2 1 12 1 1 排班系统细节剖析排班系统细节剖析 此排班系统的重点在于每次对二维数组的赋值操作 最开始时是将所有的初 值都赋为 1 然后以 0 来赋给选择对应日期 对应人的对应数值 这样一来 便 可以将每个人的每天上班与否进行标记 1 是工作 0 是休息 这道题目的另一 个难点在于对每个人有比较公平的方案 所以该问题在设计时 我就将含有小于 规定数量工作人数的方案标记为不可行方案 同时在屏幕输出该方案排出的结果 开始开始 屏幕显示欢迎界面屏幕显示欢迎界面 输入选择输入选择 排出方案排出方案 其他选择其他选择 保存方案保存方案 结束结束 精品文档 3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载3欢迎下载 以供操作人员查阅该方案到底哪里不可行 利于下次输入数据地改动 2 22 2 程序详细介绍 算法实现 程序详细介绍 算法实现 我的这套程序大致可以分为三个部分 1 数据输入部分 即第一次输入数据 每个人的选择 该部分是通过二位数组来实现的 以第几个人来控制数组的第一个下标 以周几来控制该数组的第二个下 标 这样就可以将所有的人所有的天数看做一个二维表来实现选择信息 的数字化 如表 2 1 2 2 所示 表表 2 12 1 每个人的工作选择每个人的工作选择 周一周二周三周四周五周六周日 1 zhao 工作工作工作休息工作工作工作 2 qian 工作工作工作工作工作休息工作 3 sun 工作工作工作工作工作工作休息 4 li 工作工作休息工作工作工作工作 5 zhou 工作工作休息工作工作工作工作 6 wu 工作工作工作工作工作工作休息 表表 2 22 2 对应的数组对应的数组 a 0 下标 123456 0 下标 0 110111 1 下标 1 111101 2 下标 2 111110 3 下标 3 101111 4 下标 4 101111 精品文档 4欢迎下载4欢迎下载4欢迎下载4欢迎下载4欢迎下载4欢迎下载4欢迎下载4欢迎下载 5 下标 5 101111 6 下标 6 111110 2 数据转化为方案 该部分是以 for 循环为工具手段 对每一个数据进行扫描判断 然后将 工作的人打印出来 即保安工作排班表 这样一个方案就完成了 3 方案的更改 此部分则是以更改个别数据为主 其他数据依然参照之前的数据 其实 现的方法就是用第二次输入的数据 对第一次的数据进行覆盖 在这个 覆盖的过程中 我们不仅要将二次选择的人及选择的天对应的数据更改 为 0 同时还要对原数组中此人的选择对应的数值恢复为零 我最开始设 计时 就忽略了这一点 造成输出的方案有的人一周休息一天 有的人 休息了两天 失去了设计方案的公平性 以此造成很多困扰 后来经过 详细分析 查找 我采用了每次只覆盖数组中的数值 而将二次选择的 人的首选数字进行保留 这样就实现了公平排班的理念 精品文档 5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载5欢迎下载 第 3 章 调试分析 3 13 1 我的调试 我的调试 1 在刚刚完成编译时 程序中有很多语法错误 如将 打成了中文输 入法 甚至是干脆忘记打的情况 还有比如将 for 循环下面的括号只 打了一半等 这些语法错误给我造成了许多困扰 后经逐条更改 最 后终于得以运行 2 除了一些语法错误 在运行的过程中还出现了许多其他的错误 如上文 提到的由于没有将初次选择更改回为工作 造成方案的不公平等 这 个问题我在初期一直没有弄懂 后经单步调试 对数组中的逐个数字 进行跟踪 终于发现了这个问题 并想出方案解决 3 23 2 运行结果运行结果 该软件运行时会出现以下几种情况 1 正常进行排班 显示出对应的排班方案 如图 3 1 所示 图图 3 13 1 正常排班正常排班 精品文档 6欢迎下载6欢迎下载6欢迎下载6欢迎下载6欢迎下载6欢迎下载6欢迎下载6欢迎下载 2 更改其中一个人的选择 输出第二方案 如图 3 2 图图 3 23 2 其他选择其他选择 3 无其他选择 保存方案至文件 保安排班方案 如下图 图图 3 33 3 存储的方案存储的方案 精品文档 7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载7欢迎下载 4 当用户输入的选择对应的方案不可行时 软件会给出提示 如图 3 4 所示 图图 3 43 4 方案不可行方案不可行 5 这时我们对选择进行二次调整 如图 3 5 所示 精品文档 8欢迎下载8欢迎下载8欢迎下载8欢迎下载8欢迎下载8欢迎下载8欢迎下载8欢迎下载 图图 3 53 5 调整方案调整方案 精品文档 9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载9欢迎下载 第 4 章 用户手册及结束语 4 14 1 用户手册用户手册 本软件用户请注意以下几点 1 当打开本软件时 会出现欢迎使用界面 同时出现输入提示 请您按照 提示依次进行操作 2 值得注意的是 本软件采用的是输入数字进行选择 每次输入数字后 请输入回车键 3 当电脑屏幕提示更改选择时 在输入两个数字时 请以空格隔开 4 24 2 结束语结束语 本系统是我经过两周时间冥思苦想得来的结果 在设计该系统时我也遇到了 许多困难 如最开始时我想采用的是想将所有数组同时赋值 然后同时进行扫描 可是后来发现这样的方法是行不通的 或许以后学的多了能够解决 但目前来说 知识量还很有限 因为在进行两个 for 循环时 会出现交叉限制的情况 无法 完成扫描 所以我最终想出了一次只对一个二维表赋值 扫描 对于其他方案则 是以二次输入数据的方式进行更改初值 以达到排班的目的 当然 可能该系统 在功能上还存在一些弊端 但至少这也是我两周来的辛苦成果 我以后一定会继 续努力 对该系统进行进一步的完善 精品文档 10欢迎下载10欢迎下载10欢迎下载10欢迎下载10欢迎下载10欢迎下载10欢迎下载10欢迎下载 参考文献 1 谭浩强著 C 程序设计 第三版 清华大学出版社 2009 2 Harvey M Deitel Paul J Deitel 编著 聂雪军 贺军译 C 程序设计经典 教程 清华大学出版社 2006 3 王敬华 林萍 张清国编著 C 语言程序设计教程 第二版 清华大学出版社 2013 4 谭浩强著 C 程序设计题解与上机指导 第三版 清华大学出版社 2008 5 温海 张友 童伟等编著 C 语言精彩编程百例 中国水利水电出版社 2004 精品文档 11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载11欢迎下载 附 录 程序清单 程序源代码 程序源代码 define N 10 include struct guard char name 20 int choice gu N void main int i j k m total x y int a N 7 b 7 0 0 0 0 0 0 0 FILE fp fp fopen d 保安排班方案 txt w printf n n 欢迎使用微微排班软件 本软件代表制作人祝您工作顺利 阖 家欢乐 n n 下面就让我们一起开启排班的旅程吧 n n printf 请输入保安总人数 n scanf d for i 0 i total i 将所有值初始化为一 for j 0 j 7 j a i j 1 for i 0 i total i 以每个人为线索进行循环 printf 请输入保安的姓名 n 精品文档 12欢迎下载12欢迎下载12欢迎下载12欢迎下载12欢迎下载12欢迎下载12欢迎下载12欢迎下载 scanf s gu i name printf 他的选择是 1 周一 2 周二 3 周三 4 周四 5 周五 6 周六 7 周 日 n scanf d if gu i choice 1 a i 0 0 b 0 if gu i choice 2 a i 1 0 b 1 if gu i choice 3 a i 2 0 b 2 if gu i choice 4 a i 3 0 b 3 if gu i choice 5 a i 4 0 b 4 精品文档 13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载13欢迎下载 if gu i choice 6 a i 5 0 b 5 if gu i choice 7 a i 6 0 b 6 赋值 0 for k 0 k for j 0 j total 1 判断方案是否可行 printf 方案不可行 如下 n fprintf fp n 您所输入的数据派出的方案不可行 如下 n fprintf fp n 周一 printf n 周一 for i 0 i total i if a i 0 1 printf s t gu i name fprintf fp s t gu i name 精品文档 14欢迎下载14欢迎下载14欢迎下载14欢迎下载14欢迎下载14欢迎下载14欢迎下载14欢迎下载 fprintf fp n 周二 printf n 周二 for i 0 i total i if a i 1 1 printf s t gu i name fprintf fp s t gu i name fprintf fp n 周三 printf n 周三 for i 0 i total i if a i 2 1 printf s t gu i name fprintf fp s t gu i name fprintf fp n 周四 printf n 周四 for i 0 i total i if a i 3 1 printf s t gu i name fprintf fp s t gu i name fprintf fp n 周五 printf n 周五 for i 0 i total i if a i 4 1 精品文档 15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载15欢迎下载 printf s t gu i name fprintf fp s t gu i name fprintf fp n 周六 printf n 周六 for i 0 i total i if a i 5 1 printf s t gu i name fprintf fp s t gu i name fprintf fp n 周日 printf n 周日 for i 0 i total i if a i 6 1 printf s t gu i name fprintf fp s t gu i name 完成一次 printf n 请问还有其他选择吗 n1 有 2 没有 n fprintf fp n n n 其他选择 n scanf d if m 1 printf n 请问是第几个人 他的选择是 scanf d d x 精品文档 16欢迎下载16欢迎下载16欢迎下载16欢迎下载16欢迎下载16欢迎下载16欢迎下载16欢迎下载 y a x gu x choice 1 1 a x y 0 b gu x choice 1 b y else f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议执行期间财产变更及债务承担协议
- 离婚补充协议孩子抚养费支付与生活费用保障协议
- 企业内部员工竞业禁止及保密条款合同书
- 离婚抚养费增加与子女生活费用补充协议
- 环保监测天线架租赁及数据分析服务协议
- 离婚协议书起草及法律风险评估服务合同
- 离婚后的房产分割与子女监护权转移合同
- 离婚诉讼中子女抚养权变更及探望权保障民事起诉状
- 夫妻共同房产离婚后市场价值评估与转让合同
- 民生住宅区空地租赁与配套公共服务合同
- 医学装备质量管理分析报告
- Unit 3 Understanding ideas The Road to Success课件 2023-2024学年高中英语外研版选择性必修第一册
- 项目需求分析文档(模板)
- 国际机场飞机维修机库施工组织设计
- 液压泵站使用说明书
- E190飞机舱门开关
- 儿科学腹泻病
- GB/T 3871.9-2006农业拖拉机试验规程第9部分:牵引功率试验
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB 17840-1999防弹玻璃
- 文学鉴赏-课件
评论
0/150
提交评论