본문 바로가기

C++/c++수업25

ㅌㅔ스트 #include #include MyButton myBtn(2); MyLed myLed1(8); MyLed myLed2(9); void setup() { Serial.begin(9600); } void loop() { myLed2.ledblink(); myBtn.isPressed(); if (myBtn.isPressed() == true){ Serial.println("btn not pressed"); myLed1.ledoff(); } else{ Serial.println("btn pressed"); myLed1.ledon(); } } #include #include MyButton myBtn(2); MyLed myLed1(8); MyLed myLed2(9); const int buttonPin = 2;.. 2020. 10. 28.
class - btn+led 버튼 누르면 led on off myled.h #pragma once #include "Arduino.h" class MyLed { private: int pinnum; public: MyLed(int pinnum); void ledon(); void ledoff(); }; myled.cpp #include "MyLed.h" MyLed::MyLed(int pinnum) { this->pinnum = pinnum; pinMode(this->pinnum, OUTPUT); } void MyLed::ledon() { digitalWrite(pinnum, HIGH); } void MyLed::ledoff() { digitalWrite(pinnum, LOW); } mybutton.h #pragma once #include "Arduino.h" c.. 2020. 10. 27.
아두이노 라이브러리 (led 깜빡이는) 만들기 MyLed.h #pragma once #include "Arduino.h" class MyLed { private: int pinnum; public: MyLed(int pinnum); void ledplay(); }; MyLed.cpp #include "MyLed.h" MyLed::MyLed(int pinnum) { this->pinnum = pinnum; pinMode(this->pinnum, OUTPUT); } void MyLed::ledplay() { digitalWrite(pinnum, HIGH); delay(1000); digitalWrite(pinnum, LOW); delay(1000); } 함수 오버로딩 MyLed.h #pragma once #include "Arduino.h" class .. 2020. 10. 26.
고객 차량 관리 프로그램을 위한 클래스 설계. (2개의 클래스가 사용 2. 고객 차량 관리 프로그램을 위한 클래스 설계. (3개의 클래스가 사용되니 조건을 상세하게 확인!) 조건01) 프로젝트를 생성할때 패키지명을 com.회사명 또는 본인 이니셜.carApp 으로 설정하고 클래스명은 CarAppMain 으로 생성. (main() 메쏘드가 존재함) 조건02) 프로젝트에 새로운 패키지 com.회사명 또는 이니셜.carApp.car 를 만들고 클래스 Car를 생성 추가. 조건03) Car 클래스에 멤버변수 모델명, 색상, 연식, 제조사를 생성하고 접근 차단. - 속성 타입은 조건12 참고. 조건04) 속성 정보들을 설정하는 매개 변수를 가지는 생성자 추가. 조건05) Car 클래스 속성들을 위한 getter/setter 추가. 조건06) 모든 속성 정보들을 출력하는 메쏘드 pr.. 2020. 10. 21.
학생관리 프로그램을 위한 학생(Student) 클래스 설계 student.h #include #include #include #include using namespace std; class Student { private: //03 클래스의 속성은 이름, 나이, 성별, 주소를 선언하고 다른 클래스에서 접근을 차단함 string name; int age; string gender; string address; public: Student(); //기본생성자 Student(string name, int age, string gender, string address); //04 매개변수 이름, 나이, 성별, 주소를 사용하는 생성자 추가 ~Student(); //05) 속성에 대한 getter/setter 멤버 메쏘드 추가. inline void setName(stri.. 2020. 10. 20.
배열 포인터 #include #include #include "Car.h" using namespace std; void main() { Car car; car.CarInfo(); //Car car1("이건제조사","색깔","이건가격","모델"); //Car car1; //car1.Car::Car("이건제조사", "색깔", "이건가격", "모델"); //car1.CarInfo(); Car* car2 = &car; car2->CarInfo(); Car* car3 = new Car; car3->CarInfo(); delete car3; // 메모리 낭비를 줄이기 위해 반드시 deltete 해줘야 한다 Car car4[3]; // 객체 생성 가능 for (int i = 0; i < 3; i++) { car4[i].CarI.. 2020. 10. 20.
자동차에 대한 클래스 작성 1. 자동차에 대한 클래스 작성하기. 조건1) 속성 - 대리점명은 상수 클래스변수로 선언. : static 변수 조건2) 속성(변수) - 제조사, 색상, 가격, 모델명은 인스턴스 변수로 선언. 소멸자 추가 조건3) 기본 생성자를 만들고 아래의 속성값들을 초기화 바람. 제조사 - "기아", 색상 - "블랙", 이름 - "K7" 가격 - "사천만원", 대리점명 - "동대구 영업소" (스트링) 조건4) 모든 속성들을 매개변수로 전달하여 객체를 생성할수있는 생성자 추가. 조건5) 모든 속성 정보들을 출력하는 인스턴스 메쏘드(함수) 추가. [출처] Java 클래스 1번째|작성자 박x신 car.h #pragma once #include #include using namespace std; class Car { pr.. 2020. 10. 19.
static / 소스파일cpp ,헤더파일h 분리 예제+사칙연산 추가 #include #include "classAddH.h" using namespace std; Adder::Adder(int a, int b) { op1 = a; op2 = b; } int Adder::process() { return op1 + op2; } 2020. 10. 19.
헤더파일, cpp파일 분리. p140 Adder, calculator #include using namespace std; class Adder { // 덧셈 모듈 클래스 int op1, op2; public: Adder(int a, int b); int process(); }; Adder::Adder(int a, int b) { op1 = a; op2 = b; } int Adder::process() { return op1 + op2; } class Calculator { // 계산기 클래스 public: void run(); }; void Calculator::run() { cout > a >> b; // 정수 두 개 입력 Adder adder(a, b); // 덧셈기 생성 cout > a >> b; // 정수 두 개 입력 Adder adder(a, b); // 덧셈기.. 2020. 10. 19.
소스파일cpp ,헤더파일h 분리 예제 (p136) Circle.h //#pragma once #ifndef CIRCLE_H__ #define CIRCLE_H__ #endif // !__CIRCLE_H__ class Circle { private: //변수는 private int radius; public: Circle(); // 기본 생성자. 생성자는 타입이 없음. Circle(int r); // 매개 변수 있는 생성자 ~Circle();// 소멸자 // getter double getArea(); // setter. inline void setRadius(int r) { radius = 4; } }; Circle.cpp #include #include "Circle.h" using namespace std; Circle::Circle() { cout 2020. 10. 19.
캡술화 private public 변수는 private , 함수는 public 으로 작성하는 것이 캡슐화에 기반한 class 작성방법. #include using namespace std; class Circle { private: //변수는 private int radius; public: // 함수는 외부에서 접근 가능하도록 public Circle(); // 기본 생성자. 생성자는 타입이 없음. Circle(int r); // 매개 변수 있는 생성자 ~Circle();// 소멸자 // getter double getArea(); // setter. void setRadius(int r) { radius = 4; } }; Circle::Circle() { cout 2020. 10. 19.
생성자 class Circle { Circle(); //생성자 이름 = 반드시 클래스 이름과 동일 Circle(int r); // 리턴타입 명기하지 않음 }; Circle::Circle(){ //매개변수 없는 생성자 } Circle::Circle(int r){ // 매개변수를 가진 생성자 } 2개의 생성자 중복 선언 : 오버로딩 단 매개변수가 다를 경우 매개변수 없는 생성자 : 디폴트 Circle(); Circle(int r); 메소드 오버로딩 (중복정의) - 객체지향언어에서 볼 수 있는 특징 #include using namespace std; class Circle { public: int radius; Circle(); // 기본 생성자. 생성자는 타입이 없음. Circle(int r); // 매개 변수 .. 2020. 10. 14.
cpp class 원넓이, 사각형면적 #include using namespace std; //클래스는 첫자는 반드시 대문자 class Circle { public: // 모든 곳에서 접근 가능 // 멤버변수 int radius; // 멤버함수 double getArea(); }; //멤버함수 정의 double Circle::getArea() { // 클래스 영역 return 3.14 * radius * radius; } int main() { Circle donut; //객체 생성 donut.radius = 1; // 객체이름.멤버 double area = donut.getArea(); cout 2020. 10. 14.
입력받는수의 합을 구하는 프로그램 4. 2개의 숫자를 입력 받아서 첫번째 숫자는 시작, 두번째 숫자는 마지막을 나타냄. 시작부터 끝까지 수의 합을 구하기. 조건 1) 입력받는 두번째의 수가 첫번째 수보다 작거나 같으면 에러 표시. ------------------------------------- 입력받는수의 합을 구하는 프로그램 ------------------------------------- 1. Num1 입력 => 1 2. Num2 입력 => 100 1 ~ 100 까지의 합 : ??? [출처] C언어 loop문 (반복문) 기본 알고리즘 5번째|작성자 박x신 int main() { int num1 = 0; cout num1; cout 2020. 10. 13.
QQ 중복 제거 하는중 - 간단한 로또 프로그램. 1. goto 사용 #include #include #include using namespace std; //로또 중복 체크 : 1 ~ 45 중 에서 6개 숫자 랜덤 생성 int main(void) { int lotto[6] = { 0, }; srand((unsigned int)time(NULL)); for (int i = 0; i < 6; i++) { AGAIN: int n = rand() % 45 + 1; // 1 ~ 45 //cout 2020. 10. 13.
음료수 자동판매기 프로그램 #include #include #include using namespace std; int main() { cout 2020. 10. 13.
for (auto n : aList) #include using namespace std; int main() { int aList[5] = { 10, 20, 30, 40, 50 }; // 범위 기반 C++11 스타일 반복문 // 각 요소의 값을 n에 복사 for (auto n : aList) //auto: 반복 횟수를 자동으로 지정해줌 cout 2020. 10. 13.
배열형태로 동적생성, 삭제 #include using namespace std; int main() { // 배열 형태로 동적 생성함. int* arr = new int[5]; for (int i = 0; i < 5; i++) { arr[i] = (i + 1) * 10; } for (int i = 0; i < 5; ++i) { cout 2020. 10. 13.
메모리 동적 할당 * #include int main() { // 메모리 동적 할당 int* pData = new int; int* pNewData = new int(10); //*pData = 5; std::cout 2020. 10. 13.
char string #include #include //#include 두개 중에 하나만 쓰면 됨 #include using namespace std; int main() { int nAge; cout 2020. 10. 13.