Delk-Leo 2022-05-21 19:27 采纳率: 0%
浏览 143
已结题

新入门c语言学习者need your help

要求用(if语句 循环结构 嵌套等入门级最简单的方法)实现以下这些功能 有没有人可以帮助我!

img

  • 写回答

2条回答 默认 最新

  • fuill 2022-05-21 20:21
    关注
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <windows.h>
    struct user
    {
        char name[10];
        char gender[5];
        int id;
        char sfznum[25];
        char phone[15];
        char email[25];
        char code[25];
    } User[150];
    int count=0;
    void sheelpsec(int n)
    {
        for(int i=0; i<n; i++)
        {
            printf("%d秒后关闭\n",n-i);
            Sleep(1000);
            //printf("\b\b\b\b\b\b\b\b\b");
        }
    
    }
    int isemail(char t[],int n)
    {
        int pos=0;
        for(int i=0; i<n; i++)
        {
            if(t[i]=='@'||t[i]=='.'||t[i]=='c'||t[i]=='o'||t[i]=='m')
            {
                pos++;
            }
        }
        if(pos>=5) return 1;
        else return 0;
    }
    
    void put(int n)
    {
        for(int i=0; i<n; i++)
        {
            printf("姓名:%s  性别:%s   学号:%d   身份证号:%s   电话号:%s   邮箱:%s\n",
                   User[i].name,User[i].gender,User[i].id,User[i].sfznum,User[i].phone,User[i].email);
        }
    }
    int registered(int i)
    {
        puts("欢迎来到注册界面");
        fflush(stdin);
        puts("注册");
        puts("输入姓名:");
        gets(User[i].name);
        puts("输入性别:");
        gets(User[i].gender);
        puts("输入学号:");
        scanf("%d",&User[i].id);
        getchar();
        puts("输入身份证号:");
        gets(User[i].sfznum);
        puts("输入电话号码:");
        gets(User[i].phone);
        puts("输入邮箱:");
        gets(User[i].email);
        puts("输入密码:");
        gets(User[i].code);
        puts("再次输入确认密码:");
        char tem[25];
        gets(tem);
        if(strcmp(tem,User[i].code)!=0)
        {
            puts("两次密码输入不一样,注册失败");
            return 0;
        }
        if(isemail(User[i].email,strlen(User[i].email))==0)
        {
            system("cls");
            puts("邮箱不正确,注册失败");
            sheelpsec(5);
            return 0;
        }
        puts("注册成功");
        count++;
        return 1;
    }
    
    int login()
    {
        puts("欢迎来到登录界面");
        fflush(stdin);
        char phonetem[15],codetem[25],yanzm[6],yanzmtem[6];
        srand((unsigned)time(NULL));
        for(int i=0; i<5; i++)
        {
            yanzm[i]=rand()%10+48;
        }
        yanzm[5]='\0';
        puts("登录");
        puts("请输入电话号:");
        gets(phonetem);
        puts("请输入密码:");
        gets(codetem);
        printf("验证码:");
        puts(yanzm);
        puts("请输入验证码:");
        gets(yanzmtem);
        if(strcmp(yanzm,yanzmtem)!=0)
        {
            puts("验证码错误");
            return 0;
        }
        for(int i=0; i<count; i++)
        {
            if(strcmp(User[i].phone,phonetem)==0)
            {
                if(strcmp(User[i].code,codetem)==0)
                {
                    system("cls");
                    puts("登录成功");
                    return 1;
                }
                puts("密码错误");
                return 0;
            }
        }
        puts("此手机号未注册");
        return 0;
    }
    void menu()
    {
        int option=3;
        while(option)
        {
            puts("1.正方教务系统");
            puts("2.正方学工系统");
            puts("3.电子注册");
            puts("4.优慕课平台");
            puts("5.学生请假申请");
            puts("6.泛微OA");
            puts("7.图书借阅");
            puts("8.网上缴费");
            puts("9.返回登录");
            puts("10.退出");
            puts("请选择:");
            scanf("%d",&option);
            switch(option)
            {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                {
                    int pos=login();
                    while(pos==0)
                    {
                        system("cls");
                        pos=login();
                    }
                }
                case 10:
                    exit(0);
                default:
                {
                    puts("选择错误,请重新输入:") ;
                    break;
                }
            }
        }
    }
    void mainmenu()
    {
        int option=3;
        while(option)
        {
            puts("智慧校园门户");
            puts("1.登录");
            puts("2.注册");
            puts("3.退出");
            puts("请选择:");
            scanf("%d",&option);
            switch(option)
            {
                case 1:
                {
                    int pos=login();
                    while(pos==0)
                    {
                        puts("1.继续登录");
                        puts("2.返回");
                        int opt=1;
                        scanf("%d",&opt); 
                        if(opt==1)
                        {
                            system("cls");
                            pos=login();
                        }
                        else if(opt==2)
                        {
                            mainmenu();
                        }
                        else
                        {
                            puts("输入错误,重新选择");
                        }
                    }
                    system("cls");
                    //menu();
                    break;
                }
                case 2:
                {
                    int pos=registered(count);
                    while(pos==0)
                    {
                        puts("1.继续注册");
                        puts("2.返回");
                        int opt=1;
                        scanf("%d",&opt);
                        if(opt==1)
                        {
                            system("cls");
                            pos=registered(count);
                        }
                        else if(opt==2)
                        {
                            mainmenu();
                        }
                        else
                        {
                            puts("输入错误,重新选择");
                        }
                        system("cls");
                        //pos=registered(count);
                    }
                    int pos1=login();
                    while(pos1==0)
                    {
                        puts("1.继续登录");
                        puts("2.返回");
                        int opt=1;
                        scanf("%d",&opt);
                        if(opt==1)
                        {
                            system("cls");
                            pos=login();
                        }
                        else if(opt==2)
                        {
                            mainmenu();
                        }
                        else
                        {
                            puts("输入错误,重新选择");
                        }
                        system("cls");
                        pos1=login();
                    }
                    system("cls");
                    menu();
                    break;
                }
                case 3:
                {
                    return;
                }
                default:
                {
                    puts("选择错误,请重新输入:") ;
                    break;
                }
            }
        }
        system("cls");
        menu();
    }
    int main()
    {
        mainmenu();
        return 0;
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月23日
  • 修改了问题 5月21日
  • 修改了问题 5月21日
  • 修改了问题 5月21日
  • 展开全部

悬赏问题

  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理