#include<stdio.h>




struct Data

{ //학생의 이름과 전화번호화 주소를 갖고 다음 학생을 가르킬 포인터를 가지는 struct


short name;

int phone;

short address;

Data *link;


Data() {}


Data(short N, int P, short A, Data *L) //struct의 기본 생성자

{

name = N;

phone = P;

address = A;

link = L;

};

~Data() {} //struct의 파멸자

};


int main()

{

struct Data a; //Data struct 선언

struct Data *First = NULL; //Data들을 가르킬때 쉽게 접근가능하게 해주는 포인터 2개 선언

struct Data *Last = NULL;


while (1)

{

int i;

printf("무엇을 할예정? 1:보기, 2:추가, 3:삭제, 4.종료 ");

scanf("%d", &i);

if (i == 1) //학생 strcut의 내용을 print 하는 조건문

{

printf("출력을 시작합니다. ");

Data *m = First; //struct 포인터 m이 순회를 하면서 학생정보를 출력

if (m == 0) // 학생의 정보가 입력되지 않았을경우 출력

{

printf("입력된 값 없음 ");

}

while (m != 0) // while문으로 다음 학생으로 진행

{

printf("이름 입력: %s, 전화번호 입력 : %d, 주소입력 : %s ", &m->name, m->phone, &m->address);

m = m->link;

}

}

else if (i == 2) //학생의 정보를 입력하는 구문

{

printf("입력을 시작합니다. ");

short N;

int P;

short A;


printf("이름 입력 : ");

scanf("%s", &N);

printf("전화번호 입력: ");

scanf("%d", &P);

printf("주소 입력: ");

scanf("%s", &A);

printf(" ");


if (First == NULL) //등록된 학생이 없는경우 First포인터가 처음 만든 학생을 가르키게 함

{

First = new Data(N, P, A, 0);

Last = First;

}

else //마지막 등록된 학생과 만들 학생과 연결

{

Last->link = new Data(N, P, A, 0);

Last = Last->link;

}

}

else if (i == 3) // 등록된 학생을 삭제하는 구문

{

if (First == 0)

printf("지울 값이 없습니다. ");

else

{

int i;

int count = 1;

Data *m = First;

Data *n = 0;

printf("몇번째을 지우겠습니까? ");

scanf("%d", &i);

if (i == count) //삭제할 학생을 찾아서 삭제하는 구문

{

delete m;

First = 0;

}

else

{

for (; i > count; count++)

{

n = m;

m = m->link;

}

n->link = m->link;

delete m;

}

}

}

else if (i == 4) //while 문을 이탈하는 구문.

{

printf("끝 ");

break;

}

else //입력이 잘못되었을때 다시 입력할수있게 하는 구문

{

printf("잘못 입력 하셨습니다. ");

}

}


}






이소스를 만들엇는데 .cpp에서는되고 .c에서는안된다


근데 교수가 .cpp말고 .c로 제출하라하는데


어디서부터 바꿔야하는가 제발 알려줄사람