반응형
#include "main.h"

void study_1()
{
	int i,max=0,min,sum=0;
	int a[5];
	printf("숫자 입력: ");
	scanf("%d",&a[0]);
	min = a[0];
	for(i=0;i<4;i++)
	{
		printf("숫자 입력: ");
		scanf("%d",&a[i]);
		if(a[i] > max)
		{
			max = a[i];
		}
		else if(a[i] < min)
		{
			min = a[i];
		}
		sum += a[i];
	}
	printf("최대값 : %d\n",max);
	printf("최소값 : %d\n",min);
	printf("정수 총값 : %d\n",sum);
	
}

'C, C++' 카테고리의 다른 글

[C] c언어 문자열입력 후 가장 큰 값 구하기  (0) 2014.11.18
[C] c for문으로 문자열 길이 구하기!  (0) 2014.11.18
[C] 도서관리(포인터 배열)  (0) 2014.11.18
[C] 도서관리(동적)  (0) 2014.11.18
[C] 포인터 공부 5  (0) 2014.11.18
반응형

포인터 배열로 바꿔보자!!!

구조는 전에있던 도서관리과 똑같다!



app.c


#include "main.h"
#include "book.h"
// 1. 정적배열 도서관리 -> 도서 추가, 삭제, 검색(책이름으로), 출력(전체출력)
void MemuDisplay()
{
	puts("1. 도서 추가");
	puts("2. 도서 삭제");
	puts("3. 도서 검색");
	puts("4. 도서 출력");
	puts("0. 종료");
}
int inputNo()
{
	int No;
	printf("입력 :");
	scanf("%d",&No);
	return No;
}
void selectMenu(int key,BOOK* (*bookList)[10])
{
	switch(key)
	{
	case 1:
		book_add(bookList);
			break;
	case 2:
		book_delete(bookList);
		break;
	case 3:
		book_seach(bookList); break;
	case 4:
		display(bookList);
		break;
	case 0:
		exit(0);
	default:
		puts("잘못된 값");break;
	}
}

void Run(BOOK* (*bookList)[10])
{
	book_array(bookList);
	int key =0;
	//printf("테스트\n---------------------------------\n");
	//display(bookList);
	while(1)
	{
		//system("cls");
		//display(bookList);
		MemuDisplay();		
		key = inputNo();
		system("cls");
		selectMenu(key,bookList);
		puts("계속하시려면 아무키나 누르세요!!");
		getch();
	}
}


book.c


#include "main.h"

//초기화
void book_array(BOOK* (*bookList)[10])
{
	int i;
	for(i=0;i<3;i++)
	{
		for(int j=0;jBookName = (char*)malloc(sizeof(char)*10);
			bookList[i][j]->BookName = NULL;
			//printf("테스트\n------------------------\n");
			strcpy(bookList[i][j]->BookWriter,"");
			bookList[i][j]->BookPrice=NULL;
		}
		printf("테스트\n------------------------\n");

	}
}

// 1. 정적배열 도서관리 -> 도서 추가, 삭제, 검색(책이름으로), 출력(전체출력)
void display(BOOK* (*bookList)[10])
{
	int i;
	printf("도서 칸을 입력 :(0~2)");
	scanf("%d",&i);
	for(int j=0;jBookName != NULL)
		{
			printf("도서이름 : %s \n도서저자 :%s\n도서가격 : %d\n--------------\n",
				bookList[i][j]->BookName,bookList[i][j]->BookWriter,bookList[i][j]->BookPrice);
		}
	}

}
// 삭제
void book_delete(BOOK* (*bookList)[10])
{
	int i,j,y,temp=0,a;
	char* name;
	char* name_1;
	printf("도서 칸을 입력 :(0~2)");
	scanf("%d",&i);
	printf("삭제하실 도서이름 :");
	name_1=(char*)malloc(sizeof(char)*10);
	name =(char*)malloc(sizeof(char)*10);
	scanf("%s",name);
	for(j=0;jBookName,NULL);
				strcpy(bookList[i][y]->BookWriter,NULL);
				bookList[i][y]->BookPrice=NULL;
				temp =1;
				break;
			}
		}
		if(temp ==1)
			break;

	}
}

// 검색
void book_seach(BOOK* (*bookList)[10])
{
	int i,j,y,temp=0;
	char* name;
	char* name_1;
	printf("도서 칸을 입력 :(1~3)");
	scanf("%d",&i);
	printf("검색하실 도서이름 :");

	name_1=(char*)malloc(sizeof(char)*10);
	name =(char*)malloc(sizeof(char)*10);
	scanf("%s",name);
	for(i=0;iBookName == NULL)
		{
			printf("도서 이름:");
			scanf("%s",name);
			printf("도서 저자:");
			scanf("%s",Writer);
			printf("도서 가격:");
			scanf("%d",&Price);
			(*bookList)[i][j].BookName = (char*)malloc(sizeof(char)*10);
			strcpy((*bookList)[i][j].BookName,name);
			strcpy((*bookList)[i][j].BookWriter,Writer);
			(*bookList)[i][j].BookPrice = Price; 
			break;

		}
	}
}


main.c


#include "main.h"
#include "app.h"

void main()
{
	// 3. 포인터 배열
	// main --> BOOK* BookList[3][10];
	BOOK* bookList[3][MAX]={NULL};
	Run(bookList);
}


app.h


//app.h
void MemuDisplay();
int inputNo();
void selectMenu(int key,BOOK* (*bookList)[10]);
void Run(BOOK* (*bookList)[10]);


book.h


void display(BOOK* (*bookList)[10]);

void book_delete(BOOK* (*bookList)[10]);

void book_seach(BOOK* (*bookList)[10]);

void book_add(BOOK* (*bookList)[10]);

void book_array(BOOK* (*bookList)[10]);


main.h


#include 
#include 
#include 
#include 
#include 
#define MAX 10
typedef struct book
{
	char* BookName;
	char BookWriter[20];
	int BookPrice;
}BOOK;


'C, C++' 카테고리의 다른 글

[C] c for문으로 문자열 길이 구하기!  (0) 2014.11.18
[C] 최대값, 최소값, 합계 구하기  (0) 2014.11.18
[C] 도서관리(동적)  (0) 2014.11.18
[C] 포인터 공부 5  (0) 2014.11.18
[C] 포인터 공부 4  (0) 2014.11.18
반응형

도서관리 프로그램 동적으로 만들기



app.c


#include "main.h"
#include "book.h"

void MemuDisplay()
{
	puts("1. 배열 크기 추가");
	puts("2. 도서 추가");
	puts("3. 도서 삭제");
	puts("4. 도서 검색");
	puts("5. 도서 출력");
	puts("0. 종료");
}
int inputNo()
{
	int No;
	printf("입력 :");
	scanf("%d",&No);
	return No;
}
void selectMenu(int key,BOOK* bookList,int a)
{
	switch(key)
	{
	case 1:
		book_malloc(bookList,a);
		break;
	case 2:
		book_add(bookList,a);
		break;
	case 3:
		book_delete(bookList,a);
		break;
	case 4:
		book_seach(bookList,a); break;
	case 5:
		display(bookList,a);
		break;
	case 0:
		exit(0);
	default:
		puts("잘못된 값");break;
	}
}

void Run(BOOK* bookList,int a)
{
	int key =0;
	//int a;
	//printf("배열크기 입력: ");
	//scanf("%d",&a);
	//bookList =(BOOK*)malloc(sizeof(BOOK)*a);
	//memset(bookList,0x00,sizeof(BOOK)*a);
	//display(bookList);
	//book_malloc(bookList,a);
	//printf("테스트\n---------------\n");
	while(1)
	{
		system("cls");
		display(bookList,a);
		MemuDisplay();		
		key = inputNo();
		system("cls");
		selectMenu(key,bookList,a);
		puts("계속하시려면 아무키나 누르세요!!");
		getch();
	}
}


book.c


#include "main.h"

// 1. 정적배열 도서관리 -> 도서 추가, 삭제, 검색(책이름으로), 출력(전체출력)
void display(BOOK* bookList,int a)
{
	int i;
	for(i=0;i


main.c


#include "main.h"
#include "app.h"

void main()
{
	// 2. 동적배열 도서관리 --> 배열크기는 사용자에게 입력 !!
	// --> Resize기능 --> 배열크기변경 !!
	// main --> BOOK* BookList;
	BOOK* bookList;
	int a;
	printf("배열크기 입력: ");
	scanf("%d",&a);
	bookList =(BOOK*)calloc(a,sizeof(BOOK));
	//memset(bookList,0x00,sizeof(BOOK)*a);
	Run(bookList,a);
}


app.h


//app.h
void MemuDisplay();
int inputNo();
void selectMenu(int key,BOOK* bookList,int a);
void Run(BOOK* bookList,int a);


book.h


void display(BOOK* bookList,int a);

void book_delete(BOOK* bookList,int a);

void book_seach(BOOK* bookList,int a);

void book_add(BOOK* bookList,int a);

void book_malloc(BOOK* bookList,int a);


main.h


#include 
#include 
#include 
#include 
#include 
typedef struct book
{
	char* BookName;
	char BookWriter[20];
	int BookPrice;
}BOOK;


'C, C++' 카테고리의 다른 글

[C] 최대값, 최소값, 합계 구하기  (0) 2014.11.18
[C] 도서관리(포인터 배열)  (0) 2014.11.18
[C] 포인터 공부 5  (0) 2014.11.18
[C] 포인터 공부 4  (0) 2014.11.18
[C] 포인터 공부 3  (0) 2014.11.18
반응형
#include 

void bit_pointer_5_1()
{
	char *imsip[3], **imsipp;
	int one, *two, **three;

	imsip[0] = "imsi";
	imsip[1] = "temp";
	imsip[2] = "jamgan";

	imsipp = imsip;

	two = &one;
	three = &two;

}
void bit_pointer_5_2()
{
	char *imsi[3];
	char **imsipp;

	imsipp = imsi;

	imsi[0] = "archie";
	imsi[1] = "Park Yne Ju";
	imsi[2] = "Jung Sue Yune";

	printf("imsi[0] %#010x\n",imsi[0]);
	printf("imsi[1] %#010x\n",imsi[1]);
	printf("imsi[2] %#010x\n",imsi[2]);

	putchar('\n');

	printf("imsi[0] %#010x\n",&imsi[0]);
	printf("imsi[1] %#010x\n",&imsi[1]);
	printf("imsi[2] %#010x\n",&imsi[2]);

	putchar('\n');

	printf("imsipp %#010x\n",imsipp);
	printf("imsi %#010x\n",imsi);

	putchar('\n');

	printf("imsi[0] %s\n",&imsi[0]);
	printf("imsi[1] %s\n",&imsi[1]);
	printf("imsi[2] %s\n",&imsi[2]);

	putchar('\n');

	printf("*imsipp %s\n", *imsipp);
	printf("*(imsipp +1) %s\n",*(imsipp+1));
	printf("*(imsipp +2) %s\n",*(imsipp+2));

	putchar('\n');

	printf("**imsipp %c\n", **imsipp);



}
void bit_pointer_5_3()
{
	char *imsi[3];
	char **imsipp;

	imsi[0] = "Cha Hong Suk";
	imsi[1] = "Jung Kang Hun";
	imsi[2] = "Lee Se Jin";

	imsipp = imsi;

	printf("imsipp %#0x\n", imsipp);
	printf("imsi %#0x\n", imsi);
	printf("imsi[0] %#0x\n", imsi[0]);
	printf("&imsi[0] %#0x\n", &imsi[0]);
	printf("*imsipp %#0x\n", *imsipp);
	printf("&**imsipp %#0x\n", &**imsipp);

}
void bit_pointer_5_4(int argc,char **argv,char **env)
{
	for(;env;env++)
		puts(*env);
}

void main()
{
	bit_pointer_5_1();
}

'C, C++' 카테고리의 다른 글

[C] 도서관리(포인터 배열)  (0) 2014.11.18
[C] 도서관리(동적)  (0) 2014.11.18
[C] 포인터 공부 4  (0) 2014.11.18
[C] 포인터 공부 3  (0) 2014.11.18
[C] 포인터 공부 2  (0) 2014.11.18
반응형
#include 
#include 
#include 


void bit_pointer_4_1()
{
	char *imsip;
	char imsi;

	//imsip = 'a';
	imsip = "a";

	imsi = 'a';
	//imsi = "a";
}
void bit_pointer_4_2()
{
	char *string;

	string ="archie";

	printf("%c\n",*(string +0));
	printf("%c\n",*(string +1));
	printf("%c\n",*(string +2));
	printf("%c\n",*(string +3));
	printf("%c\n",*(string +4));
	printf("%c\n",*(string +5));

}
void bit_pointer_4_3()
{
	char *string ="archie";

	printf("%s\n",string[3]);
}
void bit_pointer_4_4()
{
	char *string ="archie";
	char dim[] ="dimention";
}
void bit_pointer_4_5()
{
	char *string ="archie";
	char dim[] ="dimention";

	printf("string %#010x\n",string);
	printf("&string %#010x\n",&string);
	printf("dim %#010x\n",dim);
	printf("&dim %#010x\n",&dim);
	printf("dim[0] %#010x\n",dim[0]);

}

//틀린 문제
void bit_pointer_4_6()
{
	char *string ="archie";
	char dim[] ="dimention";

	for(;string;string++)
		putchar(*string);

	putchar('\n');

	//for(;*dim;dim++) 오류
		putchar(*dim);
}


void bit_pointer_4_7()
{
	char *string ="archie";
	char dim[] ="dimention";
	int i;

	for(;string;string++)
		putchar(*string);

	putchar('\n');

	for(i=0;dim[i];i++)
		putchar(*dim);

}


void bit_pointer_4_8()
{
	char *string ="archie";

	*string = 'T';

}


void bit_pointer_4_9()
{
	char string[] ="dimention";

	string[0] = 'T';
	puts(string);

}


void bit_pointer_4_10()
{
	char name[5][20];

	strcpy(name[0], "Jung Jae Une");
	strcpy(name[1], "Han Woo Ryong");
	strcpy(name[2], "Byun Ji Ha");
	strcpy(name[3], "Lee Do Geun");
	strcpy(name[4], "Hong Jae Mok");
}


void bit_pointer_4_11()
{
	char *name[5];

	name[0]= "Jung Jae Une";
	name[1]= "Han Woo Ryong";
	name[2]= "Byun Ji Ha";
	name[3]= "Lee Do Geun";
	name[4]= "Hong Jae Mok";
}


void bit_pointer_4_12()
{
	char *name[5];

	name[0]= "Jung Jae Une";
	name[1]= "Han Woo Ryong";
	name[2]= "Byun Ji Ha";
	name[3]= "Lee Do Geun";
	name[4]= "Hong Jae Mok";

	puts(name[0]+5);
	puts(name[1]+4);
	puts(name[2]+5);
	puts(name[3]+4);
	puts(name[4]+5);
}


void bit_pointer_4_13()
{
	char *name[5];

	name[0] = (char *)malloc(sizeof(char)*strlen("archie") +1);

	strcpy(name[0],"archie");
	puts(name[0]);
}


void bit_pointer_4_14()
{
	char *name[5];
	char imsi[7];

	name[0] = imsi;

	strcpy(name[0],"archie");
	puts(name[0]);
}


void bit_pointer_4_15()
{
	int i,j;
	int dim_size;
	char *name[5];

	name[0]= "Jung Jae Une";
	name[1]= "Han Woo Ryong";
	name[2]= "Byun Ji Ha";
	name[3]= "Lee Do Geun";
	name[4]= "Hong Jae Mok";

	dim_size= sizeof(name)/4;

	for(i=0;i

'C, C++' 카테고리의 다른 글

[C] 도서관리(동적)  (0) 2014.11.18
[C] 포인터 공부 5  (0) 2014.11.18
[C] 포인터 공부 3  (0) 2014.11.18
[C] 포인터 공부 2  (0) 2014.11.18
[C] 포인터 공부 1  (0) 2014.11.18
반응형
#include 
#define print(imsi) printf(#imsi"\t%08x %d\n", imsi,sizeof(imsi))

void bit_pointer_3_1()
{
	int imsi[3][2]={{6,3},{9,1},{7,2}};
    int (*imsip)[2];
    int i,j;
    imsip=imsi;
    for(i=0;i<3;i++)
       for(j=0;j<2;j++)
          printf("[ %d ][ %d ] %d\n",i,j,*(*(imsip+i)+j));
    for(i=0;i<3;i++)
       for(j=0;j<2;j++)
          printf("[ %d ][ %d ] %d\n",i,j,*(imsip[i]+j));
    for(i=0;i<3;i++)
       for(j=0;j<2;j++)
          printf("[ %d ][ %d ] %d\n",i,j,imsip[i][j]);
    for(i=0;i<3;i++)
       for(j=0;j<2;j++)
          printf("[ %d ][ %d ] %d\n",i,j,imsi[i][j]);
}
void bit_pointer_3_2()
{
	int imsi[2];
    int *imsip;
    printf("%d\n",sizeof(imsi));
    printf("%d\n",sizeof(imsip));
    printf("%d\n",sizeof(*imsip));
}
void bit_pointer_3_3()
{
	int imsi[2][3];
    int (*imsip)[3];
    printf("%d\n",sizeof(imsi));
    printf("%d\n",sizeof(imsip));
    printf("%d\n",sizeof(*imsip));
}
void bit_pointer_3_4()
{
	int imsi[3][2]={{3,5},{12,54},{534,923}};
    int (*imsip)[2];
    imsip=imsi;
    imsip=imsi[0];
    imsip=&imsi[0][0];
}
void bit_pointer_3_5()
{
	int imsi[3][2]={{3,5},{12,54},{534,923}};
    printf("imsi %d byte\n",sizeof(imsi));
    printf("imsi[0] %d byte\n",sizeof(imsi[0]));
    printf("&imsi[0][0] %d byte\n",sizeof(&imsi[0][0]));
}
void bit_pointer_3_6()
{
	void temp(int (*)[]);
    int imsi[2][3]={{67,4,7},{7,4,32}};
    int (*imsip)[3];
    imsip=imsi;
    temp(imsip);
}
void bit_pointer_3_7()
{
	int imsi[3][2]={{3,5},{12,54},{534,923}};
    int (*imsip)[2];
    imsip=imsi;
    printf("%#010x %#010x\n",*imsip,*imsip+0);
    printf("%#010x %#010x\n",*(imsip+1),*imsip+1);
    printf("%#010x %#010x\n",*(imsip+2),*imsip+2);
}
void bit_pointer_3_8()
{
	int imsi[3][2]={{6,3},{5,9},{8,2}};
    int (*imsip)[2]=imsi;
    printf("%#010x\n",imsip+0);
    printf("%#010x\n",imsip+1);
    printf("%#010x\n",imsip+2);
    printf("%#010x\n",*(imsip+0));
    printf("%#010x\n",*(imsip+1));
    printf("%#010x\n",*(imsip+2));
}
void bit_pointer_3_9()
{
	int imsi[3][2]={{6,3},{5,9},{8,2}};
    int (*imsip)[2]=imsi;
    printf("%d\n",sizeof(imsip+0));
    printf("%d\n",sizeof(imsip+1));
    printf("%d\n",sizeof(imsip+2));
    printf("%d\n",sizeof(*(imsip+0)));
    printf("%d\n",sizeof(*(imsip+1)));
    printf("%d\n",sizeof(*(imsip+2)));
}
void bit_pointer_3_10()
{
	int imsi[3][2]={{3,2},{5,6},{12,43}};
    int *imsip;
    imsip=&imsi[0][0];
}
void bit_pointer_3_11()
{
	int imsi[3][2]={{3,2},{5,6},{12,43}};
    int *imsip;
    imsip=&imsi[0][0];
    printf("%d\n",**imsip);
    printf("%d\n",*(imsip[1]+0));
}
void bit_pointer_3_12()
{
	int imsi[3][2] = {{3,2},{5,6},{12,43}};
    int *imsip;
    imsip=&imsi[0][0];
    printf("%d\n",*imsip);
    printf("%d\n",*(imsip+1));
    printf("%d\n",*(imsip+2));
    printf("%d\n",*(imsip+3));
}
void bit_pointer_3_13()
{
	int (*imsip)[2];
    int *temp[2];
    printf("&imsip %#010x\n",&imsip);
    printf("&temp[0] %#010x\n",&temp[0]);
    printf("&temp[1] %#010x\n",&temp[1]);
}
void bit_pointer_3_14()
{
	 int imsi[3][2]={{3,5},{12,54},{534,923}};
    int (*imsip)[2];
    int *temp[3];
    imsip=imsi;
    imsip=&imsi[0][0];
    temp[0]=imsi;
    temp[0]=imsi[0];
    temp[1]=imsi[1];
    temp[2]=imsi[2];
    temp[0]=*(imsi+0);
    temp[1]=*(imsi+1);
    temp[2]=*(imsi+2);
    *temp=imsi[0];
    *(temp+0)=imsi[0];
    *(temp+1)=imsi[1];
    *(temp+2)=imsi[2];
    *temp=*imsi;
    *(temp+0)=*(imsi+0);
    *(temp+1)=*(imsi+1);
    *(temp+2)=*(imsi+2);
}
void bit_pointer_3_15()
{
	int imsi_1[2]={5,7};
    int imsi_2[3]={45,67,25};
    int imsi_3[4]={27,34,87,25};

    int *temp[3];

    temp[0]=imsi_1;
    temp[1]=imsi_2;
    temp[2]=imsi_3;

    print(temp);
    print(&temp);
    print(*temp);
    print(temp[0]);
    print(&temp[0]);
}


void main()
{
	 bit_pointer_3_1();
}

'C, C++' 카테고리의 다른 글

[C] 포인터 공부 5  (0) 2014.11.18
[C] 포인터 공부 4  (0) 2014.11.18
[C] 포인터 공부 2  (0) 2014.11.18
[C] 포인터 공부 1  (0) 2014.11.18
[C] C언어의 콘솔환경 (주차장, 단어장 만들기)  (0) 2014.11.18
반응형
#include 

void bit_pointer_2_1()
{
	int imsi[3];
	printf("%d %d %d\n",imsi[0],imsi[1],imsi[2]);
}
void bit_pointer_2_2()
{
	int imsi[4];
	 printf("%d %d %d %d\n",imsi[0],imsi[1],imsi[2],imsi[3]);
}
void bit_pointer_2_3()
{
	int imsi[3];
	imsi[0]=0;
	printf("%d %d %d\n",imsi[0],imsi[1],imsi[2]);
}
void bit_pointer_2_4()
{
	int imsi[3]={0};
    printf("%d %d %d\n",imsi[0],imsi[1],imsi[2]);
}
void bit_pointer_2_5()
{
	int imsi[2][3];
    printf("%d %d %d %d %d %d\n",
    imsi[0][0],imsi[0][1],imsi[0][2],
	imsi[1][0],imsi[1][1],imsi[1][2]);
}
void bit_pointer_2_6()
{
	int imsi[3]={5,3,7};
    int *imsip;
    imsip=imsi;
    printf("%d\n",*imsip);
}
void bit_pointer_2_7()
{
	int imsi[3]={5,3,7};
	int *imsip;
	imsip=imsi;
    printf("%#010x %#010x %#010x\n",imsi,&imsi[0],imsip);
}
void bit_pointer_2_8()
{
	int imsi[3]={5,8,2};
    int *imsip;
    imsip=imsi;
    printf("%d\n",*imsip);

}
void bit_pointer_2_9()
{
	int imsi[3]={5,3,7};
   int *imsip;
   imsip=imsi;
   printf("%d %d %d\n",
      *(imsip+0),
      *(imsip+1),
      *(imsip+2));
}

void main()
{
	bit_pointer_2_1();
}

'C, C++' 카테고리의 다른 글

[C] 포인터 공부 4  (0) 2014.11.18
[C] 포인터 공부 3  (0) 2014.11.18
[C] 포인터 공부 1  (0) 2014.11.18
[C] C언어의 콘솔환경 (주차장, 단어장 만들기)  (0) 2014.11.18
[C] 파일 입출력  (0) 2014.11.18
반응형
#include 

void bit_pointer_1_1()
{
	int *imsip;
	printf("*imsip[%p]\n",imsip);
}

void bit_pointer_1_2()
{
	int imsi =5;
	printf("imis[%d]\n",imsi);
	printf("&imsi[%#010x]\n",&imsi);
}
void bit_pointer_1_3()
{
	int imsi;
	int *imsip;
	imsip = &imsi;
}
void bit_pointer_1_4()
{
	int imsi=5;
	int *imsip;

	imsip = &imsi;
	printf("imisip[%d]\n",*imsip);
}

void bit_pointer_1_5()
{
	int imsi=5;
	int *imsip;

	imsip = &imsi;
	*imsip = imsi;
	printf("&imsip[%#010x], *imsip[%d]\n",imsip,*imsip);
}
void bit_pointer_1_6()
{
	int *imsip;
	*imsip = 1024;
	printf("%d\n",*imsip);

}
void bit_pointer_1_7()
{
	int imsi;
	int *imsip;
	imsip = &imsi;
	*imsip = 1024;
	printf("%d\n",*imsip);
}
void bit_pointer_1_8()
{
	int imsi=5;
	int *imsip;
	imsip = &imsi;
	*imsip = *imsip + *imsip;
	printf("%d\n",imsip);
}
void bit_pointer_1_9()
{
	int int_;
	float float_;
	double double_;
	char char_;

	int *intp;
	float *floatp;
	double *doublep;
	char *charp;

	printf("int[%d] float[%d] double [%d] char [%d]\n",
		sizeof(int),sizeof(float),sizeof(double),sizeof(char));

	printf("inpt[%d] floatp[%d] doublep [%d] charp [%d]\n",
		sizeof(intp),sizeof(floatp),sizeof(doublep),sizeof(charp));

}

void main()
{
	bit_pointer_1_1();
}

'C, C++' 카테고리의 다른 글

[C] 포인터 공부 3  (0) 2014.11.18
[C] 포인터 공부 2  (0) 2014.11.18
[C] C언어의 콘솔환경 (주차장, 단어장 만들기)  (0) 2014.11.18
[C] 파일 입출력  (0) 2014.11.18
[C] 바이너리 입출력  (0) 2014.11.18
반응형

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
반응형
//**********************************************************************
// 파일입출력
//**********************************************************************
// 입출력?? 콘솔 화면 --> 파일 
//**********************************************************************
// 1) 텍스트 입출력
// --> 문자, 문자열 --> text파일에 저장 !!
#include 

void main()
{
	// 파일에 대한 정보 !!!!
	// 어떤 파일?? --> FILE구조체를 통해 저장 !!
	char name[20] ="홍길동";
	int age = 20;
	char id[10] ="100012";
	int i=0;
	char buf[30] ="나는 이상준이다";
	FILE* fp;
	// 1) 파일 열기 // w는 쓰기 r 읽어오기
	if((fp = fopen("bit.txt","w"))==NULL)
	{
		puts("file open error !!");
		return;
	}
	//------------------------------------------------------
	// 1) 문자 단위로 쓰기
	while(buf[i]!=NULL)
	{
		putc(buf[i],fp);
		i++;
	}
	// 2) 문자열 단위로 쓰기
	fputs(buf,fp); // 값 저장
	fgets(buf,32,fp); //저장된값 화면 출력

	// 3) 형식화된 입출력
	fprintf(fp,"%s %d %s",name,age,id);



	fclose(fp);

}


// 2) 이진 입출력

'C, C++' 카테고리의 다른 글

[C] 포인터 공부 1  (0) 2014.11.18
[C] C언어의 콘솔환경 (주차장, 단어장 만들기)  (0) 2014.11.18
[C] 바이너리 입출력  (0) 2014.11.18
[C] 예제  (0) 2014.11.18
[C] 구조체와 배열  (0) 2014.11.18

+ Recent posts