您现在的位置:计算机技术学习网 > 技术中心 > 编程开发 > C >

c语言课程设计_通讯录

来源:不详 责任编辑:栏目编辑 发表时间:2013-07-01 21:02 点击:

调试环境为TC2.0。运行这个程序需要tc提供的几个头文件。建议修改options菜单中的include目录项到tc的include的目录下(具体方法可以参见本书第一章的讲解);或者把源程序拷贝到tc目录下运行。

/*编程建立一通讯簿,存放有姓名、电话号码、住址,然后对通信簿进行查找、添加、修改及删除。*/
#include<stdio.h>
struct person
{
 char name[8];
    char tel[15];
    char addr[50];
};

char filename[20];
FILE *fp;

void creat();
void output();
void search();
void append();
void modify();
void delete();

main()
{
 int m;
 
 creat();  
 while(1)
 {
  printf("\n\n添加,请按1");
   printf("\n查找,请按2");
  printf("\n修改,请按3");
  printf("\n删除,请按4");
  printf("\n输出,请按5");
  printf("\n退出,请按0\n");
  scanf("%d",&m);
  if(m>=0&&m<=5)
  {
   switch(m)
      {
   case 1: append();
        break;
   case 2: search();
     break;
   case 3: modify();
     break;
   case 4: delete();
     break;
   case 5: output();
     break;
   case 0: exit();
   }
   printf("\n\n操作完毕,请再次选择!");
   }
  else
   printf("\n\n选择错误,请再次选择!");
 }
}


void creat()
{
 struct person one;
    long s1;

    printf("\n请输入通讯簿名:");
    scanf("%s",filename);
    if((fp=fopen(filename,"w"))==NULL)
    {
  printf("\n不能建立通讯簿!");
  exit();
    }
    fprintf(fp,"%-10s%-20s%-50s\n","姓名","电话号码","住址");
    printf("\n请输入姓名、电话号码及住址(以0结束)\n");
    scanf("%s",one.name);
    while(strcmp(one.name,"0"))
    {
  scanf("%s%s",one.tel,one.addr);
  fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);
  scanf("%s",one.name);
    }
    fclose(fp);
}

void output()
{
 struct person one;

    if((fp=fopen(filename,"r"))==NULL)
    {
  printf("\n不能打开通讯簿!");
  exit();
    }
    printf("\n\n%20s\n","通 讯 簿");
    while(!feof(fp))
    {
  fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);
  printf("%-10s%-20s%-50s",one.name,one.tel,one.addr);
    }
    fclose(fp);
}

void append()
{
 struct person one;

    if((fp=fopen(filename,"a"))==NULL)
    {
  printf("\n不能打开通讯簿!");
  exit();
    }
    printf("\n请输入添加的姓名、电话号码及住址\n");
    scanf("%s%s%s",one.name,one.tel,one.addr);
    fprintf(fp,"%-10s%-20s%-50s\n",one.name,one.tel,one.addr);
    fclose(fp);
}

void search()

 int k=0;
    char namekey[8];
    struct person one;

    printf("\n请输入姓名:");
    scanf("%s",namekey);

    if((fp=fopen(filename,"rb"))==NULL)
    { 
  printf("\n不能打开通讯簿!");
  exit();
    }
    wh

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Glib实例学习(2)双链表
    • C程序员要学C++吗?
    • C++中实现Singleton的正确方法
    • 编程思维训练(一)
    • 【编程好习惯】引入中间变量使程序更易读
    • 在C++中通过模板规避潜在错误
    • 在C++中通过模板去除强制转换
    • 【编程好习惯】减少搜索头文件的目录数
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1