如何查看时间表中是否存在时间冲突?

时间:2015-12-06 07:35:29

标签: c++

我写了这个程序,以整齐的方式打印出你的日程安排, 但是,我的问题是我必须放一个函数来检测是否有任何冲突时间,所以该程序如下:

how many courses you have? 

name of the first course? 
ho many days? 
enter the days?

at what time does your course start?
at what time does your course end? 

然后它打印出格式化的时间表并以一种很好的方式显示给你,以便它易于阅读。

您能否指导我如何检查时间表是否存在冲突?此外,我的任务要求规定我必须使每个函数最多10行!!!

我的导师说你用军事时间来查找冲突的时间表更容易,但问题是,我不知道如何实现它!

你能帮我解决一下这个问题,或者给出一些我觉得有帮助的提示。

#include<iostream>
using namespace std;

struct course {  
   string name;
   int num_days;
   char *days;
   int start_hr, start_min;
   int end_hr, end_min;
};
void get_info(struct course * courses, int num_cour);
void _free(struct course* courses, int num_cour);
void Help();
void pr(struct course *courses, int num_cour);
void pri(struct course *courses, int num_cour);
void prii(struct course *courses, int num_cour);
void priii(struct course *courses, int num_cour);
void priiii(struct course *courses, int num_cour);
void time(struct course *courses, int num_cour);
void conflict(struct course * courses,int num_cour);
int main(){
   course *courses;
   int num_cour;
    cout << " ****************************************************** \n";
/***** here i get the number of the courses ***/   
    cout << "pls enter number of course:"; cin>> num_cour;
    courses = new course[num_cour];

   get_info(courses, num_cour);
   pr(courses, num_cour);
   pri(courses, num_cour);
   prii(courses, num_cour);
   priii(courses, num_cour);
   priiii(courses, num_cour);

   _free(courses, num_cour);

   cout << " ****************************************************** \n";
   return 0;
 }
/***** in this function i get the names of the courses and the days ******/ 
void get_info(struct course* courses, int num_cour)
{  
   for(int i=0; i< num_cour; i++)
   {  
      cout << "name:"; 
      cin>> courses[i].name;
      cout << "How many days" << endl;
      cin>> courses[i].num_days;
      courses[i].days=new char[courses[i].num_days];
      for(int x=0; x < courses[i].num_days ; x++){
         Help(); 
         cout << "Enter the day" << endl;
         cin >> courses[i].days[x];
      }
   }
  time(courses, num_cour); // this is a call for another function that asks the user to enter the time of the courses when it starts and ends. 
}
/******* this function prints out the courses on Mondays only ****/
void pr(struct course *courses, int num_cour){
   cout << "** On Monday **\n";
   for(int i=0; i<num_cour; i++){

      for(int x=0; x<5;x++){
         if(courses[i].days[x]=='m'){
            cout << courses[i].name<<": " << courses[i].start_hr << ":"<<courses[i].start_min << "-" << courses[i].end_hr<< ":" <<courses[i].end_min<< endl;
}

      }
   }
}


/******* this function prints out the courses on tusdays only ****/
void pri(struct course *courses, int num_cour){
   cout << "** On Tusday **\n";
   for(int i=0; i<num_cour; i++){

      for(int x=0; x<5;x++){
         if(courses[i].days[x]=='t'){
            cout << courses[i].name<<": " << courses[i].start_hr<<":"<<courses[i].start_min << "-" << courses[i].end_hr<< ":"<<courses[i].end_min<<endl;
        }

      }

   }
}

/******* this function prints out the courses on Wednesday only ****/
void prii(struct course *courses, int num_cour){

   cout << "** On Wednesday **\n";
   for(int i=0; i<num_cour; i++){

      for(int x=0; x<5;x++){
         if(courses[i].days[x]=='w'){
            cout << courses[i].name<<": " << courses[i].start_hr << ":"<< courses[i].start_min << "-" << courses[i].end_hr<< ":" << courses[i].end_min<< endl;
         }

      }

   }
}
/******* this function prints out the courses on thursdays only ****/
void priii(struct course *courses, int num_cour){
   cout << "** On Thursday **\n";
   for(int i=0; i<num_cour; i++){

      for(int x=0; x<5;x++){
         if(courses[i].days[x]=='r'){
            cout << courses[i].name<<": " << courses[i].start_hr << ":"<< courses[i].start_min << "-" << courses[i].end_hr<< ":" << courses[i].end_min<< endl;
         }

      }

   }
}
/******* this function prints out the courses on fridays only ****/
void priiii(struct course *courses, int num_cour){
   cout << "** On Friday **\n";
   for(int i=0; i<num_cour; i++){

      for(int x=0; x<5;x++){
         if(courses[i].days[x]=='f'){
            cout << courses[i].name<<": " << courses[i].start_hr << ":"<< courses[i].start_min << "-" << courses[i].end_hr<< ":" << courses[i].end_min<< endl;
         }

      }

   }
}

/**** this function to frees out the memory ******/ 
void _free(struct course* courses, int num_cour)
{
   for(int i=0; i<num_cour; i++)
   {
      delete [] courses[i].days;
   }
   delete [] courses;
}

void Help(){

   cout <<"*** NOTE: ENTER (m) for Monday, (t) Tusday, (w) Wednesday, (r) Thursday, (f) Friday ***\n";
}

/******* this function is to get the time where the course starts and ends and it is also been called in an earlier function ****/
void time(struct course *courses, int num_cour){
   for( int i=0; i<num_cour; i++){
      cout << " at what hour is your "<< courses[i].name << " class start: ";
      cin >> courses[i].start_hr;
      cout << " at what minute is your "<< courses[i].name << " class start: ";
      cin >> courses[i].start_min;
      cout << " at what hour is your "<< courses[i].name << " class end: ";
      cin >> courses[i].end_hr;
      cout << " at what minute is your "<< courses[i].name << " class end: ";
      cin >> courses[i].end_min;
   }
}
void conflict(struct course * courses, int num_cour){

}

1 个答案:

答案 0 :(得分:0)

您不必为一周中的每一天制作单独的功能。只需创建一个包含一周中几天的字符串数组。例如:

ui: {}

要实施军事时间结构,请尝试

string week[] = {"Monday", "Tuesday", ...};