简单电话簿管理系统(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("\n名字:");puts(head->name);
  printf("\n电话号码:");puts(head->number);
  printf("\n工作单位:");puts(head->job);
  printf("\nE-mail:");puts(head->email);
  putchar('\n');
  head=head->next;n++;
  if(n%8==0){
  printf("按回车键显示下一页");
  getchar();
  system("cls");
  caidan();
  } 
 }
 printf("总共%d个联系人\n",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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值