2010년/연습문제
도서관리프로그램 -기초소스-
뽀얀햄스터
2010. 4. 2. 17:17
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//NODE *deletef(char *name, NODE * list);
struct book
{
char caName[20];
int iPrice;
struct book*next;
};
typedef struct book BOOK;
int Input(BOOK *Temp);
BOOK *insert(BOOK *item, BOOK *list);
void print_list(BOOK * list);
int main()
{
BOOK Temp;
BOOK *Head=NULL;
int istate;
while(1)
{
printf("/////////도서관리///////////\n");
printf("///////// 1.입력 //////////\n");
printf("///////// 3.출력 //////////\n");
printf("///////// 4.종료 //////////\n");
istate=getch();
fflush(stdout);
if('4'==istate)
{
break;
}
else if('1'==istate)
{
Input(&Temp);
fflush(stdout);
Head=insert(&Temp,Head);
fflush(stdout);
}
else if('3'==istate)
{
print_list(Head);
fflush(stdout);
}
}
return 0;
}
int Input(BOOK *Temp)
{
if(NULL==Temp)
{
return -1 ;
}
printf("책이름을 입력하세요 : ");
fflush(stdout);
scanf("%s",Temp->caName);
printf("책가격을 입력하세요~ : ");
fflush(stdout);
scanf("%d",&(Temp->iPrice));
return 0;
}
BOOK *insert(BOOK *item ,BOOK *list)
{
BOOK *current=NULL;
BOOK *follow=NULL;
BOOK *newnode=NULL;
current=follow=list;
if(NULL==item)
{
return list;
}
if((newnode=(BOOK *)malloc(sizeof(BOOK)))==NULL)
{
printf("NO memory allocated..\n");
return list;
}
*newnode=*item;
while(1)
{
if(NULL==current) //연결리스트 제일 끝일때 아님 제일처음일때 break;
{
break;
}
if(0>(strcmp(current->caName,item->caName))) //중간 삽입할곳을 찾을경우~
{
break;
}
follow=current;
current=current->next;
}
newnode->next=current;
if(current==list)
{
list=newnode;
}
else
{
follow->next=newnode;
}
return list;
}
/*NODE *deletef(char *name, NODE * list)
{
NODE *current;
NODE *follow;
current=follow=list;
while((current !=NULL)&&(current->data !=item))
{
follow=current;
current=current->next;
}
if(current==NULL)
{
printf("ITEM is not found..\n");
return list;
}
if(list==current)
{
list=current->next;
}
else if(current->next==NULL)
{
follow->next=NULL;
}
else
{
follow->next=current->next;
}
free(current);
return list;
}
void print_list(NODE * head)
{
int inum;
for(inum=0;NULL!=head;head=head->next)
{
printf("%c==>",head->data);
}
printf("NULL");
}*/
void print_list(BOOK *list)
{
while(NULL!=list)
{
printf("책이름 : [%s]",list->caName);
printf("\n------------------------------\n");
printf("책가격 : [%d]원\n",list->iPrice);
list=list->next;
}
}