课程设计之C/C++实现用户登录注册
最近的一个课程设计要求的一个用户登录的程序,通常软件网页等的用户登录注册都是涉及到数据库。但像课程设计这种小程序要求的安全度不高就可以用c/c++实现。
首先,我们要清楚用户登录的流程。应该大家对这些并不陌生。
首先说说注册流程
1、要求输入用户名(如果该用户名已被注册则重新输入)
2、要求输入密码。
3、要求再次输入密码(如果两次密码输入相同则注册成功,否则重新注册)。】
其次是登陆流程
1、输入用户名(如果该用户名不存在则重新输入)
2、输入密码(如果正确则进入程序,否则重新登录)
那么下面就用代码来实现:
有两种方式实现,一、使用 fstream 文件读写流。二、使用结构体链表(该方法以后补充)
一、使用 fstream 文件读写流
void regist()
{ //注册
char *password = new char[];//分配20个字节,然后返回首地址给password,即password可以看做一个20字节的字符数组,即字符串
string name;
/*struct user
{
string password;
string name;
};定义的用户结构体*/
user c;
ifstream fin;//声明 ifstream 对象
fin.open("user.txr",ios::in);//关联文件
cout << "请输入用户名:";
cin>>name;
while(fin >> c.name >> c.password)//读取成功返回1
{
if(c.name==name)
{cout << "该用户名已被注册" <<endl;regist();}
}
char test ;int i=;
cout << "输入密码:";
while((test=getch())!='\r')
{
if(test==)//ASC2码8为退格
{
if(i>)
{
cout << test << " " << test;
password[i--]='\0';
}
}
else
{
if(i<)
{
cout << "*" ;
password[i]=test;
i++;
}
}
}
password[i] = '\0';
cout << "再次输入密码" ;
char *password2 = new char[];
i=;
while((test=getch())!='\r')
{
if(test==)
{
if(i>)
{
cout << test << " " << test ;
password2[i--]='\0';
}
}
else
{
if(i<)
{
cout << "*";
password2[i]=test;
i++;
}
}
password2[i]='\0';
}
if(strcmp(password,password2)!=)
{ cout << "密码两次输入不正确";
regist();
}
else
{
cout << "注册成功";
}
ofstream fout;
fout.open("user.txr",ios_base::out|ios_base::app);
fout << name << " " << password << endl;
fout.close();//关闭文件连接,但不会删除流
cout << "三秒后返回登陆界面";
nterface();//界面
}
void logo()
{//登录
char *password = new char [];
string name;
cout << "用户名:"<<endl;
cin>>name;
cout <<" 密码:"<<endl;
char test;int i=;
while((test=getch())!='\r')
{
if(test==)//ASC2码8为退格
{
if(i>)
{
cout << test << " " << test;
password[i--]='\0';
}
}
else
{
if(i<)
cout << "*";
password[i]=test;
i++;
}
}
password[i]='\0';
ifstream fin;
fin.open("user.txr",ios_base::in);
if(fin.fail())
{
cout << "文件打开失败";
}
user c;int f1;
while(fin>>c.name>>c.password)
{
if(c.name==name&&c.password==password)
{
cout << "登陆成功";
f1=;//登录成功标志
nterface();
}
}
if(f1==)//f1==0登录失败
{
cout << "用户名或密码错误";
logo();
}
}
课程设计之C/C++实现用户登录注册的更多相关文章
- android安卓Sqlite数据库实现用户登录注册
看了很多别人写的安卓SQlite数据的操作代码,一点也不通俗易懂,我觉得我写的不错,而且安卓项目也用上了,所以在博客园里保存分享一下!建立一个类 并继承SQLiteOpenHelper public ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
- javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- swing 实现用户登录注册界面(不使用数据库)
swing 实现用户登录注册界面(不使用数据库) 实现的功能 先说一下具体实现的功能吧:用户注册后会将注册的对象存入内存中,登录时会遍历注册的对象列表,判断是否登录成功: 登录和注册界面: 本次实验分 ...
- 纯JSP实现用户登录注册,记事本
没有美化,没有格式,没有样式 1.JSP登陆注册 将用户注册的信息保存在application对象中,用于登录时的验证. 首页如下: 如果未登录,在 session 中找不到 currentUser ...
- Java Spring+Mysql+Mybatis 实现用户登录注册功能
前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...
随机推荐
- 004_STM32程序移植之_SHTXX
1. 测试环境:STM32C8T6 2. 测试模块:DS1302时钟模块 3. 测试接口: SHTXX土壤温湿度: VCC------------------3.3V GND------------- ...
- 常见http响应状态码(status)
1.100-199信息响应 100 Continue: 服务器通知浏览器之前一切正常,请客户端继续请求,如果请求结束,可忽略: 101 Switching Protocal: 针对请求头的Upgrad ...
- Oracle 数据库SQL审计
在我们日常的工作中,一些安全性的要求高的数据库需要增加审计操作,哪个用户什么时间做了什么操作. 1.打开数据库的审计 alter system set audit_sys_operations=TRU ...
- [Qt Quick] No rule to make target 问题解决办法
[问题描述] 修改项目中资源的qml文件名或删除无用资源文件后,重新构建项目时,会出现类似如下的问题提示: No rule to make target 'aaa', needed by 'bbb'. ...
- rep stos ptr dword es:[edi]
今天读代码时,忽然跳出如下一条指令==>>汇编代码: rep stos dword ptr es:[edi] 在网上查了相关资料显示:/************************** ...
- 2D动画如何做出3D体积感
https://cowlevel.net/article/1959026 <AngerForce>幕后故事 这篇文章是个老坑,最近有时间开始写,也是对之前项目的一个总结和记录吧. 本篇文章 ...
- centos7远程服务器中redis的安装与java连接
1.下载安装redis 在远程服务器中你想下载的位置执行以下命令来下载redis文件到服务器中 $ wget http://download.redis.io/releases/redis-4.0.9 ...
- Flutter移动电商实战 --(23)分类页_左侧类别导航制作
自动生成dart类 https://javiercbk.github.io/json_to_dart/ 生成的代码 class Autogenerated { String code; String ...
- 在windows平台下搭建Django项目虚拟环境
参考文档:https://www.cnblogs.com/lovele-/p/8719126.html https://blog.csdn.net/lwcaiCSDN/article/details ...
- IO调度 | Linux块设备中的IO路径及调度策略
当文件系统通过submit_bio提交IO之后,请求就进入了通用块层.通用块层会对IO进行一些预处理的动作,其目的是为了保证请求能够更加合理的发送到底层的磁盘设备,尽量保证性能最佳.这里面比较重要的就 ...