值班安排C语言程序报告“程序设计(Ⅱ)”综合编程实验报告.doc
《值班安排C语言程序报告“程序设计(Ⅱ)”综合编程实验报告.doc》由会员分享,可在线阅读,更多相关《值班安排C语言程序报告“程序设计(Ⅱ)”综合编程实验报告.doc(13页珍藏版)》请在沃文网上搜索。
1、“程序设计()”综合编程实验报告 ( 2011 2012 学年第2学期)实验项目名称: 值班安排 学生姓名: 专业班级: 计算1103 学号: 一、实验内容与要求医院有A、B、C、D、E、F、G 7位大夫,在一星期内(星期一至星期天)每人要轮流值班一天,如果已知:(1)A大夫比C大夫晚1天值班;(2)D大夫比E大夫晚1天值班;(3)E大夫比B大夫早2天值班(4)B大夫比G大夫早4天值班;(5)F大夫比B大夫晚1天值班;(6)F大夫比C大夫早1天值班;(7)F大夫星期四值班。就可以确定周一至周日的值班人员分别为:E、D、B、F、C、A、G。编写程序,根据输入的条件,输出星期一至星期天的值班人员。
2、输入数据时,先输入一个整数n,再输入n组条件,要求能够根据输入的条件确定唯一的值班表,且输入的n组条件中能够直接或间接得到任意两位大夫的关联关系,例如上面的条件(2)直接显示了D与E间的关系,而通过条件(1)、(6)、(5)可以间接得到A与B的关系。条件的输入格式有2种:格式1:编号 比较运算符 编号 天数其中比较运算符有2种: 或 ,分别表示“早”或“晚”例如:AC1 表示:A大夫比C大夫晚1天值班格式2:编号 = 数值例如:F=4 表示:F大夫在星期四值班输入输出示例7AC1DB2BG4FC1F=4EDBFCAG7CB1DC1ED1GE1AG1FA1FB6BCDEGAF6AF1DC5GA2
3、EC1BCFAEGD6AB1CA1DC1EG5F=1FBACDEG二、系统设计1、解题思路分三种情况讨论1、 带有“=”的情况:这类情况只需先把确定日期的医生排好,然后通过和已经确定的医生比较来确定其他医生的值班情况,剩下的再和之前确定的医生比较,以此类推2、 没有“=”的情况:只需要定义一个一维14长度的数组,然后将第一个医生放入第7个位置,再依次和这位医生比较确定其他医生,剩下的再和之前确定的医生比较,以此类推3、 有“=”但其他条件和有“=”的无关联:先按照情况2排好然后将剩下的填入空缺,如果是星期一则放在第一个,星期天则放在最后2、数据结构描述存储条件的数组char 1005;第一种情
4、况定义了数组char c7来存储给出确定值班日期的医生,用一个一维7长度的数组int p7用来存储每个医生值班的时间,并且用一个二维数组来存储每两个医生之间的值班关系;第二种情况定义了一个一维14长度的数组char pi14用来存放值班医生从中间开始放,用数组int f100来存储下一个和前一字母条件相关联的字幕的位置,用数组int libai7来存储给出确定值班日期的医生;第三种情况则是前两种情况的结合,所以不用再另外定义4、 程序框架结构主函数int main()子函数int set()用来输出第一种情况的结果;主函数程序流程图:输入所有条件不含“=”的条件含有“=”条件且此条件中医生和其
5、他条件有关联含有“=”条件但此条件中医生和其他条件无关联将含“=”的已确定值班日期医生排入数组,然后找出和这名医生有关联的医生排入值班表,再找出和刚排入值班表的医生有关联的医生排入值班表,以此类推用第三种情况的方法将没有“=”条件的医生排入数组pi中,将含“=”的条件存储在数组libai中其余的用NULL代替,保存一个数据代表在pi中第一个医生之前的值班医生数量,在pi中空出来,依次将pi中NULL的地方填入libai中已确定值班日期的医生将第一个出现在条件中医生存储在pi7然后找出和这名医生有关联的医生排入值班表,再找出和刚排入值班表的医生有关联的医生排入值班表,以此类推,其余的用NULL代
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 值班 安排 语言 程序 报告 程序设计 综合 编程 实验
