디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅁㄴㅇ(61.251) 2012.02.09 16:11:51
조회 43 추천 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/17 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
302447 [팀초기화]이엽 [4] ㅇㅇ(112.159) 12.02.09 31 0
302444 엌ㅋㅋ 캐복수닭ㅋㅋㅋㅋㅋㅋㅋㅋ [3] ㅁㄴㅇ(210.90) 12.02.09 61 0
302440 노트북 보통 몇년 씀? [3] b박갤로그로 이동합니다. 12.02.09 102 0
302439 파일기반 DB가뭐뭐있지여 ㅇㅇ(112.159) 12.02.09 30 0
302437 디씨인사이드 클래스를 만들어놓으면 여로모로 편리하다. [1] ㅇㅇ(112.159) 12.02.09 75 0
302436 밑에 문제 새로운 차원으로 접근 해본다 [8] b박갤로그로 이동합니다. 12.02.09 70 0
302434 야 더블릿 그 입력 받는거좀 알려줘봐... [6] ㄱㄴㄴ(218.153) 12.02.09 72 0
302431 자네들 DC 봇만들기 프로젝트를 하지 않겠는가? [2] ㅇㅇ(112.159) 12.02.09 93 0
302427 정보보안이 유망직종1위인거있잖아 [2] Reki_갤로그로 이동합니다. 12.02.09 145 0
302426 배고푸다 ㅠ.ㅠ [1] iljeomobolt갤로그로 이동합니다. 12.02.09 54 0
302423 여기서 틀린거 갈켜주새요 ㅠㅠif문 [5] 할짓이없당께갤로그로 이동합니다. 12.02.09 45 0
302420 형들 학원출신 있짢아 그렇게 안좋은거야?? [2] 마수리(221.155) 12.02.09 171 0
302419 아까 몽고디비 테스트한다고 난쟁이오크갤로그로 이동합니다. 12.02.09 39 0
302418 방통대 내일등록마감인데 오두바이갤로그로 이동합니다. 12.02.09 67 0
302415 어익후 몇시간 뒤에 왔는데도 딴나라 알바가 설치네 거칠게갤로그로 이동합니다. 12.02.09 42 0
302413 ㅃ 과수원.jpg [3] 건국우유딸기갤로그로 이동합니다. 12.02.09 108 0
302410 자바바이트코드를 실행할 때 궁금한게 있어. [1] rrr(218.39) 12.02.09 75 0
ㄱㄴㄴ님 코드 전체에요.. 한번 봐주실수 있으세요? [1] ㅁㄴㅇ(61.251) 12.02.09 43 0
302405 위에꺼쓰면 가끔씩 프로그램이 멈추는 이유가 뭔가요 [4] ㅁㄴㅇ(61.251) 12.02.09 69 0
302404 집에서 혼자 술 먹는 코더들 있냐? [5] b박갤로그로 이동합니다. 12.02.09 91 0
302400 그래두 기능사 따놓는게 좋겠지? Reki_갤로그로 이동합니다. 12.02.09 42 0
302397 기능사시험은 쉬워? [5] Reki_갤로그로 이동합니다. 12.02.09 61 0
302395 엌 맞땈 내일 담배값 오르짘ㅋㅋㅋ [4] 나리링갤로그로 이동합니다. 12.02.09 73 0
302393 상용으로 팔면서 ms 제품 공짜로 쓰면 좃됨? [5] b박갤로그로 이동합니다. 12.02.09 91 0
302392 이거 어쩌지. [2] 난쟁이오크갤로그로 이동합니다. 12.02.09 52 0
302391 이번에 정보 기사 시험 신청한 프갤러 있냐? [6] □ㅁ갤로그로 이동합니다. 12.02.09 75 0
302388 비트 고급반 다니거나 다녔던 횽들~ [6] delario갤로그로 이동합니다. 12.02.09 228 0
302387 개심심아 기술사 도전할거면 이것도 도전해봐.. DAP [13] 쿄스케갤로그로 이동합니다. 12.02.09 171 0
302386 형들 자격증은 뭐뭐 따놓는게 좋아? [15] Reki_갤로그로 이동합니다. 12.02.09 135 0
302384 1.8~2.0 으로 시작했다 쳤을때..3~4년차 되면 얼마 받구 싶음? [20] 캐년봉닭(115.92) 12.02.09 137 0
302382 형들 전산회계 같은거 따놓으면 좋아? [2] Reki_갤로그로 이동합니다. 12.02.09 52 0
302380 얼래? 글이 삭제 되네 [3] 이모군(175.114) 12.02.09 48 0
302378 아 진짜.... 프갤 시X 완전 병신됐구나??! [4] 퓨리님(111.91) 12.02.09 92 0
302377 SeHwa횽 어제 언패킹 글 올린 사람인데 [12] 234(116.34) 12.02.09 93 0
302375 적색경보 적색경보 딴나랑당 알바 등장 적색경보 개심심(61.73) 12.02.09 39 0
302374 딴나라당 알바가 떠서 난 퇴겔한다~ 거칠게갤로그로 이동합니다. 12.02.09 54 0
302372 쩌렲아 가지마~ 개심심(61.73) 12.02.09 61 1
302367 어휴.. 이거뭐 XX염색체가 하나 들어오니까. 아주그냥 다들 발정이났어. 빌어먹을야옹갤로그로 이동합니다. 12.02.09 61 0
302366 여자가 프로그래밍 하는거 자체가 문제입니다. [4] 거칠게갤로그로 이동합니다. 12.02.09 158 0
302363 죄송해요 [11] 쩌렲갤로그로 이동합니다. 12.02.09 167 0
302360 한가지 언어만 죽어라 파는 사람 vs 이것저것 다 해보는 사람 [5] 거칠게갤로그로 이동합니다. 12.02.09 116 0
302355 쩌렲는 봅니다. [2] 개심심(61.73) 12.02.09 59 0
302354 프갤에 자칭 여성이라고 하는 사람 뜨니가. [1] 빌어먹을야옹갤로그로 이동합니다. 12.02.09 56 0
302352 여자던 남자던 프로그래밍은 재능이 있어야 할 꺼 같다. [3] 거칠게갤로그로 이동합니다. 12.02.09 153 0
302350 프로그래밍 공부하는사람한테 컴퓨터 견적이나 조립이니 해달라는거에 불평하는 [3] 빌어먹을야옹갤로그로 이동합니다. 12.02.09 77 0
302348 임금체불인데 여자 이쁨 vs 월급은 잘 나오지만 여자 x [1] 거칠게갤로그로 이동합니다. 12.02.09 70 0
302346 횽들은 개발자 그만두면 뭐할꺼야??? [9] 거칠게갤로그로 이동합니다. 12.02.09 131 0
302345 아 모텔인데...공부하러 가기 싫어형들 [2] ㄴㄹㅇ(112.170) 12.02.09 64 0
302344 초봉이 쎈 회사 vs 인센티브가 쎈 회사 [2] 거칠게갤로그로 이동합니다. 12.02.09 97 0
302343 조립컴퓨터 전파검증? [3] 이모군(175.114) 12.02.09 58 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2