| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:求助,小型通讯录管理系统中的删除和修改怎么都弄不好,求大神指点。
只看楼主 加入收藏
ssss008708
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-3-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
求助,小型通讯录管理系统中的删除和修改怎么都弄不好,求大神指点。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
struct stu
{
    char name[30];
    char tel[30];
    char email[30];
    char job[30];
}stu[200];
int mm=0;
int s1=0;
int s2=0;
int s3=0;
int s4=0;
int s5=0;
int bz=0;
int f=0;
int k;
int i=0;
void read()
{
    FILE *fp;
    if((fp=fopen("D:\\通讯录.txt","r"))==NULL)
    {
        printf("file cannot open!\n");
    }
    int i=0;
    while(!feof(fp))
    {
    fread(&stu[i],sizeof(struct stu),1,fp);
    i++;
    }
    for(k=0;k<i-1;k++)
    {
        printf("姓名:%s\t电话:%s\t邮箱:%s\t职务:%s\n",stu[k].name,stu[k].tel,stu[k].email,stu[k].job);
    }
    fclose(fp);
}
void add()
{
    FILE* fp=fopen("D:\\通讯录.txt","a+");
    int n;
    struct stu stu[200];
    printf("新建联系人个数:");
    scanf("%d",&n);
    int i;
    for(i=0;i<n;i++)
    {
        printf("\t电话:");
        scanf("%s",&stu[i].tel);
        printf("\t姓名:");
        scanf("%s",stu[i].name);
        printf("\t邮箱:");
        scanf("%s",&stu[i].email);
        printf("\t职务:");
        scanf("%s",&stu[i].job);
        fwrite(&stu[i],sizeof(struct stu),1,fp);
        mm++;
    }
    fclose(fp);
}
void listtop()
{
    FILE *fp;
    if((fp=fopen("D:\\通讯录.txt","r"))==NULL)
    {
        printf("file cannot open!\n");
    }
    int i=0;
    while(!feof(fp))
    {
    fread(&stu[i],sizeof(struct stu),1,fp);
    i++;
    }
    for(k=0;k<i-1;k++)
    {
        printf("姓名:%s\t电话:%s\n",stu[k].name,stu[k].tel);
    }
    fclose(fp);
}
void list()
{
    printf("    |                  |   \n");
    printf("    |  1.查询联系人    |   \n");
    printf("    |  2.编辑联系人    |   \n");
    printf("    |  3.显示全部信息  |   \n");
    printf("    |  4.退出通讯录    |   \n");
}
void listcx()
{
    printf("    |     查询联系人     |   \n");
    printf("    |                    |   \n");
    printf("    |   1.按姓名查找     |   \n");
    printf("    |   2.按电话查找     |   \n");
    printf("    |   3.按邮箱查找     |   \n");
    printf("    |   4.按职务查找     |   \n");
    printf("    |   5.返回上一级菜单 |   \n");
}
void listbj()
{
    printf("    |     编辑联系人     |   \n");
    printf("    |                    |   \n");
    printf("    |   1.添加联系人     |   \n");
    printf("    |   2.修改联系人     |   \n");
    printf("    |   3.删除联系人     |   \n");
    printf("    |   4.返回上一级菜单 |   \n");
    printf("    |                    |   \n");
}
int main()
{
    struct stu stu[200];
K:    printf("                                                            \n");
    printf("=======================================================================\n");
    listtop();
    printf("=======================================================================\n");
G:    list();
    int xz1;
    scanf("%d",&xz1);
    switch(xz1)
    {
    case 1:                                        //查询
L:        system("cls");
        listcx();
        int xz2;
        scanf("%d",&xz2);
        switch(xz2)
        {
        case 1:
            FILE *fp;
            fp=fopen("D:\\通讯录.txt","r");
            int a,xz4;
            char aname[20];
            printf("姓名:");
            scanf("%s",&aname);
            for(a=0;a<200;a++)
            {
                fread(&stu[a],sizeof(struct stu),1,fp);
                if(strcmp(aname,stu[a].name)==0)
                {
                    s1++;
                    system("cls");
                    printf("姓名:%s    电话:%s    邮箱:%s    职务:%s\n",stu[a].name,stu[a].tel,stu[a].email,stu[a].job);
                }
            }
            if(s1==0)
            {
                system("cls");
                printf("查无此人\n");
            }
            break;
        case 2:
            FILE *fp1;
            fp=fopen("D:\\通讯录.txt","r+");
            int a1,xz5;
            char atel[20];
            fflush(stdin);
            printf("电话:");
            scanf("%s",&atel);
            for(a1=0;a1<200;a1++)
            {
                fread(&stu[a1],sizeof(struct stu),1,fp);
                if(strcmp(atel,stu[a1].tel)==0)
                {
                    s2++;
                    system("cls");
                    printf("姓名:%s    电话:%s    邮箱:%s    职务:%s\n",stu[a1].name,stu[a1].tel,stu[a1].email,stu[a1].job);
                }
            }
            if(s2==0)
            {
                system("cls");
                printf("查无此人\n");
            }
            break;
        case 3:
            FILE *fp2;
            fp=fopen("D:\\通讯录.txt","r+");
            int a2,xz6;
            char aemail[20];
            fflush(stdin);
            printf("邮箱:");
            scanf("%s",&aemail);
            for(a2=0;a2<200;a2++)
            {
                fread(&stu[a2],sizeof(struct stu),1,fp);
                if(strcmp(aemail,stu[a2].email)==0)
                {
                    s3++;
                    system("cls");
                    printf("姓名:%s    电话:%s    邮箱:%s    职务:%s\n",stu[a2].name,stu[a2].tel,stu[a2].email,stu[a2].job);
                }
            }
            if(s3==0)
            {
                system("cls");
                printf("查无此人\n");
            }
            break;
        case 4:
            FILE *fp3;
            fp=fopen("D:\\通讯录.txt","r+");
            int a3,xz7;
            char ajob[20];
            fflush(stdin);
            printf("职务:");
            scanf("%s",&ajob);
            for(a3=0;a3<200;a3++)
            {
                fread(&stu[a3],sizeof(struct stu),1,fp);
                if(strcmp(ajob,stu[a3].job)==0)
                {
                    s4++;
                    system("cls");
                    printf("姓名:%s    电话:%s    邮箱:%s    职务:%s\n",stu[a3].name,stu[a3].tel,stu[a3].email,stu[a3].job);
                }
            }
            if(s4==0)
            {
                system("cls");
                printf("查无此人\n");
            }
            break;
        case 5:
            system("cls");
            goto K;
        default:
            goto L;
        }
Z:        int xz8;
        printf("==============================================\n");
        printf("   1.返回    \n");
        scanf("%d",&xz8);
        if(xz8==1)
        {
            system("cls");
            goto K;
        }
        else
        {
            system("cls");
            goto Z;
        }
    case 2:                                        //编辑
M:        system("cls");
        listbj();
        int xz3;
        int v;
        scanf("%d",&xz3);
        switch(xz3)
        {
        case 1:                                    //添加
            add();
            system("cls");
            goto K;
        case 2:                                    //修改
            system("cls");
            FILE *fp;
            fp=fopen("D:\\通讯录.txt","r+");
            char xtel[30];
            char xemail[30];
            char xjob[30];
            char cname[30];
            char xname[30];
            int cc;
            printf("姓名:");
            scanf("%s",&cname);
            for(cc=0;cc<200;cc++)
            {
                fread(&stu[cc],sizeof(struct stu),1,fp);
                if(strcmp(cname,stu[cc].name)==0)
                {
                    printf("修改姓名为:");
                    scanf("%s",&xname);
                    strcpy(stu[cc].name,xname);
                    printf("修改电话为:");
                    scanf("%s",&xtel);
                    strcpy(stu[cc].tel,xtel);
                    printf("修改邮箱为:");
                    scanf("%s",&xemail);
                    strcpy(stu[cc].email,xemail);
                    printf("修改职务为:");
                    scanf("%s",&xjob);
                    strcpy(stu[cc].job,xjob);
                    fwrite(&stu[cc],sizeof(struct stu),1,fp);
                    bz++;
                }
            }
            if(bz==0)
            {
                system("cls");
                printf("无此联系人\n");
            }
            break;
        case 3:                                    //删除
            system("cls");
            FILE *fp1;
            fp1=fopen("D:\\通讯录.txt","r+");
            int aa;
            char bname[30];
            int c;
            printf("姓名:");
            scanf("%s",&bname);
            for(c=0;c<200;c++)
            {
                fread(&stu[c],sizeof(struct stu),1,fp);
                if(strcmp(bname,stu[c].name)==0)
                {
                    strcpy(stu[c].name,stu[c+1].name);
                    strcpy(stu[c].tel,stu[c+1].tel);
                    strcpy(stu[c].email,stu[c+1].email);
                    strcpy(stu[c].job,stu[c+1].job);
                    fwrite(&stu[c],sizeof(struct stu),1,fp);
                    s5++;
                }
            }
            if(s5==0)
                printf("无此联系人\n");
            printf("删除成功\n");
            break;
        case 4:
            system("cls");
            goto K;
            break;
        default:
            goto M;
        }
        int xz9;
        printf("==============================================\n");
O:        printf("1.返回   \n");
        scanf("%d",&xz9);
        if(xz9==1)
        {
            system("cls");
            goto M;
        }
        else
        {
            system("cls");
            goto O;
        }
    case 3:
        system("cls");
        printf("                                                            \n");
        printf("=======================================================================\n");
        read();
        printf("=======================================================================\n");
        goto G;
    case 4:                                         //退出
        exit(0);
    default:
        system("cls");
        goto K;
    }
    return 0;
}
搜索更多相关主题的帖子: 管理系统 include 通讯录 cannot email 
2015-03-22 14:35
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:5 
这个  

感觉看别人的长代码  有点头疼

三十年河东,三十年河西,莫欺少年穷!
2015-03-24 17:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
以下是引用韶志在2015-3-24 17:31:55的发言:

这个   
 
感觉看别人的长代码  有点头疼

口可口可

授人以渔,不授人以鱼。
2015-03-24 18:57
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:5 
怎么找不到删除和修改函数,你还是把这两个函数贴出来吧,代码太长

一片落叶掉进了回忆的流年。
2015-03-24 19:37
孤独一生
Rank: 2
来 自:四川达县
等 级:论坛游民
帖 子:45
专家分:55
注 册:2013-4-1
收藏
得分:5 
楼主你直接发哪个函数有问题 和数据结构发出来  怎么长的代码帮你从main()函数开始看会死人的
2015-03-25 00:22
快速回复:求助,小型通讯录管理系统中的删除和修改怎么都弄不好,求大神指点。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023613 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved