码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-05-11 01:08:50      阅读:479      评论:0      收藏:0      [点我收藏+]

标签:

最近的一个课程设计要求的一个用户登录的程序,通常软件网页等的用户登录注册都是涉及到数据库。但像课程设计这种小程序要求的安全度不高就可以用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 }

 

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

标签:

原文地址:http://www.cnblogs.com/LizG192/p/5410677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!