zerofunc

프로젝트 2 - 도서목록 본문

IT/프로젝트

프로젝트 2 - 도서목록

0penster 2013. 11. 30. 00:33

이번에 할 프로젝트는 도서목록이다.

이건 여름방학 게임프로그래밍 수업때 내주신 과제인대

링크드 리스트를 이용한 과제였다.

당시 리스트 개념을 몰라 해메는 애들이 많이있었다.

리스트도 한번 이해하면

정말 쉬운것 중에 하나인것같다.

한번 짜고나 보면 누구든지 알만큼 

뜨거운 탕에 들어갈때도 처음에 들가는건 고통이지만

계속있다보면 시원하고 적응되는 것처럼

프로그래밍도

처음에 오류떠서 고통받지만

하다보면 나름의 자부심과 실력향상이 눈으로 바로바로 보이고

자신감이 생기고 어느샌가 즐기게 될 시점이 온다.

그럼 이제 프로젝트를 시작해보자.

이번 프로젝트는 내가 c++을 배운 시점이라서

C++을 이용해서 짜보았다.

사실 그냥 C로해도 별 차이는 없지만

기본적인 기능들만 사용한거라서 해석하는데 어려움은 없을것이다.

참고로 cout은 printf,

cin은 scanf와 같은 기능이다

#include <stdio.h>

#include <stdlib.h>

#include "header.h"

#include <iostream>

#include <conio.h>

using namespace std;

 

 

typedef struct _Book //Book구조체 링크드리스트 정의

{

char name[50];

int price;

char day[10];

int cnt;

struct _Book *next;

}Book;

int *list[500];

Book* CreateNode(int i)//새 노드 만들기

{

Book *temp = (Book*) malloc ( sizeof(Book));//동적할당

temp->next = NULL;

 

cout<<"----------입력"<<endl;

cout<< "책이름:"

cin>>temp->name;

cout<< "가격:"

cin>>temp->price;

cout<< "출판날짜:"

cin>>temp->day;

temp->cnt=i;

list[i] = (int *)temp;

return temp;//새로만든 노드를 리턴

}

int Menu()//메뉴

{

char ch;

gotoxy(10,5);//좌표이동 API내장함수

printf("[메뉴]");

gotoxy(10,6);

printf("1.도서입력");

gotoxy(10,7);

printf("2.최신순출력");

gotoxy(10,8);

printf("0.종료");

gotoxy(10,10);

ch= getchar();

return ch;

}

 

void main()

{

static int count = 0;

Book *Head, *curNode;//시작과 현재노드

char cmd;//입력받을 변수

do

{

system("cls");//화면지우기

cmd=Menu();//입력을 받음

switch(cmd)//스위치 문으로 할것을 정함

{

case '1':

count++;

if(count==1)// 1이면입력을 받고

{

Head =CreateNode(count);

curNode = Head;

}

else

{

curNode ->next = CreateNode(count);

curNode = curNode ->next;

}

break

case '2'://2이면 출력을하고

for(int i=count;i>=1;i--)

{

curNode = (Book *)list[i];

printf("목록[%d]---------\n",curNode->cnt);

printf("책이름%s\n",curNode->name);

printf("가격%d\n",curNode->price);

printf("날짜%s\n",curNode->day);

}

printf("\nPress And Key...");

getch();

curNode = (Book *)list[count];

break

case '0':

 

break

default:

break

}

}while(cmd !='0');//입력받은 값이 0 이 아닐때까지 무한 반복!

}

'IT > 프로젝트' 카테고리의 다른 글

프로젝트 3 - 공튀기기  (0) 2013.11.30
프로젝트 1- 푸쉬푸쉬게임  (0) 2013.11.30
Comments