C++ 프로그래밍 (섹션 9 OOP)
struct
와 유사하지만 데이터를 수집하는 것 외에 이 데이터를 처리하는 방법을 수집한다.이것이 바로 이른바 봉인이다.나는 코드를 더욱 쉽게 계승하고 다태적으로 다시 사용하도록 하는 것도 토론했다.행동 호소
부트 코드 연습을 읽었으니 몇 가지 프로그램을 작성해 주십시오.
질문 1
질문 1 날짜 클래스를 만들어서 날짜를 표시해야 합니다.
개인 부분에서 성명한 일수, 월수, 연수는 반드시 정수가 있어야 한다.각각 setter를 설정하는 것이 아니라 setDate (int m, int d, int y) 라는 방법으로 날짜를 설정합니다.모든 단락의 데이터에 대해 Getter 방법이 있을 수 있습니다.
두 개의 구조 함수를 추가합니다. 하나는 데이터를 받아들이지 않고 날짜를 1/1/1/2000으로 설정하고, 다른 하나는 세 개의 정수로 날짜를 설정해야 합니다.
다음 형식으로 날짜를 인쇄하는 print () 방법: MM/DD/YYYYYY, 그리고 printLong () 방법: MonthName Day, Year.예를 들어, 오늘 날짜가 인쇄됩니다
November 16, 2021
.일수, 월 및 연수를 날짜에 추가하는 방법이 포함됩니다.
void addDays(int d)
void addMonths(int m)
void addYears(int y)
질문 2
문제2 카드 게임에 관련된 종류를 만들어야 합니다.카드에 저장해야 할 데이터는 수치와 옷 한 벌이다.카드는 자신을 표시하는 것을 책임진다.예를 들어 우리는 두 개의 붉은 하트, 열 개의 다이아몬드, 매화잭 또는 검은 복숭아 카드를 보여주고 싶을 때 다음과 같이 출력한다.
2 of Hearts
10 of Diamonds
J of Clubs
A of Spades
다음에 deck 클래스를 만듭니다.카드 한 벌은 52장의 집합이다.모든 카드는 유일무이하다.이 네 벌의 양복 중 한 벌마다 2부터 a까지의 숫자 카드가 있어야 한다.카드 그룹의 직책은 카드를 씻을 수 있어야 하며, 카드 그룹에서 일정 수량의 카드를 쳐야 한다는 것이다.카드를 씻으려면 카드 그룹의 카드를 무작위로 이동해야 한다.rand() 함수를 사용하여 C++에서 임의의 수를 생성할 수 있습니다.카드를 발급할 때 사용자는 카드 그룹에 일정 수량의 카드를 요구할 것이다.만약 카드 그룹에 충분한 카드가 있다면, 그것은 반드시 이 카드들을 보내야 한다.일단 카드 그룹에서 카드를 발급하면 다시는 같은 카드 그룹에서 카드를 발급할 수 없다.사용자는 카드 벡터를 전송하고 카드 그룹은 요청한 카드 수량을 채울 것입니다.카드 그룹에 카드가 충분하지 않으면 오류 메시지를 인쇄하고 종료(0)를 통해 프로그램을 종료하십시오.
하나의 클래스를 만들 때, 사람들은 항상 이 클래스에 필요한 데이터와 그 클래스의 책임을 고려해야 한다.클래스의 데이터는 개인적이어야 하며, 클래스의 인터페이스를 제공해야 한다.모든 카드와 카드 팀을 어떻게 구성해야 할지 생각해 보세요.모든 클래스에 최소한 하나의 구조 함수를 작성합니다.먼저 카드 클래스를 작성하고 드라이버에서 테스트를 진행합니다.그리고 갑판 수업을 듣는다.카드 그룹을 테스트하려면 카드 그룹의 대상을 만들고 52장의 카드를 요구한 다음 각 카드를 화면에 인쇄하십시오.
다음에 나는 네가 이 프로그램을 수정해서 한 사람이 어떤 포커의 가능성을 평가할 수 있도록 하고 싶다.포커는 52장의 카드로 구성된 카드 게임이다.이 프로그램에서 나는 단지 다섯 장의 카드의 종류에만 관심을 갖는다.이 프로그램은 카드 그룹에서 다섯 장의 카드를 반복해서 꺼내 한 손에 나오는 횟수를 계산한다.
대부분의 포커의 변형에서 손의 우선순위는 다음과 같다.
Royal Flush- 5 cards that are a straight (5 cards in numeric order) and a flush (5 cards that are the same suit) from the 10 to the Ace.
Straight Flush- 5 cards that are a straight (5 cards in numeric order) and a flush (5 cards that are the same suit).
Four of a Kind- any 4 cards with the same number.
Full House- three of a kind (3 cards with the same number) and a pair (two cards with the same number).
Flush- any 5 cards of the same suit.
Straight- any 5 cards in numeric order.
Three of a Kind- any 3 cards with the same number.
Two Pair- 2 sets of pairs.
Pair- any 2 cards with the same number.
High Card in your Hand- if you don't have any of the above, your high card is the best hand.
더 많은 종류를 만들어야 한다. 이런 종류는 카드 종류와 카드 종류보다 더 많은 책임을 진다.프로그램은 카드를 확인하고 그 카드에서 가장 잘 만들 수 있는 카드를 확인하는 '평가자'가 필요하다.확률을 확정하기 위해서 나는 너희들에게 대량의 손을 처리하고 한 손이 나타나는 횟수를 기록하게 하고 싶다.다시 말하면, 당신의 프로그램은 5만 장의 카드 집합을 만들어서 평가를 할 수 있을 것이다.평가자는 황실 동화순이 몇 번, 직접 동화순이 몇 번 나타났는지 계산해 낸다.너의 프로그램은 모든 손의 가능성을 백분율로 나타낼 것이다.
다음은 evaluator 드라이버를 사용하는 방법입니다.
int main()
{
//five card evaluator
//create a poker evaluator for 5 card poker
PokerEvaluator fiveCardPokerEvaluator;
//set the number of hands to play- one hundred thousand this time
fiveCardPokerEvaluator.setNumberOfHandsToPlay(100000);
//play all the hands and track the statistics, then print the results to the screen
fiveCardPokerEvaluator.playAndDisplay();
return 0;
}
의견 및 피드백
너는 나의 무료 책 An Animated Introduction to Programming in C++ 에서 이 코드들을 모두 찾을 수 있다.피드백을 찾고 있으니 언제든지 댓글을 달아주시거나 메시지를 보내주세요.너는 트위터에서 나를 주목할 수 있다.
Reference
이 문제에 관하여(C++ 프로그래밍 (섹션 9 OOP)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/markm208/programming-in-c-part-9-oop-2c62텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)