정보

    • 업무명     : C 프로그래밍 과제물

    • 작성자     : 이상호

    • 작성일     : 2019-09-03

    • 설   명     :

    • 수정이력 :

      • 2020-04-06 : 서식 보완

     

     내용

    [개요]

    • 안녕하세요? 웹 개발 및 연구 개발을 담당하고 있는 해솔입니다.

    • 오늘 포스팅은 C 프로그래밍 과제물을 소개드리고자 합니다.

     

     

    [특징]

    • C 프로그래밍 과제물에 대한 이해를 돕기위해 작성

     

    [기능]

    • 과제물 지시사항

    • 과제물 작성 요령

     

    [활용 자료]

    • 인터넷 검색

     

    [과제물 작성 요령]

    • 과제물 작성 계획 세우기

      • 과제물 작성을 위하여 계획 및 준비, 글쓰기, 제출과 같이 3 단계로 구성

      • 1 단계는 우선 계획 및 준비로서 공고 확인, 제출 기간 확인, 과제물 문제를 파악

      • 2단계의 경우 글쓰기로서 자료 검색 수집 및 개요 작성 그리고 본문 쓰기 및 수정

      • 끝으로 제출 마감일뿐만 아니라 파일 용량 검사 및 온라인시스템 제출

    • 과제물 문제 파악 요령

      • 과제물 문제에서 교수님의 지시사항을 정확히 간파하여 작성 

      • 특히 제출 파일의 양식/용량 및 스타일 형식 그리고 작성 분량에 유의

    • 나만의 글쓰기 전략

      • 앞서 작성 계획에서와 같이 단계별로 수행이 필연

      • 추가로 각 과제물마다 한글 또는 워드 양식에서 각자만의 스타일을 바탕으로 글의 내용 작성

      • 또한 각종 인터넷 검색 및 도서를 참조하여 내용을 제시할 뿐만 아니라 그에 따른 판단의 근거에 대한 명확한 인용 및 출처가 정확하게 표시

    • 학술 검색을 위한 유용한 방법

      • 인터넷은 1950대에 컴퓨터의 개발과 더불어 너무 많은 정보의 바다에서 살고 있기 때문에 자신에게 필요한 정보 발굴 능력 요구 

      • 인터넷 검색이 익숙하지 않을 경우 네이버 검색을 추천하고 익숙하면 구글 검색이 유용

      • 그러나 일반적으로 네이버 또는 구글로 검색할 경우 다수의 블로그에서 중복되는 정보를 확인할 수 있고 이러한 정보들은 대부분 복사 붙여넣기로 인해 남용되고 있는 실정

      • 따라서 이 보다는 전 세계 검색엔진 2위를 차지한 Yahoo! JAPAN (https://www.yahoo.co.jp)에서 검색하여 구글 번역할 경우 원하는 정보를 쉽게 얻음

      • 연구 보고서 또는 SCI/SCIE 논문을 보기 위해서 대학교에서 저널을 구독하는 것이 일반적이나 모든 저널을 구독하기에는 상당한 경제적 부담이 되기 때문에 SCI-HUB (https://sci-hub.tw/)를 통해 보는 것을 추천

     

    [사용법]

    • 과제물 서식을 바탕으로 작성

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • C

    • 한글 v2018

     

     과제물 문제

     

     소스 코드

    [명세]

    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    
    #pragma warning(disable:4996)
    
    #define _crt_secure_no_warnings
    
    void chang_shlee(char chName[]);
    void draw_shlee(int arrsize);
    
    int main() {
    
    	/**************************** (1) chang_shlee() ****************************/
    
    	char chName[100];
    
    	// 문자열 입력
    	printf("\n문자열을 대소문자를 구분하여 입력 : ");
    	
    	gets_s(chName);
    
    	printf("-----------------------------------------------------------\n");
    
    	// 대소문자 변환 함수 호출
    	chang_shlee(chName);
    
    	/**************************** (2) draw_shlee() ****************************/
    	int iArrSize;
    
    	printf("5부터 10 사이의 홀수 숫자를 입력하시오 \n(0을 입력시 프로그램 종료) \n");
    	
    	// 무한 반복문 수행
    	while (1) {
    		
    		printf("\n숫자 입력 : ");
    
    		// 배열 크기 (정수) 입력
    		scanf("%d", &iArrSize);
    
    		// 프로그램 종료의 경우
    		if (iArrSize == 0) {
    			// 종료 메시지 출력
    			printf("-----------------------------------------------------------\n");
    			printf("♥프로그램을 종료합니다. 이름 : 이상호");
    			printf("\n-----------------------------------------------------------");
    			
    			break;
    		}
    
    
    		if (5 <= iArrSize && iArrSize <= 10) {
    			// 홀수의 경우
    			if (iArrSize % 2 == 1) {
    				// 모래시계 출력 함수 호출
    				printf("-----------------------------------------------------------\n");
    				draw_shlee(iArrSize);
    				printf("\n-----------------------------------------------------------");
    			} else {
    				// 경고 메시지 출력
    				printf("-----------------------------------------------------------\n");
    				printf("★ 홀수를 입력하시오. 학번 : 201934-363698");
    				printf("\n-----------------------------------------------------------");
    			}
    		} else {
    			// 경고 메시지 출력
    			printf("-----------------------------------------------------------\n");
    			printf("☆ 5부터 10 사이의 홀수를 입력하시오. 학과 : 컴퓨터과학과");
    			printf("\n-----------------------------------------------------------");
    		}
    	}
    	
    	return 0;
    }
    
    
    void chang_shlee(char chName[]) {
    
    	// 배열 초기화
    	char chSetName;
    	int iSetCount;
    
    	iSetCount = strlen(chName) - 1;
    
    	if (iSetCount > 0) {
    		printf("변환된 결과물 출력 ==> ");
    	}
    
    	for (int iCount = iSetCount; iCount >= 0 ; iCount--) {
    		
    		chSetName = chName[iCount];
    
    		if (isupper(chSetName)) { // 대문자 여부 
    			printf("%c", tolower(chSetName)); // 소문자 변환
    		} else if (islower(chSetName)) { // 소문자 여부 
    			printf("%c", toupper(chSetName)); // 대문자 변환
    		} else if (chSetName == ' ') { // 공백일 경우
    			printf("%c", '\0'); // 공백 처리
    		} else {
    			printf("%c", "문자형을 확인해주세요.");
    		}
    	}
    	printf("\n===========================================================\n");
    }
    
    // 배열의 크기를 입력 받아 모래시계 출력
    void draw_shlee(int iArrSize) {
    
    	// 배열 초기화
    	char arr[9][9] = {};
    
    	int iSetValue = 0;
    	int iTmpCount = iArrSize - 1;
    	int iSetNumber = iArrSize - 1;
    
    	// 배열 세팅
    	for (int iCount = 0; iCount <= iSetNumber; iCount++) {
    		int jSetCount, jSetNumber;
    
    		if (iCount > iTmpCount) {
    			jSetCount = iTmpCount;
    			jSetNumber = iCount;
    		} else {
    			jSetCount = iCount;
    			jSetNumber = iTmpCount;
    		}
    
    		for (int jCount = jSetCount, jNumber = jSetNumber; jCount <= jNumber; jCount++) {
    			iSetValue++;
    			arr[jCount][iCount] = iSetValue;
    		}
    
    		iTmpCount--;
    	}
    
    	// 배열 출력
    	for (int iCount = 0; iCount <= iSetNumber; iCount++) {
    		for (int jCount = 0; jCount <= iSetNumber; jCount++) {
    			
    			int iGetValue = arr[iCount][jCount];
    
    			// 값이 있을 경우
    			if (iGetValue != 0 && iGetValue != NULL) {
    				printf("%4d", iGetValue);
    			} else {
    				printf("%4s", "\0");
    			}
    		}
    		printf("\n");
    	}
    }

     

    [GitHub Gist]

     

     관련 자료

    [제출본]

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기