2017-12-24 2 views
-1

C++을 배우기위한 간단한 프로그램을 작성하려고합니다. 나머지 코드에 대한 예제를 찾고 있습니다.C++ 예 또는 아니오 질문에 대한 코드 예를 묻습니다. 모두 사실이어야합니다.

프로그램은 사용자에게 일련의 예 또는 아니오 질문을 입력하고 모두 사실이라면 true 또는 false를 반환하도록 요청합니다.

코드는 요청해야 ...

다른 사람의 공격을 했습니까, [Y/N?]

상당한 신체적 상해를 입힐 [Y/N?]

과 사람 해가되는 것은 미성년자입니다 [y/n?]

모두가 참이면 "미성년자를 괴롭히는 폭력입니다." 모두 사실이 아니라면 인쇄하십시오. "이것은 가벼운 공격과 관련이 없습니다." 이 도움이

vector<string> yn; 
// Assign strings to your questions excluding ", [y/n?]". 
bool done = true; 
string line; 
for(int i = 0; i<yn.size(); i++) 
{ 
    cout<<yn+ ", [y/n?]"; 
    getline(cin, line); 
    if(line != "y") done = false; 
} 

if(done) 
{ 
    cout<<"This is aggravated assault involving a minor."<<endl; 
} 
else{ 
    cout<<"This is not aggravated assault involving a minor."<<endl; 
} 

희망 :

반환 참 또는 거짓

+3

스택 오버플로에 오신 것을 환영합니다. 시간을내어 [The Tour] (http://stackoverflow.com/tour)를 방문하고 [도움말 센터] (http://stackoverflow.com/help/asking)의 자료를 참조하십시오. 어떻게 당신이 여기 물을 수 있습니다. [mcve]를 게시하는 것이 특히 중요합니다. –

+0

여러개의 중첩 된'if' 문과 같은 소리가 원하는 것을 할 수 있습니다. 프롬프트 응답, 응답 받기,'응답 (응답 == 'y')'사용자에게 다음 질문을 표시하고 응답을 받으면'응답 (응답 == 'y')'.... 키워드) 입력 유효성 검사. – user4581301

+0

만약 내가 대표가 있다면, 나는이 질문을 downvote 것입니다. – JulianSoto

답변

1

여기에 쉬운 예제 코드는 당신이 원하는 무엇을위한 것입니다 (또 다른 기능은 경우는 true 요소로 사용됩니다).

+0

그것은 내가 예상했던 것보다 짧지 만 더 복잡합니다. 이것은 내가 배울 도전합니다. 정말 고맙습니다. –

+0

이것이 도움이되는 경우 upvote를 허용하고 –

1

질문 수가 고정되어있는 경우 가장 간단한 방법은 간단한 배열을 사용하여 응답을 저장하고 마지막에 함수 호출과 시간을 저장하지 않고 한 번만 확인하는 것입니다. 다음은 샘플 코드입니다

#include <iostream> 
using namespace std; 

int main(int argc, const char * argv[]) { 
char response[3]; 
cout<<"Did a person assault another?(y/n)"<<endl; 
cin>>response[0]; 
cout<<"and inflict substantial bodily harm?(y/n)"<<endl; 
cin>>response[1]; 
cout<<"and the person being harmed is a minor?(y/n)"<<endl; 
cin>>response[2]; 
if(response[0]=='y'&& response[1]=='y'&& response[2]=='y') 
    cout<<"This is aggravated assault involving a minor"<<endl; 
else cout<<"This is not aggravated assault involving a minor"<<endl; 
return 0; 
} 
+0

을 수락합니다. 프로그램은 사용자 입력을 기다리기 위해 세 번 일시 중지해야합니다. 이와 같은 "최적화"로 런타임을 면도 할 수있는 시간은 (모든 애플리케이션을 저장한다고 가정 할 때) 그러한 애플리케이션과 완전히 관련이 없습니다. –

1

프로그램을 작성하는 첫 번째 단계 중 하나는 작업을보다 관리하기 쉬운 부분으로 나누고 해당 부분에 이름을 지정하는 것입니다.

예를 들어,이 프로그램의 작업 중 하나는 "사람이 다른 사람을 공격 했습니까?"라는 질문에 예/아니오로 대답하는 것입니다. 이와 같은 질문에 대한 대답은 bool 값으로 표시되며 응답이 "y"인 경우 true이고 대답이 "y"가 아닌 경우 false입니다.

우리는 그 값을 유지하는 변수를 선언하여이 답변에 이름을 부여 할 수 있습니다 :

bool is_assault; 

는 마찬가지로 우리가 다른 두 가지 질문에 대한 답변을 나타 내기 위해 bool is_harm;bool is_a_minor;를 선언 할 수있다.

변수가 3 개 뿐이며 항상 동일한 질문과 동일한 질문이 있으므로 배열이나 다른 멋진 데이터 구조를 사용할 필요가 없습니다. 3 개의 명명 된 변수가 나에게 좋을 것 같습니다. 질문에 대한 답변에 따라 각 변수를 true 또는 false으로 설정해야합니다. 그러면 세 변수가 모두 참인 경우, 즉 is_assault && is_harm && is_a_minor이 참인 경우에는 미성년자와 관련된 폭행이 증가하게됩니다.그에게 필요한 모든 것을이기 때문에, 대신 당신은 단지 각 질문에 대한 코드의 세 가지 또는 네 개의 라인을 작성하는 유혹 할 수있는 기능을 정의하는 지금

bool isAggravatedAssaultInvolvingAMinor() 
{ 
    bool is_assault = getAnswerToQuestion("Did a person assault another"); 
    bool is_harm = getAnswerToQuestion("and inflict substantial bodily harm"); 
    bool is_a_minor = getAnswerToQuestion("and the person being harmed is a minor"); 
    return (is_assault && is_harm && is_a_minor); 
} 

: 여기

는 함수로까지 기록 된 생각 얻고 저장하고 대답하십시오. 많은 함수를 저장하기 때문에가 아닌 getAnswerToQuestion과 같은 함수를 호출하는 것이 더 좋습니다. 함수의 이름을 지정하면 문서가 어떻게 작동하는지 쉽게 알 수 있습니다. 코드의 줄 수를으로 늘릴 것을 기대한다고해도, 함수를 정의하는 데 동일한 인수를 사용합니다. isAggravatedAssaultInvolvingAMinor.

그래도 할 일이 있습니다. getAnswerToQuestion 함수를 정의하여 사용자에게 질문하고 적절한 bool 값을 반환하는 방법은 무엇입니까? 프로그램은 어떻게 함수를 호출해야합니까? isAggravatedAssaultInvolvingAMinor; 그리고 프로그램에서 반환 값이 isAggravatedAssaultInvolvingAMinor 인 경우 어떻게해야합니까?

관련 문제