반응형
C언어를 사용하여 콘솔환경에서 배열과 구조체 포인터를 사용해서 주차장 단어장을 만들어보자!!
app.c
#include "bit_main.h" #include "pack.h" #include "word_1.h" void menu() { puts("1. 주차장"); puts("2. 단어장"); puts("0. 종료"); } int inputNo() { int No; printf("선택 :"); scanf("%d",&No); return No; } void selectMenu(int key,int* (*park)[5]) { switch(key) { case 1: Run1(park); break; case 2: Run2(); break; case 0: exit(0); default: puts("잘못된 값");break; } } void Run(int* (*park)[5]) { int key =0; while(1) { menu(); key = inputNo(); system("cls"); selectMenu(key,park); puts("계속하시려면 아무키나 누르세요!!"); getch(); } }
bit_main.c
#include "bit_main.h" #include "app.h" //************************************************************ // 1. 주차장 !! // [][][][][][][][][][][][][] 1.입차 // [][][][][][][][][][][][][] 2.출차 // [][][][][][][][][][][][][] 3.검색 (내차검색) --> 최단경로 // int Parking[3][5] //************************************************************ // 2. 단어장 // [hi][:][안][녕][하][세][요][][][] 1. 저장 기능 // [me][:][나][][][][][][][] 2. 삭제 기능 // [][][][][][][][][][] 3. 검색 (영어로만 검색) // [][][][][][][][][][] // char [10][100]; //************************************************************ void main() { int* park[3][5] = {0}; Run(park); }
pack.c
#include "bit_main.h" #include "app.h" //************************************************************ // 1. 주차장 !! // [][][][][][][][][][][][][] 1.입차 // [][][][][][][][][][][][][] 2.출차 // [][][][][][][][][][][][][] 3.검색 (내차검색) --> 최단경로 // int Parking[3][5] //************************************************************ //int park[5][5]; //초기화 void Array_1(int* (*park)[5]) { int i,j,k=1; for(i=0;i<5;i++) { for(j=0;j<5;j++) { park[i][j] = (int*)malloc(sizeof(int)); *park[i][j] = k; k++; } } } // 화면 출력 void display(int* (*park)[5]) { int i,j,c=2; for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(*park[i][j] <10) printf("[ %d ] ",*park[i][j]); else if(*park[i][j] < 30) printf("[ %d ] ",*park[i][j]); else printf("[ %d ] ",*park[i][j]); } printf("\n"); } } // 추가 void add(int* (*park)[5]) { int CarNo; int line_1; int i,j,k=1; for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(*park[i][j] <100) { *park[i][j] = k; } k++; } } printf("차번호 입력해주세요: "); scanf("%d",&CarNo); printf("입차 시킬 곳을 정해주세요 (1 ~ 25):"); scanf("%d",&line_1); for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(line_1 == *park[i][j]) *park[i][j] = CarNo; } } } //출차 void del(int* (*park)[5]) { int CarNo; int i,j,c=0,k=1; printf("차번호 입력해주세요: "); scanf("%d",&CarNo); for(i=0;i<5;i++) { for(j=0;j<5;j++) { c++; if(CarNo == *park[i][j]) *park[i][j] = c; } } } //검색 void seach_pack(int* (*park)[5]) { int CarNo; int i,j,c=0,k; printf("차번호 입력해주세요: "); scanf("%d",&CarNo); for(i=0;i<5;i++) { for(j=0;j<5;j++) { c++; if(CarNo == *park[i][j]) printf("[ %d ] 순서에 있습니다. \n",c); } } puts("아무 숫자나 눌러주세요!!!"); scanf("%d",&k); } //메뉴 void pack_Menu() { puts("1. 입차 선택"); puts("2. 출차 선택"); puts("3. 검색"); puts("0. 종료"); } void select_pack(int key,int* (*park)[5]) { switch(key) { case 1: add(park); break; case 2: del(park); break; case 3: seach_pack(park); break; case 0: exit(0); default: puts("잘못된 값"); break; } } void Run1(int* (*park)[5]) { int key =0; Array_1(park); while(1) { system("cls"); display(park); pack_Menu(); key = inputNo(); select_pack(key,park); } }
word_1.c
#include "bit_main.h" #include "app.h" //************************************************************ // 2. 단어장 // [hi][:][안][녕][하][세][요][][][] 1. 저장 기능 // [me][:][나][][][][][][][] 2. 삭제 기능 // [][][][][][][][][][] 3. 검색 (영어로만 검색) // [][][][][][][][][][] // char [10][100]; //************************************************************ //char word[10][50] = {{"qwe:키키"},{"asd:zxc"},{"cvb:qweassd"}}; char word[10][50]; //화면출력 void display_1(char (*word)[50]) { int i,j; for(i=0;i<10;i++) { printf("%s",word[i]); printf("\n"); } } //추가 void add_1(char (*word)[50]) { int i; for(i =0;i<10;i++) { if(word[i][0] == NULL) { printf("입력해 주세요 : "); scanf("%s",word[i]); break; } } } //제거 void del_1(char (*word)[50]) { int i,j,i_1,j_1; char str[50]={""}; char str_1[50] ={" "}; printf("삭제하실 단어를 입력 :"); scanf("%s",str); for(i=0;i<10;i++) { for(j=0;j<50;j++) { if(word[i][j] == ':') { for(i_1 =0;i_1
app.h
void menu(); int inputNo(); void selectMenu(int key,int* (*park)[5]); void Run(int* (*park)[5]);
bit_main.h
#include#include #include
pack.h
void Array_1(int* (*park)[5]); void display(int* (*park)[5]); void add(int* (*park)[5]); void del(int* (*park)[5]); void seach_pack(int* (*park)[5]); void pack_Menu(); void select_pack(int key,int* (*park)[5]); void Run1(int* (*park)[5]);
word_1.h
void word_Menu(); void select_word(int key); void Run2(); void display_1(char (*word)[50]);
'C, C++' 카테고리의 다른 글
[C] 포인터 공부 2 (0) | 2014.11.18 |
---|---|
[C] 포인터 공부 1 (0) | 2014.11.18 |
[C] 파일 입출력 (0) | 2014.11.18 |
[C] 바이너리 입출력 (0) | 2014.11.18 |
[C] 예제 (0) | 2014.11.18 |