객체 지향 프로그래밍 과제

c0wb3ll ㅣ 2020. 4. 8. 03:22

#include <stdio.h>
#include <math.h>
#include <iostream>
#include <stdlib.h>
//
//			기량 평가용 프로그램
// 

#define	PHI	3.141592

int factorial(int n) {
	if (n == 1)
		return n;
	else
		return n * factorial(n - 1);
}	

int main(void) 
{
	int    i,     salary,  deposit,  radius, year,     factn;
//	      첨자,  봉급,    봉급총액,   반지름,   연도,  팩토리얼 변수
	float area;
//          면적
	char string[80];
	char* charstr;
	charstr = (char*)malloc(sizeof(string) + 1);
//			   문자열

//
//  문제 1. 10년간 월급 총액을 계산하는 프로그램
//
	printf(">> 월급을 입력하시오 (종료 = 0) ? ");
	while (scanf_s("%d", &salary) && salary != 0) {
		deposit = salary * 120;
		printf(".. 월급이 %d원인 경우 10년간 봉급 총액은 %d\n\n", salary, deposit);
		printf(">> 월급을 입력하시오 (종료 = 0) ? ");
	}

//
//  문제 2. 원의 면적을 계산하는 프로그램
//
	printf("\n\n>> 원의 반지름을 입력하시오 (종료=0) ? ");
	while (scanf_s("%d", &radius) && radius != 0) {
		area = pow(radius,2) * PHI;
		printf(".. 반지름이 %dcm인 원의 면적은 %.1fcm2 입니다.\n\n", radius, area);
		printf(">> 원의 반지름을 입력하시오 (종료 = 0) ? ");
	}

//
//	문제 3. 입력받은 연도가 윤년인지 여부  판단하기
//
	printf("\n\n>> 윤년 여부를 확인할 연도를 입력하시오 (종료=0) ? ");
	while (scanf_s("%d", &year) && year != 0) {
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
			printf(".. %d년은 윤년입니다.\n\n", year);
		}
		else
			printf(".. %d년은 평년입니다.\n\n", year);
		printf(">> 윤년 여부를 확인할 연도를 입력하시오 (종료 = 0) ? ");
	}


//
// 문제 4 : 입력받은 문자열 출력하기
//
	printf("\n\n문자열을 입력하세요 (80자 이내 붙여쓰기, 종료=/)\n");
	printf(">> 문자열을 입력 : ");
	while (scanf_s("%s", charstr, 80)  && string[0] != '/') {
		printf(".. 읽은 문자열 %s\n\n", charstr);
		printf(">> 문자열 입력 : ");
		free(charstr);
	}

//
// 문제 5 : Factorial 값 구하기(함수 작성)
//
	printf("\n\n>> n!에서 n값 (n<14, 종료=0) ? ");
	while (scanf_s("%d", &factn) && factn != 0) {
		printf("					%d! =		%d\n\n", factn, factorial(factn));
		printf(">> n!에서 n값 (n<14, 종료=0) ? ");
	}

	printf("\n\n>> 모든 작업을 종료하였습니다!!!\n\n");
	system("pause");
	return 0;
}

rep0.cpp 기량 평가용 프로그램 짜기

4번 진짜 그지 같은게 조건문에 종료로 "/" 이거 달려고 했는데 계속 오류나길래 '/'로 바꾸어 주었는데 풀렸다. 후에 이유를 찾아보니 문자열이 아닌 문자 '한'개는 ""이 아닌 ''을 사용해줘야 한다 카더라....

 

#include <stdio.h>
#include <stdlib.h>

int main() {
    int number[] = {90,11,54,69,21,34,57,87,46,9,77,0};

    int j=0,i=0, max=0, min=number[0], sum=0;

    while (1) {
        if (number[i] == 0) {
            break;
        }
        else {
            sum += number[i];
            if (number[i] > max) {
                max = number[i];
            }
            if (number[i] < min) {
                min = number[i];
            }
        }
        i++;
    }

    printf(">> 배열변수에 저장된 %d개의 값\n", i);
    for (j = 0; j < i; j++) {
        printf("   %d", number[j]);
    }
    printf("\n\n>> 값 합계 :    %d\n\n>> 최소 값 :    %d\n\n>> 최대 값 :    %d\n\n", sum, min, max);
    system("PAUSE");
}
//rep1.cpp​

rep1.cpp 배열 최대, 최소, 값 합계 구하기

제출할때는 min = number[1]로 해서 제출했다. 진짜... 아직 컴공이 덜 됫나보다... 숫자는 0부터 세자

#include <iostream>
#include <iomanip>
using namespace std;

int main() {

	int i;

	cout << setw(38) << "ASCII 코드표" << endl;

	for (i = 0; i < 64; i++) {
		cout << "-";
	}

	cout << endl;

	for (i = 32; i < 64; i++) {
		if (i == 63)
			cout << "|" << setw(7) << char(i) << setw(7) << i << setw(7) << "|" << setw(7) << char(i + 32) << setw(7) << i + 32 << setw(7) << "|" << setw(21) << "|" << endl;
		else
			cout << "|" << setw(7) << char(i) << setw(7) << i << setw(7) << "|" << setw(7) << char(i + 32) << setw(7) << i + 32 << setw(7) << "|" << setw(7) << char(i + 64) << setw(7) << i + 64 << setw(7) << "|" << endl;
	}

	for (i = 0; i < 64; i++) {
		cout << "-";
	}

	return 0;
}
//rep2.cpp

rep2.cpp ascii코드표

이건 소스코드 짜는 것 보다 ----- ||||| 이걸로 그림 그리는게 더 힘들었다.