- 1 -
2019학년도 1학기 출석수업 대체과제물 (중간)
❍ 교과목명 : C 프로그래밍
❍ 학 번 : 201934-363698
❍ 성 명 : 이상호
❍ 연 락 처 : 010-4078-7412
l 해당 실습 과제물을 참조하여 소스 코드를 작성하고 다음과 같이 제출하시오.
Ÿ 작성한 프로그램 소스의 각 라인에 주석을 달고 보고서 (아래한글, MS워드) 파일에 넣으시오.
Ÿ 2가지 함수가 정상적으로 동작하는 실행화면을 캡쳐하여 보고서 (아래한글, MS워드) 파일에 넣으시
오.
Ÿ 순서도 (flowchart)를 작성하고 보고서 (아래한글, MS워드) 파일에 넣으시오.
< 목 차 >
I. 소스 코드 ······················································································································ 2
II. 실행 결과 캡쳐본 ······································································································ 3
III. 순서도 ························································································································· 7
- 2 -
I. 소스 코드
#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);
// 프로그램 종료의 경우
- 3 -
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;
- 4 -
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;
}
- 5 -
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");
}
}
그림 1. 대소문자 변환 (change_shlee) 및 모래시계 산출 함수(draw_shlee)의 소스 코드.
- 6 -
II. 실행 결과 캡쳐본
그림 2. 대소문자 변환 (change_shlee) 및 모래시계 산출 함수(draw_shlee)에 대한 실행 결과.
- 7 -
III. 순서도
그림 3. 대소문자 변환 (change_shlee) 및 모래시계 산출 함수(draw_shlee)를 위한 자료처리 흐름도.

[방송통신대 컴퓨터과학과] C 프로그래밍 과제물 작성

  • 1.
    - 1 - 2019학년도1학기 출석수업 대체과제물 (중간) ❍ 교과목명 : C 프로그래밍 ❍ 학 번 : 201934-363698 ❍ 성 명 : 이상호 ❍ 연 락 처 : 010-4078-7412 l 해당 실습 과제물을 참조하여 소스 코드를 작성하고 다음과 같이 제출하시오. Ÿ 작성한 프로그램 소스의 각 라인에 주석을 달고 보고서 (아래한글, MS워드) 파일에 넣으시오. Ÿ 2가지 함수가 정상적으로 동작하는 실행화면을 캡쳐하여 보고서 (아래한글, MS워드) 파일에 넣으시 오. Ÿ 순서도 (flowchart)를 작성하고 보고서 (아래한글, MS워드) 파일에 넣으시오. < 목 차 > I. 소스 코드 ······················································································································ 2 II. 실행 결과 캡쳐본 ······································································································ 3 III. 순서도 ························································································································· 7
  • 2.
    - 2 - I.소스 코드 #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); // 프로그램 종료의 경우
  • 3.
    - 3 - 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;
  • 4.
    - 4 - 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; }
  • 5.
    - 5 - 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"); } } 그림 1. 대소문자 변환 (change_shlee) 및 모래시계 산출 함수(draw_shlee)의 소스 코드.
  • 6.
    - 6 - II.실행 결과 캡쳐본 그림 2. 대소문자 변환 (change_shlee) 및 모래시계 산출 함수(draw_shlee)에 대한 실행 결과.
  • 7.
    - 7 - III.순서도 그림 3. 대소문자 변환 (change_shlee) 및 모래시계 산출 함수(draw_shlee)를 위한 자료처리 흐름도.