Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2011, 00:34   #1
Ledom
Пользователь
 
Регистрация: 20.11.2010
Сообщений: 66
По умолчанию станочный цех

доброго времени суток)
необходима помощь с программой...

задание.
25. В цехе имеется один станок для резания. После обработки на станке заготовки поступают на m линий.В каждой линии 4 станка. Известно время обработки заготовки на каждом станке. Задается скорость резания заготовок для основного станка (V) (количество заготовок в единицу времени). Отображать сколько времени осталось до окончания обработки для каждого станка (tc), сколько сделано деталей на каждой линии (k). Детали распределяются после резания между линиями равномерно.
(р) - очередь станка, для накопления деталей.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <dos.h>
#include <conio.h>
#include <IOSTREAM.H>


class stanok {
	       int t0, tc, p, j, g ;


       public:
	     stanok (){



		   cout<<"\n stanok "<<"\nVvedite vremya rezaniya- ";
		   cin>>t0;

		   p=0;

		   tc=0;
		   g=0;

		   }
	   void  change_p(){ p++; }
	   void  CH_tc() {
			  if(tc>0) tc--;
			 }
	   void  print()  {cout<<"\n tc="<<tc<<"\tP= "<<p<<"\tt0= "<<t0;}
	   void  prov_t();
	   int  g_p();
};
int stanok :: g_p(){
		      if(tc==0) if(g) return 1;
		      return 0;
		     }
void stanok :: prov_t() {
			if(p>0){
			       if(tc<1) {tc=t0; p--; g=1;}
			       }
			      else if(tc==0) g=0;
			}


class Pline {
		int n,
		    k,
		    x,
		    y;

	      stanok *St;


public:
       Pline (){

		n=4;
		St = new stanok[n];
		k=0;
		}
	void toline(){
		St[0].change_p();
		}
	void change_tc();
	void draw();
	void prov();
	int  get_p(int p);
	void res_p();

};

void Pline :: res_p(){
		     for(int i=0;i<n-1;i++) {
					    int r=St[i].g_p();
					    if(r)St[i+1].change_p();
					    }
		     k=k+St[n-1].g_p();
		     }
void Pline :: change_tc(){ for(int i=0;i<n;i++) St[i].CH_tc();}
void Pline :: draw(){
		     for(int i=0;i<n;i++) St[i].print();
		     cout<<"\nk= "<<k;
		    }
void Pline :: prov(){
		     for(int i=0;i<n;i++) St[i].prov_t();
		    }
void main()
{
clrscr();

struct time tm1, tm2;
float V;
cout<<"\nVvedite scorost' rezaniya osnovnogo stanka - ";
cin>>V;
float D=0;
int l=0,
    t=0,
    q=1;
cout<<"\n Vvedite kol-vo liniy - ";
int m;
cin>>m;
Pline *L=new Pline[m];
clrscr();
do{
cout<<"\npusk - press Enter\nexit - ESC \n";
char c = getch();
if(c == 13 ) q=0;
if(c ==27) return;
}while(q);

gettime(&tm1);
while(1)
{

       clrscr();
       cout<<"\nt= "<<t;
       for(int i=0;i<m;i++){
			    L[i].draw();
			    cout<<"\n\n------------\n";
			   }

do
 {
  gettime(&tm2);
  if(kbhit()) if(getch()==27)
			   {

			    return;
			   }
 }while(tm1.ti_sec==tm2.ti_sec);

tm1=tm2;
t++;

D=D+V;

int Z=D;
D=D-Z;
while(Z>0){
       L[l].toline();
       Z--;
       l++;
       if(l>m-1 ) l=0;

	  }

for( i=0; i<m; i++) {
			L[i].res_p();
			L[i].prov();

			L[i].change_tc();
		    }
}

}
проблема с передачей заготовки от одного станка к следующему, то как я реализовал работает не точно, не досчитываюсь деталей...
помогите пожалуйста)
Ledom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц