⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.c

📁 一个很实用的通讯录源代码加报告
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Telephone_list 
{
    char name[50];
    int TelephoneNum ;
    char address[50];
    int live ;
    
}
tel[99],tel_imp ;
void save()
{
    int c ;
    FILE*fp ;
    fp=fopen("tel.txt","wb+");
    for(c=0;c<99;c++)if(tel[c].live==1)
    fwrite(&tel[c],sizeof(struct Telephone_list),1,fp);
    fclose(fp);
    
}

void modify(int f)
{
	int mod_select,mod_TelephoneNum;char mod_name[50],mod_address[50];
	printf("1.修改姓名。\n");
    printf("2.修改话。\n");
    printf("3.修改地址。\n");
	printf("0.返回。\n");
	scanf("%d",&mod_select);
	switch(mod_select)
	{
	case 1:

printf("输入新名字。\n");
scanf("%s",tel[f].name);

printf("修改成功\n");

break;
	case 2:
printf("输入新号码。\n");
scanf("%d",&tel[f].TelephoneNum);

printf("修改成功\n");
break;
	case 3:
printf("输入新地址。\n");
scanf("%s",tel[f].address);
printf("修改成功\n");
break;

         default:
					printf("返回\n");break;
	}
}
void load()
{
    int c ;
    FILE*fp ;
    fp=fopen("tel.txt","a+");
    for(c=0;c<99;c++)
    fread(&tel[c],sizeof(struct Telephone_list),1,fp);
    fclose(fp);
}
void import()
{
    int a,b=0,c,d ;
    while(d!=0)
    {
        printf("插入电话信息\n");
        printf("请输入电话主人的名字:\n");
        scanf("%s",tel_imp.name);
        
        for(a=0;a<=99;a++)
        {
            if(strcmp(tel[a].name,tel_imp.name)==0)
            {
                printf("姓名重复,是否继续添加,按1继续 其他退出\n");
                scanf("%d",&b);
                break ;
            }
        }
        
        if(b==1)
        {
            printf("电话号码:\n");
            scanf("%d",&(tel_imp.TelephoneNum));
            printf("住址:\n");
            
            scanf("%s",tel_imp.address);
            for(c=0;c<=99;c++)
            {
                if(tel[c].live!=1)
                {
                    tel[c]=tel_imp ;
                    tel[c].live=1 ;
                    break ;
                }
            }
        }
        
        if(a==100)
        {
            printf("电话号码:\n");
            scanf("%d",&(tel_imp.TelephoneNum));
            printf("住址:\n");
            
            scanf("%s",tel_imp.address);
            for(c=0;c<=99;c++)
            {
                if(tel[c].live!=1)
                {
                    tel[c]=tel_imp ;
                    tel[c].live=1 ;
                    break ;
                }
            }
        }
        printf("退出输入请按0\n");
        scanf("%d",&d);
        
    }
    
    
    save();
}
void search()
{
    int search_Num,search_select,a,ab,b,c;
    char search_Name[50];
    printf("1按照电话号码查询\n2按照姓名查询。\n");
    scanf("%d",&search_select);
    switch(search_select)
    {
        case 1 :
        printf("请输入号码。\n");
        scanf("%d",&search_Num);
        for(ab=0;ab<=99;ab++)
        {
            if(tel[ab].TelephoneNum==search_Num)
            printf("名字是:%s电话号:%d住址是:%s\n",tel[ab].name,tel[ab].TelephoneNum,tel[ab].address);
        }
        break ;
        case 2 :
        printf("请输入名字。\n");
        scanf("%s",search_Name);
        for(ab=0;ab<=99;ab++)
        {
            if(strcmp(tel[ab].name,search_Name)==0)
            printf("名字是:%s电话号:%d住址是:%s\n",tel[ab].name,tel[ab].TelephoneNum,tel[ab].address);
        }
        break ;
        default :
        printf("输入错误\n");
        break ;
    }
    
}
void alter()
{
    int alter_TelephoneNum,a ;
    char alter_Name[50];
    char alter_address[50];
    printf("1.查找姓名修改。\n");
    printf("2.查找电话修改。\n");
    printf("3.查找地址修改。\n");
    printf("0.返回。\n");
    scanf("%d",&a);
    switch(a)
    {
        case 1 :
        printf("1.输入姓名。\n");
        scanf("%s",alter_Name);
        for(a=0;a<=99;a++)
        {
            if(strcmp(tel[a].name,alter_Name)==0)
            {
                modify(a);
            }
        }
        break ;
        case 2 :
        printf("1.输入电话。\n");
        scanf("%s",alter_TelephoneNum);
        for(a=0;a<=99;a++)
        {
            if(tel[a].TelephoneNum=alter_TelephoneNum==0)
            {
                modify(a);
            }
        }
        break ;
        case 3 :
        printf("1.输入地址。\n");
        scanf("%s",alter_address);
        for(a=0;a<=99;a++)
        {
            if(strcmp(tel[a].address,alter_address)==0)
            {
                modify(a);
            }
        }
        break ;
        default :
        printf("返回。\n");
        break ;
    }
    
    save();
}
void del()
{
    int a ;
    char del_Name[50];
    char decide ;
    printf("请输入需要删除的电话号码的名字。\n");
    scanf("%s",del_Name);
    for(a=0;a<=99;a++)
    if(strcmp(tel[a].name,del_Name)==0)
    {
        printf("现在删除的电话信息是");
        printf("名字是:%s电话号:%d住址是:%s\n",tel[a].name,tel[a].TelephoneNum,tel[a].address);
        printf("按y键确认删除\n");
        scanf("%s",&decide);
        if(decide=='y')
        {
            tel[a].live=0 ;
            save();
        }
        
        else 
        {
            printf("操作退出\n");
            break ;
        }
        break ;
    }
    
    
}
void showall()
{
    int b=1 ;
    while(b==1)
    {
        int c ;
        for(c=0;c<=99;c++)
        {
            if(tel[c].live==1)printf("名字是:%s电话号:%d住址是:%s\n",tel[c].name,tel[c].TelephoneNum,tel[c].address);
        }
        
        printf("按任意键退出\n");
        scanf("%s",&b);
    }
}

void main()
{
    int select ;
    load();
    
    while(select!=0)
    {
        printf("\t\t************************************************\n\n");
        printf("\t\t************************************************\n\n");
        printf("\t\t***************  通讯录管理系统  ***************\n\n");
        printf("\t\t****************    功能选项    ****************\n\n");
        printf("\t\t*************** 1 建立新的通讯录 ***************\n\n");
        printf("\t\t*************** 2 通过电话号码或姓名查找 *******\n\n");
        printf("\t\t*************** 3 修改联系人数据 ***************\n\n");
        printf("\t\t*************** 4 删除记录 *********************\n\n");
        printf("\t\t*************** 5 输出记录 *********************\n\n");
        printf("\t\t*************** 0 退出此系统 *******************\n\n");
        printf("\t\t************************************************\n\n");
        printf("\t\t************************************************\n\n");
        printf("选项(0-5):[ ]\b\b");
        scanf("%d",&select);
        switch(select)
        {
            case 1 :
            {
                import();
                break ;
            }
            case 2 :
            {
                search();
                break ;
            }
            case 3 :
            {
                alter();
                break ;
            }
            case 4 :
            {
                del();
                break ;
            }
            case 5 :
            {
                showall();
                break ;
            }
            default :
            printf("输入错误\n");
            break ;
        }
    }
}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -