没有米西只有呱唧 2022-01-08 00:53 采纳率: 77.8%
浏览 20
已结题

为什么Login()调用结束后,不能继续循环?(困了我好久好久 不知道怎么改)


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>
void MainMenu();//菜单
void OptionMenu();//输入选择 进入功能区
void Login(Client client[]);//登陆

typedef struct
{
    char name[20];
    char secret[10];
}Client;//用户信息

int main()//主函数
{
    MainMenu();//菜单
    OptionMenu();//输入选择
    return 0;
}

void MainMenu()//菜单
{
    printf("***************************************\n");
    printf("      欢迎进入航班订票系统\n");
    printf("        0.请登录您的账号... \n");
    printf("        1.航班信息浏览        \n");
    printf("        2.航班查询(按航班号)        \n");
    printf("        3.航班订票        \n");
    printf("        4.航班退票        \n");
    printf("        5.退出系统        \n");
    printf("***************************************\n");
}

void OptionMenu()//选择功能
{
    int number1;//表示选择
    Client* user;
    user = (Client*)malloc(sizeof(Client));//动态内存分配

    do
    {
        system("cls");//清屏
        MainMenu();
        printf("请选择...\n");
        scanf("%d", &number1);//输入
        getchar();//吸收换行符

        switch (number1)
        {
            case 0:
                printf("为了您的信息准确、安全,请先登陆...\n");
                Sleep(500);
                Login(user);
                break;//登陆
            case 5:
                printf("      感谢使用航班订票系统,再见!        \n");
                exit(0);
            default:
                printf("您输入不对,只能输入0-5...\n");
                printf("请重新输入...\n");
                Sleep(500);//停留
        }
    } while ((number1 > 5) || (number1 < 0));//结束标志
}

void Login(Client client[])//登陆
{
    printf("请输入您的账号: \n");
    scanf("%s", &client->name);
    printf("请输入您的密码: \n");
    scanf("%s", &client->secret);

    FILE* fp = fopen("B.txt", "a");//定义文件指针

    char clientNam[20] = "\n账号:";//定义账号 密码
    char clientsecret[10] = "\n密码:";

    fputs(clientNam, fp);
    fputs(client->name, fp);

    fputs(clientsecret, fp);
    fputs(client->secret, fp);
    fclose(fp);
    fp = NULL;

    printf("登陆成功!\n");
    
}

  • 写回答

1条回答 默认 最新

  • 书山客 2022-01-08 02:49
    关注
    
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <Windows.h>
    typedef struct
    {
        char name[20];
        char secret[10];
    }Client;//用户信息
    
    void MainMenu();//菜单
    void OptionMenu();//输入选择 进入功能区
    void Login(Client client[]);//登陆
    
    int main()//主函数
    {
        MainMenu();//菜单
        OptionMenu();//输入选择
        return 0;
    }
    
    void MainMenu()//菜单
    {
        printf("***************************************\n");
        printf("      欢迎进入航班订票系统\n");
        printf("        0.请登录您的账号... \n");
        printf("        1.航班信息浏览        \n");
        printf("        2.航班查询(按航班号)        \n");
        printf("        3.航班订票        \n");
        printf("        4.航班退票        \n");
        printf("        5.退出系统        \n");
        printf("***************************************\n");
    }
    
    void OptionMenu()//选择功能
    {
        int number1;//表示选择
        Client* user;
        user = (Client*)malloc(sizeof(Client));//动态内存分配
    
        do
        {
            system("cls");//清屏
            MainMenu();
            printf("请选择...\n");
            scanf("%d", &number1);//输入
            getchar();//吸收换行符
    
            switch (number1)
            {
            case 0:
                printf("为了您的信息准确、安全,请先登陆...\n");
                Sleep(500);
                Login(user);
                break;//登陆
            case 5:
                printf("      感谢使用航班订票系统,再见!        \n");
                exit(0);
            default:
                printf("您输入不对,只能输入0-5...\n");
                printf("请重新输入...\n");
                Sleep(500);//停留
            }
        } while ((number1 <= 5) && (number1 >= 0));//结束标志
    }
    
    void Login(Client client[])//登陆
    {
        printf("请输入您的账号: \n");
        scanf("%s", &client->name);
        printf("请输入您的密码: \n");
        scanf("%s", &client->secret);
    
        FILE* fp = fopen("B.txt", "a");//定义文件指针
    
        char clientNam[20] = "\n账号:";//定义账号 密码
        char clientsecret[10] = "\n密码:";
    
        fputs(clientNam, fp);
        fputs(client->name, fp);
    
        fputs(clientsecret, fp);
        fputs(client->secret, fp);
        fclose(fp);
        fp = NULL;
    
        printf("登陆成功!\n");
    
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日

悬赏问题

  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果