본문 바로가기

카테고리 없음

[C언어] 전화번호 관리 프로그램 - 구현

void main()
{
	tell_number tell[10] = {0};
	int cmd;
	int i;

	while(1)
	{
		printf("입력[0] 삭제[1] 수정[2] 출력[3] 종료[-1]\n");
		printf("원하는 동작을 선택해 주세요 : ");
		scanf("%d", &cmd);

		if(cmd == 0)
		{
			for(i = 0; i < 10; i++)if(tell[i].name[0] == 0)break;
			if(i == 10)
			{
				printf("더 이상 저장할 공간이 없습니다.\n\n");
				continue;
			}
			printf("이름을 입력해 주세요 : ");
			scanf("%s", tell[i].name);
			printf("전화번호를 입력해 주세요 : ");
			scanf("%s", tell[i].number);
			printf("저장되었습니다.\n\n");
		}
		else if(cmd == 1)
		{
			printf("삭제할 번호의 index를 입력해 주세요 : ");
			scanf("%d", &i);
			if(tell[i].name[0] == 0)
			{
				printf("저장되어 있지 않습니다.\n\n");
				continue;
			}
			for(i = 0; i < 10; i++)tell[i].name[i] = 0;
			for(i = 0; i < 13; i++)tell[i].number[i] = 0;
			printf("삭제되었습니다.\n\n");
		}
		else if(cmd == 2)
		{
			printf("수정할 번호의 index를 입력해 주세요 : ");
			scanf("%d", &i);
			if(tell[i].name[0] == 0)
			{
				printf("저장되어 있지 않습니다.\n\n");
				continue;
			}
			printf("이름을 입력해 주세요 : ");
			scanf("%s", tell[i].name);
			printf("전화번호를 입력해 주세요 : ");
			scanf("%s", tell[i].number);
			printf("수정되었습니다.\n\n");
		}
		else if(cmd == 3)
		{
			for(i = 0; i < 10; i++)
			{
				if(tell[i].name[0] != 0)
				{
					printf("%d번째\n", i);
					printf("이름 : %s\n", tell[i].name);
					printf("전화번호 : %s\n\n", tell[i].number);
				}
			}
		}
		else if(cmd == -1) break;
		else printf("다시 입력해 주세요\n\n");
	}
}

도서관리 프로그램이랑 소스코드가 거의 동일하다. 따로 굳이 설명할 것이 있지는 않은 것 같지만 대충 설명하자며 어떤 동작을 할 것인지 cmd라는 변수를 통해 입력받아 그 동작을 실행하면 된다.


여기에 더 추가할 내용이 있다. 만약 프로그램을 종료시킨 후 다시 실행했을 때 이전에 입력한 내용을 기억하고 있을려면 어떻게 하면 되는 것인가? 단순히 쉽게 구현할 방법으로는 파일입출력을 통해 txt문서에 저장하면 된다.


구조체도 배열로 선언하는 것이 아니라 링크드리스트 형식으로 하면 된다. 이를 배우기 위해서는 자료구조와 파일입출력 대신에 database를 공부하는 것이 좋다. 이 블로그 카테고리에 없다면 아직 포스팅 하지 않은 것이니 기다려주기 바란다.