간단한 책 만들기 프로그램을 만들었습니다. MAIN 함수의 루프를 사용하여 generateNumbers()에서 rand()를 사용하여 "genNum"변수에 임의의 숫자를 할당하려고했습니다.) 함수를 호출 한 다음 'genNum'값을 MAIN의 세 지역 변수에 전달한 다음 내 BOOKIE 클래스의 멤버 함수에 전달합니다. 함수가 처음 두 번 반복하면 난수가 생성되지만 세 번 째 루프에서는 두 번째 루프에 대해 생성 된 것과 동일한 수를 생성합니다. rand()에 관한 모든 스레드를 살펴 보았지만 아무도 내 질문에 대답하지 않았습니다. 이는 임의의 생성 된 값을 수신하는 멤버 함수 인rand() 루프에서 번호 중복
void generateNumbers(double & number) {
number = 1 + rand() % 500;
}
:
이이 난수를 생성하기위한 함수이고
int main()
{
bool genNumber = false;
int genCount = 0;
double genNum;
double genNum1; double genNum2; double genNum3;
Bookie bookKeeper;
srand(time(0));
bookKeeper.welcomeMessage();
clientEntry();
bookKeeper.clientList(firstClient, secondClient, thirdClient);
while(genNumber == false) {
generateNumbers(genNum);//This is where the numbers are generated
genCount++;
if(genCount == 1) {
genNum1 = genNum;
}
if(genCount == 2) {
genNum2 = genNum;
}
if(genCount == 3) {
genNum3 = genNum;
bookKeeper.clientStatus(genNum1, genNum2, genNum3);
genNumber = true;
}
}
return 0;
}
주요 기능은 : 여기 코드 :
void Bookie::clientStatus(double num1, double num2, double num3) {
clientAOwes = num1; clientBOwes = num2; clientCOwes = num3;
string answer;
enum Status{PAID, LATE};
Status clientAStat;
Status clientBStat;
Status clientCStat;
bool cStatus = false;
while(cStatus == false){
cout<<clientA <<" owes " <<clientAOwes <<".\n"
<<"Has this client paid, (Y)es or (N)o?\n"
<<"::";
getline(cin, answer);
if(answer == "Y") {
clientAStat = PAID;
Astat = "PAID";
}
if(answer == "N") {
clientAStat = LATE;
Astat = "LATE";
}
//Client 2
cout<<clientB <<" owes " <<clientBOwes <<".\n"
<<"Has this client paid, (Y)es or (N)o?\n"
<<"::";
getline(cin, answer);
if(answer == "Y") {
clientBStat = PAID;
Bstat = "PAID";
}
if(answer == "N") {
clientBStat = LATE;
Bstat = "LATE";
}
//Client 3
cout<<clientC <<" owes " <<clientBOwes <<".\n"
<<"Has this client paid, (Y)es or (N)o?\n"
<<"::";
getline(cin, answer);
if(answer == "Y") {
clientCStat = PAID;
Cstat = "PAID";
}
if(answer == "N") {
clientCStat = LATE;
Cstat = "LATE";
}
cStatus = true;
}
cout<<fixed <<setprecision(2);
cout<<setw(4) <<"STATUS" <<setw(21) <<"CLIENT" <<'\n' <<endl;
cout<<setw(4) <<Astat <<setw(21) <<clientA <<'\n' <<endl;
cout<<setw(4) <<Bstat <<setw(21) <<clientB <<'\n' <<endl;
cout<<setw(4) <<Cstat <<setw(21) <<clientC <<'\n' <<endl;
cout<<'\n' <<endl;
}
genCount가 0으로 되돌아 오는 것을 찾지 못했습니까 .....? – alexbuisson
clientStatus의 시작 부분에 인쇄 된 값을 인쇄 해보십시오. 뭐라구? –