Engineering Note

[C] C언어 전화번호부 만들기 본문

Programming Language/C programming

[C] C언어 전화번호부 만들기

Software Engineer Kim 2021. 6. 10. 21:07
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <conio.h>

struct Person {
    char name[20];
    char phone[20];
};

void Sort(Person list[], int size) {
    for (int idx = 1; idx < size; ++idx)
    {
        Person value = list[idx]; 

        int i;
        for (i = idx - 1; 0 <= i; --i) {
            if (strcmp(value.name, list[i].name)<0)
                list[i + 1] = list[i];
            else
                break;
        }
        list[i + 1] = value;

    }

}
void AddPerson(Person perArray[], int& perSize) {
    printf("이름을 입력하세요:");
    scanf_s("%s", perArray[perSize].name, 20);
    printf("번호를 입력하세요:");
    scanf_s("%s", perArray[perSize].phone, 20);
    ++perSize;
}

void PrintPerson(Person perArray[], int perSize) {
    for (int i = 0; i < perSize; ++i) {
        printf("[%d]: name: %s, phone: %s\n", i, perArray[i].name, perArray[i].phone);
    }
}

void SearchPerson(Person perArray[], int perSize) {

    char inputName[20];
    printf("찾는 이름을 입력하세요:");
    scanf_s("%s", inputName, 20);

    for (int i = 0; i < perSize; ++i) {
        if(strcmp(inputName, perArray[i].name)==0){
            printf("[%d]: name: %s, phone: %s\n", i, perArray[i].name, perArray[i].phone);
            return;
        }
    }
    printf("\n찾는 사람이 없습니다.\n");

}

void RemovePerson(Person perArray[], int& perSize) {
    char inputName[20];
    printf("삭제할 이름을 입력하세요:");
    scanf_s("%s", inputName, 20);

    for (int i = 0; i < perSize; ++i) {
        if (strcmp(inputName, perArray[i].name) == 0) {
            for (int j = i; j < perSize - 1; ++j) {
                perArray[j] = perArray[j + 1];
            }
            --perSize;
            printf("\n%s 정보가 삭제 되었습니다.\n", inputName);
            return;
        }
    }
    printf("\n찾는 사람이 없습니다.\n");
    return;
}

void SortPerson(Person perArray[], int perSize) {
    Sort(perArray, perSize);
}
void Menu() {
    printf("\n\n=================\n");
    printf("1.전화번호 등록\n");
    printf("2.전화번호 출력\n");
    printf("3.전화번호 검색\n");
    printf("4.전화번호 삭제\n");
    printf("5.전화번호 정렬\n");
    printf("0.프로그램 종료\n");
    printf("=================\n\n");

}
int main() {

    Person perArray[20];
    int perSize = 0;


    bool program = true;

    while (program) {
        Menu();

        switch(_getch()) {
            case '1':
                AddPerson(perArray, perSize);
                break;
            case '2':
                PrintPerson(perArray, perSize);
                break;
            case '3':
                SearchPerson(perArray, perSize);
                break;
            case '4':
                RemovePerson(perArray, perSize);
                break;
            case '5':
                SortPerson(perArray, perSize);
                break;
            case '0':
                printf("0. 프로그램 종료\n");
                program = false;
                break;
        }

    }


    return 0;
}

//#include <cstdio>
//#include <cstdlib>
//#include <cstring>
//#include <conio.h>
//
//void menu() {
//    printf("\n\n=================\n");
//    printf("1.전화번호 등록\n");
//    printf("2.전화번호 출력\n");
//    printf("3.전화번호 검색\n");
//    printf("4.전화번호 삭제\n");
//    printf("5.전화번호 정렬\n");
//    printf("0.프로그램 종료\n");
//    printf("=================\n\n");
//
//}
//int main() {
//
//
//    bool program = true;
//
//    while (program) {
//        menu();
//    
//        switch(_getch()) {
//            case '1':
//                printf("1.전화번호 등록!\n");
//                break;
//            case '2':
//                printf("2.전화번호 출력!\n");
//                break;
//            case '3':
//                printf("3.전화번호 검색!\n");
//                break;
//            case '4':
//                printf("4.전화번호 삭제!\n");
//                break;
//            case '5':
//                printf("5.전화번호 정렬!");
//                break;
//            case '0':
//                printf("0. 프로그램 종료\n");
//                program = false;
//                break;
//        }
//
//    }
//
//    return 0;
//}

'Programming Language > C programming' 카테고리의 다른 글

[C] 2차원 동적 배열 할당  (0) 2021.04.06
[C] 14-1 다차원 배열  (0) 2021.04.04
[C] 구조체 포인터 사용하기  (0) 2021.03.03
[C] Struct 구조체  (0) 2021.02.24
[C] 배열  (0) 2021.02.22
Comments