조건
이정도는 간단하지..
file : book.h
#ifndef _BOOK_H_ #define _BOOK_H_ #include#include #include #include #include #include #pragma pack(1) typedef struct _B_data{ char book[30]; char author[15]; char publisher[10]; char price[10]; char year[5]; struct _B_data *next; }B_data; #pragma pack() #endif
file : book.c
#include "book.h"
B_data *Head;
int input_number(void);
void chois_switch(int num);
B_data* new_creat_data(void);
void insert_data(B_data* New);
void print_data(void);
void data_free(void);
int main(void)
{
int num;
do{
num = input_number();
chois_switch(num);
}while(num != 3);
return 0;
}
int input_number(void)
{
int num = 0;
printf("1. Insert\n");
printf("2. List\n");
printf("3. Quit\n");
printf(">> ");
scanf("%d",&num);
return num;
}
void chois_switch(int num)
{
B_data *New;
switch(num){
case 1:
New = new_creat_data();
insert_data(New);
break;
case 2:
print_data();
break;
case 3:
data_free();
break;
default:
printf("잘못된 숫자 입력!\n");
break;
}
}
B_data* new_creat_data(void)
{
B_data *New;
New = (B_data*)malloc(sizeof(B_data));
printf("책 이름 : ");
scanf("%s",New->book);
printf("저자 : ");
scanf("%s",New->author);
printf("출판사 : ");
scanf("%s",New->publisher);
printf("가격 : ");
scanf("%s",New->price);
printf("출판연도 : ");
scanf("%s",New->year);
if(Head == NULL){
Head = New;
Head->next = NULL;
return Head;
}
New->next = NULL;
return New;
}
void insert_data(B_data *new)
{
B_data *Temp;
Temp = Head;
if(Head == new)
return;
while(NULL != Temp->next){
Temp = Temp->next;
}
Temp->next = new;
}
void print_data(void)
{
B_data *Temp;
printf("---===-도서 목록===----\n");
for(Temp = Head; NULL != Temp; Temp = Temp->next){
printf("책 이름 : %s\n",Temp->book);
printf("저자 : %s\n",Temp->author);
printf("출판사 : %s\n",Temp->publisher);
printf("가격 : %s\n",Temp->price);
printf("출판연도 : %s\n",Temp->year);
printf("========================\n");
}
}
void data_free(void)
{
B_data *Temp;
for(Temp = Head; NULL != Temp; Temp = Head){
Head = Head->next;
free(Temp);
}
}
출력 화면
'C Programming' 카테고리의 다른 글
| [리눅스]도서관리 Chapter2 소스 (0) | 2009/05/22 |
|---|---|
| [리눅스]도서관리 Chapter2 조건문제 (0) | 2009/05/22 |
| [리눅스]도서관리 Chapter 1 (0) | 2009/05/22 |
| [리눅스](기초STEP5) 저수준 파일 입출력으로 데이터 파일로 저장 (0) | 2009/05/15 |
| [리눅스](기초STEP4-2)삽입 정렬 소스 비교 (선생님 소스) (0) | 2009/05/14 |
| 원형 연결리스트의 기초 (0) | 2009/05/13 |


