프로그래밍

 3198, 1/160 회원가입  로그인  
   shh9547
   안녕하세요 처음 가입햇는데 코딩 질문 하나만 드려도 될까요??

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6534 [복사]


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

struct newstudent{ //학번(int), 이름(char(8)), 학년( int), 연락처(char(char(12)), 휴학회수(int)
        int number;//학번
        char name[8];
        int grade;
        char phonenumber[12];
        int rest;//휴학
};

// 신입생을 위한 struct

typedef struct oldstudent{ //학번(int), 이름(char(8)), 학년( int), 연락처(char(char(12)), 휴학회수(int), 휴학시기(char(3)) 휴학생
        int number[20];
        char name[8];
        int grade;
        char phonenumber[12];
        int rest;
        char resttime[3];
        struct oldstudent *rink;
        struct oldstudent *link;
}old;

old *first;
old *tail;

void initial_list(void){ //초기값을 NULL로 설정
        first =NULL;
        tail =NULL;
}

void Del(void)// 노드 삭제
{
        
}

old *makenode(){
        old *data;
        data =new old;
        if( ! || data)
                return NULL;
        data->link=NULL;
        data->rink =NULL;
        data->number=0;//오류
        data->name=0;//오류
        data->phonenumber=0;//오류
        data->grade= 0;
        data->rest=0;
}// 초기화

  struct newstudent news[100];


void Find(int x) //순차리스트 찾아서 삭제
{
         int i;
        FILE *in;
        in=fopen("student1.dat","w+");
         for(i=0; i<100; i++)
         {
                 if(news[i].number==x){
                        news[i].number=NULL;
                        news[i].grade=NULL;
                        *news[i].name=NULL;
                        *news[i].phonenumber=NULL;
                        news[i].rest=NULL;
                        fprintf(in,"%d \t %s \t %d \t %s \t %d \n",news[i].number,news[i].name,news[i].grade,news[i].phonenumber,news[i].rest);
                        fclose(in);
                        system("cls");
                 }
                
         }
};
void Finding(char k[8]){
                  int i;
        FILE *in;
        in=fopen("student1.dat","w+");
         for(i=0; i<100; i++)
         {
                 if(news[i].name==k){
                        news[i].number=NULL;
                        news[i].grade=NULL;
                        *news[i].name=NULL;
                        *news[i].phonenumber=NULL;
                        news[i].rest=NULL;
                        fprintf(in,"%d \t %s \t %d \t %s \t %d \n",news[i].number,news[i].name,news[i].grade,news[i].phonenumber,news[i].rest);
                        fclose(in);
                        system("cls");
                 }
         }

};

int main(void)
{
        int stack=0,i,code,x=1;
        char choice,name[8];
        FILE *in;
        in=fopen("student1.dat","a");

        system("cls");

        while(1)
        {
        printf("신입생 등록(‘1’)\n");
        printf("복학생 등록(‘2’)\n");
        printf("휴학생 등록(‘3’)\n");
        printf("자퇴생 등록(‘4’)\n");
        printf("등록학생 전체 조회(’5’)\n");
        printf("재학생(학번) 조회(‘6’)\n");
        printf("휴학생(이름) 조회(‘7’)\n");
        printf("시스템 종료(‘q’)\n");

        printf("하고싶은 기능을 입력하거라 : ");
        scanf("%c",&choice);
        system("cls");
        switch(choice)
        {
        case '1' : //학번(int), 이름(char(8)), 학년( int), 연락처(char(char(12)), 휴학회수(int)
                        
                        printf("\n");

                        printf("학번을 입력하세요 : ");
                        scanf("%d",&news[stack].number);
                        
                        printf("\n");
                        printf("성함을 입력하세요 : ");
                        scanf("%s",&news[stack].name);
                        
                        printf("\n");
                        printf("학년을 입력 하세요 : ");
                        scanf("%d",&news[stack].grade);
                        
                        printf("\n");
                        printf("연락처를 입력하세요 : ");
                        scanf("%s",&news[stack].phonenumber);
                        
                        printf("\n");
                        printf("휴학 회수를 입력하세요(한번도 안하셧으면 0이라고 입력하시면 됩니다.) :");
                        scanf("%d",&news[stack].rest);
                        
                        printf("\n");
                        fprintf(in,"%d \t %s \t %d \t %s \t %d \n",news[stack].number,news[stack].name,news[stack].grade,news[stack].phonenumber,news[stack].rest);
                        fclose(in);
                        stack=stack+1;
                        
                        system("cls");

                        continue;
        case '2' :

        case '3' :
                
        case '4' : //자퇴생 등록(‘4’) : 재학생 및 휴학생 순서리스트에서 확인 후, 삭제함
                printf("자퇴하고 싶은 재학생의 학번을 입력 하세요 : ");
                scanf("%d",&code);
                Find(code);
                getchar();
        case'5' :
                printf("재학생리스트 \n");
                for(i=0; i<stack; i++)
                        printf("%d \t %s \t %d \t %s \t %d \n",news[i].number,news[i].name,news[i].grade,news[i].phonenumber,news[i].rest);
                printf("휴학생 리스트 \n");
                printf("완료 되었습니다.  \n 계속하시려면 Enter을 눌러주세요 \n");
                getchar();
                system("cls");
                continue;
        case'6' :
                printf("성함을 입력해 주세요 : ");
                scanf("%s",name[8]);
                Finding(name);
                getchar();
                
        case'7' :
                printf("휴학생 성함을 입력해 주세요 : ");
                
        case'q' :
                break;//질문 : break;가 안먹히는 이유
        }
        }
                return 0;
}

안녕하세요 처음 가입햇습니다.. 코딩실력이 많이 부족합니다. 한번 훑터봐주시고 조언좀 해주세요. 그리고 제가 연결리스트와 이중연결리스트 부분을 잘 이해를 못해서, 설명좀 자세하게 해주시면 정말 감사하겟습니다.
잘부탁드립니다. ^^~!

  Hit : 6311     Date : 2015/05/14 09:50