“程序设计(Ⅱ)”综合编程实验报告

( 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。

编写程序,根据输入的条件,输出星期一至星期天的值班人员。

输入数据时,先输入一个整数n,再输入n组条件,要求能够根据输入的条件确定唯一的值班表,且输入的n组条件中能够直接或间接得到任意两位大夫的关联关系,例如上面的条件(2)直接显示了D与E间的关系,而通过条件(1)、(6)、(5)可以间接得到A与B的关系。

条件的输入格式有2种:

格式1:编号 比较运算符 编号 天数

其中比较运算符有2种:> 或 < ,分别表示“早”或“晚”

例如:A

格式2:编号 = 数值

例如:F=4 表示:F大夫在星期四值班

输入输出示例

7

A

D

E>B2

B>G4

F

F>C1

F=4

EDBFCAG

7

C

D

E

G

A

F

F

BCDEGAF

6

A

C>F1

D

G

E

B>C1

BCFAEGD

6

A

C

D

E

B>G5

F=1

FBACDEG

二、系统设计

1、解题思路

分三种情况讨论

带有“=”的情况:这类情况只需先把确定日期的医生排好,然后通过和已经确定的医生比较来确定其他医生的值班情况,剩下的再和之前确定的医生比较,以此类推

没有“=”的情况:只需要定义一个一维14长度的数组,然后将第一个医生放入第7个位置,再依次和这位医生比较确定其他医生,剩下的再和之前确定的医生比较,以此类推

有“=”但其他条件和有“=”的无关联:先按照情况2排好然后将剩下的填入空缺,如果是星期一则放在第一个,星期天则放在最后

2、数据结构描述

存储条件的数组char [100][5];

第一种情况定义了数组char c[7]来存储给出确定值班日期的医生,用一个一维7长度的数组int p[7]用来存储每个医生值班的时间,并且用一个二维数组来存储每两个医生之间的值班关系;

第二种情况定义了一个一维14长度的数组char pi[14]用来存放值班医生从中间开始放,用数组int f[100]来存储下一个和前一字母条件相关联的字幕的位置,用数组int libai[7]来存储给出确定值班日期的医生;

第三种情况则是前两种情况的结合,所以不用再另外定义

程序框架结构

主函数int main()

子函数int set()用来输出第一种情况的结果;

主函数程序流程图:

关键算法描述

保存所有有关联的医生值班相差的日期,+表示早-表示晚

for(i=0;i

a=s[i][0]-'A';

b=s[i][2]-'A';

if(s[i][1]=='='){

p[s[i][0]-'A']=s[i][2]-'1';

}

else if(s[i][1]=='>')

{

m[b][a]=-(s[i][3]-'0');

m[a][b]=-m[b][a];

}

else

{

m[a][b]=-(s[i][3]-'0');

m[b][a]=-m[a][b];

}

}

没有“=”条件,将打一个医生排在pi[7]的算法

pi[7]=s[0][0];

f[0]=7;

l=1;

num=1;

while(num<=n){

for(i=0;i

for(j=0;j

if(s[j][0]!='0'&&s[j][0]==pi[f[i]]){

if(s[j][1]=='>')

t=s[j][3]-'0';

else

t=-(s[j][3]-'0');

f[l]=f[i]+t;

pi[f[l]]=

值班c语言程序,5.值班安排C语言程序报告.doc相关推荐

  1. 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc

    c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:04121010学生姓名: ...

  2. 用c语言做教学课程安排,C语言入门课程安排

    <C语言入门课程安排>由会员分享,可在线阅读,更多相关<C语言入门课程安排(5页珍藏版)>请在人人文库网上搜索. 1.C语言入门课程安排开班人数:2-5人年级:3年级以上第一课 ...

  3. c语言五猴分桃案例分析,C语言程序设计五猴分桃问题实验报告.doc

    C语言程序设计五猴分桃问题实验报告 课 程 设 计 报 告 学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:学生姓名:赵学文指导教 ...

  4. c语言程序学生活动安排,c语言大赛活动策划

    c语言大赛活动策划 C语言大赛策划书主办方:信息工程系.软件工程系分团委学生会承办方:计算机与通信协会一 .活动主题:科技点亮青春,思维创造奇迹二 .活动背景: 近年来,随着我国信息技术及相关产业的高 ...

  5. c语言编程题会议室安排,C语言编程题:会议室安排

    满意答案 dageng26 推荐于 2017.12.15 采纳率:53%    等级:8 已帮助:515人 我用的编译器是DEV-C++,代码如下: #include #include int beg ...

  6. 抛物型方程的有限差分 C语言程序,抛物型方程有限差分方法的应用 - 报告.doc

    抛物型方程有限差分方法的应用 - 报告 2015 年 秋 季学期研究生课程考核 (读书报告.研究报告) 考核科目: 偏微分方程数值解法 学生所在院(系): 理学院数学系学生所在学科: 数学学 生 姓 ...

  7. 花样彩灯的c语言程序设计,单片机花样彩灯课程实施方案报告.doc

    个人收集整理 仅供参考学习 个人收集整理 仅供参考学习 PAGE / NUMPAGES 个人收集整理 仅供参考学习 1.引言 随着人们生活环境地不断改善和美化,在许多场合可以看到彩色霓虹灯. LED ...

  8. Problem G: C语言习题 医生值班

    Problem G: C语言习题 医生值班 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 847  Solved: 102 [Submit][Stat ...

  9. c语言switch写值班表,如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示...

    如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容 ...

  10. c语言循环程序设计教案,10 《C语言程序设计》教案 第三章 程序的控制结构(6)—循环结构 while和do while.doc...

    10 <C语言程序设计>教案 第三章 程序的控制结构(6)-循环结构 while和do while.doc C 语言程序设计课程教案表 授课题目 第三章 程序的控制结构 (6) 循环结构 ...

最新文章

  1. mongodb 与 mysql区别 NOSQL 型号与SQL型号的区别 是非关系型号与关系型号的区别
  2. DNA甲基化检测服务
  3. P5290 [十二省联考2019]春节十二响
  4. jquery --- 使用when方法等待2个异步事件结束后执行某一个函数.
  5. oracle 11g ORA-12541: TNS: 无监听程序 (DBD ERROR: OCIServerAttach)
  6. 复选框 ComboBox 1129
  7. 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
  8. 一些CFD名词缩写的含义(持续更新中)
  9. c语言考试答案,C语言考试题及答案
  10. 屏幕缩放比例 html,css如何自适应屏幕大小?
  11. 个人信用报告机构查询中有:深圳前海微众银行股份有限公司,为什么???
  12. AI:AI与爱无处不在,大赛与奖金齐飞—【科大讯飞】AI开发者大赛—与你在AI盛会中遨游!
  13. 美团2015年校园招聘部分笔试题
  14. provision文件路径
  15. 华为月薪11万招前端工程师,看到要求我傻眼了!
  16. cents7配置gradle4
  17. INDEX REBUILD和INDEX REORGANIZE和UPDATE STATISTICS是否涉及Sch-M的案例分析
  18. C++实现通用的文件(万能)加密方案——包含源码
  19. 【渝粤题库】陕西师范大学292011 初级微观经济学 作业(高起专)
  20. 【Python】自动化办公之Excel拆分并自动发邮件

热门文章

  1. MOOS例程HelloWorld-详细注释
  2. ILITEK touch driver
  3. 学习随笔#12 最优化控制(Optimal Control)
  4. C语言在开发中的应用博文汇总贴
  5. v-model的使用
  6. 医学成像技术知识点大全(笔记)
  7. L. Spicy Restaurant
  8. gensim numpy spicy等词云图制作库的安装方法(着重后期)
  9. int *p=malloc(100); 求 sizeof(p)
  10. 大数据可视化陈为智慧树_智慧树知到_大数据可视化_答案章节单元测试答案