现在,问题是:
组装一个程序,该程序将模拟自动电话交换的工作。例如,有10个订阅者,任何人都可以呼叫任何人,每个都有以下几种条件:等待一个答案,打电话说免费。他们彼此随机调用,程序应显示此系统的操作。
而且,我想出了一些方法,但是,不知道如何准确地实现它。
#include <cstdlib>
#include <chrono>
#include <random>
#include <string>
using namespace std;
int i, a;
string state[4]{ "free", "waiting", "calling", "talking" };
int states[4]{ 1,2,3,4 };
int subs[10]{ 1,2,3,4,5,6,7,8,9,10 };
int main(int subs[10], int states[4], string state[4])
{
srand(time(nullptr));
for (int x = 0; x < subs[10]; x++)
{
states[i] = rand() % 4;
states[i] = a;
cout << "Subscriber" << subs[x] << "is" << state[a] << endl << endl;
}
}
在这里,我在states[i] = a
行中也有错误
现在,我在那里尝试做的是随机分配一个数字,然后将其分配给任何订户,然后向运行该程序的人显示。但是,好吧……这并非问题所要告诉我的。而且,我不确定在这里可以做什么。我的时间也很有限,只剩下12个小时了,因为我很懒。请帮忙吗?
您的代码的清晰版本:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(void) {
int subs[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
size_t len = sizeof(subs) / sizeof(subs[0]);
string subsStatus[10];
string state[] = {"CALLING", "WAITING", "FREE", "TALKING"};
srand(time(NULL));
for (int i = 0; i < len; i++) {
subsStatus[i] = state[rand() % 4]; // example: Subscriber4 = "TALKING"[3]
cout << "Subscriber" << subs[i] << " is " << subsStatus[i] << endl;
}
return 0;
}