태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

티스토리 툴바



조건

이정도는 간단하지..
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);
	}
}			


출력 화면
Posted by 쏠쓰

트랙백 주소 :: http://solosols.tistory.com/trackback/49 관련글 쓰기