C语言实现登录界面

以下是一个使用C语言实现的简单登录界面程序,包含用户名和密码验证功能:

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

#define MAX_ATTEMPTS 3
#define USERNAME "admin"
#define PASSWORD "secure123"

int main() {
    char input_user[20];
    char input_pass[20];
    int attempts = 0;
    int authenticated = 0;

    printf("\n====== 登录系统 ======\n");
    
    while (attempts < MAX_ATTEMPTS && !authenticated) {
        // 获取用户名输入
        printf("\n用户名: ");
        scanf("%19s", input_user);
        
        // 获取密码输入
        printf("密码: ");
        scanf("%19s", input_pass);
        
        // 验证凭据
        if (strcmp(input_user, USERNAME) == 0 && 
            strcmp(input_pass, PASSWORD) == 0) {
            authenticated = 1;
            printf("\n✔ 登录成功!欢迎回来,%s。\n", USERNAME);
        } else {
            attempts++;
            printf("\n✘ 用户名或密码错误!剩余尝试次数: %d\n", 
                  MAX_ATTEMPTS - attempts);
        }
    }
    
    if (!authenticated) {
        printf("\n⚠ 超过最大尝试次数,系统已锁定!\n");
    }
    
    return 0;
}

功能说明:

  1. 预定义凭证

    • 用户名:admin
    • 密码:secure123
    • 最大尝试次数:3次
  2. 程序流程

    • 显示登录界面标题
    • 循环提示输入用户名和密码
    • 验证输入是否匹配预定义凭证
    • 成功时显示欢迎信息
    • 失败时显示剩余尝试次数
    • 超过最大尝试次数后锁定系统
  3. 安全特性

    • 使用%19s限制输入长度防止缓冲区溢出
    • 密码输入为明文(实际应用中应使用加密存储)
    • 尝试次数限制防止暴力破解

使用示例:

====== 登录系统 ======

用户名: guest
密码: wrongpass

✘ 用户名或密码错误!剩余尝试次数: 2

用户名: admin
密码: 123456

✘ 用户名或密码错误!剩余尝试次数: 1

用户名: admin
密码: secure123

✔ 登录成功!欢迎回来,admin。

改进建议:实际应用中可添加以下功能:

  1. 密码隐藏输入(使用getch()
  2. 凭证数据库存储
  3. 密码加密(如SHA-256)
  4. 账户锁定机制
  5. 日志记录功能
C语言实现用户登录界面可以有多种方式,下面结合示例说明方法。 一种常见的方式是借助标准输入输出函数实现简易的文本登录界面。示例如下,以一个简易学生登录系统为例: ```c #include <stdio.h> // 假设这是一个简单的验证函数,这里只是示例,实际可根据需求修改 int verify_user() { char username[20]; char password[20]; printf("请输入用户名: "); scanf("%s", username); printf("请输入密码: "); scanf("%s", password); // 简单示例,假设用户名是 "admin",密码是 "123456" if (strcmp(username, "admin") == 0 && strcmp(password, "123456") == 0) { return 1; } return 0; } int main(int argc, char const *argv[]) { printf("欢迎来到 学生登录系统!!!\n"); if (verify_user()) { printf("登录成功!\n"); // 登录成功后可以添加其他功能,如示例中的选择功能 int flg = 0; printf("请输入你想要的功能:\n"); printf(" 1 -> 加法计算器\n 2 -> 99乘法表\n 3 -> 期待着(还在开发中)\n"); scanf("%d", &flg); switch(flg) { case 1: // 这里假设 sum 函数在其他地方定义 // printf("result = %d\n", sum()); printf("加法计算器功能未完整实现示例\n"); break; case 2: // 这里假设 mul_99 函数在其他地方定义 // mul_99(); printf("99乘法表功能未完整实现示例\n"); break; default: printf("说了期待着,别催了\n"); } } else { printf("用户名或密码错误,登录失败!\n"); } return 0; } ``` 此示例先定义了一个 `verify_user` 函数用于获取用户输入的用户名和密码,接着进行简单验证。在 `main` 函数里,调用 `verify_user` 函数,依据返回值判断登录是否成功,成功后可提供其他功能选项。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值