Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 아두이노 컴파일러
- Visual Micro
- html
- 컴퓨터 그래픽스
- 통계학
- list
- c++
- 아두이노
- Deque
- vector
- arduino compiler
- Array
- 시스템프로그래밍
- set
- 운영체제
- stl
- 라인트레이서
- 아두이노 소스
- 수광 소자
- LineTracer
- Stack
- Algorithm
- C언어
- queue
- directx
- WinAPI
- priority_queue
- Arduino
- 자료구조
- map
Archives
- Today
- Total
Kim's Programming
구구단 세로로 출력(수정) 본문
구구단을 세로로 포인터, 배열, 구조체, 클래스를 이용하여 출력하는데 조금더 객체지향적으로 작성한 소스입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<string> using namespace std; struct String//문자열 저장용 구조체 { int init = 0; char str[30]; char temp[30]; void input(char *cha) { strcpy(str, cha); } void out() { cout << str; } }; class MyClass//계산 입 입력 { public: //변수 char _itoa_buffer[50]; String str_C[2000]; String *pStr_C = str_C; //생성 초기화 MyClass(int MAX_3, int DAN, int START);//초기화용 생성자 ~MyClass(); int max_return();//최대 통제용 함수 string Make_Mutlplication_String(int Num_1, int Num_2, char Buffer[]);//곱셈식 개별 생성 함수 void Array_Copy_Struct2Stuct(String *Dest_Str, String *Copy_Str, int MAX);//구조체 배열 복사 함수 void Making();//곱셉 집단 출력 3배수 단위 void Array_Initializer(char Str[], int MAX);//배열 초기화용 함수 void Output(String *Str, int count);//출력용 함수 private: int start; int max; int dan; }; void main() { int count = 0; cout << "입력 숫자 3배수의 구구단까지 출력" << endl; cin >> count; cout << endl; MyClass My(count, 9,1);//3배수, 9단까지, 1부터 MyClass *M = &My; String str[2000]; //STR 선언 String *pString = str; //STR 포인터 참조 M->Making(); M->Array_Copy_Struct2Stuct(pString, M->str_C, 2000); M->Output(pString, M->max_return()); } MyClass::MyClass(int MAX_3, int DAN, int START) { dan = DAN; max = MAX_3 + 1; start = START; } MyClass::~MyClass(){} void MyClass::Making() { for (int z = 1; z < max; z++)//3의 배수로 어디까지 뽑을 것인가. { for (int i = 1; i <=dan ; i++)//몇 단 까지 할것인지를 결정 { for (int j = start; j < start + 3; j++)//현재 출력중 배수 3배수 단위 { strcpy(pStr_C->str, Make_Mutlplication_String(j,i,_itoa_buffer).c_str()); pStr_C++; } } start += 3;//다음 배수 출력용 } } void MyClass::Output(String *Str, int count)//구조체 출력 9개식 3개 묶음 씩 출력 { int line = 0; for (int i = 0; i < (count-1) * 9; i++) { for (int i = 0; i < 3; i++) { Str->out(); Str++; line++; if (line % 27 == 0) cout << endl; } cout << endl; } } void MyClass::Array_Initializer(char Str[], int MAX) { for (int i = 0; i < 50; i++) { Str[i] = NULL; } } void MyClass::Array_Copy_Struct2Stuct(String *Dest_Struct, String *Copy_Struct, int MAX) { for (int i = 0; i < MAX; i++) { Dest_Struct[i] = Copy_Struct[i]; } } string MyClass::Make_Mutlplication_String(int Num_1, int Num_2, char Buffer[]) { char Temp[50]; Array_Initializer(Temp, strlen(Temp)); strcat(Temp, _itoa(Num_1, Buffer, 10)); strcat(Temp, " * "); strcat(Temp, _itoa(Num_2, Buffer, 10)); strcat(Temp, " = "); strcat(Temp, _itoa(Num_1*Num_2, Buffer, 10)); strcat(Temp, " "); return Temp; } int MyClass::max_return() { return max; } | cs |
'Programming > 기타 소스' 카테고리의 다른 글
C로 만드는 단순원형연결 리스트(동적할당으로 구현) 소스 (0) | 2016.02.27 |
---|---|
C로 만드는 단순연결 리스트(동적할당으로 구현) 소스 (0) | 2016.02.27 |
C로 만드는 리스트(배열로 구현) 소스 (0) | 2016.02.27 |
구구단 세로로 출력하기 (0) | 2015.09.07 |
C언어 슈팅게임 (0) | 2015.06.30 |