Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19269261
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-31 14:20:40

/*五.编写程序,设计一个电话簿管理程序。
(源程序名:LJOB6.C   演示程序:TELBOOK.EXE)
要求:
每条程序包括:姓名,班级,电话号码,E-MAIL地址;
在main函数种设计并利用字符菜单进行管理项目的选择,
程序一次运行可根据选择完成一项或多项操作,
通过选择菜单的退出(或结束)项来结束程序的运行。
管理功能包括:加入一条新的电话记录,删除一条电话记录,显示保存的所有电话记录?
修改某条记录,查询,排序显示。
查询功能包括:按人名查询电话号码,
按电话号码查询人名(如宿舍电话一个号码对应多人)。
排序显示功能包括:按照电话号码排序显示,按照姓名字母排序显示,并且
当一页显示不下时可分页显示;
数据结构采用结构体,数据采用文本文件?*/
#include
#include
#define null 0
struct iombile
{char name[15];
 char classes[15];
 long int number;
 char email[20];
 struct iombile *next;
}tel[10];
struct iombile *tj(struct iombile *head,struct iombile *tel) /*添加新联系人*/
{struct iombile *p0,*p1;
 p1=head;
 p0=tel;
 if(head==null)
  {head=p0;p0->next=null;}
 else
  { while(p1->next==null)
    {p1=p1->next;
    }
    if(p1->next==null)
    {p1->next=p0;p0->next=null;
    }
  }
  return(head);
}
struct iombile *del(struct iombile *head,char name[15])  /*删除联系人*/
{struct iombile *p1,*p2;
 if(head==null){printf(\"\\n没有任何联系人!\\n\");goto end;}
 p1=head;
 while(strcmp(p1->name,name)!=0&&p1->next!=null)
 {p2=p1;p1=p1->next;}
 if(strcmp(p1->name,name)==0
  {if(p1==head)head=p1->next;
   else p2->next=p1->next;
   printf(\"操作成功!!\");
  }
 else printf(\"找不到该名字的联系人\");
 end:return(head);
}
void print(struct iombile *head)  /*输出链表*/
{ struct iombile *p;
  p=head;
  if(head!=null)
   do
    {printf(\"\\t姓名\\t班级\\t电话号码\\temail\\n\");
     printf(\"%s %s %ld %s\",p->name,p->classes,p->number,p->email);
     p=p->next;
    }while(p!=mull);
}
struct iombile *bj(struct iombile *head,char name[15])   /*编辑联系人*/
{ struct iombile *p1;
 if(head==null){printf(\"\\n没有任何联系人!\\n\");goto end;}
 p1=hend;
 while(strcmp(p1->name,name)!=0&&p1->next!=null)
 {p1=p1->next;}
  if(strcmp(p1->name,name)==0)
  {printf(\"要修改的联系人\\n\");
   printf(\"\\t姓名\\t班级\\t电话号码\\temail\\n\");
   printf(\"%s %s %ld %s\",p1->name,p1->classes,p1->number,p1->email);
   printf(\"请输入要修改后联系人的名字:\");scanf(\"%s\",p1->name);
   printf(\"请输入要修改后联系人的班级:\");scanf(\"%s\",p1->classes);
   printf(\"请输入要修改后联系人的电话号码:\");scanf(\"%ld\",&p1->number);
   printf(\"请输入要修改后联系人的email:\");scanf(\"%s\",p1->email);
  }
  else   printf(\"找不到要修改的联系人\\n\");
  end:return(head);
struct iombule *ten(struct iombile *head) /*按电话排序*/
{ struct iombile *p,*p1;
  for(p=head;p!=null;p=p->next)
   for(p1=head->next;p1!=
    if(p1->next
}
man /*按姓名排序,写不下去了~越写越难写~都不知道写什么的好~*/
{
}
tt /*查找电话号码*/
{
}
dd /*要查找的姓名*/
main()
{struct iombile *head,*p1,*p2,*p;
 FILE *fp;
 int i;
 char d[5];
 fp=fopen(\"pp\",\"rb\");
 printf(\"\\t\\t欢迎使用电话本管理软件~~\\n\");
 KA:printf(\"\\t1,添加新联系人\\t2,删除一个联系人\\t3,显示电话本所有的联系人\\n\\n\\t4,编辑电话本\\t5,查询联系人\\t6,退出本系统\");
 scanf(\"%s\",d);
 switch(d)
 { case \'1\': {printf(\"请输入新联系人的姓名:\");scanf(\"%s\",tel.name);
              printf(\"请输入新联系人的班级: \");scanf(\"%s\",tel.classes);
              printf(\"请输入新联系人的电话号码:\");scanf(\"%ld\",&tel.number);
              printf(\"请输入新联系人的email:\"):scanf(\"%s\",tel.email);
         head=tj(head,&tel);
              printf(\"\\t添加成功!!\\n\");goto KA;
             }
   case \'2\': {printf(\"请输入要删除的联系人:\");scanf(\"%s\" ,tel.name);
              head=del(head,tel.name);
              goto KA;
             }
   case \'3\': {print(head);printf(\"\\n\\t1,按照电话排序\\t2,按照姓名排列\\t3,返回上一级菜单\");
              scanf(\"%s\",d);goto KB;
             }
   case \'4\': {printf(\"请输入要编辑的联系人的名字:\");scanf(\"%s\",tel.name);
              head=bj(head,tel.name);printf(\"编辑成功!!\");
              goto KA;
             }
   case \'5\': {printf(\"\\t1,按电话号码查询\\t2,按照姓名查询\\t3,返回上一级菜单\");
              scanf(\"%s\",d);goto KC;
             }
   case \'6\': {goto KD;}
   default : {printf(\"输入错误,请重新输入\");goto KA;
             }
 }
 KB:switch(d)
 { case \'1\': {head=ten(head);print(head);goto KA;
             }
   case \'2\': {head=man(head);print(head);goto KA;
             }
   case \'3\': {goto KA;
             }
   default : {printf(\"输入错误,请重新输入\");goto KB;
             }
 }
 KC:switch(d)
 { case \'1\': {printf(\"请输入要查询的电话号码:\");scanf(\"%ld\",&tel.number);
              tt(head,&tel);goto KA;
             }
   case \'2\': {printf(\"请输入要查询的姓名:\");scanf(\"%s\",tel.name);
              dd(head,&tel);goto KA;
             }
   case \'3\': {goto KA;
             }
   default : {printf(\"输入错误,请重新输入\");goto KC;
             }
 }
 KD:for(p=head;p!=null;p=p->next)
    fwrite(p,sizeof(struct iombile),1,fp);
    fclose(fp);
    exit(0);
}
阅读(1013) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~