VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1119|回复: 2

[求助] 大一的C作业帮忙看看谢了

[复制链接]
42_avatar_middle
在线会员 发表于 2016-6-15 16:03:29 | 显示全部楼层 |阅读模式
3驿站币
就是返回到主函数那里的时候不能正常返回
请问哪里出问题了?



#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void zhucaidan();    /*主菜单函数*/
void xiugai();    /*修改联系人函数*/
void xiugai_xingming();  /*姓名修改*/
void zengjia();  /*增加联系人*/
void xiugai_dianhua();  /*电话号码修改*/
void chazhao();      /*查找联系人函数*/
void chazhao_xingming();  /*按姓名查找*/
void chazhao_dianhua();  /*按号码查找*/
void shanchu();    /*删除联系人函数*/
void shanchu_quanbu();  /*全部删除*/
void shanchu_dange();  /*单个删除*/
void xianshi();         /*号码显示*/
void shanchu_xingming();
void shanchu_dianhua();
FILE* fp = NULL;
int n = 0;
typedef struct tongxunlu
{
        char xingming[100];
        char dianhua[100];
        char dizhi[100];
                char em[100];
}tongxunlu;
tongxunlu txl[100];

void zhucaidan()
{
        char c;
        system("cls");
        printf("\n\t\t┌———            欢迎使用通讯录          ———┐");
        printf("\n\t\t丨         1-添加联系人    2-查询和显示联系人     丨");
        printf("\n\t\t丨         3-删除联系人    4-修改联系人           丨");
        printf("\n\t\t丨         5-退出                                 丨");
        printf("\n\t\t└————————————————————————┘");
        printf("\n\t\t请选择您所所要的服务:");
        c=getch();
        switch (c) /*对于上边的选择项目*/
        {
        case '1':zengjia();break;
        case '2':chazhao();break;
        case '3':shanchu();break;
        case '4':xiugai();break;
        case '5':zhucaidan();break;
        case '0':exit(0);
        default:zhucaidan(); /*如果没有则返回主菜单等待输入*/
        }
}
void main()         /*主函数main*/
{        
        zhucaidan();    /*进入主菜单*/
        while(1);      /* 循环(永远进行)*/
}
void zengjia()
{
        printf("\n\t\t------------------ 请输入联系人信息 --------------------\n");
        printf("\n\t\t输入联系人姓名:");
        scanf("%s",txl[n].xingming);
        printf("\n\t\t输入联系人电话号码:");
        scanf("%s",txl[n].dianhua);
        printf("\n\t\t输入联系人工作单位:");
        scanf("%s",txl[n].dizhi);
                printf("\n\t\t输入联系人E-mail:");
        scanf("%s",txl[n].em);
        n++;                            /*统计个数*/
        printf("\n\t\t是否添加联系人?(Y/N):"); /*是否输入联系人.*/
        if (getch()=='y')
                zengjia();
        return;
}
void chazhao()
{
        char c;
        system("cls");
        printf("\n\t\t------------------- 显示和查询联系人 ------------------");
        printf("\n\t\t|        1-逐个显示所有          2-按姓名查询         |");
        printf("\n\t\t|        3-按电话查询            4-返回主菜单         |");
        printf("\n\t\t|------------------------------------------------------");
        printf("\n\t\t请选择您所所要的服务:");
        c=getch();
        switch (c)
        {
        case '1':xianshi();break;   /*显示所有号码*/
        case '2':chazhao_xingming();break;  /*调用按姓名查询函数*/
        case '3':chazhao_dianhua();break;  /*调用按号码查询函数*/
        case '4':zhucaidan();break;       /*主菜单*/
        }
}
void xianshi()//显示所有联系人函数
{
        int i;
        system("cls");//清楚屏幕
        if(n!=0)
        {
                printf("\n\t\t----------欢迎您查询通讯录所有联系人信息-------------");
                for (i=0;i<n;i++)     /*依次序显示*/
                {
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t工作单位: %s",txl[i].dizhi);
                                                 printf("\n\t\tE-mail: %s",txl[i].em);
                        printf("\n\t\t--------------------------------------------------");
                        if (i+1<n)
                        {
                                printf("\n\t\t-----------------------");
                                system("pause");//返回错误信息
                        }
                }
                printf("\n\t\t---------------------------------------------");
        }
        else                                  /*无联系人*/
                printf("\n\t\t通讯录中无任何纪录");
        printf("\n\t\t按任意键返回主菜单:");
        getch();
        return;
}
void chazhao_xingming()//按姓名查询
{
        int mark=0;
        int i;
        char name[20];
        printf("\n\t\t----------------按姓名查找 --------------------");
        printf("\n\t\t请输入您要查找的姓名:");
        scanf("%s",name);
        for(i=0;i<n;i++)
        {
                if (strcmp(txl[i].xingming,name)==0)
                {
                        printf("\n\t\t------------ 以下是您查找的联系人信息 ---------------");
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t工作单位: %s",txl[i].dizhi);
                                                printf("\n\t\tE-mail: %s",txl[i].em);
                        printf("\n\t\t---------------------------------------------------");
                        mark++;
                        getch();
                        return;
                }
        }
        if (mark==0)
        {
                printf("\n\t\t没有找到联系人的信息");
                printf("\n\t\t按任意键返回主菜单");
                getch();
                return;
        }
}
void chazhao_dianhua()
{
        int mark=0;
        int i;
        char phone[15];
        printf("\n\t\t------------------- 按电话查找 -------------------------");
        printf("\n\t\t请输入电话号码:");
        scanf("%s",phone);
        for(i=0;i<n;i++)
        {
                if (strcmp(txl[i].dianhua,phone)==0)//对比查找函数
                {
                        printf("\n\t\t------------ 以下是您查找的学生信息 ------------");
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t工作单位: %s",txl[i].dizhi);
                                                 printf("\n\t\tE-mail: %s",txl[i].em);
                        printf("\n\t\t------------------------------------------------");
                        printf("\n\t\t按任意键返回主菜单:");
                        mark++;
                        getch();
                        return;
                }
        }
        if (mark==0)
        {
                printf("\n\t\t没有找到联系人的信息");
                printf("\n\t\t按任意键返回主菜单");
                getch();
                return;
        }
}
void shanchu()//删除单个联系人  
{
        char c;
        printf("\n\t----------------------------------------------------------");
        printf("\n\t\t   1-按姓名删除    2-按电话删除");
        printf("\n\t\t请选择您所所要的服务:");
        printf("\n\t----------------------------------------------------------");
        c=getch();
        switch (c)
        {  
        case '1':shanchu_xingming();break;
        case '2':shanchu_dianhua();break;
        }
}
void shanchu_xingming()//按姓名删除联系人
{
        int i,m,mark=0,a=0;
        char name[20];
        printf("\n\t\t请输入要删除联系人姓名:");
        scanf("%s",name);    /*键盘输入姓名*/
        for (i=a;i<n;i++)
        {
                if (strcmp(txl[i].xingming,name) == 0) //对比字符串查找到要删除的联系人
                {
                        printf("\n\t\t以下是您要删除的联系人纪录:");
                        printf("\n\t\t--------------------------------");
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t工作单位: %s",txl[i].dizhi);
                                                printf("\n\t\tE-mail: %s",txl[i].em);
                        printf("\n\t\t--------------------------------");
                        printf("\n\t\t是否删除?(y/n)");
                        if (getch()=='y') // 实现删除功能  
                        {
                                for (m=i;m<n-1;m++)
                                        txl[m]=txl[m+1];    /*将通讯录的想前移*/
                                n--;
                                mark++;
                                printf("\n\t\t删除成功");
                                printf("\n\t\t是否继续删除?(y/n)");
                                if (getch()=='y')
                                        shanchu_xingming();   /*继续调用删除函数*/
                                return;
                        }
                        else
                                return;
                }  
                continue;
        }
        if (mark==0)
        {
                printf("\n\t\t没有该联系人的纪录");
                printf("\n\t\t是否继续删除?(y/n)");
                if (getch()=='y')
                        shanchu_xingming();
                return;
        }
}
void shanchu_dianhua()//按电话号码删除联系人
{
        int i,m,mark=0;    /*变量定义*/
        char phone[20];
        printf("\n\t\t请输入要删除联系人电话号码:");
        scanf("%s",phone);
        if(n==0)
        {
                printf("\n\t\t对不起,文件中无任何纪录");
                printf("\n\t\t按任意键返回主菜单");
                getch();
                return;
        }
        for (i=0;i<n;i++)
        {
                if (strcmp(txl[i].dianhua,phone)==0)
                {
                        printf("\n\t\t以下是您要删除的联系人纪录:");
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t工作单位: %s",txl[i].dizhi);
                                                printf("\n\t\tE-mail: %s",txl[i].em);
                        printf("\n\t\t是否删除?(y/n)");
                        if (getch()=='y')
                        {
                                for (m=i;m<n-1;m++) //递推替换实现删除
                                        txl[m]=txl[m+1];
                                n--;
                                mark++; //记录删除次数
                                printf("\n\t\t删除成功");
                                printf("\n\t\t是否继续删除?(y/n)");
                                if (getch()=='y')
                                        shanchu_dianhua();
                                return;
                        }
                        else
                                return;
                }
                continue;

        }
        if (mark==0)
        {
                printf("\n\t\t没有该联系人的纪录");
                printf("\n\t\t是否继续删除?(y/n)");
                if (getch()=='y')  
                        return ;
        }
}
void xiugai()     /*修改函数*/
{   
        char c;
        if(n==0)
        {
                printf("\n\t\t对不起,文件中无任何纪录");
                printf("\n\t\t按任意键返回主菜单");
                getch();
                return;         
        }
        system("cls");
        printf("\n\t\t-----------------修改联系人菜单-----------------------");
        printf("\n\t\t|          1-按姓名修改    2-按电话修改              |");
        printf("\n\t\t|              任意键-按返回主菜单                   |");
        printf("\n\t\t------------------------------------------------------");
        c=getch();
        switch(c)
        {
        case '1':xiugai_xingming();break;
        case '2':xiugai_dianhua();break;
        default:zhucaidan();break;
        }
}
void xiugai_xingming()
{
        char c;
        int i,mark=0;
        char name[20];
        printf("\n\t\t请输入要修改的联系人姓名:");
        scanf("%s",name);
        if(n==0)
        {
                printf("\n\t\t文件中无任何联系人");
                printf("\n\t\t按任意键返回主菜单");
                getch(); mark++;
                return;
        }
        for(i=0;i<n;i++)
        {
                if(strcmp(txl[i].xingming,name)==0)
                {
                        printf("\n\t\t以下是您要修改的联系人信息");
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t工作单位: %s",txl[i].dizhi);
                                                printf("\n\t\tE-mail: %s",txl[i].em);
                        printf("\n\t\t是否修改(y/n)");
                        if(getch()=='y')
                        {
                                printf("\n\t------------请选择修改信息---------------");
                                printf("\n\t         1-修改姓名     2-修改电话       ");
                                printf("\n\t         3-修改地址     4-E-mail         ");
                                printf("\n\t-----------------------------------------");
                                printf("\n\t请选择您所所要的服务:");
                                scanf("%s",&c);
                                switch(c)
                                {
                                case '1': printf("\n\t请输入新姓名: ");
                                        scanf("%s",txl[i].xingming);break;
                                case'2':printf("\n\t请输入新电话: %s");
                                        scanf("%s",txl[i].dianhua);break;
                                case'3':printf("\n\t请输入新工作单位: ");
                                        scanf("%s",txl[i].dizhi);break;
                                                                case'4':printf("\n\t请输入新E-mail: ");
                                        scanf("%s",txl[i].em);break;
                                }
                        }
                }
        }         
        if(mark==0)
        {
                printf("\n\t\t没有找到联系人信息");
                printf("\n\t是否继续修改?(Y/N):");
                if(getch()=='y')
                        xiugai_xingming();
                return;         
        }
}
void xiugai_dianhua()
{
        char c,phone[15];
        int i,mark=0;
        printf("\n\t\t请输入要修改联系人的号码:");
        scanf("%s",phone);
        if(n==0)
        {
                printf("\n\t\t文件中无任何联系人");
                printf("\n\t\t按任意键返回主菜单");
                getch();mark++;
                return;
        }
        for(i=0;i<n;i++)
        {
                if(strcmp(txl[i].dianhua,phone)==0)
                {
                        printf("\n\t\t以下是您要修改的联系人信息");
                        printf("\n\t\t姓名: %s",txl[i].xingming);
                        printf("\n\t\t电话: %s",txl[i].dianhua);
                        printf("\n\t\t地址: %s",txl[i].dizhi);
                        printf("\n\t\t是否修改(y/n)");
                        if(getch()=='y')
                        {
                                printf("\n\t------------请选择修改信息---------------");
                                printf("\n\t       1-修改姓名     2-修改电话         ");
                                printf("\n\t       3-修改地址     4-E-mail           ");
                                printf("\n\t-----------------------------------------");
                                printf("\n\t请选择您所所要的服务:");
                                scanf("%s",&c);
                                switch(c)
                                {
                                case'1': printf("\n\t请输入新姓名: ");
                                        scanf("%s",txl[i].xingming);break;
                                case'2':printf("\n\t请输入新电话: ");
                                        scanf("%s",txl[i].dianhua);break;
                                case'3':printf("\n\t请输入新工作单位: ");
                                        scanf("%s",txl[i].dizhi);break;
                                                                case'4':printf("\n\t请输入新E-mail: ");
                                        scanf("%s",txl[i].em);break;        
                                }
                        }
                }
        }
        if(mark==0)
        {
                printf("\n\t没有该联系人信息");
                printf("\n\t是否继续修改?(Y/N):");
                if(getch()=='y')
                        xiugai_dianhua();
                return;         
        }
}





上一篇:寻数字签名证书给我软件签名,QQ2289630673.价钱好谈
下一篇:TCP监听时间长了 本地断网 ....
59_avatar_middle
在线会员 发表于 2016-6-16 22:08:42 | 显示全部楼层
这不挺好的
76_avatar_middle
在线会员 发表于 2016-6-17 19:37:22 | 显示全部楼层
  1. void main()         /*主函数main*/
  2. {        
  3.         zhucaidan();    /*进入主菜单*/
  4.         while(1);      /* 循环(永远进行)*/
  5. }
复制代码


while循环这里有错误  它只会一直循环而已,不会再次执行 zhucaidan()这个函数的
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-21 14:51

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表