请写出程序,输出每位医生的值班日。枚举
来源:互联网 发布:网眼免费空间域名绑定 编辑:程序博客网 时间:2024/04/29 10:54
// 121215 第七章习题11.cpp : 定义控制台应用程序的入口点。///* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日期:2012 年 12 月 15 日 * 版 本 号:v1.0 * 输入描述: 医院内科有a,b,c,d,e,f,g共七位医生,每人在一周内要值一次夜班,排班的要求是: 1、a医生值班日比c医生晚一天 2、d医生值班日比e医生晚两天 3、b医生值班日比g医生早三天 4、f医生值班日在b医生和c医生值班日之间,且在星期四 请写出程序,输出每位医生的值班日。* 问题描述: * 程序输出:* 问题分析:略 * 算法设计:略 */#include "stdafx.h"#include<iostream>using namespace std;int main(){enum weekday{sun,mon,tus,wed,thu,fri,sat};enum weekday day;int a,b,c,d,e,f,g,loop;char ch='A';f=thu;for(a=0;a<=sat;a++)if(a!=f) for(b=0;b<=sat;b++)if((a!=b)&&(f>b))for(c=0;c<=sat;c++) if(a!=c&&b!=c&&c!=f&&(f<c)) for(d=0;d<=sat;d++) if(a!=d&&b!=d&&c!=d&&d!=f&&(c==d+3)) for(e=0;e<=sat;e++) if(a!=e&&b!=e&&c!=e&&d!=e&&e!=f&&(d==e+2)) for(g=0;g<=sat;g++) if(a!=g&&b!=g&&c!=g&&d!=g&&e!=g&&g!=f&&(g==b+2)) //符合以上条件才能执行以下工作 for(loop=0;loop<7;loop++) { cout<<"Doctor"<<char(ch+loop)<<":"; switch(loop+1) { case 1:day=weekday(a);break; case 2:day=weekday(b);break; case 3:day=weekday(c);break; case 4:day=weekday(d);break; case 5:day=weekday(e);break; case 6:day=weekday(f);break; case 7:day=weekday(g);break; } switch(day) { case sun:cout<<"Sunday"<<endl;break; case mon:cout<<"Monday"<<endl;break; case tus:cout<<"Thusday"<<endl;break; case wed:cout<<"Wednesday"<<endl;break; case thu:cout<<"Thurday"<<endl;break; case fri:cout<<"Friday"<<endl;break; case sat:cout<<"Saturday"<<endl;break; } }return 0;}