Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67140
  • 博文数量: 18
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 195
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-23 10:22
文章分类
文章存档

2013年(3)

2011年(1)

2007年(3)

2006年(11)

我的朋友

分类: C/C++

2006-10-23 10:24:55

// 11.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
/*编程建立一通讯簿,存放有姓名、电话号码、住址,然后对通信簿进行查找、添加、修改及删除。*/
#include
#include
struct person1
{
        char name[15];
        char sex[5];
        char tel[20];
        char addr[50];
};
FILE *fp;
char filename[20];
int creat();
int add();
int search();
int modify();
int delete1();
int output();
int main(int argc, char* argv[]){
        int m;
        creat();
        while(1)
        {
                printf("\n\n添加请按1\n查找请按2\n修改请按3\n删除请按4\n输出请按5\n退出请按0\n\n";
                scanf("%d",&m);
                if(m>=0&&m<=5)
                {
                        switch(m)
                        {
                                case 1:add();break;
                                case 2:search();break;
                                case 3:modify();break;
                                case 4:delete1();break;
                                case 5utput();break;
                                case 0:return 0;
                        }
                printf("\n\n操作完毕,请再次选择!\n";
                }
                else
                        printf("\n\n选择错误,请再次选择!\n";
        }
        return 0;
}
int creat()
{
        struct person1 one;
        printf("请输入文件名\n";
        scanf("%s",filename);
        if((fp=fopen(filename,"r")!=NULL)
        {
                fclose(fp);       
                if((fp=fopen(filename,"a")==NULL)
                {
                        printf("cannot open the file\n";
                        return 0;
                }
        }
        else
        {
                if((fp=fopen(filename,"w")==NULL)
                {
                        printf("cannot open the file\n";
                        return 0;
                }
                fprintf(fp,"%-15s%-15s%-20s%-50s\n","姓名","性别","号码","地址";
        }
        printf("请输入姓名,性别,号码,地址以0结束\n");
        scanf("%s",one.name);
        while(strcmp(one.name,"0"))
        {
                        scanf("%s%s%s",one.sex,one.tel,one.addr);
                        fprintf(fp,"%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
                        scanf("%s",one.name);
        }
        fclose(fp);
        return 1;
}
int add()
{
        struct person1 one;
        if((fp=fopen(filename,"a"))==NULL)
        {
                printf("connot open file\n");
                return 0;
        }
        printf("请输入姓名,性别,号码,地址\n");
        scanf("%s%s%s%s",one.name,one.sex,one.tel,one.addr);
        fprintf(fp,"%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
        printf("%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
        fclose(fp);       
        return 1;

}
int search()
{
        struct person1 one;
        int notfind=1;
        char name[15];
        printf("\n请输入要查找的姓名\n");
        scanf("%s",name);
        if((fp=fopen(filename,"r"))==NULL)
        {
                printf("connot open file\n");
                return 0;
        }
        while(!feof(fp))
        {
                fscanf(fp,"%s%s%s%s\n",one.name,one.sex,one.tel,one.addr);
                if(!strcmp(one.name,name))
                {
                        printf("\n%-15s%-15s%-20s%-50s\n","姓名","性别","号码","地址");
                        printf("%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
                        notfind=0;
                }
        }
        if(notfind)
                printf("\n对不起,没有找到\n");
        fclose(fp);
        return 1;
}
int modify()
{
        struct person1 one;
        int notfind=1;
        char name[15];
        long offset;
        printf("\n请输入要修改的姓名\n");
        scanf("%s",name);
        if((fp=fopen(filename,"r+"))==NULL)
        {
                printf("connot open file\n");
                return 0;
        }
        while(!feof(fp))
        {
                offset=ftell(fp);
                fscanf(fp,"%s%s%s%s\n",one.name,one.sex,one.tel,one.addr);
                if(!strcmp(one.name,name))
                {
                        printf("已找到\n");
                        printf("%-15s%-15s%-20s%-50s\n","姓名","性别","号码","地址");
                        printf("%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
                        notfind=0;
                        break;
                }
        }
        if(notfind)
                printf("对不起,没有找到\n");
        else
        {
                printf("请输入姓名,性别,号码,地址\n");
                scanf("%s%s%s%s",one.name,one.sex,one.tel,one.addr);
                fseek(fp,offset,SEEK_SET);
                fprintf(fp,"%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
        }

        fclose(fp);
       

        return 1;
}
int delete1()
{
        struct person1 one;
        int notfind=1;
        char name[15];
        int k;
        long offset;
        printf("\n请输入要删除的姓名\n");
        scanf("%s",name);
        if((fp=fopen(filename,"r+"))==NULL)
        {
                printf("connot open file\n");
                return 0;
        }
        while(!feof(fp))
        {
                offset=ftell(fp);
                fscanf(fp,"%s%s%s%s\n",one.name,one.sex,one.tel,one.addr);
                if(!strcmp(one.name,name))
                {
                        printf("已找到\n");
                        printf("%-15s%-15s%-20s%-50s\n","姓名","性别","号码","地址");
                        printf("%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
                        notfind=0;
                        break;
                }
        }
        if(notfind)
                printf("对不起,没有找到\n");
        else
        {
                printf("是否真要删除,1是,0否\n");
                scanf("%d",&k);
                if(k)
                {
                        fseek(fp,offset,SEEK_SET);
                        fprintf(fp,"%-15s%-15s%-20s%-50s\n","","","","");
                }
        }
        fclose(fp);
        return 1;
}
int output()
{
        struct person1 one;
        if((fp=fopen(filename,"r"))==NULL)
        {
                printf("connot open file\n");
                return 0;
        }
        printf("\n\n%20s\n","通 讯 簿");
        while(!feof(fp))
        {
                fscanf(fp,"%s%s%s%s\n",one.name,one.sex,one.tel,one.addr);
                printf("%-15s%-15s%-20s%-50s\n",one.name,one.sex,one.tel,one.addr);
        }
        fclose(fp);
        return 1;
}
阅读(1124) | 评论(2) | 转发(0) |
0

上一篇:没有了

下一篇:colinux的安装中的问题!

给主人留下些什么吧!~~