Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알기쉬운 알고리즘
- JSON
- Selection Sorting
- stream
- 메모리구조
- datastructure
- 이스케이프 문자
- 윤성우 열혈자료구조
- 혼자 공부하는 C언어
- 이것이 자바다
- C programming
- Algorithm
- C 언어 코딩 도장
- list 컬렉션
- buffer
- coding test
- Serialization
- Stack
- 윤성우의 열혈 자료구조
- insertion sort
- Graph
- s
- R
Archives
- Today
- Total
Engineering Note
[C] C언어 전화번호부 만들기 본문
#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