m0_74798931 2022-12-25 22:24 采纳率: 100%
浏览 70
已结题

编写一个用户密码设置程序的代码

编写一个用户密码设置程序。程序功能:输入自己的学号和姓名后,提示设定6位登录密码。对输入的密码进行加密处理(加密算法自行设计)并存储。随后提示确认密码并输入密码,对输入的密码与原密码进行比较验证。如果输入的验证密码错误则提示“密码错误”,错误密码的输入次数超过3次则程序结束。输入密码正确则提示“密码正确”,程序结束。
(本题40分)
注意事项:
(1)要求绘制流程图,通过流程图表达自己的设计思想。并对加密算法进行说明。
(2)加密、解密功能要求在自定义函数中实现。
(3)输入、输出信息应简洁美观。
(4)要求用条件语句、循环语句、结构体、函数、指针等方法解决问题。
(5)将流程图、源代码以及程序运行结果(截图)粘贴在下方。

  • 写回答

1条回答 默认 最新

  • 流比 2022-12-25 22:59
    关注
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    #define MAX_TRIES 3 // 最大尝试次数
    #define PASSWORD_LENGTH 6 // 密码长度
    
    // 加密算法(此处仅作示例,请根据需要自行设计)
    void encrypt(char *password) {
      for (int i = 0; i < PASSWORD_LENGTH; ++i) {
        password[i] = (password[i] + 1) % 127;
      }
    }
    
    int main(int argc, char *argv[]) {
      // 输入学号和姓名
      char id[32];
      char name[32];
      printf("请输入学号:");
      scanf("%s", id);
      printf("请输入姓名:");
      scanf("%s", name);
    
      // 输入密码并加密
      char password[PASSWORD_LENGTH + 1];
      printf("请输入%d位登录密码:", PASSWORD_LENGTH);
      scanf("%s", password);
      encrypt(password);
    
      // 确认密码
      int tries = 0;
      char confirm[PASSWORD_LENGTH + 1];
      do {
        printf("请再次输入密码确认:");
        scanf("%s", confirm);
        ++tries;
      } while (strcmp(password, confirm) != 0 && tries < MAX_TRIES);
    
      // 验证密码
      if (strcmp(password, confirm) == 0) {
        printf("密码正确\n");
      } else {
        printf("密码错误\n");
      }
    
      return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月3日
  • 已采纳回答 12月26日
  • 创建了问题 12月25日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助