C 언어 로 전화번호 부 관리 시스템 실현
/* ,
:2017.9,11
*/
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define NULL 0
typedef struct lianxiren{
char job[30];
char number[20];
char name[10];
char email[30];
struct lianxiren*next;
}lianxiren;
#define LEN sizeof(lianxiren)
lianxiren* creat_list()
{
lianxiren *head,*p1,*p2;
char name[10];int n=0;
head=NULL;
p1=(lianxiren *)malloc(LEN);
p2=p1;
printf(" ( 0 ):");
gets(name);
if(strcmp(name,"0")==0)return 0;
else {
strcpy(p1->name,name);
printf(" :");gets(p1->number);
printf(" :");gets(p1->job);
printf(" E-mail:");gets(p1->email);
}
while(1)
{
n++;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
printf(" ( 0 ):");
gets(name);
if(strcmp(name,"0")==0)break;
else{
p1=(lianxiren*)malloc(LEN);
strcpy(p1->name,name);
printf(" :");gets(p1->number);
printf(" :");gets(p1->job);
printf(" E-mail:");gets(p1->email);}
}p2->next=NULL;
return head;
}//
lianxiren* shifang_list(lianxiren*head)
{
lianxiren*p1;
for(;head!=NULL;)
{
p1=head;
head=head->next;
free(p1);
}
return head;
}//
void print_list(lianxiren*head)
{
void caidan();
int n=0;
printf(" :");
while(head!=NULL)
{
printf("
:");puts(head->name);
printf("
:");puts(head->number);
printf("
:");puts(head->job);
printf("
E-mail:");puts(head->email);
putchar('
');
head=head->next;n++;
if(n%8==0){
printf(" ");
getchar();
system("cls");
caidan();
}
}
printf(" %d
",n);
}//
int length(lianxiren*head)
{
int n = 0;
lianxiren *p;
p = head;
while(p != NULL)
{
p = p->next;
n++;
}
return n;
}
void paixu1(lianxiren*head)
{
void caidan();
int n=length(head);
int i,j;
lianxiren temp,*p;
p=head;
lianxiren a[100];
for(i=1;i<=n;i++)
{
strcpy(a[i].name,p->name);
strcpy(a[i].number,p->number);
strcpy(a[i].job,p->job);
strcpy(a[i].email,p->email);
p=p->next;
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{if(strcmp(a[j].number,a[j+1].number)>0)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf(" :");
for(i=1;i<=n;i++)
{
printf("
:");puts(a[i].name);
printf("
:");puts(a[i].number);
printf("
:");puts(a[i].job);
printf("
E-mail:");puts(a[i].email);
putchar('
');
if(i%8==0){
printf(" ");
getchar();
system("cls");
caidan();
}
}
printf(" %d
",n);
}
void paixu2(lianxiren*head)
{
void caidan();
int n=length(head);int i,j;
lianxiren temp,*p;
p=head;
lianxiren a[100];
for(i=1;i<=n;i++)
{
strcpy(a[i].name,p->name);
strcpy(a[i].number,p->number);
strcpy(a[i].job,p->job);
strcpy(a[i].email,p->email);
p=p->next;
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{if(strcmp(a[j].name,a[j+1].name)>0)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf(" :");
for(i=1;i<=n;i++)
{
printf("
:");puts(a[i].name);
printf("
:");puts(a[i].number);
printf("
:");puts(a[i].job);
printf("
E-mail:");puts(a[i].email);
putchar('
');
if(i%8==0){
printf(" ");
getchar();
system("cls");
caidan();
}
}
printf(" %d
",n);
}
void paixu_list(lianxiren*head)
{
void caidan();
if(head==NULL)
{printf(" , !");
return;
}
char a;
printf("1,
2,
");
printf(" :");
a=getchar();
getchar();
switch(a){
case'1':paixu1(head);break;
case'2':paixu2(head);break;
default:printf(" !
");break;
}
}
void chazhao1(lianxiren*head)
{if(head==NULL)
{
printf(" , ");
return;
}
char name[10];
printf(" :");gets(name);
while(strcmp(name,head->name)!=0)
{head=head->next;
if(head==NULL){printf("
");
return;}
}
printf("%s :",name);
puts(head->number);
printf("
:");puts(head->job);
printf("
E-mail:");puts(head->email);
}//
void chazhao2(lianxiren*head)
{if(head==NULL)
{
printf(" , ");
return;
}
char number[20];
printf(" :");gets(number);
while(strcmp(number,head->number)!=0)
{head=head->next;
if(head==NULL){printf("
");
return;}
}
printf("%s :",number);
puts(head->name);
printf("
:");puts(head->job);
printf("
E-mail:");puts(head->email);
}//
void chazhao(lianxiren*head)
{
int n;
printf(" 1,
2,
3,
:");
scanf("%d",&n);
getchar();
while(1)
{
switch(n){
case 1:{chazhao1(head);printf(" :");scanf("%d",&n);getchar();}break;
case 2:{chazhao2(head);printf(" :");scanf("%d",&n);getchar();}break;
case 3:return;break;
default:{printf(" !");printf(" :");scanf("%d",&n);getchar();}break;
}}
}//
void add_list(lianxiren*head)
{
lianxiren*p1,*p2,*h;
char name[10];
printf(" ( 0 )");
gets(name);
if(strcmp(name,"0")!=0)
{
p1=(lianxiren*)malloc(LEN);
strcpy(p1->name,name);
printf(" :");gets(p1->number);
printf(" :");gets(p1->job);
printf(" E-mail:");gets(p1->email);
}
else return;
h=p1;
while(1)
{
p2=p1;
printf(" ( 0 )");
gets(name);
if(strcmp(name,"0")==0)break;
else{
p1=(lianxiren*)malloc(LEN);
strcpy(p1->name,name);
printf(" :");gets(p1->number);
printf(" :");gets(p1->job);
printf(" E-mail:");gets(p1->email);
p2->next=p1;
}
}
p1=head->next;
head->next=h;
p2->next=p1;
}//
lianxiren*xiugai_list(lianxiren*head)
{
char a[20];
printf(" :");
gets(a);
if(head==NULL)
{
printf(" , ");
return head;
}
lianxiren*p=head;
while(strcmp(a,p->name)!=0&&strcmp(a,p->number)!=0)
{
p=p->next;
if(p==NULL){printf("
");
return head;}
}
printf(" !");
printf("
:");puts(p->name);
printf("
:");puts(p->number);
printf("
:");puts(p->job);
printf("
E-mail:");puts(p->email);
putchar('
');
int n;
while(1)
{printf(" (1, 2, 3, 4,E-mail 5, ):");
scanf("%d",&n);
getchar();
switch(n)
{
case 1:{printf(" :");gets(p->name);}break;
case 2:{printf(" :");gets(p->number);}break;
case 3:{printf(" :");gets(p->job);}break;
case 4:{printf(" E-mail:");gets(p->email);}break;
case 5:return head;break;
default:printf(" !");break;
}
}
}//
lianxiren*delete_list(lianxiren*head)
{
char a[20];
printf(" :");
gets(a);
if(head==NULL)
{
printf(" , ");
return head;
}
lianxiren*p=head,*p1;
while(strcmp(a,p->name)!=0&&strcmp(a,p->number)!=0)
{
p1=p;
p=p->next;
if(p==NULL){printf("
");
return head;}
}
printf(" !");
printf("
:");puts(p->name);
printf("
:");puts(p->number);
printf("
:");puts(p->job);
printf("
E-mail:");puts(p->email);
putchar('
');
char n;
printf(" (Y/N)");
n=getchar();
switch(n)
{
case 'y':
case 'Y':{if(p==head){head=p->next;free(p);}else{p1->next=p->next;free(p);}printf(" !");}break;
case 'N':
case 'n':printf(" !");break;
default:printf(" !");break;
}
return head;
}//
void save_list(lianxiren*head)
{FILE *fp;
if((fp=fopen("dianhuabu.dat","wb"))==NULL) {
printf("File cannot be opened
");
exit(0);}
if(head==NULL)
{
printf("
");
return;
}
lianxiren*p1=head;
while(p1!=NULL)
{
if(fwrite(p1,LEN,1,fp)!=1){
printf("cannot open file
");
return;}
p1=p1->next;
}
printf(" !
");
fclose(fp);
}//
lianxiren*load_list(lianxiren*head)
{FILE *fp;
if((fp=fopen("dianhuabu.dat","rb"))==NULL) {
printf(" ,
");
exit(0);}
lianxiren*p1,*p2;
p1=(lianxiren*)malloc(LEN);
if(fread(p1,LEN,1,fp)==0)
{printf(" , ");
return head;
}
head=p1;
p2=p1;
p1=(lianxiren*)malloc(LEN);
while(fread(p1,LEN,1,fp))
{
p2->next=p1;
p2=p1;
p1=(lianxiren*)malloc(LEN);
}
p2->next=NULL;
free(p1);
return(head);
fclose(fp);
}//
int kouling()
{
char s[20];
printf(" :");
int n=0;
while(n<3)
{scanf("%s",s);
getchar();
if(strcmp(s,"20160390527")==0)
return 0;
else{n++;
if(n==3){
printf(" ,
");
return 1;}
printf(" ,
");
}
}return 1;
}// , :20160390527
void caidan()
{
printf("
");
printf("********************************************
");
printf(" 1、 ( )
");
printf(" 2、
");
printf(" 3、
");
printf(" 4、
");
printf(" 5、
");
printf(" 6、 ( )
");
printf(" 7、
");
printf("********************************************
");
}//
void main()
{
if(kouling()) return;//
system("cls");
caidan();//
printf(" :");
int n;scanf("%d",&n);
getchar();
lianxiren*head;
while(1){
system("cls");
caidan();
switch(n){
case 1:{
head=creat_list();
system("cls");
caidan();
print_list(head);
save_list(head);
shifang_list(head);
printf("********************************************
");
printf("
, :");
scanf("%d",&n);
getchar();}break;// ( 、 , )
case 2:{
head=load_list(head);
chazhao(head);
shifang_list(head);
printf("********************************************
");
printf("
, :");
scanf("%d",&n);
getchar();}break;// ( 、 、 )
case 3:{
head=load_list(head);
add_list(head);
system("cls");
caidan();
print_list(head);
save_list(head);
shifang_list(head);
printf("********************************************
");
printf("
, :");
scanf("%d",&n);
getchar();}break;// ( 、 、 、 )
case 4:{
head=load_list(head);
head=xiugai_list(head);
save_list(head);
shifang_list(head);
printf("********************************************
");
printf("
, :");
scanf("%d",&n);
getchar();}break;// ( , 、 、 )
case 5:{
head=load_list(head);
head=delete_list(head);
save_list(head);
shifang_list(head);
printf("********************************************
");
printf("
, :");
scanf("%d",&n);
getchar();}break;// ( , 、 、 )
case 6:{
head=load_list(head);
paixu_list(head);
shifang_list(head);
printf("********************************************
");
printf("
, :");
scanf("%d",&n);
getchar();}break;// ( , 、 )
case 7:{
system("cls");
return;}break;//
default:{
printf("
, :");
scanf("%d",&n);
getchar();}break;
}}
}
더 많은 학습 자 료 는 주제 인 에 주목 하 세 요.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.