动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息



本月文章推荐
.C程序设计例解(05).
.一个四舍五入函数.
.美丽的宝石.
.C++数据结构学习:用栈做表达式求.
.游戏开发新手入门指南.
.如何对数据流 INSERT、APPEND.
.用C++程序删除文本文件中以“//”.
..
.用CB在WIN.INI中保存信息.
.贪婪算法---0/1背包问题.
.共享软件的注册加密法.
.C语言编程常见问题解答(目录).
.上海黑暗之龙--麻将原代码.
.控制C++的内存分配.
.ASPDotNet.
.C语言编程技巧汇萃(上).
.使用C++深入研究.NET委托与事件.
.shell要如何分类呢?.
.C语言入门之分支结构(1).
.C++中的运算符重载函数基础及其值.

通讯录的源代码(用链表实现)

发表日期:2008-3-8 |


#include <stdio.h>
#include <stdlib.h>  /*与malloc.h差不多*/
#include <string.h>
#define maxlen 100
strUCt persons
{ char name[10]; /*定义结构体数组用于缓存数据*/
 char addr[20];
 char phnum[10];
 }persons[maxlen];
;
;
;
typedef struct lnode{ /*通讯录结构中结点的定义*/
 char name[10]; /*姓名*/
 char addr[20]; /*地址*/
 char phnum[10]; /*电话*/
 struct lnode *next;
 }listnode,*linklist;
;
;
;
 linklist head=NULL,r=NULL; /*定义头指针和尾指针*/
 listnode  *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7;
 int i;
 char name1[10],ch;
 char str1[20];
 FILE *fp;  /*定义文件指针*/
;
;
void creat()  /*将文件的信息读入结构体数组在转存入链表中*/
{   int j;
 long k;
 fp=fopen("people.txt","r+t"); /*打开文件*/
 if(fp!=NULL)
 {for(i=1;i<maxlen;i++)
{ j=fgetc(fp);
 if(j==EOF)
 return;
 k=i-1;
 fseek(fp,k*sizeof(struct persons),0); /*读取一个人的信息*/
 fread(&persons[i],sizeof(struct persons),1,fp);
 s=(linklist)malloc(sizeof(listnode)); /*装存入链表中*/
 strcpy(s->name,persons[i].name);
 strcpy(s->addr,persons[i].addr);
 strcpy(s->phnum,persons[i].phnum);
 if(head==NULL)  /*用尾插法将其插入链表中*/
 head=s;
 else
 r->next=s;
 r=s;}
}
 else
 { fp=fopen("people.txt","w"); /*不能打开另开辟一个文件*/
 i=1;
     }
}
;
;
;
void Show() /*显示所有的信息*/
{    p1=head;
     while(p1!=NULL)
   { printf(" name:%s ",p1->name);
     printf(" addr:%s",p1->addr);
     printf(" phnum:%s",p1->phnum);
     p1=p1->next;
    }
 }
;
;
;
void Delete() /*定义一个删除的函数*/
{ printf(" please input the name:");
 gets(name1); /*输入要删除人的姓名*/
 p4=head;
 if(strcmp(p4->name,name1)==0)
     {  p4=p4->next;  /*根据各种情况判定可能性*/
 head=p4;
     }
 else
     {  while(strcmp(p4->next->name,name1)!=0)
 p4=p4->next;
 p5=p4->next;
 p4->next=p5->next;
 free(p5);
 }  } ;
;
;
void Find()  /*查找的函数定义*/
{   printf(" please input the name:");
  p0=head;
  gets(name1); /*查找人的姓名输入*/
    while(strcmp(name1,p0->name)!=0&&p0!=NULL)
  p0=p0->next;
  if(p0==NULL)

  printf(" It is not exit in the addr-book!");
  else
      {  printf(" name:%s ",p0->name);
  printf(" addr:%s",p0->addr);
  printf(" phnum:%s",p0->phnum);
        }
}
;
;
;
void Input() /*向通讯录中输入一个人的信息*/
{ s=(linklist)malloc(sizeof(listnode));
     printf(" please input the sb's meg:");
      printf(" name:");
 scanf("%s",s->name);
 printf(" Addr:");
 scanf("%s",s->addr);
 printf(" phnum:");
 scanf("%s",s->phnum);
 if(head==NULL)
 head=s;
 else
 r->next=s;
 r=s;
}
;
;
;
void Alter()  /*改变一个人的信息*/
{
 int j;
 printf(" Please input the name:");
     gets(name1); /*输入要人的姓名*/
 p3=head;
 while(strcmp(name1,p3->name)!=0&&p3!=NULL)
 p3=p3->next;
 if(p3==NULL)
 printf(" It is not exit in the addr-book!");
 else
     {  printf(" please input the new meg!"); /*输入要改人的新信息*/
 printf(" name:");  
 scanf("%s",name1);
 strcpy(p3->name,name1);
 printf(" Addr:");
 scanf("%s",name1);
 strcpy(p3->addr,name1);
 printf(" phnum:");
 scanf("%s",name1);
 strcpy(p3->phnum,name1);
      }
}
;
;
;
void Save()  /*保存信息*/
{ int j;
 fp=fopen("people.txt","w");
 for(p2=head,j=0;p2!=NULL;j++,p2=p2->next)/*将信息装出入结构体数组在出入链表中*/
 {          /*避免地址的出入,造成乱码文件*/
 strcpy(persons[j].name,p2->name);
 strcpy(persons[j].addr,p2->addr);
 strcpy(persons[j].phnum,p2->phnum);
 fwrite(&persons[j],sizeof(struct persons),1,fp);
 }
}
;
;
;
void main()
{ creat();
 do
    {  printf(" WELCOME TO USE Pan Weifeng's Address book");/*显示提示的信息*/
 printf(" Please make a choice below:");
 printf(" 1.Show all the meg");
 printf(" 2.Delete a piece of meg");
 printf(" 3.Find a piece of meg");
 printf(" 4.Insert a piece of meg");
 printf(" 5.Alter a piece of meg");
 printf(" 6.Save and Exit");
 printf(" ");
 printf(" Input Your Choice:");
 ch=getche();
 switch(ch)
       {   case '1':  Show(); /*用单条件多选择语句实现调用与循环*/
        break;
           case '2':  Delete();
        break;
           case '3':  Find();
        break;

    case '4':  Input();
        break;
    case '5':  Alter();
        break;
    case '6':  Save();
        fclose(fp);
        exit(0);
        break;
    default:
     printf(" ********************************* ");
     printf("      The num should 1-4!!!       ");
     printf(" **********************************");
     break;
 }
     }while(1);
     } 

上一篇:C语言库函数 (A类字母) 人气:643
下一篇:透视“语言大战”:C++呼唤敏捷实践 人气:420
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-8 ECShop v2.6.0 Build 20080707(G
2008-7-8 动网论坛PHP版 v2.0++ Build 080
2008-7-8 中国IT总舵 v9.0 UTF版
2008-7-8 凹丫丫新闻发布系统 v4.6 Build
2008-7-8 topview数据查询 v3.0
2008-7-8 Z-Blog v1.8 Spirit Build 80708
2008-7-8 Z-Blog v1.8 Spirit Build 80708
2008-7-8 凹丫丫新闻发布系统 v4.6 Build
2008-7-8 新动软万能网站内容管理cms系统
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報