You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为使用getch函数的C语言用户名密码校验程序绘制流程图

C语言用户名密码校验程序流程图绘制方案

首先明确流程图标准符号对应规则:

  • 椭圆形:起止框,标记程序开始/结束
  • 平行四边形:输入输出框,对应printf/scanf/getch等输入输出操作
  • 矩形:处理框,对应变量声明初始化、数值运算、字符串赋值等处理逻辑
  • 菱形:判断框,对应循环条件、分支判断条件
  • 箭头:标记流程执行走向

逐步骤流程绘制对应逻辑

1. 程序起始与初始化

  1. 起始椭圆形框:标记「开始」
  2. 矩形处理框:声明字符数组username[15]、password[12],初始化整型变量i=0
  3. 平行四边形输出框:输出提示文本Username:
  4. 平行四边形输入框:读取用户输入的用户名存入username变量

2. 密码输入模块(整合do-while循环与getch()逻辑)

do-while循环的特点是先执行一次循环体再判断终止条件,绘制时不要在进入循环前加判断节点:

  1. 平行四边形输出框:输出提示文本Password:
  2. 平行四边形输入框:调用getch()读取单个无回显字符,赋值给password[i]
  3. 平行四边形输出框:输出掩码字符*
  4. 矩形处理框:执行i = i + 1
  5. 菱形判断框:判断条件password[i-1] == '\r'(用户是否按下回车键)
    • 判断结果为「否」:箭头指回第2步的getch()读取节点,继续循环输入
    • 判断结果为「是」:退出循环,进入下一节点
  6. 矩形处理框:将password[i-1]赋值为\0,替换回车符为字符串结束标记

3. 账号校验模块(整合if-else判断逻辑)

  1. 菱形判断框:判断条件strcmp(username,"usernamesample") == 0 且 strcmp(password,"password1234") == 0
    • 判断结果为「是」:平行四边形输出框,输出验证成功提示VALID!
    • 判断结果为「否」:平行四边形输出框,输出验证失败提示INVALID!

4. 程序结束

两个分支的最终节点都指向椭圆形结束框,标记「结束」即可。

配套程序完整代码

注:原代码使用了字符串比较函数strcmp,需补充引入<string.h>头文件,否则会出现编译错误。

#include <stdio.h>
#include <conio.h>
#include <string.h>

int main()
{
    char username[15];
    char password[12];
    int i=0;
     
    printf("\nUsername: ");
    scanf("%s",username);

    printf("\nPassword: ");
    do
    {
        password[i]=getch();
        printf("*");
        i++;
    }
    while(password[i-1]!='\r');
    password[i-1]='\0';
     
    if( strcmp ( username,"usernamesample" ) == 0 && strcmp ( password,"password1234" ) == 0 )
    {
        printf("\nVALID!");
    }
    else
    {  
        puts("\nINVALID!"); 
      
        return 0;
    }
};

内容的提问来源于stack exchange,提问作者Jernst Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:48:01