C++登录系统

一个简单的登录系统,用到了结构体、较多的字符串函数,毫无难度,仅仅是上课时闲着无聊瞎编的,欢迎初学者一起学习,也欢迎大佬指导。

#include<cstring>                   ///字符串函数
#include<iostream>                  ///输入输出流
using namespace std;

///——————————————————————登录系统结构体——————————————————————
struct sjk          ///最多可注册20个用户;
{
    ///主系统登录系统
    char zhanghao[100],mima[100];///账号、密码
    char name[100],zjh[100];///姓名、证件号
    int jifen,zz;///积分,是否实名认证以及权限标识
} sjk[30];

int i,n,m,s,p,q,k=0;
char linshizhanghao[100],linshimima[100];
int xiabiao;///n为主系统操作指令,m为用户操作指令
char panduan,formatting[100]= {'\0'},Admin[100]= {"Administrator"},Password[100]= {"Admin"};///判断y/n,格式化,管理员账号

int main()
{
    cout<<"1.注册 2.登陆 3.结束"<<endl;   ///0.后台检测代码
    while(1)
    {
        cout<<"请输入需要执行的操作:";
        cin>>n;
        if(n==1)            ///-注册;
        {
            if(k<20)
            {
                cout<<"账号:";
                cin>>sjk[k].zhanghao;
                cout<<"密码:";
                cin>>sjk[k].mima;
                p=0;
                for(i=0; i<k; i++)
                {
                    if(strcmp(sjk[i].zhanghao,sjk[k].zhanghao)==0)
                    {
                        p++;
                    }
                }
                if(p!=0)
                {
                    cout<<"此用户名已被注册!"<<endl;
                    strcpy(sjk[k].zhanghao,formatting);
                    strcpy(sjk[k].mima,formatting);
                }
                else
                {
                    cout<<"恭喜您成为第"<<k+1<<"位注册本系统的用户"<<endl;
                    sjk[k].jifen=0;     ///初始积分为0
                    sjk[k].zz=0;        ///初始未进行实名认证,游客权限
                    k++;
                }
            }
            else
                cout<<"用户已满!"<<endl;
        }
        if(n==2)            ///-登录(包括管理员账号);
        {
            cout<<"账号:";
            cin>>linshizhanghao;
            cout<<"密码:";
            cin>>linshimima;
            p=0;
            xiabiao=0;
            if(strcmp(Admin,linshizhanghao)==0&&strcmp(Password,linshimima)==0)                ///管理员登录操作
            {
                strcpy(linshizhanghao,formatting);
                strcpy(linshimima,formatting);
                cout<<endl<<"————hello Administrator!————"<<endl<<endl;
                for(i=0; i<k; i++)
                {
                    cout<<"已注册的第"<<i+1<<"号用户"<<endl<<"账号:"<<sjk[i].zhanghao<<'\t'<<"密码:"<<sjk[i].mima<<'\t'<<"积分:"<<sjk[i].jifen<<endl;
                    if(sjk[i].zz>=1)
                        cout<<"姓名:"<<sjk[i].name<<'\t'<<"证件号:"<<sjk[i].zjh<<endl;
                }
                cout<<endl<<"————hello Administrator!————"<<endl<<endl;
                cout<<"1.注销 2.退出管理员模式"<<endl<<"请输入要执行的管理员操作:";
                while(cin>>m)
                {
                    if(m==1)
                    {
                        cout<<"请输入需要注销的账号:";
                        cin>>linshizhanghao;
                        cout<<"密码:";
                        cin>>linshimima;
                        cout<<"请确认是否注销,一旦注销账号将无法找回 y/n"<<endl;
                        cin>>panduan;
                        if(panduan=='y')
                        {
                            ///从注册的用户中找到需要注销的账号进行注销
                            p=0;
                            xiabiao=0;
                            for(i=0; i<k; i++)
                            {
                                if(strcmp(sjk[i].zhanghao,linshizhanghao)==0&&strcmp(sjk[i].mima,linshimima)==0)
                                {
                                    p++;
                                }
                                if(p==1)
                                {
                                    xiabiao=i;
                                    p++;
                                }
                            }
                            p--;
                            if(p==1)
                            {
                                for(i=xiabiao; i<k; i++)
                                {
                                    strcpy(sjk[i].zhanghao,sjk[i+1].zhanghao);
                                    strcpy(sjk[i].mima,sjk[i+1].mima);
                                    sjk[i].jifen=sjk[i+1].jifen;
                                    strcpy(sjk[i+1].zhanghao,formatting);
                                    strcpy(sjk[i+1].mima,formatting);
                                    sjk[i+1].jifen=0;
                                }
                                k--;
                                cout<<xiabiao+1<<"号用户注销成功!"<<endl;
                            }
                            if(p!=1)
                                cout<<"账号或密码错误,无法注销!"<<endl;
                        }
                        if(panduan='n')
                            cout<<"取消注销"<<endl;
                    }
                    if(m==2)
                    {
                        cout<<endl<<"————Byebye Administrator!————"<<endl<<endl;
                        break;
                    }
                    cout<<"请输入要执行的管理员操作:";
                }
            }
            else                    ///普通用户登录操作
            {
                for(i=0; i<k; i++)
                {
                    if(strcmp(sjk[i].zhanghao,linshizhanghao)==0&&strcmp(sjk[i].mima,linshimima)==0)
                    {
                        p++;
                    }
                    if(p==1)
                    {
                        xiabiao=i;
                        p++;
                    }
                }
                p--;
                if(p==1)
                {
                    cout<<"第"<<xiabiao+1<<"位用户登陆成功!"<<endl<<"您目前的积分为:"<<sjk[xiabiao].jifen<<endl;
                    cout<<"您的权限为:";
                    if(sjk[xiabiao].zz==0)
                        cout<<"游客权限"<<'\t'<<"请及时进行实名认证,以免影响后续操作"<<endl;
                    if(sjk[xiabiao].zz==1)
                        cout<<"普通用户"<<endl;
                    if(sjk[xiabiao].zz==2)
                        cout<<"普通会员"<<endl;
                    cout<<"1.签到  2.充值  3.兑换  4.查询  5.改密  6.实名认证  7.关闭"<<endl;
                    cout<<"10.进入信鸽系统"<<endl;///子系统入口
                    cout<<"请输入要执行的用户操作:";
                    while(cin>>m)
                    {
                        if(m==1)
                        {
                            sjk[xiabiao].jifen+=10;
                            cout<<"签到成功,当前积分为:"<<sjk[xiabiao].jifen<<endl;
                        }
                        if(m==2)
                        {
                            int money;
                            cout<<"请适度娱乐理性消费!"<<endl;
                            cout<<"输入任意金额:";
                            cin>>money;
                            sjk[xiabiao].jifen+=money;
                            cout<<"充值成功,当前积分为:"<<sjk[xiabiao].jifen<<endl;
                        }
                        if(m==3)
                        {
                            cout<<"1.预习资料  10积分"<<endl<<"2.学习资料  10积分"<<endl<<"3.复习资料 10积分"<<endl<<"4.试卷一套  10积分"<<endl;
                            int l=0;
                            cout<<"请输入想要兑换的商品:";
                            cin>>l;
                            if(l>0&&l<5)
                            {
                                sjk[xiabiao].jifen-=10;
                                cout<<"恭喜您成为第一位幸运顾客,买一发四,您以获得全套学习资料"<<endl;
                                cout<<"剩余积分:"<<sjk[xiabiao].jifen<<endl;
                            }
                        }
                        if(m==4)
                        {
                            cout<<"您的权限为:";
                            if(sjk[xiabiao].zz==0)
                                cout<<"游客权限"<<'\t'<<"请及时进行实名认证,以免影响后续操作"<<endl;
                            if(sjk[xiabiao].zz==1)
                                cout<<"普通用户"<<endl;
                            if(sjk[xiabiao].zz==2)
                                cout<<"普通会员"<<endl;
                            cout<<"您当前的积分为:"<<sjk[xiabiao].jifen<<endl;
                        }
                        if(m==5)
                        {
                            char linshi[100];
                            cout<<"请输入原密码:";
                            cin>>linshi;
                            if(strcmp(sjk[xiabiao].mima,linshi)==0)
                            {
                                cout<<"原密码正确,请输入新密码:";
                                cin>>sjk[xiabiao].mima;
                                cout<<"修改成功!";
                            }
                            else
                                cout<<"原密码错误!"<<endl;
                        }
                        if(m==6)
                        {
                            cout<<"——————实名认证——————"<<endl;
                            cout<<"输入姓名:";
                            cin>>sjk[xiabiao].name;
                            cout<<"输入证件号:";
                            cin>>sjk[xiabiao].zjh;
                            cout<<"——————认证成功——————"<<endl;
                            cout<<"奖励积分+100"<<endl;
                            sjk[xiabiao].jifen+=100;
                            sjk[xiabiao].zz=1;
                        }
                        if(m==7)
                        {
                            cout<<"关闭!"<<endl;
                            break;
                        }
                        cout<<"请输入要执行的用户操作:";
                    }
                }
                else
                {
                    cout<<"账号或密码错误"<<endl;
                    strcpy(linshizhanghao,formatting);
                    strcpy(linshimima,formatting);
                }
            }
        }
        if(n==3)          ///-结束程序
        {
            cout<<"结束程序"<<endl;
            break;
        }
        if(n==0)            ///-后台监测代码;
        {
            for(i=0; i<25; i++)
            {
                cout<<"第"<<i+1<<"号用户"<<endl<<"账号:"<<sjk[i].zhanghao<<'\t'<<"密码:"<<sjk[i].mima<<'\t'<<"积分:"<<sjk[i].jifen<<endl;
                cout<<"姓名:"<<sjk[i].name<<'\t'<<"证件号:"<<sjk[i].zjh<<endl;
            }
        }
    }
    return 0;
}

  • 21
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
一个基本的 C++ 登录系统可以由以下几个步骤组成: 1. 创建一个用户数据库 2. 提示用户输入用户名和密码 3. 验证用户名和密码是否匹配数据库中的信息 4. 如果验证成功,则允许用户访问系统,否则提示用户重新输入用户名和密码。 下面是一个简单的示例代码: ```c++ #include <iostream> #include <string> #include <map> using namespace std; // 定义一个用户类 class User { public: User(string name, string password) { this->name = name; this->password = password; } string getName() { return name; } string getPassword() { return password; } private: string name; string password; }; int main() { // 创建一个用户数据库 map<string, User*> users = { {"user1", new User("user1", "password1")}, {"user2", new User("user2", "password2")}, {"user3", new User("user3", "password3")} }; string username; string password; // 提示用户输入用户名和密码 cout << "Please enter your username: "; cin >> username; cout << "Please enter your password: "; cin >> password; // 验证用户名和密码是否匹配数据库中的信息 if (users.count(username) > 0 && users[username]->getPassword() == password) { cout << "Login successful!" << endl; } else { cout << "Invalid username or password. Please try again." << endl; } return 0; } ``` 在这个示例中,我们使用了一个 `User` 类来表示每个用户,用户信息保存在一个 `map` 中。当用户输入用户名和密码时,我们检查用户名是否存在于数据库中,并且密码是否匹配。如果验证成功,我们输出“Login successful!”,否则输出“Invalid username or password. Please try again.”。 需要注意的是,这个示例只是一个基本的登录系统,它并没有真正的安全性。在实际的系统中,需要使用更加复杂的验证方法来确保用户身份的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值