#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로 제출하라하는데
어디서부터 바꿔야하는가 제발 알려줄사람
생성자에 소멸자에 new delete 다 써놓고 C로 바꿔달라면 어쩌자는거야
그럼답이없냐? 첨부터다시해야하냐?
c에서는 머때매 안됨 에러내용이 먼데 새꺄 길물어보면 종착지는 안말해주고 과정만 설명할새끼네 이거
생성자가 뭔지 모르고 쓴거야?
니가 코드를 이해를 하면 첨부터 다시까진 아닌데 모르고 썼으면 그냥 다시 짜는게 더 빠를듯
이새끼 딱봐도 카피충냄새 나는데 ㅡㅡ?
카피충맞네; 댓글로 뭐말하는지도 이해못하는듯ㅋㅋㅋ
c에 new delete 없다 새로 엎어라
카피충