#include <stdio.h>
#include <string.h>
//用户登录验证系统
struct log //定义log结构用于存储用户账号和密码信息
{
char name[15];
char password[10];
};
void logging(struct log person); //登录函数
void regis(struct log person); //注册函数
void jiami(char*p); //密码加密函数
int main()
{
int choice; //操作序号
FILE *fp; //定义文件指针
struct log person;
do{
printf("输入操作对应序号:1.登录 2.注册 3.退出\n");
scanf("%d",&choice);
if ((fp=fopen("logging.txt","r"))==NULL && choice==1) //当没有一个用户注册时,不能进行登录操作
{
printf("尚未有用户注册,需要提前注册\n");
choice=4;
}
switch (choice)
{
case 1:logging(person);break;
case 2:regis(person);break;
case 3:break;
default:break;
}
}while(choice!=3);
return 0;
}
void logging(struct log person)
{
FILE*fp;
char s[30]; //用于储存从文件中读取的已有的用户账号和密码信息
char loginfo[30]; //用于储存用户输入的账号和密码信息
int flag=1;
printf("请输入账号:\n");
scanf("%s",person.name);
printf("请输入密码:\n");
scanf("%s",person.password);
jiami(person.password);
strcpy(loginfo,person.name);
strcat(loginfo," ");
strcat(loginfo,person.password);
strcat(loginfo,"\n");
if ((fp=fopen("logging.txt","r"))==NULL)
{
printf("登录失败\n");
}else
{
while (!feof(fp)) //一直循坏到文件尾
{
fgets(s,30,fp);
if (strcmp(s,loginfo)==0) //如果账号和密码信息同时符合,则登录成功
{
printf("登录成功\n");
flag=0;
break;
}
}
if (flag==1) printf("用户名或密码不正确\n"); //否则登录失败
}
if (fclose(fp))
{
printf("关闭文件失败");
}
}
void regis(struct log person)
{
FILE*fp;
int flag;
char s[30]; //用于储存用户输入的账号和密码信息
char pername[15]; //用于储存从文件中读取的账号信息
char perpassword[10]; //用于储存从文件中读取的密码信息
do {
flag=0;
printf("请输入新账号:\n");
scanf("%s",person.name);
printf("请输入新账号的密码:\n");
scanf("%s",person.password);
jiami(person.password);
if ((fp=fopen("logging.txt","r"))==NULL) //防止用户名被重复注册
{
printf("首次注册\n");
}else
{
fscanf(fp,"%s %s",pername,perpassword);
while(!feof(fp))
{
if (strcmp(pername,person.name)==0)
{
printf("用户名已存在\n");
flag=1;
}
fscanf(fp,"%s %s",pername,perpassword);
}
fclose(fp);
}
} while(flag==1);
strcpy(s,person.name);
strcat(s," ");
strcat(s,person.password);
strcat(s,"\n");
if ((fp=fopen("logging.txt","a"))==NULL) //如果注册文件不存在
{
if ((fp=fopen("logging.txt","w"))==NULL) //新建注册文件
{
printf("注册失败\n");
}else
{
if(fputs(s,fp)==EOF)
{
printf("注册失败\n");
}
}
}else
{
if(fputs(s,fp)==EOF)
{
printf("注册失败\n");
}else
{
printf("注册成功\n");
}
}
if (fclose(fp))
{
printf("关闭文件失败");
}
}
void jiami(char*p) //对密码进行加密
{
for (;*p!='\0';p++)
{
*p=*p^15;
}
}相关推荐
企业微信登录功能和注册
1.先在企业微信注册 https://work.weixin.qq.com/wework_admin/register_wx?from=sem_baidu&keyword=brand&derivative=0012200008 拿到corpid 企业ID,和corpsecret 应用的凭证密钥 ****要求配置的授权回调域,必须与访问链接的域名完全一致 内嵌到网页中去: ...
用户验证密码登录
用户验证密码登录 1、密码应该是一个字符串,所以使用字符型数组存放 2、比较字符串是否相同不能直接用== 需要使用strcmp(a, b)来判断,注意,strcmp在相等的时候返回的是0 #include <stdio.h> int main() { int i = 0; char keyword[20]; //定义字符型数组存放初始密码 char word[20]; ...
Django实战【三】—用户登录、注册实现
一、项目前端模板的套用 1.为什么使用前端模板 因为我们开发ObCRM系统使用的是Django项目,而我们知道,Django框架是一个全面的重量级的框架,并不是全后端分离的,所以涉及到的页面需要我们用到前端的知识,但是我们并不是专业的前端工程师,很多页面的搭建对我们说还是有点吃力。 其实在很多实际工作中开发,前端页面都是通过网络上寻找相应的模板,这样就可以避免在前端样式上调整的时间浪费,我们只需要继承别人写好的模板文件来快速开发自己的前端页面,专心投入自己的后端开发代码中。 2.admin前端模板 刚我们说
2023年全国职业院校技能大赛-信息安全管理与评估-赛题 3
2023年全国职业院校技能大赛-信息安全管理与评估-赛题 3
python写简单的注册登录,用python写注册登录界面
看看我们本节动过哪些代码文件。
稳压二极管选型指南:关键参数与电路稳定性优化
本文深入解析了稳压二极管在电路设计中的核心作用与选型要点。文章详细阐述了稳定电压、动态电阻、额定功耗等关键参数对电路稳定性的影响,并结合实战案例,提供了从需求分析到参数验证的系统化选型流程与优化策略,帮助工程师避免常见设计陷阱,实现电路稳定性优化。
2023年全国职业院校技能大赛-信息安全管理与评估-赛题 5
2023年全国职业院校技能大赛-信息安全管理与评估-赛题 5
恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境
恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http
网络编程--实现用户登录验证功能
网络编程--实现用户登录验证功能 //User类: package com.bjsxt.net.tcp3; import java.io.Serializable; public class User implements Serializable{ //serialVersionUID序列化ID------易错点 private static final long seria
Codex CLI 的多模型切换实战:如何在中转 API 环境下灵活选择最佳模型
本文详细介绍了在Codex CLI中实现多模型切换的实战技巧,重点解析了如何在中转API环境下灵活选择最佳AI模型。通过配置Node.js环境和智能路由策略,开发者可以根据任务类型、编程语言和成本考量,在GPT-5、Claude和DeepSeek等模型间高效切换,提升代码生成、审查和优化的效率。
海康威视web控件开发+vue结合做网页开发
需求:vue的项目,需要在页面展示出海康的硬盘录像机连接的摄像头的实时监控画面以及回放功能. 准备:web开发包(包含插件以及demo,在海康官网即可下载32位64位的都有.那些需要积分下载的博主良心不疼么.) 点击这里下载:链接: https://pan.baidu.com/s/12FrbycWyWWyiRJH5Yd1tPA 提取码: gam5 开始开发: 1.安装demo目录下的WebComponentsKit.exe插件(根据自己的浏览器以及系统选择32位还是64位的插件) 2.打.
使用Java实现的简易登录注册程序
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.Scanner; /* * * * 使用Java实现一个简单的注册登录功能。 *(使用集合) * * */ class User{ int id; String passwo
【扫地机器人测试】
本测试方案旨在系统性评估扫地机器人的核心功能、性能指标、可靠性及用户体验,验证产品是否符合设计规范、行业标准及市场需求。通过多维度、全场景的测试,精准定位产品缺陷与优化空间,为产品迭代提供数据支撑,确保上市产品的质量稳定性与用户满意度。
Python+Mysql实现登录注册
在这个项目中,我们使用Python的Tkinter库和pymysql库实现了一个简单的用户登录和注册系统。在这个项目中,我们使用到了以下几个方面的知识和技能:使用Tkinter库创建图形用户界面(GUI):我们使用了Tkinter库创建窗口、标签、文本框和按钮等控件,以及如何将它们布局在界面上。与MySQL数据库进行连接和操作:我们使用了pymysql库连接到MySQL数据库,执行SQL查询和插入操作,并且将数据库中的数据与用户输入进行比对。
安卓手机强制清理数据恢复出厂设置后无法设置密码怎么办?(分享亲身经历的有效解决方案)
📱安卓手机强制清数据恢复出厂设置后,竟无法设置锁屏密码!本文将解析问题根源,分享亲测有效的解决方案,帮你快速摆脱困扰🎉
【前端基础篇】HTML5 + CSS3 入门知识
,HTML5和CSS3核心知识
jsp+dao+bean+servlet(MVC模式)实现简单用户登录和注册页面(连接数据库,登录页面包含验证码,两周内免登陆等功能)
jsp+java servlet实现简单用户登录(使用数据库,包括注册页面)功能介绍前期工作准备实现登录页面创建数据库三个页面处理欢迎界面(jsp)验证码(jsp)登录处理页面(servlet)欢迎界面实现注册页面 功能介绍 本项目通过使用jsp和servlet实现简单的用户登录。主要逻辑为: 如果用户不存在,则首先进行注册(注册信息同步到数据库中)。 进行注册后,可进入登录页面对账号进行登录。 如果账号存在,则正确跳转到欢迎界面,否则提示用户账号信息输入错误。 用户进行登录页面时需要填写验证码同时可勾选
【DexGraspNet与多指手抓取算法详解】第三章 DexGraspNet数据集构建机理
抓取姿态描述多指手与物体的相对空间关系,包含手掌位姿与手指关节配置。
第19章_用户账号——【2.用户账号的登录注销注册】
《Python编程从入门到实践》学习笔记——Django 内容包括【6.创建用户账号,实现注册注销登录】 【创建用户账号】 [应用程序users] 1.创建应用程序users: python manage.py startapp users 2.将应用程序users添加到setting.py: 打开F:\learning_log\learning_log\settings.py,修改为 INS...
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
如何实现验证登录
开发工具与关键技术:VS .MVC基础 作者:卢雅婷 撰写时间:2019/05/6 (代码来源于老师) 实现验证登录这个操作是一些软件使用前的操作,第一步是注册,再就是登陆软件,(比喻微信,QQ等通信、娱乐类型的软件),用户要登录就必然需要通过验证登录了。 以前一些的登录软件都只需要密码和账号即可,随着技术的进步,为了更好地保护用户的信息,避免一些不法分子利用密码和账号就可登录,我们现在很多软件的...
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
Python与MySQL交互——简易用户注册登录
一、运行环境 1.使用Navicat Premium软件,建立数据库和记录用户账号及密码(加密后)的表,或使用系统终端,输入MySQL命令,建立数据库和表; 2.使用pycharm软件,用来与数据库进行交互。 二、实现目标 1.能够记录用户注册的账号和密码,并对密码进行加密处理; 2.能够对输入的登录账号及密码,与数据库内存储的数据进行比对,账号若未匹配,则显示“该账号未注册”,对已注册账号显示“登录成功”或“密码错误”; 3.对交互代码进行封装处理。 三、代码段 1.MysqlHelper
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
Django中验证用户账号密码以及登陆账户方法以及验证方法重写(django16)
默认方法: Django中验证用户账号密码以及登陆账户方法: 1、引入两个方法:authenticate和login users/views.py文件 注意:如果你的登陆函数也叫login的话需要改为其他名字,在此处我改为了login_,因为在使用上方引入的login方法的时候,会出问题,为了避免出问题,要改名。 from django.contrib.auth import auth...
Javaweb程序设计基础入门eclipse实现用户注册登录和session存储
通过HTML,CSS,JavaScript和JSP实现页面的注册,登录和信息显示的三个界面的设计。
C语言文件操作实现登录注册
C语言登录注册、文件操作、文件实现登录注册 使用 user_data.txt 文件存储用户账号密码信息,分为注册与登录两个功能。 注册功能将用户填写的用户名与密码写入到文件中,并判断是否写入(注册)成功。 登录功能将用户填写的用户名和密码与文件中存储用户名密码进行比较,符合则登录成功,不符合则登录失败。
登录注册小程序
编写程序实现简单的登录注册功能。程序包含以下4个功能: (1)登录功能,用户输入正确的账号密码进行成功; (2)注册功能,输入用户名和密码进行注册; (3)查看功能,查看所有的用户名与密码; (4)退出功能,退出系统。 用户可以输入对应的编号进行相应的功能操作。例如,输入2进入注册功能,输入用户名和密码进行注册。...
PHP+MySQL制作简单的用户注册登录界面(注释超详细~附源代码)
PHP+MySQL制作简单的用户注册登录界面(附详细注释源代码)
6497



被折叠的 条评论
为什么被折叠?



