//JobShop.h extern int Nr_Machine_Groups; extern int Nr_Standard_Job_Types; extern double SimTime; extern double LengthOfRun; extern FILE * fp; extern FILE * fpOut; void ReadInputData(); double exponential(); class RankedSet; class Step; class EndProcess; class Machine; class Sale; class accumulated_variable; class tallied_variable; typedef enum JobDoneCode{ JobDone, JobNotDone }; class Machine_group { public: int MG_Nr; accumulated_variable Free_machines; RankedSet Queue; accumulated_variable Queue_size; EndProcess * First_free_EndProcess_notice; Machine_group(); }; extern Machine_group * MachineGroup; class Std_job_type { public: double Mean_time_between_sales; Step * First_step_in_routing; //first in linked list Step * Last_step_in_routing; //last step in routing tallied_variable Time_in_shop; void NewSale(Sale * SalePtr); }; extern Std_job_type * StdJobType; class Step { public: Machine_group * MG; Std_job_type * Job_type; Step * Next_step; double Proc_time; double Step_priority; }; class Job { public: Std_job_type * Job_type; double Arrival_time; Step * Place; Job(Std_job_type * SJTPtr); JobDoneCode AdvanceJob(); };