Ctrl+D

收藏勾昵下

全站素材可商用

关闭
当前位置: 主页 > 新闻中心 >

课程设计之C/C++实现用户登录注册

时间:2020-03-10 16:51来源:未知 作者:admin 点击:
最近的一个课程设计要求的一个用户登录的程序,通常软件网页等的用户登录注册都是涉及到数据库。但像课程设计这种小程序要求的安全度不高就可以用c/c++实现。 首先,我们要清楚
广告位API接口通信错误,查看德得广告获取帮助

最近的一个课程设计要求的一个用户登录的程序,通常软件网页等的用户登录注册都是涉及到数据库。但像课程设计这种小程序要求的安全度不高就可以用c/c++实现。

首先,我们要清楚用户登录的流程。应该大家对这些并不陌生。

首先说说注册流程

1、要求输入用户名(如果该用户名已被注册则重新输入)

2、要求输入密码。

3、要求再次输入密码(如果两次密码输入相同则注册成功,否则重新注册)。】

其次是登陆流程

1、输入用户名(如果该用户名不存在则重新输入)

2、输入密码(如果正确则进入程序,否则重新登录)

那么下面就用代码来实现:

有两种方式实现,一、使用 fstream 文件读写流。二、使用结构体链表(该方法以后补充)

一、使用 fstream 文件读写流

 

复制代码
 1 void regist()
 2 {  //注册
 3     char *password = new char[20];//分配20个字节,然后返回首地址给password,即password可以看做一个20字节的字符数组,即字符串
 4     string name;
 5     /*struct user
 6       {
 7          string password;
 8          string name;
 9       };定义的用户结构体*/
10     user c;
11     ifstream fin;//声明 ifstream 对象
12     fin.open("user.txr",ios::in);//关联文件
13     cout << "请输入用户名:";
14     cin>>name;
15     while(fin >> c.name >> c.password)//读取成功返回1
16     {
17         if(c.name==name)
18         {cout << "该用户名已被注册" <<endl;regist();}
19     }
20     char test ;int i=0;
21     cout << "输入密码:";
22     while((test=getch())!='\r')
23     {
24         if(test==8)//ASC2码8为退格
25         {
26             if(i>0)
27             {
28             cout << test << " " << test;
29             password[i--]='\0';
30             }
31         }
32         else
33         {
34             if(i<20)
35             {
36                 cout << "*" ;
37                 password[i]=test;
38                 i++;
39             }
40         }
41     }
42     password[i] = '\0';
43     cout << "再次输入密码" ;
44     char *password2 = new char[20];
45     i=0;
46     while((test=getch())!='\r')
47     {
48         if(test==8)
49         {
50             if(i>0)
51             {
52                 cout << test << " " << test ;
53                 password2[i--]='\0';
54             }
55         }
56         else
57         {
58             if(i<20)
59             {
60                 cout << "*";
61                 password2[i]=test;
62                 i++;
63             }
64         }
65         password2[i]='\0';
66     }
67       if(strcmp(password,password2)!=0)
68     {
69 
70         cout << "密码两次输入不正确";
71         regist();
72     }
73     else
74     {
75         cout << "注册成功";
76     }
77     ofstream fout;
78     fout.open("user.txr",ios_base::out|ios_base::app);
79     fout << name << " " << password << endl;
80     fout.close();//关闭文件连接,但不会删除流
81     cout << "三秒后返回登陆界面";
82     nterface();//界面
83 }
复制代码
复制代码
 1 void logo()
 2 {//登录
 3     char *password = new char [20];
 4     string name;
 5     cout << "用户名:"<<endl;
 6     cin>>name;
 7     cout <<" 密码:"<<endl;
 8     char test;int i=0;
 9    while((test=getch())!='\r')
10     {
11         if(test==8)//ASC2码8为退格
12         {
13         if(i>0)
14         {
15             cout << test << " " << test;
16             password[i--]='\0';
17         }
18         }
19         else
20         {
21             if(i<20)
22             cout << "*";
23             password[i]=test;
24             i++;
25         }
26     }
27     password[i]='\0';
28     ifstream fin;
29     fin.open("user.txr",ios_base::in);
30     if(fin.fail())
31     {
32         cout << "文件打开失败";
33     }
34     user c;int f1;
35   while(fin>>c.name>>c.password)
36     {
37         if(c.name==name&&c.password==password)
38         {
39             cout << "登陆成功";
40             f1=1;//登录成功标志
41             nterface();
42         }
43     }
44     if(f1==0)//f1==0登录失败
45     {
46         cout << "用户名或密码错误";
47         logo();
48     }
49 }
复制代码

 

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
admin 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2017-10-13 19:10 最后登录:2020-03-13 10:03
广告位API接口通信错误,查看德得广告获取帮助
收藏成功!

欢迎你留下对我们网站的宝贵建议

0/200

请留下您的QQ

改天再写