请写出程序,输出每位医生的值班日。枚举

来源:互联网 发布:网眼免费空间域名绑定 编辑:程序博客网 时间: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;}

原创粉丝点击