목차
1. 구현환경
2. 프로그램 특징 및 설명
3. 참고 문헌
4. 소스코드
2. 프로그램 특징 및 설명
3. 참고 문헌
4. 소스코드
본문내용
,s->name)<0)
s->left=u;
else
s->right=u;
else
*r = u;
fclose(fp);
}
void delname(node** r, char* n, char* e){
//int compresult1, compresult2;
FILE* fp;
node *s, *t, *u, *v, *q;
s=NULL;
q=*r;
fp = fopen(\"input_data.txt\",\"a\");
while(q!=NULL && strcmp(n,q->name)!=0 && strcmp(e,q->add)!=0){
s=q;
if(strcmp(n,q->name)<0)
q=q->left;
else
q=q->right;
}
if(q==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
fprintf(fp,\"DELETE %s %s\\t\\n\",n,e);
if(q->left==NULL && q->right==NULL){
if(s!=NULL){
if(s->left==q)
s->left=NULL;
else
s->right=NULL;
}
else *r=NULL;
}
else if(q->left==NULL || q->right==NULL){
u=(q->left!=NULL)?q->left:q->right;
if(s!=NULL){
if(s->left==q)
s->left=u;
else
s->right=u;
}
else *r=u;
}
else{
t=q;
v=q->right;
while(t->left!=NULL){
t=v;
v=v->left;
}
if(t->left==v)
t->left=v->right;
else
t->right=v->right;
q->name=v->name;
q->tel=v->tel;
q->add=v->add;
q=v;
}
free(q);
fclose(fp);
}
void deltel(node **r, char* t){
FILE *fp;
node *s, *a, *u, *v, *q;
s=NULL;
q=*r;
fp = fopen(\"input_data.txt\",\"a\");
while(q!=NULL && strcmp(t,q->tel)!=0){
s=q;
if(strcmp(t,q->tel)<0)
q=q->left;
else
q=q->right;
}
if(q==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
fprintf(fp, \"DELETE %s\\t\\n\",t);
if(q->left==NULL && q->right==NULL){
if(s!=NULL){
if(s->left==q)
s->left=NULL;
else
s->right=NULL;
}
else *r=NULL;
}
else if(q->left==NULL || q->right==NULL){
u=(q->left!=NULL)?q->left:q->right;
if(s!=NULL){
if(s->left==q)
s->left=u;
else
s->right=u;
}
else *r=u;
}
else{
a=q;
v=q->right;
while(v->left!=NULL){
a=v;
v=v->left;
}
if(a->left==v)
a->left=v->right;
else
a->right=v->right;
q->name=v->name;
q->tel=v->tel;
q->add=v->add;
q=v;
}
free(q);
fclose(fp);
}
void findname(node** r, char* n, char* e){
node* s;
s=*r;
while(s!=NULL && strcmp(n,s->name)!=0 && strcmp(e,s->add)!=0){
if(strcmp(n,s->name)<0)
s=s->left;
else
s=s->right;
}
if(s==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
update(s);
}
void findtel(node** r, char* t){
node* s;
s=*r;
while(s!=NULL && strcmp(t,s->tel)!=0){
if(strcmp(t,s->tel)<0)
s=s->left;
else
s=s->right;
}
if(s==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
update(s);
}
void update(node *s){
int i,k,j=1;
char n[20];
char t[14];
char eid[15];
char edo[15];
char email[30];
char d[2]= {\'@\'};
printf(\"\\n\");
printf(\"\\tNAME:\");
scanf(\"%s\",n);
while(1){
printf(\"\\tTELEPHON(***-****-**** 형태로):\");
scanf(\"%s\",t);
if(t[3] == \'-\' && t[8] == \'-\')
break;
else{
printf(\"입력이 잘못되었습니다.\\n\");
}
}
while(j){
printf(\"\\tE-mail ID:\");
scanf(\"%s\",eid);
if(!strchr(eid,\'@\') && !strchr(eid,\'.\'))
break;
else
printf(\"입력이 잘 못 되었습니다. 재입력하세요\\n\");
}
while(j){
printf(\"\\n\\tE-mail domain:\");
scanf(\"%s\", edo);
i=strlen(edo);
for(k=0;k if(edo[k]==\'.\'){
j=0;
break;
}
}
if(j==1)
printf(\"입력이 잘 못 되었습니다. 재입력하세요\\n\");
}
strcpy(email,eid);
strcat(email,d);
strcat(email,edo);
strcpy(s->name, n);
strcpy(s->tel,t);
strcpy(s->add,email);
printf(\"\\n\");
}
void print(node *r){
if(r){
print(r->left);
printf(\"\\n \");
printf(\"\\t%s\\t\",r->name);
printf(\"\\t%s\\t\",r->tel);
printf(\"\\t%s\",r->add);
print(r->right);
}
}
s->left=u;
else
s->right=u;
else
*r = u;
fclose(fp);
}
void delname(node** r, char* n, char* e){
//int compresult1, compresult2;
FILE* fp;
node *s, *t, *u, *v, *q;
s=NULL;
q=*r;
fp = fopen(\"input_data.txt\",\"a\");
while(q!=NULL && strcmp(n,q->name)!=0 && strcmp(e,q->add)!=0){
s=q;
if(strcmp(n,q->name)<0)
q=q->left;
else
q=q->right;
}
if(q==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
fprintf(fp,\"DELETE %s %s\\t\\n\",n,e);
if(q->left==NULL && q->right==NULL){
if(s!=NULL){
if(s->left==q)
s->left=NULL;
else
s->right=NULL;
}
else *r=NULL;
}
else if(q->left==NULL || q->right==NULL){
u=(q->left!=NULL)?q->left:q->right;
if(s!=NULL){
if(s->left==q)
s->left=u;
else
s->right=u;
}
else *r=u;
}
else{
t=q;
v=q->right;
while(t->left!=NULL){
t=v;
v=v->left;
}
if(t->left==v)
t->left=v->right;
else
t->right=v->right;
q->name=v->name;
q->tel=v->tel;
q->add=v->add;
q=v;
}
free(q);
fclose(fp);
}
void deltel(node **r, char* t){
FILE *fp;
node *s, *a, *u, *v, *q;
s=NULL;
q=*r;
fp = fopen(\"input_data.txt\",\"a\");
while(q!=NULL && strcmp(t,q->tel)!=0){
s=q;
if(strcmp(t,q->tel)<0)
q=q->left;
else
q=q->right;
}
if(q==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
fprintf(fp, \"DELETE %s\\t\\n\",t);
if(q->left==NULL && q->right==NULL){
if(s!=NULL){
if(s->left==q)
s->left=NULL;
else
s->right=NULL;
}
else *r=NULL;
}
else if(q->left==NULL || q->right==NULL){
u=(q->left!=NULL)?q->left:q->right;
if(s!=NULL){
if(s->left==q)
s->left=u;
else
s->right=u;
}
else *r=u;
}
else{
a=q;
v=q->right;
while(v->left!=NULL){
a=v;
v=v->left;
}
if(a->left==v)
a->left=v->right;
else
a->right=v->right;
q->name=v->name;
q->tel=v->tel;
q->add=v->add;
q=v;
}
free(q);
fclose(fp);
}
void findname(node** r, char* n, char* e){
node* s;
s=*r;
while(s!=NULL && strcmp(n,s->name)!=0 && strcmp(e,s->add)!=0){
if(strcmp(n,s->name)<0)
s=s->left;
else
s=s->right;
}
if(s==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
update(s);
}
void findtel(node** r, char* t){
node* s;
s=*r;
while(s!=NULL && strcmp(t,s->tel)!=0){
if(strcmp(t,s->tel)<0)
s=s->left;
else
s=s->right;
}
if(s==NULL){
printf(\"값을 찾을 수 없습니다.\\n\");
return;
}
update(s);
}
void update(node *s){
int i,k,j=1;
char n[20];
char t[14];
char eid[15];
char edo[15];
char email[30];
char d[2]= {\'@\'};
printf(\"\\n\");
printf(\"\\tNAME:\");
scanf(\"%s\",n);
while(1){
printf(\"\\tTELEPHON(***-****-**** 형태로):\");
scanf(\"%s\",t);
if(t[3] == \'-\' && t[8] == \'-\')
break;
else{
printf(\"입력이 잘못되었습니다.\\n\");
}
}
while(j){
printf(\"\\tE-mail ID:\");
scanf(\"%s\",eid);
if(!strchr(eid,\'@\') && !strchr(eid,\'.\'))
break;
else
printf(\"입력이 잘 못 되었습니다. 재입력하세요\\n\");
}
while(j){
printf(\"\\n\\tE-mail domain:\");
scanf(\"%s\", edo);
i=strlen(edo);
for(k=0;k if(edo[k]==\'.\'){
j=0;
break;
}
}
if(j==1)
printf(\"입력이 잘 못 되었습니다. 재입력하세요\\n\");
}
strcpy(email,eid);
strcat(email,d);
strcat(email,edo);
strcpy(s->name, n);
strcpy(s->tel,t);
strcpy(s->add,email);
printf(\"\\n\");
}
void print(node *r){
if(r){
print(r->left);
printf(\"\\n \");
printf(\"\\t%s\\t\",r->name);
printf(\"\\t%s\\t\",r->tel);
printf(\"\\t%s\",r->add);
print(r->right);
}
}
추천자료
은행합병이 중소기업대출에 미치는 영향
재가노인복지서비스의 현황과 과제
GIS 용어정리 N
정신간호 실습 case study (망상장애, 정신분열)
[학위논문] 의료 CRM 시스템 운영이 병원 경영개선에 미치는 영향
폐암 케이스 [의약학]
Acute pancreatitis에 대한 사례연구
EDI기술 및 시장동향분석 2016 학점A+
뇌경색 케이스 (성인 케이스)
성인간호실습정형외과레포트
응급실 케이스(ER case study)- 경막하출혈(Subdural Hemorrhage)
체제적 교수설계모형
[논문 연구방법론 설정관련]
[원가회계][원가회계 분류][원가회계 환경][원가회계 제조][원가회계 통신업][원가회계 관점]...
소개글