值班c语言程序,5.值班安排C语言程序报告.doc
“程序设计(Ⅱ)”综合编程实验报告
( 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相关推荐
- 五猴分桃c语言课程设计,c语言程序设计五猴分桃问题实验报告.doc
c语言程序设计五猴分桃问题实验报告.doc 课程设计报告学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:04121010学生姓名: ...
- 用c语言做教学课程安排,C语言入门课程安排
<C语言入门课程安排>由会员分享,可在线阅读,更多相关<C语言入门课程安排(5页珍藏版)>请在人人文库网上搜索. 1.C语言入门课程安排开班人数:2-5人年级:3年级以上第一课 ...
- c语言五猴分桃案例分析,C语言程序设计五猴分桃问题实验报告.doc
C语言程序设计五猴分桃问题实验报告 课 程 设 计 报 告 学院.系:吉林大学珠海学院计算机科学与技术系专业名称:软件工程课程设计科目C语言程序课程设计所在班级:10班学生学号:学生姓名:赵学文指导教 ...
- c语言程序学生活动安排,c语言大赛活动策划
c语言大赛活动策划 C语言大赛策划书主办方:信息工程系.软件工程系分团委学生会承办方:计算机与通信协会一 .活动主题:科技点亮青春,思维创造奇迹二 .活动背景: 近年来,随着我国信息技术及相关产业的高 ...
- c语言编程题会议室安排,C语言编程题:会议室安排
满意答案 dageng26 推荐于 2017.12.15 采纳率:53% 等级:8 已帮助:515人 我用的编译器是DEV-C++,代码如下: #include #include int beg ...
- 抛物型方程的有限差分 C语言程序,抛物型方程有限差分方法的应用 - 报告.doc
抛物型方程有限差分方法的应用 - 报告 2015 年 秋 季学期研究生课程考核 (读书报告.研究报告) 考核科目: 偏微分方程数值解法 学生所在院(系): 理学院数学系学生所在学科: 数学学 生 姓 ...
- 花样彩灯的c语言程序设计,单片机花样彩灯课程实施方案报告.doc
个人收集整理 仅供参考学习 个人收集整理 仅供参考学习 PAGE / NUMPAGES 个人收集整理 仅供参考学习 1.引言 随着人们生活环境地不断改善和美化,在许多场合可以看到彩色霓虹灯. LED ...
- Problem G: C语言习题 医生值班
Problem G: C语言习题 医生值班 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 847 Solved: 102 [Submit][Stat ...
- c语言switch写值班表,如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示...
如何用asp编写按周轮换的值班表?例,1月份的值班领导有4位,怎样写可以让4位领导的名字自动到时间显示以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容 ...
- c语言循环程序设计教案,10 《C语言程序设计》教案 第三章 程序的控制结构(6)—循环结构 while和do while.doc...
10 <C语言程序设计>教案 第三章 程序的控制结构(6)-循环结构 while和do while.doc C 语言程序设计课程教案表 授课题目 第三章 程序的控制结构 (6) 循环结构 ...
最新文章
- mongodb 与 mysql区别 NOSQL 型号与SQL型号的区别 是非关系型号与关系型号的区别
- DNA甲基化检测服务
- P5290 [十二省联考2019]春节十二响
- jquery --- 使用when方法等待2个异步事件结束后执行某一个函数.
- oracle 11g ORA-12541: TNS: 无监听程序 (DBD ERROR: OCIServerAttach)
- 复选框 ComboBox 1129
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
- 一些CFD名词缩写的含义(持续更新中)
- c语言考试答案,C语言考试题及答案
- 屏幕缩放比例 html,css如何自适应屏幕大小?
- 个人信用报告机构查询中有:深圳前海微众银行股份有限公司,为什么???
- AI:AI与爱无处不在,大赛与奖金齐飞—【科大讯飞】AI开发者大赛—与你在AI盛会中遨游!
- 美团2015年校园招聘部分笔试题
- provision文件路径
- 华为月薪11万招前端工程师,看到要求我傻眼了!
- cents7配置gradle4
- INDEX REBUILD和INDEX REORGANIZE和UPDATE STATISTICS是否涉及Sch-M的案例分析
- C++实现通用的文件(万能)加密方案——包含源码
- 【渝粤题库】陕西师范大学292011 初级微观经济学 作业(高起专)
- 【Python】自动化办公之Excel拆分并自动发邮件
热门文章
- MOOS例程HelloWorld-详细注释
- ILITEK touch driver
- 学习随笔#12 最优化控制(Optimal Control)
- C语言在开发中的应用博文汇总贴
- v-model的使用
- 医学成像技术知识点大全(笔记)
- L. Spicy Restaurant
- gensim numpy spicy等词云图制作库的安装方法(着重后期)
- int *p=malloc(100); 求 sizeof(p)
- 大数据可视化陈为智慧树_智慧树知到_大数据可视化_答案章节单元测试答案