Форум программистов, компьютерный форум CyberForum.ru

Имитационная модель интерне - кафе. Ошибки - C++

Восстановить пароль Регистрация
 
IntelCoreDuo
11 / 11 / 0
Регистрация: 09.11.2013
Сообщений: 52
07.01.2014, 12:40     Имитационная модель интерне - кафе. Ошибки #1
Всем доброго времени суток. Помогите пожалуйста исправить ошибки в коде программы, которая имитирует работу интернет-кафе. Сил уже нет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
// Интернет-кафе.cpp:
#include "stdafx.h"
#include <conio.h> 
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
#define _USE_MATH_DEFINES
#define T (12*60*30)
#define N 5
#define RTRAF uniform(0.01,0.06)
#define RIN ceil(exponential(1.0/60))
#define RDL ceil(exponential(1.0/120))
#define TAX 5
 
/*====================================*/
 
#define CRAND (125*125*125*125*5)
 
 
float rand(void)
 
{
 setlocale(LC_ALL, "Russian");
static unsigned long int u=CRAND;
 
u*=CRAND;
 
return u/(float(0xFFFFFFFF)+1.0);
 
}
 
/*====================================*/
 
int discrete(float p[])
 
{
 
float s,r;
 
int k=0;
 
s=p[0]; r=rand();
 
while (s<r)
 
{
 
k++;
 
s+=p[k];
 
}
 
return k;
 
}
 
/*====================================*/
 
float uniform(float a, float b)
 
{
 
return rand()*(b-a)+a;
 
}
 
/*====================================*/
 
float exponential(float lambda)
 
{
 
return -log(rand())/lambda;
 
}
 
/*====================================*/
 
float gauss(float mean, float stdev)
 
{
 
return sqrt(-2*log(rand()))*sin(2* M_PI *rand())*stdev+mean;
 
}
 
/*====================================*/
 
void main (void)
 
{
 
float t,r,max,min, tr[N];
 
unsigned long int nPos=0,n,i,j,nOtkaz,nMest,nSvMest, tin, ton[N],nTrafTotal=0, MAXLONG=0;
 
tin=RIN, nPos=0, nOtkaz=0;
 
for(i=0;i<N;i++) {ton[i]=-1;tr[N]=0;}
 
nSvMest=N;
 
max=0;
 
min = MAXLONG;
 
for(i=0;i<T;i++)
 
{
 
if(nSvMest<N)
 
for(j=0;j<N;j++) if(ton[j]==i)
 
{
 
nSvMest++;
 
ton[j]=-1;
 
tr[j]=0;
 
nPos++;
 
}
 
if(i==tin)
 
{
 
if(nSvMest==0) nOtkaz++;
 
else
 
{
 
nSvMest--;
 
j=0; while(ton[j]!=-1) j++;
 
t=ceil(RDL);
 
ton[j]=t+i;
 
r=RTRAF;
 
tr[j]=r;
 
nTrafTotal+=t*r;
 
}
 
tin=ceil(RIN)+i;
 
}
 
r=0; for(j=0;j<N;j++) r+=tr[j];
 
if (max<r) max=r;
 
if (min>r) min=r;
 
}
 
cout << "==========" << endl;
 
cout << "Количество мест "<<N<<endl;
 
cout << "Общий трафик "<<nTrafTotal<<" мегабайт"<<endl;
 
cout << "доход "<<nTrafTotal*TAX<<" rub"<<endl;
 
cout<<"пиковое значение "<<max<<endl;
 
cout<<"минимальное значение "<<min<<endl;
 
cout<<"количество отказов "<<nOtkaz<<endl;
 
}
З.Ы. Пишу на VS 2010.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2014, 12:40     Имитационная модель интерне - кафе. Ошибки
Посмотрите здесь:

Модель лифта C++
C++ Модель перекрестка
C++ Спичечная модель
Физическая модель C++
Модель стека C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 12:54     Имитационная модель интерне - кафе. Ошибки #2
Цитата Сообщение от IntelCoreDuo Посмотреть сообщение
Помогите пожалуйста исправить ошибки в коде программы
Ошибки какого плана?
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
07.01.2014, 13:01     Имитационная модель интерне - кафе. Ошибки #3
Цитата Сообщение от IntelCoreDuo Посмотреть сообщение
float rand(void)
сразу в глаза бросается - перегрузка стандартной функции rand объявленной в cstdlib
перегрузка по типу возвращаемого значения не допускается - надо переименовывать функцию
IntelCoreDuo
11 / 11 / 0
Регистрация: 09.11.2013
Сообщений: 52
07.01.2014, 13:03  [ТС]     Имитационная модель интерне - кафе. Ошибки #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Ошибки какого плана?
Синтаксические
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.01.2014, 13:15     Имитационная модель интерне - кафе. Ошибки #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
// Интернет-кафе.cpp:
#define _USE_MATH_DEFINES
#include "stdafx.h"
#include <conio.h> 
#include <iostream>
#include <iomanip>
#include <cmath>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
#define T (12*60*30)
#define N 5
#define RTRAF uniform(0.01,0.06)
#define RIN ceil(exponential(1.0/60))
#define RDL ceil(exponential(1.0/120))
#define TAX 5
 
/*====================================*/
 
#define CRAND (125*125*125*125*5)
 
 
float rnd(void)
 
{
 setlocale(LC_ALL, "Russian");
static unsigned long int u=CRAND;
 
u*=CRAND;
 
return u/(float(0xFFFFFFFF)+1.0);
 
}
 
/*====================================*/
 
int discrete(float p[])
 
{
 
float s,r;
 
int k=0;
 
s=p[0]; r=rnd();
 
while (s<r)
 
{
 
k++;
 
s+=p[k];
 
}
 
return k;
 
}
 
/*====================================*/
 
float uniform(float a, float b)
 
{
 
return rnd()*(b-a)+a;
 
}
 
/*====================================*/
 
float exponential(float lambda)
 
{
 
return -log((float)rnd())/lambda;
 
}
 
/*====================================*/
 
float gauss(float mean, float stdev)
 
{
 
return sqrt(-2*log((float)rnd()))*sin(2* M_PI *rnd())*stdev+mean;
 
}
 
/*====================================*/
 
void main (void)
 
{
 
float t,r,max,min, tr[N];
 
unsigned long int nPos=0,n,i,j,nOtkaz,nMest,nSvMest, tin, ton[N],nTrafTotal=0, MAXLONG=0;
 
tin=RIN, nPos=0, nOtkaz=0;
 
for(i=0;i<N;i++) {ton[i]=-1;tr[N]=0;}
 
nSvMest=N;
 
max=0;
 
min = MAXLONG;
 
for(i=0;i<T;i++)
 
{
 
if(nSvMest<N)
 
for(j=0;j<N;j++) if(ton[j]==i)
 
{
 
nSvMest++;
 
ton[j]=-1;
 
tr[j]=0;
 
nPos++;
 
}
 
if(i==tin)
 
{
 
if(nSvMest==0) nOtkaz++;
 
else
 
{
 
nSvMest--;
 
j=0; while(ton[j]!=-1) j++;
 
t=ceil(RDL);
 
ton[j]=t+i;
 
r=RTRAF;
 
tr[j]=r;
 
nTrafTotal+=t*r;
 
}
 
tin=ceil(RIN)+i;
 
}
 
r=0; for(j=0;j<N;j++) r+=tr[j];
 
if (max<r) max=r;
 
if (min>r) min=r;
 
}
 
cout << "==========" << endl;
 
cout << "Количество мест "<<N<<endl;
 
cout << "Общий трафик "<<nTrafTotal<<" мегабайт"<<endl;
 
cout << "доход "<<nTrafTotal*TAX<<" rub"<<endl;
 
cout<<"пиковое значение "<<max<<endl;
 
cout<<"минимальное значение "<<min<<endl;
 
cout<<"количество отказов "<<nOtkaz<<endl;
 
}
Yandex
Объявления
07.01.2014, 13:15     Имитационная модель интерне - кафе. Ошибки
Ответ Создать тему
Опции темы

Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru