用C实现的一个电话号码簿

一个电话号码管理程序,在VC++ 6.0上通过。

#include<stdio.h>#include<string.h>struct fileh //*************************************定义结构体(文件信息缓存区){       long fc;}fh;struct telsys //*********************************定义结构体(文件数据缓存区){       char usename[30];       char useadd[50];       long usetel;}tel[200];

void addnew(); //*********************************定义函数类型void del();void display();void edit();void findname();void findtel();void quit();void qingli();void qingli() //*************************************信息文件的清理 (清理垃圾数据)√{     long i=0;     FILE *f;     if((f=fopen("telefon.dat","rb"))==NULL)         {         printf("打开文件失败!即将退出系统。\n");         getch();         exit(0);         }     fseek(f,0,0);     fread(&fh,sizeof(struct fileh),1,f);     while(i<fh.fc)     {        fseek(f,sizeof(struct fileh)+(i)*sizeof(struct telsys),0);        fread(&tel[i],sizeof(struct telsys),1,f);        i++;     }   fclose(f);

i=0;   if((f=fopen("telefon.dat","wb+"))==NULL)         {         printf("打开文件失败!即将退出系统。\n");         getch();         exit(0);         }     while(i<fh.fc)     {        fseek(f,0,0);        fwrite(&fh,sizeof(struct fileh),1,f);        fseek(f,sizeof(struct fileh)+(i)*sizeof(struct telsys),0);        fwrite(&tel[i],sizeof(struct telsys),1,f);        i++;     }     fclose(f); printf("\n\n\n\t\t\t\t文件清理完毕!");}void del() //***************************************删除函数√{     long i=0,in=0;  char ch;  FILE *f;     if((f=fopen("telefon.dat","rb+"))==NULL)     {         printf("打开文件失败!即将退出系统。\n");         getch();         exit(0);     }     fseek(f,0,0);     fread(&fh,sizeof(struct fileh),1,f);  if (fh.fc>0)  {  do  {   fseek(f,0,0);   fread(&fh,sizeof(struct fileh),1,f);   display();   do   {    printf("请输入要删除的资料序号:\n");    scanf("%ld",&in);    if(in<=0)     printf("[注意]:请输入大于0的编号!\n");   }while(in<=0);   if(in<=fh.fc)   {    i=in;    while(i<=fh.fc)    {     fseek(f,sizeof(struct fileh)+(i)*sizeof(struct telsys),0);     fread(&tel[i],sizeof(struct telsys),1,f);     strcpy(tel[i-1].usename,tel[i].usename);     strcpy(tel[i-1].useadd,tel[i].useadd);     tel[i-1].usetel=tel[i].usetel;     i++;    }    fh.fc--;    fseek(f,0,0);    fwrite(&fh,sizeof(struct fileh),1,f);    i=in;    while(i<=fh.fc)    {     fseek(f,sizeof(struct fileh)+(i-1)*sizeof(struct telsys),0);     fwrite(&tel[i-1],sizeof(struct telsys),1,f);     i++;    }    printf("删除信息完毕!");    }   else   {    printf("没有此序号的资料!(-_-;)");   }   if (fh.fc>0)   {    printf("是否继续修改?(y/n):");    ch=getch();   }   else   {    ch='n';    printf("没有资料可删除!");    getch();   }  }while(ch=='y'||ch=='Y'); } else {  printf("\n\n\n\n\n\n\t\t\t\t没有资料可删除!");  getch(); } fclose(f);}void findtel() //***********************************按号查找函数√{     long i=0,in=0,pan=0,panyiyang=0,panduan=0;  FILE *f;     if((f=fopen("telefon.dat","rb"))==NULL)         {         printf("打开文件失败!即将退出系统。\n");         getch();         exit(0);         }     fseek(f,0,0);     fread(&fh,sizeof(struct fileh),1,f);  if (fh.fc>0)  {  fseek(f,sizeof(struct fileh),0);  fread(&tel,fh.fc*sizeof(struct telsys),1,f);  do  {   printf("\n\n\n\n\n\n\t\t\t请输入要查找的电话号码:");   scanf("%ld",&in);   if(in<4000000||in>4999999)             printf("\t\t\t[注意]:请输入4000000至4999999的号码!\n");  }while(in<4000000||in>4999999);  while(i<fh.fc)  {   fseek(f,sizeof(struct fileh)+(i)*sizeof(struct telsys),0);   fread(&tel[i],sizeof(struct telsys),1,f);   if(tel[i].usetel==in)   {    panyiyang++;   }   i++;  }  if(panyiyang!=0)   {   system("cls");   printf("╔══╦══════════╦═══════════════╦════╗\n");   printf("║序号║       订户名       ║           订户地址           ║  电 话 ║\n");   printf("╚══╩══════════╩═══════════════╩════╝\n");   printf("┌──┬──────────┬───────────────┬────┐\n");   i=0;   while(i<fh.fc)   {    if (tel[i].usetel==in)    {     panduan++;     printf("│%-4d│%-20s│%-30s│%-8ld│\n",i+1,tel[i].usename,tel[i].useadd,tel[i].usetel);     if (panduan!=panyiyang)      printf("├──┼──────────┼───────────────┼────┤\n");    }    i++;   }  printf("└──┴──────────┴───────────────┴────┘\n");  }  else  {   printf("\n\t\t\t没有找到!\n");  } } else {  printf("\n\n\n\n\n\n\t\t\t\t没有资料可查找!"); } fclose(f); getch();}void findname() //**********************************按名查找函数{     long i=0,pan=0,panyiyang=0,panduan=0;  char in[30];  FILE *f;     if((f=fopen("telefon.dat","rb"))==NULL)         {   printf("打开文件失败!即将退出系统。\n");   getch();   exit(0);         }     fseek(f,0,0);     fread(&fh,sizeof(struct fileh),1,f);  if (fh.fc>0)  {  fseek(f,sizeof(struct fileh),0);  fread(&tel,fh.fc*sizeof(struct telsys),1,f);  printf("\n\n\n\n\n\n\t\t\t请输入要查找的订户名:");  scanf("%s",&in);  while(i<fh.fc)  {   if(strcmp(tel[i].usename,in)==0)   {    panyiyang++;   }   i++;  }  if(panyiyang!=0)  {   system("cls");   printf("╔══╦══════════╦═══════════════╦════╗\n");   printf("║序号║       订户名       ║           订户地址           ║  电 话 ║\n");   printf("╚══╩══════════╩═══════════════╩════╝\n");   printf("┌──┬──────────┬───────────────┬────┐\n");   i=0;   while(i<fh.fc)   {    if (strcmp(tel[i].usename,in)==0)    {     panduan++;     printf("│%-4d│%-20s│%-30s│%-8ld│\n",i+1,tel[i].usename,tel[i].useadd,tel[i].usetel);     if (panduan!=panyiyang)      printf("├──┼──────────┼───────────────┼────┤\n");    }    i++;   }   printf("└──┴──────────┴───────────────┴────┘\n");  }  else  {   printf("\n\t\t\t没有找到!\n");  } } else {  printf("\n\n\n\n\n\n\t\t\t\t没有资料可查找!"); } fclose(f); getch();}void edit() //**************************************修改函数√{     long in=0;     char ch;  FILE *f;     if((f=fopen("telefon.dat","rb+"))==NULL)     {         printf("打开文件失败!即将退出系统。\n");         getch();         exit(0);     }     fseek(f,0,0);     fread(&fh,sizeof(struct fileh),1,f);     if(fh.fc>0)  {  do  {   fseek(f,0,0);   fread(&fh,sizeof(struct fileh),1,f);   display();   do   {    printf("请输入要修改的资料序号:\n");    scanf("%ld",&in);    if(in<=0)     printf("[注意]:请输入大于0的编号!\n");   }while(in<=0);   if(in<=fh.fc)   {    printf("请您输入姓名:");    scanf("%s",&tel[in-1].usename);    printf("请您输入地址:");    scanf("%s",&tel[in-1].useadd);    do    {     printf("请您输入电话号码:");     scanf("%ld",&tel[in-1].usetel);     if(tel[in-1].usetel<4000000||tel[in-1].usetel>4999999)     printf("[注意]:请输入4000000至4999999的号码!\n");    }while(tel[in-1].usetel<4000000||tel[in-1].usetel>4999999);    fseek(f,sizeof(struct fileh)+(in-1)*sizeof(struct telsys),0);    fwrite(&tel[in-1],sizeof(struct telsys),1,f);    printf("修改信息完毕!");         }   else   {    printf("没有此序号的资料!(-_-;)");   }   printf("是否继续修改?(y/n):");   ch=getch();  }while(ch=='y'||ch=='Y'); } else {  printf("\n\n\n\n\n\n\t\t\t\t没有资料可修改!");  getch(); }fclose(f);}void display() //**********************************查看函数√{     long i=0;     FILE *f;     if((f=fopen("telefon.dat","rb"))==NULL)         {         printf("打开文件失败!即将退出系统。\n");         getch();         exit(0);         }  system("cls");     fseek(f,0,0);     fread(&fh,sizeof(struct fileh),1,f);  if(fh.fc>0)  {  printf("╔══╦══════════╦═══════════════╦════╗\n");     printf("║序号║       订户名       ║           订户地址           ║  电 话 ║\n");  printf("╚══╩══════════╩═══════════════╩════╝\n");  printf("┌──┬──────────┬───────────────┬────┐\n");        while(i<fh.fc)        {            fseek(f,sizeof(struct fileh)+(i)*sizeof(struct telsys),0);            fread(&tel[i],sizeof(struct telsys),1,f);            printf("│%-4d│%-20s│%-30s│%-8ld│\n",i+1,tel[i].usename,tel[i].useadd,tel[i].usetel);      if (i!=fh.fc-1)       printf("├──┼──────────┼───────────────┼────┤\n");            if ((i+1)%10==0) //-------------------------------------------10个号码分页显示   {getch();}        i++;        }  printf("└──┴──────────┴───────────────┴────┘\n"); } else {  printf("\n\n\n\n\n\n\t\t\t\t没有资料可显示!"); }     fclose(f);}void addnew() //************************************新增函数√{     char ch;     FILE *f;

if((f=fopen("telefon.dat","rb+"))==NULL)         {         printf("\n\n\n\t\t\t\t打开文件失败!即将退出系统。\n");         getch();         exit(0);         }     do  {         fseek(f,0,0);         fread(&fh,sizeof(struct fileh),1,f);         if(fh.fc<200)   {   fh.fc++;   printf("\n\n\n\t\t\t请您输入姓名:");   scanf("%s",&tel[fh.fc-1].usename);   printf("\t\t\t请您输入地址:");   scanf("%s",&tel[fh.fc-1].useadd);   do   {    printf("\t\t\t请您输入电话号码:");    scanf("%ld",&tel[fh.fc-1].usetel);    if(tel[fh.fc-1].usetel<4000000||tel[0].usetel>4999999)    printf("\t\t\t[注意]:请输入4000000至4999999的号码!\n");   }while(tel[fh.fc-1].usetel<4000000||tel[0].usetel>4999999);   fseek(f,0,0);   fwrite(&fh,sizeof(struct fileh),1,f);      fseek(f,sizeof(struct fileh)+(fh.fc-1)*sizeof(struct telsys),0);      fwrite(&tel[fh.fc-1],sizeof(struct telsys),1,f);   printf("\t\t\t增加信息完毕!是否继续填加?(y/n):");   ch=getch();   }   else   {    printf("\t\t\t超过极限了。不能再存储了!"); 
ch='n';   } }while(ch=='y'||ch=='Y'); fclose(f);}void quit() //************************************退出函数{     qingli();     printf("\n\t\t\t欢迎使用,本系统!\n\n");           printf("\t\t\t作者:金日国\n");           printf("\t\t\tE-mail:jrg9522@126.com\n");           printf("\t\t\tQQ:70939594\n");           printf("\t\t\t软件性质:自由软件\n");           printf("\t\t\t修改说明:\n");     printf("\t\t\t\t本次美化了界面;\n");     printf("\t\t\t\t但用户输入错误BUG还没改;\n");     printf("\t\t\t\t在汉字输入方式输入数字和\n\t\t\t\t英文输入方式输入的数字其实\n\t\t\t\t不一样,这个BUG还没改。;\n\t\t\thelp me!");     getch();}void main() //************************************主函数{     char ch;     FILE *f;     if((f=fopen("telefon.dat","ab"))==NULL)        {        printf("\n\n\n\t\t\t\t打开文件失败!即将退出系统。\n");        getch();        exit(0);        }     fclose(f);     do     {        system("cls");        printf("\n\t\t\t╔═══════════════╗\n");                printf("\t\t\t║     电话号码存储系统V1.3     ║\n"); 
printf("\t\t\t╚═══════════════╝\n");                printf("\t\t\t┌───────────────┐\n");                printf("\t\t\t│ 1.加入新电话信息             │\n");    printf("\t\t\t├───────────────┤\n");                printf("\t\t\t│ 2.修改信息                   │\n");          printf("\t\t\t├───────────────┤\n");                printf("\t\t\t│ 3.删除信息                   │\n");          printf("\t\t\t├───────────────┤\n");                printf("\t\t\t│ 4.按电话号码查找信息         │\n");          printf("\t\t\t├───────────────┤\n");                printf("\t\t\t│ 5.按名称查找信息             │\n");          printf("\t\t\t├───────────────┤\n");                printf("\t\t\t│ 6.查看信息                   │\n");          printf("\t\t\t├───────────────┤\n");                printf("\t\t\t│ 7.退出系统                   │\n");          printf("\t\t\t└───────────────┘\n");                printf("\t\t\t  请按操作编号:");        ch=getch();        switch (ch)        {           case '1':                system("cls");                addnew();                break;           case '2':                system("cls");                edit();                break;           case '3':                system("cls");                del();                break;           case '4':                system("cls");                findtel();                break;           case '5':                system("cls");                findname();                break;           case '6':                display();    getch();                break;           case '7':                system("cls");                quit();                break;        }     }while(ch!='7');}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 数据
, 结构
, 输出缓存区
, c++、cout缓存区问题
, long
, 电话号码
void
电话号码簿、电话号码簿模板、北京市电话号码簿、党政机关电话号码簿、机关内部电话号码簿,以便于您获取更多的相关知识。

时间: 2024-11-02 17:11:13

用C实现的一个电话号码簿的相关文章

理解UDDI

services(Web服务)是通过因特网或者其它网络而进行服务.然而,很多时候公司或者企业都需要发布服务提供,服务目的,以及服务协议的广告.例如,如果你在你的Web站点上加入证券报价机,你可以通过Web服务来产生关于证券报价机方面的广告.但是,你如何知道这一广告是否有用?它的作用在哪里?它会给你带来利益吗?而且,在哪里及如何访问这些广告?答案就是UDDI (统一描述.发现和集成,即Universal Description, Discovery以及 Integration) 一个基于Web s

数据库优化实践:MS SQL优化开篇

数据库定义: 数据库是依照某种数据模型组织起来并存在二级存储器中的数据集合,此集合具有尽可能不重复,以 最优方式为特定组织提供多种应用服务,其数据结构独立于应用程序,对数据的CRUD操作进行统一管理和 控制,数据库是数据管理的高级阶段,是在文件系统上发展起来的. 基本结构: 数据库分三个层次:分别为物理数据层.概念数据层.逻辑数据层. 物理数据层:它是数据库的最内层,是物理存贮设备上实际存储的数据的集合.这些数据是原始数据 ,是用户加工的对象,由内部模式描述的指令操作处理的位串.字符和字组成.

操作-电话号码本中的按值查找问题的调用函数问题

问题描述 电话号码本中的按值查找问题的调用函数问题 写的是一个电话号码簿,我想实现按值查找功能,查找后若找不到相同的元素则将该元素补齐后插入到原数组中,所以我调用后面的插入函数:若找到相同的元素则将这个一组元素打印出来,所以我调用了输出函数.问题是,这里的调用不行,可能是我调用错了,所以想问下怎么改? include include include #define ERROR 0 #define OK 1 #define RL 200 typedef struct{ char *name[RL]

互联网革命:奥巴马的印钞机

记得我刚从微软出来创办qu114.com的时候,我和大家说过:我们将面临一场不可阻挡的互联网革命,这场革命将影响我们每一个人. 这是一个伟大的时代.我爱这个时代.Qu114.com就是在这个时代背景之下出生的,在基本零市场费用投入的情况下,到今天为止,使用用户已经超过了1400万. 回看奥巴马,他也就要把这场互联网的草根革命,第一次深刻地影响世界上一个很重要国家的政治变化.奥巴马的选举之路充满创新,他通过互联网模式的政治选举之路,其效果和影响力,再次证明了一点:互联网拥有改变世界的力量. 下面的

自己动手做一个SQL解释器

自己动手做一个SQL解释器在一些小型的应用中,完全没有必要使用大型数据库软件.自己做一个SQL解释器就能用数据库的方式来管理了.这个解释器,能解释常用的SQL命令.你可以自行添加其他功能. <?phpclass DB_text {  var $conn;  var $classname = "db_text";  var $database;  function on_create() {  }  function connect($database_name) {    $th

PS 15分钟快速绘制一个快播图标

  今天的教程@无梦不欢001 教大家绘制一个精美的快播图标,教程不难,主要是图层样式的运用,熟练的话15分钟就可以搞定.源文件已附上方便学习,来收! 分类: PS入门教程 ps图标制作教程

PS绘制一个太空中发光的行星教程

photoshop教程中我将为大家介绍如何轻松地使用photoshop中的云彩滤镜和扭曲滤镜制作一颗炫酷的行星.最终效果如图所示 1.创建一个新图片,大小为940*700,背景填充黑色,新建一个图层,使用套索工具(羽化50px)绘制一个椭圆选区,然后执行"滤镜-渲染-云彩",如图所示 2.按下Ctrl+L打开色阶调整框,应用下图所示的设置. 3.执行"滤镜-扭曲-旋转扭曲",如图所示 photoshop教程 4.设置角度为999,如图所示 分类: PS入门教程

PS制作一个超酷的气功冲击波效果教程

photoshop教程主要为大家介绍使用photoshop的烟幕笔刷制作一个气势磅礴的气功波.制作过程比较复杂,主要是烟雾形状的调整和虎头的烟雾效果调整,要按照虎头的形状变形烟雾. 最终效果 1.在Photoshop中创建一个新文件.我使用的屏幕分辨率为1920 × 1200,用灰色(#b8b8b8)填充画布. 2.创建一个新层,填充黑色.确保前景色和背景色分别为白色和黑色,去滤镜>渲染>云. 我的目标是把这些云彩变成漂亮的线性效果.因此去滤镜>模糊>动感模糊,距离999px,角度

注册表 应用程序路径-注册表操作:通过注册表来获取到一个应用程序的安装路径~!~!~!~!~!~!~!~!~!

问题描述 注册表操作:通过注册表来获取到一个应用程序的安装路径~!~!~!~!~!~!~!~!~! 10C C币快没有了,希望大神看到不要嫌弃赏金!!!!!!不吝赐教.... 解决方案 HKEY_LOCAL_MACHINEsoftwaremicrosoftwindowscurrentversionuninstall软件名,如果有,一般在这个里面 解决方案二: 你能找到某个软件的注册表 逐个点开 后面 '数据'那一列里面会有路径显示 解决方案三: 一个操作注册表的类 解决方案四: 操作?还是程序控