디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

ㄱㄴㄴ님 코드 전체에요.. 한번 봐주실수 있으세요?

ㅁㄴㅇ(61.251) 2012.02.09 16:11:51
조회 46 추천 0 댓글 1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define _ARRAY_LENGTH  100

typedef struct Slist
{
 char *pName;
 int Age;
 struct Slist *pNext;
} NODE;

int Count=0;

NODE *pHead=NULL;

int PrintMenu();
void AddNode();
void PrintNode();
void DeleteNode();
int SelectMenu();
void DeleteAllNode();
void SaveNode();
void LoadNode();

void main()
{
 while(1)
 {
  switch(SelectMenu())
  {
  case 1:
   AddNode();
   break;
  case 2:
   PrintNode();
   break;
  case 3:
   DeleteNode();
   break;
  case 4:
   DeleteAllNode();
   break;
  case 5:
   SaveNode();
   break;
  case 6:
   LoadNode();
   break;
  case 7:
   DeleteAllNode();
   return;
  }
 }
}

void PrintNode()
{
 if(pHead==NULL)
 {
  puts("노드가 없습니다");
  return;
 }
 NODE *pCurrentNode=pHead;
 while(1)
 {
  printf("이름 : %s\n", pCurrentNode->pName);
  printf("나이 : %d\n", pCurrentNode->Age);
  if((pCurrentNode->pNext)!=NULL) pCurrentNode=pCurrentNode->pNext;
  else break;
 }
}

void AddNode()
{
 NODE *pNewNode=(NODE*)malloc(sizeof(NODE));
 char NameInput[_ARRAY_LENGTH]={0};
 printf("이름 : ");
 scanf("%s", NameInput); getchar();
 int Length=strlen(NameInput)+1;                                     //

 pNewNode->pName=(char*)malloc(Length);                 // pNewNode->pName=(char*)malloc(strlen(NameInput)+1); 
 strcpy(pNewNode->pName, NameInput);
 printf("나이 : ");
 scanf("%d", &(pNewNode->Age)); getchar();
 pNewNode->pNext=NULL;

 if(pHead==NULL) pHead=pNewNode;
 else
 {
  NODE *pCurrentNode=pHead;

  while(pCurrentNode->pNext!=NULL)
   pCurrentNode=pCurrentNode->pNext;
  
  pCurrentNode->pNext=pNewNode;
 }
}

void DeleteNode()
{
 NODE *pCurrent=pHead;
 NODE *pPrevNode=NULL;
 printf("지우고 싶은 회원을 입력하세요. ");
 char NameInput[_ARRAY_LENGTH]={0};
 scanf("%s", NameInput); getchar();

 NODE **Prev_pNext=NULL;

 while(1)
 {
  if(!strcmp(NameInput, pCurrent->pName))
  {
   if(Prev_pNext==NULL)
   {
    pHead=pCurrent->pNext;
    free(pCurrent->pName);
    free(pCurrent);
    pCurrent=pHead;
   }
   else
   {
    *Prev_pNext=pCurrent->pNext;
    free(pCurrent->pName);
    free(pCurrent);
    pCurrent=*Prev_pNext;
   }
  }
  else
  {
   Prev_pNext=&pCurrent->pNext;
   pCurrent=pCurrent->pNext;
  }
  if(pCurrent==NULL) break;
 }
}


void LoadNode()
{
 DeleteAllNode();

 FILE *pFile=fopen(".\\node.dat", "rb");
 if(pFile==NULL)
 { 
  puts("파일 로드에 실패 하였습니다.");
  return;
 }
 
 char Temp[_ARRAY_LENGTH]={0};
 NODE *pCurrentNode;
 NODE **Prev_pNext=NULL;

 while(1)
 {
  pCurrentNode=(NODE*)malloc(sizeof(NODE));
  if(Prev_pNext!=NULL) *Prev_pNext=pCurrentNode;
  if(pHead==NULL) pHead=pCurrentNode;
  fread(Temp, sizeof(char), _ARRAY_LENGTH, pFile);
  int Length=strlen(Temp)+1;
  pCurrentNode->pName=(char*)malloc(Length);
  strcpy(pCurrentNode->pName, Temp);
  fread(&pCurrentNode->Age, sizeof(int), 1, pFile);
  fread(&pCurrentNode->pNext, sizeof(NODE*), 1, pFile);
  Prev_pNext=&pCurrentNode->pNext;

  if(pCurrentNode->pNext==NULL) break;
 }

 puts("로드 되었습니다.");
}

void DeleteAllNode()
{
 if(pHead==NULL) return;
 NODE *pCurrentNode=pHead;
 NODE *pTemp;
 while(1)
 {
  pTemp=pCurrentNode->pNext;
  free(pCurrentNode->pName);
  free(pCurrentNode);
  if((pTemp)!=NULL) pCurrentNode=pTemp;
  else break;
 }
 pHead=NULL;
}

void SaveNode()
{
 if(pHead==NULL) return;
 FILE *pFile=fopen(".\\node.dat", "wb");
 if(pFile==NULL)
 { 
  puts("파일 저장에 실패 하였습니다.");
  return;
 }

 char TempName[_ARRAY_LENGTH]={0};
 NODE *pCurrentNode=pHead;

 while(pCurrentNode!=NULL)
 {
  strcpy(TempName, pCurrentNode->pName);
  fwrite(TempName, sizeof(char), _ARRAY_LENGTH, pFile);
  fwrite(&pCurrentNode->Age, sizeof(int), 1, pFile);
  fwrite(&pCurrentNode->pNext, sizeof(NODE*), 1, pFile);
  pCurrentNode=pCurrentNode->pNext;
 }
 
 fclose(pFile);

 puts("저장 되었습니다.");
}

int SelectMenu()
{
 int Select;
 printf("======================\n");
 printf("<<싱글 링크드 리스트>>\n");
 printf("======================\n");
 printf("1. 노드 추가\n");
 printf("2. 노드 출력\n");
 printf("3. 노드 검색 삭제\n");
 printf("4. 노드 모두 삭제\n");
 printf("======================\n");
 printf("5. 노드 파일 저장\n");
 printf("6. 노드 파일 읽기\n");
 printf("======================\n");
 printf("7. 프로그램 종료\n");
 printf("======================\n");
 printf("-> ");
 scanf("%d", &Select); getchar();
 return Select;
}


실력이 모자라서 좀 난잡하네요;

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
302580 은꼴 [1] iljeomobolt갤로그로 이동합니다. 12.02.10 115 0
302579 VB2010 vs C# [2] ☎v2.0™갤로그로 이동합니다. 12.02.10 70 0
302578 마이플랫폼... [12] 쿄스케갤로그로 이동합니다. 12.02.10 88 0
302577 헉 트로이 목마가 2개나 잡힌다 [5] 거칠게갤로그로 이동합니다. 12.02.10 97 0
302575 야이 쇼키들아~!!! 밥은 처먹고 일하는거냐???? 거칠게갤로그로 이동합니다. 12.02.10 51 0
302574 식사들 하셨습니까? 요즘은 visual basic 하고 있어요.. [1] iljeomobolt갤로그로 이동합니다. 12.02.10 63 0
302570 진짜 GR들을 한다... 찌질 2마리야 (116.125) 12.02.10 45 0
302567 액션스크립트 3.0 배우려는데(조공) [1] ㅇㅇ(112.162) 12.02.10 116 0
302561 야 시펄 나 회사 그만 둘까보다 [3] 개심심(59.6) 12.02.10 82 0
302560 형님들!!!!! 컴공 편입했는데 한번만 봐주세요 !!!!! [4] ssdrm(1.235) 12.02.10 113 0
302558 컴공가면 복수전공 힘들다는게 참진트루? [2] ㅄㅌㄹ(211.48) 12.02.10 192 0
302556 내일은 대학원 OT 룰루~ [1] 씨발라드세요갤로그로 이동합니다. 12.02.10 76 0
302554 사실 컴퓨터나 물리 수학이 어려운 게 ㅇㅇ(220.87) 12.02.10 61 0
302553 아싸 배당 나온다~ [1] 외계달팽갤로그로 이동합니다. 12.02.10 46 0
302552 비주얼베이직2010으로 프로그램좀 만들고싶은데 [2] 주소록(118.35) 12.02.10 112 0
302550 만약, 당구 게임을 만들어야 한다면..필요한 능력이..? [4] 캐게임닭(115.92) 12.02.10 142 0
302546 180 정도 되면 구두에 깔창 하면 190인데 [1] b박갤로그로 이동합니다. 12.02.10 50 0
302544 이번엔..키노피 구두를 한번 사봐야겠다. [2] 캐키노피닭(115.92) 12.02.10 56 0
302542 정보보안쪽이나 네트워크쪽에서 일하는형들,,, 진로고민이있어요... [6] ㅇㅇ(122.57) 12.02.10 257 0
302541 ipconfig질문 하나만 하겠슴 이미지첨부有 [6] (211.251) 12.02.10 97 0
302540 html/jsp등에서 지도로 이벤트처리하는 방법 허접(115.145) 12.02.10 44 0
302539 ☎v2.0™형 이게 내가 지금까지 짠 소스임 [13] 내사랑C(121.157) 12.02.10 94 0
302538 1년이 555일인거 알고 있음? ㅇㅇㅇ? [3] ㅇㅇㅇ(121.144) 12.02.10 98 0
302536 나도 은꼴. [1] ㅇㅇㅎ(110.47) 12.02.10 131 0
302532 5단 갤로그로 이동합니다. 12.02.10 79 0
302530 정녕 이바닥은 적성이 안맞으면 살아남을수 없는 곳인가.. [7] 진짜정녕(221.155) 12.02.10 206 0
302527 역시 심심할땐 이러고 놀면 딱이다 [1] dlbo갤로그로 이동합니다. 12.02.10 105 0
302526 옜날에 짜둔 구구단.. 생각놀이갤로그로 이동합니다. 12.02.10 69 0
302525 프로젝트 맡아서 pm 하면 ppt 자료 3000 3천 페이지 만든다는게 [1] 풋사과1갤로그로 이동합니다. 12.02.10 91 0
302521 들보봐라 [2] C_Perl갤로그로 이동합니다. 12.02.10 71 0
302520 글삭.. [4] 생각놀이갤로그로 이동합니다. 12.02.10 160 0
302511 건자두 짱 맛있네여 [성대아싸]갤로그로 이동합니다. 12.02.10 50 0
302510 거칠개!=거칠게 [1] ㅇㅇ(59.26) 12.02.09 67 0
302508 갑자기 생각났는데 정신차리고갤질해라갤로그로 이동합니다. 12.02.09 43 0
302504 문과 컴공 복수전공하는사람들 레알있음?ㅋㅋㅋ [1] 정신차리고갤질해라갤로그로 이동합니다. 12.02.09 390 0
302503 세화횽때메 다시 생각났음..ㅋ [3] ㅋㄱ(183.96) 12.02.09 80 0
302502 쎼화흉 수학 목록을 보고 느낀점 [2] [성대아싸]갤로그로 이동합니다. 12.02.09 124 0
302501 세화야 [5] C_Perl갤로그로 이동합니다. 12.02.09 93 0
302500 나도 포기안해 C_Perl갤로그로 이동합니다. 12.02.09 45 0
302499 아 시발 구구단 5단 어떻게만들어 5단만 씨발 포문사용해서 ;; [17] 코딩...?갤로그로 이동합니다. 12.02.09 112 0
302497 지금 문제는 학원 출신 비전공자가 아니라.... [5] 야요이갤로그로 이동합니다. 12.02.09 277 0
302496 용기를 내어서 그대가 생각하는대로 살지 않으면 머지않아, 그대는 [1] 정신차리고갤질해라갤로그로 이동합니다. 12.02.09 292 0
302495 c++로 언제쯤 넘어가야 할까 형들 [4] ㄷㄴ(211.212) 12.02.09 87 0
302494 나 인문학도인데 컴공 복수전공오바지? [1] 정신차리고갤질해라갤로그로 이동합니다. 12.02.09 130 0
302492 니들중에 이거 다할줄 아는사람 있냐? [30] 양앙앙(59.1) 12.02.09 268 0
302491 패킹이 안됬다 하는데 [14] exe언패킹(121.176) 12.02.09 146 0
302490 언패킹좀 가르쳐줄 성님 계십니까 [19] exe언패킹(121.176) 12.02.09 188 0
302489 봇새끼들 진짜 징그럽네 정신차리고갤질해라갤로그로 이동합니다. 12.02.09 33 0
302488 자금모금 fail.... 취직에 눈돌려~ 양앙앙(59.1) 12.02.09 46 0
302487 그나저나 캐닭흉 메일 갔나여 [4] [성대아싸]갤로그로 이동합니다. 12.02.09 56 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2