本关任务:编写程序模拟智能锁的虚位密码功能。智能锁有一个功能,为了防止在输入密码的时候被偷窥,可以让用户输入一连串数字,其中隐藏着真实密码,请编写一个函数virtualpwd,接收用户输入的虚位密码后,判断是否包含真实密码,若包含,则返回1,否则返回0。#include<iostream> #include<string> using namespace std; //C++ string类的用法 //编写程序模拟智能锁的虚位密码功能。 //智能锁有一个功能,为了防止在输入密码的时候被偷窥,可以让用户输入一连串数字, //其中隐藏着真实密码,请编写一个函数virtualpwd,接收用户输入的虚位密码后, //判断是否包含真实密码,若包含,则返回1,否则返回0。 //此处给出virtualpwd函数的定义 //------------------------------------------------- int main() { int result;//存放密码比对结果 //设正确密码为“666666” string pwd = "666666"; //srcpwd为用户输入的虚位密码 string srcpwd; //补全代码:用户输入虚位密码: //------------------------ //此处给出:调用 virtualpwd函数并输出结果 //------------------------------------ if(result == 1) { cout << "密码正确" << endl; } else { cout << "密码错误" << endl; } return 0; }

时间: 2023-08-15 07:22:03 浏览: 96
下面是函数virtualpwd的定义和完整代码: ``` int virtualpwd(string srcpwd, string pwd) { int len = srcpwd.length(); int pwd_len = pwd.length(); for(int i = 0; i < len; i++) { if(srcpwd[i] == pwd[0]) { int j = 1; while(j < pwd_len && i + j < len && srcpwd[i+j] == pwd[j]) { j++; } if(j == pwd_len) return 1; } } return 0; } int main() { int result;//存放密码比对结果 //设正确密码为“666666” string pwd = "666666"; //srcpwd为用户输入的虚位密码 string srcpwd; //用户输入虚位密码 cout << "请输入虚位密码:"; cin >> srcpwd; //调用 virtualpwd函数并输出结果 result = virtualpwd(srcpwd, pwd); if(result == 1) { cout << "密码正确" << endl; } else { cout << "密码错误" << endl; } return 0; } ``` 函数virtualpwd的原理是:对于用户输入的每个字符,依次与正确密码的第一个字符比较,如果相同,则继续依次比较后续字符,直到比较完成或者有不同的字符为止。如果比较完成后,所有字符都相同,则返回1,表示包含正确密码,否则返回0,表示不包含正确密码。

相关推荐

最新推荐

recommend-type

密码锁设计(4×4键盘及8位数码管显示)

用4×4组成0-9数字键及确认键构成的密码锁。 用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的...若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
recommend-type

第一部分 四位数字密码锁.docx

设计一个保险箱用的4位数字密码锁,该锁有规定的地址代码A、B、C、D 4个输入端和一个开箱钥匙孔信号E的输入端,锁的密码由实验者自编。当用钥匙开箱时,如果输入的4位密码正确,则保险箱被打开;否则,电路将发出...
recommend-type

基于89C52单片机的新型指纹智能锁 开题报告

本次设计指纹识别电子密码锁是基于89C52单片机的新型指纹锁,由IO口拓展,与单片机实现通信,从而实现指纹的录入、存储、比对,并通过HS12864-15C液晶显示出指纹采集存储的过程和比对的结果。指纹电子密码锁安全可靠...
recommend-type

基于FPGA的数字密码锁

自古以来人们对物品安全就十分重视,数字化的今天,电子锁正在逐步取代以往的机械锁被广泛运用在门禁、银行和保险柜。随着物联网技术的发展,人们对电子锁安全性和可靠性又提出了新的要求。本文所述的FPGA,即现场可...
recommend-type

米家智能门锁MJZNMS02LM拆解.docx

米家智能门锁MJZNMS02LM拆解 智家人ZKF-DS05智能门锁拆机报告 目录 1 新机开箱 2 2、真机拆解 2 2.1整体图示 2 2.2前面板拆解 3 2.3后面板拆解 5
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。