\library\users.o users.cpp:(.text+0x0): multiple definition of `nowtime()'
\main.o main.cpp:(.text+0x0): first defined here
\library\users.o users.cpp:(.text+0x3a7): multiple definition of `Gloip(std::string&)'
\main.o main.cpp:(.text+0x3a7): first defined here
\library\users.o users.cpp:(.text+0x4a4): multiple definition of `Glip(std::string&)'
\main.o main.cpp:(.text+0x4a4): first defined here
\library\users.o users.cpp:(.text+0x754): multiple definition of `gdp()'
\main.o main.cpp:(.text+0x754): first defined here
\library\users.o users.cpp:(.text+0x824): multiple definition of `logqz()'
\main.o main.cpp:(.text+0x824): first defined here
\library\users.o users.cpp:(.bss+0x0): multiple definition of `now'
\main.o main.cpp:(.bss+0x0): first defined here
\library\users.o users.cpp:(.bss+0x8): multiple definition of `t'
\main.o main.cpp:(.bss+0x8): first defined here
\library\users.o users.cpp:(.bss+0x40): multiple definition of `user'
\main.o main.cpp:(.bss+0x40): first defined here
\library\admin.o admin.cpp:(.text+0x0): multiple definition of `nowtime()'
\main.o main.cpp:(.text+0x0): first defined here
\library\admin.o admin.cpp:(.text+0x3a7): multiple definition of `Gloip(std::string&)'
\main.o main.cpp:(.text+0x3a7): first defined here
\library\admin.o admin.cpp:(.text+0x4a4): multiple definition of `Glip(std::string&)'
\main.o main.cpp:(.text+0x4a4): first defined here
\library\admin.o admin.cpp:(.text+0x754): multiple definition of `gdp()'
\main.o main.cpp:(.text+0x754): first defined here
\library\admin.o admin.cpp:(.text+0x824): multiple definition of `logqz()'
\main.o main.cpp:(.text+0x824): first defined here
\library\admin.o admin.cpp:(.bss+0x0): multiple definition of `now'
\main.o main.cpp:(.bss+0x0): first defined here
\library\admin.o admin.cpp:(.bss+0x8): multiple definition of `t'
\main.o main.cpp:(.bss+0x8): first defined here
\library\admin.o admin.cpp:(.bss+0x40): multiple definition of `user'
\main.o main.cpp:(.bss+0x40): first defined here
\library\admin.o admin.cpp:(.bss+0xa0): multiple definition of `admin'
\main.o main.cpp:(.bss+0xa0): first defined here
\main.o main.cpp:(.text+0x3e8): undefined reference to `__imp_WSAStartup'
\main.o main.cpp:(.text+0x42d): undefined reference to `__imp_gethostname'
\main.o main.cpp:(.text+0x445): undefined reference to `__imp_WSAGetLastError'
\main.o main.cpp:(.text+0x457): undefined reference to `__imp_gethostbyname'
\main.o main.cpp:(.text+0x477): undefined reference to `__imp_inet_ntoa'
\main.o main.cpp:(.text+0x48f): undefined reference to `__imp_WSACleanup'
\main.o main.cpp:(.text+0x582): undefined reference to `URLDownloadToFileA'
\main.o main.cpp:(.text+0xa34): undefined reference to `l_d::F5_d()'
\main.o main.cpp:(.text+0xa40): undefined reference to `l::F5()'
\main.o main.cpp:(.text+0xa4c): undefined reference to `l_d::co_d()'
\main.o main.cpp:(.text+0xa58): undefined reference to `l::co()'
\main.o main.cpp:(.text+0xa64): undefined reference to `l_d::F5_d()'
\main.o main.cpp:(.text+0xa70): undefined reference to `l::F5()'
\main.o main.cpp:(.text+0xb31): undefined reference to `l::find(std::string)'
\main.o main.cpp:(.text+0xc26): undefined reference to `l::user_w(std::string)'
\main.o main.cpp:(.text+0xcc7): undefined reference to `l::user_w(std::string)'
\main.o main.cpp:(.text+0xe14): undefined reference to `l_d::find_d(std::string)'
\main.o main.cpp:(.text+0xf2b): undefined reference to `l_d::admin_w(std::string)'
\main.o main.cpp:(.text+0xfcd): undefined reference to `l_d::admin_w(std::string)'
\library\users.o users.cpp:(.text+0x3e8): undefined reference to `__imp_WSAStartup'
\library\users.o users.cpp:(.text+0x42d): undefined reference to `__imp_gethostname'
\library\users.o users.cpp:(.text+0x445): undefined reference to `__imp_WSAGetLastError'
\library\users.o users.cpp:(.text+0x457): undefined reference to `__imp_gethostbyname'
\library\users.o users.cpp:(.text+0x477): undefined reference to `__imp_inet_ntoa'
\library\users.o users.cpp:(.text+0x48f): undefined reference to `__imp_WSACleanup'
\library\users.o users.cpp:(.text+0x582): undefined reference to `URLDownloadToFileA'
\library\users.o users.cpp:(.text+0xc73): undefined reference to `l::find(std::string)'
\library\users.o users.cpp:(.text+0xd0c): undefined reference to `l::xgmm(std::string, std::string)'
\library\users.o users.cpp:(.text+0xe5b): undefined reference to `l::find(std::string)'
\library\users.o users.cpp:(.text+0x1180): undefined reference to `l::zx(std::string)'
\library\users.o users.cpp:(.text+0x11bc): undefined reference to `l::find(std::string)'
\library\users.o users.cpp:(.text+0x138d): undefined reference to `l::find(std::string)'
\library\admin.o admin.cpp:(.text+0x3e8): undefined reference to `__imp_WSAStartup'
\library\admin.o admin.cpp:(.text+0x42d): undefined reference to `__imp_gethostname'
\library\admin.o admin.cpp:(.text+0x445): undefined reference to `__imp_WSAGetLastError'
\library\admin.o admin.cpp:(.text+0x457): undefined reference to `__imp_gethostbyname'
\library\admin.o admin.cpp:(.text+0x477): undefined reference to `__imp_inet_ntoa'
\library\admin.o admin.cpp:(.text+0x48f): undefined reference to `__imp_WSACleanup'
\library\admin.o admin.cpp:(.text+0x582): undefined reference to `URLDownloadToFileA'
\library\admin.o admin.cpp:(.text+0xbfd): undefined reference to `l_d::find_d(std::string)'
\library\admin.o admin.cpp:(.text+0xcb3): undefined reference to `l_d::xgmm_d(std::string, std::string)'
\library\admin.o admin.cpp:(.text+0xdc4): undefined reference to `l_d::find_d(std::string)'
\library\admin.o admin.cpp:(.text+0xe68): undefined reference to `l_d::nano(std::string, std::string)'
\library\admin.o admin.cpp:(.text+0xf98): undefined reference to `l::find(std::string)'
\library\admin.o admin.cpp:(.text+0x103c): undefined reference to `l::nano(std::string, std::string)'
\library\admin.o admin.cpp:(.text+0x11d8): undefined reference to `l_d::find_d(std::string)'
\library\admin.o admin.cpp:(.text+0x13be): undefined reference to `l::find(std::string)'
\library\admin.o admin.cpp:(.text+0x1408): undefined reference to `l::user_w(std::string)'
\library\admin.o admin.cpp:(.text+0x180d): undefined reference to `l::find(std::string)'
\library\admin.o admin.cpp:(.text+0x1851): undefined reference to `l::rm(std::string)'
\library\admin.o admin.cpp:(.text+0x19c9): undefined reference to `l_d::rm(std::string)'
\library\admin.o admin.cpp:(.text+0x1a4c): undefined reference to `l_d::co_d()'
\library\admin.o admin.cpp:(.text+0x1a58): undefined reference to `l::co()'
\library\admin.o admin.cpp:(.text+0x1a64): undefined reference to `l_d::F5_d()'
\library\admin.o admin.cpp:(.text+0x1a70): undefined reference to `l::F5()'
\library\admin.o admin.cpp:(.text+0x1d90): undefined reference to `l_d::find_d(std::string)'
\library\admin.o admin.cpp:(.text+0x1e86): undefined reference to `l_d::find_d(std::string)'
\library\admin.o admin.cpp:(.text+0x1f19): undefined reference to `l_d::find_d(std::string)'
\library\admin.o admin.cpp:(.text+0x20c7): undefined reference to `l_d::find_d(std::string)'
\collect2.exe [Error] ld returned 1 exit status
25 \Makefile.win recipe for target '登录系统.exe' failed
main.cpp:
#include<bits/stdc++.h>
#include <ctime>
#include <vector>
#include <winsock2.h>
#include<windows.h>
#include<time.h>
#include <fstream>
#include <direct.h>
#include <io.h>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <tchar.h>
#include <string>
#include <string.h>
//#include"测试.cpp"
#include <stdlib.h>
#include <Nb30.h>
#include <time.h>
#include <nb30.h>
#include<tchar.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <Iphlpapi.h>
#include <stdio.h>
#include<conio.h>
#include".\library\MD5.h"
#include".\library\admin.h"
#include".\library\users.h"
#include".\library\gyk.h"
#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "Netapi32.lib")
#define _CRT_SECURE_NO_DEPRECATE
using namespace std;
using std::cout; using std::cin;
using std::endl; using std::string;
using namespace std;
void gotoxy(int x,int y)//自己定义一个gotoxy,将光标跳到x列y行
{
COORD c; //定义一个光标类
c.X = x - 1; //设置这个光标的位置
c.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c); //调用WindowsAPI来设置光标位置
}
bool islogin=false;
int k_44;
bool islogina=false;
int k_44_a;
int main()
{
admin.F5_d();
user.F5();
while(true)
{
admin.co_d();
user.co();
admin.F5_d();
user.F5();
string n;
cin>>n;
if(n=="login")
{
cout<<"账号:";
string name_main;
cin>>name_main;
cout<<"密码:";
string psd_main;
cin>>psd_main;
int k;
k=user.find(name_main);
if(k!=0)
{
if(user.psd[k]==psd_main)
{
if(islogin)
{
user.flag[k_44]=false;
gotoxy(50,50);
cout<<"登录成功";
user.flag[k]=true;
islogin=true;
k_44=k;
Sleep(5000);
system("cls");
user.user_w(user.name[k]);
}
else
{
gotoxy(50,50);
cout<<"登录成功";
user.flag[k]=true;
islogin=true;
k_44=k;
Sleep(5000);
system("cls");
user.user_w(user.name[k]);
}
}
else
{
goto loginfail;
}
}
else
{
goto loginfail;
}
loginfail:
cout<<"用户名或密码错误";
Sleep(5000);
system("cls");
}
else if(n=="logins")
{
cout<<"指令不存在或错误"<<endl;
cin>>n;
if(n=="logins")
{
cout<<"账号:";
string name_main;
cin>>name_main;
cout<<"密码:";
string psd_main;
cin>>psd_main;
int k;
k=admin.find_d(name_main);
if(k!=0)
{
if(admin.psd[k]==psd_main)
{
if(islogina)
{
if(islogin)
{
user.flag[k_44]=false;
}
admin.flag[k_44]=false;
gotoxy(50,50);
cout<<"登录成功";
admin.flag[k]=true;
islogina=true;
k_44_a=k;
Sleep(5000);
system("cls");
admin.admin_w(admin.name[k]);
}
else
{
gotoxy(50,50);
cout<<"登录成功";
admin.flag[k]=true;
islogina=true;
k_44_a=k;
Sleep(5000);
system("cls");
admin.admin_w(admin.name[k]);
}
}
else
{
goto loginfail_2;
}
}
else
{
goto loginfail_2;
}
loginfail_2:
cout<<"用户名或密码错误";
Sleep(5000);
system("cls");
}
}
}
}
user.cpp:
#include"users.h"
#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "Netapi32.lib")
#define _CRT_SECURE_NO_DEPRECATE
using namespace std;
void inits_user()
{
user.psd=new string[10000003];
user.name=new string[10000003];
user.flag=new bool[10000003];
user.log=new string[1000003];
user.log_i=1;
}
void user_w(string name)
{
system("cls");
string n;
while(true)
{
getline(cin,n);
if(n=="Change psd"||n=="change psd")
{
string psd_y;
cout<<"原密码:";
cin>>psd_y;
if(user.psd[user.find(name)]==psd_y)
{
cout<<"要修改的密码:";
string psd;
cin>>psd;
user.xgmm(name,psd);
}
else
{
cout<<"密码错误"<<endl;
}
}
else if(n=="Luser"||n=="luser"||n=="Login user"||n=="login user")
{
string name_130,psd_130;
cout<<"账号:";
cin>>name_130;
cout<<"密码:";
cin>>psd_130;
int k=user.find(name_130);
if(k!=0)
{
if(user.psd[k]==psd_130)
{
user_w(name_130);
user.log[user.log_i]=logqz()+"有个用户登录了其他账号\n";
user.log_i++;
}
else
{
goto loginfail;
}
}
else
{
goto loginfail;
}
}
else if(n=="help")
{
cout<<"Change psd 修改密码"<<endl
<<"Luser 登录其他账号"<<endl
<<"exit 退出"<<endl;
}
else if(n=="exit")
{
return;
}
else
{
cout<<"不存在的指令\n输入help查看帮助";
}
loginfail:
cout<<"用户名或密码错误";
Sleep(5000);
system("cls");
}
}
int xgmm(string name,string psd)
{
if(user.zx(name)==0)
{
int k;
k=user.find(name);
if(k!=0)
{
user.psd[k]=user.m.encode(psd);
user.log[user.log_i]=logqz()+"有个用户修改了密码\n";
user.log_i++;
return 0;
}
else
{
return 1;
}
}
return 2;
}
int zx(string name)
{
int k=user.find(name);
if(k>0&&user.flag[k])
{
return 0;
}
return 1;
}
void nano(string name,string psd)
{
user.name[user.xl]=user.m.encode(name);
user.psd[user.xl]=user.m.encode(psd);
user.log[user.log_i]=nowtime()+"有个用户注册了\n";
user.log_i++;
user.xl++;
}
int find(string name)
{
for(int i=1;i<=user.xl;i++)
{
if(user.name[i]==name)
{
return i;
}
}
return 0;
}
void F5()
{
int n=0,y=0,i=1;
user.xl=1;
ifstream in1,in2,in3;
in1.open(".\\user\\name.txt",ios::in);
in2.open(".\\user\\psd.txt",ios::in);
while(!in1.eof()||!in2.eof()||!in3.eof())
{
char buffer[1024]={0};
in1.getline(buffer,1024);
user.name[i]=buffer;
in2.getline(buffer,1024);
user.psd[i]=buffer;
i++;
user.xl++;
}
in1.close();
in2.close();
}
void co()
{
int n=0,y=0,i=1;
ofstream in1,in2;
in1.open(".\\user\\name.txt",ios::out);
in2.open(".\\user\\psd.txt",ios::out);
for(int i=1;i<=user.xl;i++)
{
if(user.name[i]!="0")
{
in1<<user.name[i]<<endl;
in2<<user.psd[i]<<endl;
}
}
in1.close();
in2.close();
}
admin.cpp:
#include"users.h"
#include"admin.h"
#pragma comment(lib, "netapi32.lib")
#pragma comment(lib, "Netapi32.lib")
#define _CRT_SECURE_NO_DEPRECATE
using namespace std;
void inits_admin()
{
admin.psd=new string[10000003];
admin.name=new string[10000003];
admin.flag=new bool[10000003];
}
void admin_w(string name)
{
system("cls");
string n;
while(true)
{
getline(cin,n);
if(n=="Change psd"||n=="change psd")
{
string psd_y;
cout<<"原密码:";
cin>>psd_y;
if(admin.psd[admin.find_d(name)]==psd_y)
{
cout<<"要修改的密码:";
string psd;
cin>>psd;
admin.xgmm_d(name,psd);
}
else
{
cout<<"密码错误"<<endl;
}
}
else if(n=="Radmin"||n=="radmin")
{
string name_78;
cout<<"账号:";
cin>>name_78;
if(admin.find_d(name_78)!=0)
{
cout<<"已有账号"<<endl;
}
else
{
admin.nano(name_78,"1234567890");
cout<<"管理员账号"<<name_78<<"已完成注册,默认密码:1234567890"<<endl;
}
}
else if(n=="Ruser"||n=="ruser")
{
string name_91;
cout<<"账号:";
cin>>name_91;
if(user.find(name_91)!=0)
{
cout<<"已有账号"<<endl;
}
else
{
user.nano(name_91,"1234567890");
cout<<"普通账号"<<name_91<<"已完成注册,默认密码:1234567890"<<endl;
}
}
else if(n=="Ladmin"||n=="ladmin"||n=="Login admin"||n=="login admin")
{
string name_106,psd_106;
cout<<"账号:";
cin>>name_106;
cout<<"密码:";
cin>>psd_106;
int k=admin.find_d(name_106);
if(k!=0)
{
if(admin.psd[k]==psd_106)
{
admin_w(name_106);
cout<<"欢迎回来"<<endl;
}
else
{
goto loginfail;
}
}
else
{
goto loginfail;
}
}
else if(n=="Luser"||n=="luser"||n=="Login user"||n=="login user")
{
string name_130,psd_130;
cout<<"账号(管理登录普通账号不用密码):";
cin>>name_130;
int k=user.find(name_130);
if(k!=0)
{
user.user_w(name_130);
cout<<"欢迎回来"<<endl;
}
else
{
cout<<"无此账号"<<endl;
}
}
else if(n=="log"||n=="Log")
{
bool isng=false;
cout<<"桌面或命令行(0是桌面其他为命令行):";
cin>>isng;
if(isng)
{
for(int i=1;i<=user.log_i;i++)
{
cout<<user.log[i];
}
cout<<"ok"<<endl;
}
else
{
string dep=gdp()+"log.txt";
ofstream out;
out.open(dep.c_str(),ios::out);
for(int i=1;i<=user.log_i;i++)
{
out<<user.log[i];
}
out.close();
cout<<"ok"<<endl;
}
}
else if(n=="help")
{
cout<<"change psd 修改密码"<<endl
<<"luser 登录普通用户账号"<<endl
<<"ladmin 登录其他管理用户账号"<<endl
<<"ruser 注册普通用户账号"<<endl
<<"radmin 注册管理用户账号"<<endl
<<"log 查看日志"<<endl
<<"exit 退出"<<endl;
}
else if(n=="exit")
{
return;
}
else if(n=="rm user")
{
string name_199;
cout<<"账号:";
cin>>name_199;
if(user.find(name_199)!=0)
{
user.rm(name_199);
cout<<"ok"<<endl;
}
else
{
cout<<"无此账号"<<endl;
}
}
else if(n=="rm me")
{
cout<<"为确保你的意识清醒下面请根据提示按对应的按键"<<endl;
for(int i=1;i<=10;i++)
{
srand(time(0));
int l=0+(int)10*rand()/(RAND_MAX+1),n_218;
cout<<"请输入"<<l<<endl;
cin>>n_218;
if(i==10&&l==n_218)
{
admin.rm(name);
return;
}
else if(l!=n_218)
{
cout<<"已停止"<<endl;
break;
}
}
}
else if(n=="save")
{
admin.co_d();
user.co();
admin.F5_d();
user.F5();
}
else
{
cout<<"不存在的指令\n输入help查看帮助";
}
loginfail:
cout<<"用户名或密码错误";
Sleep(5000);
system("cls");
}
}
void xgmm_d(string name,string psd)
{
int k=admin.find_d(name);
admin.psd[k]=admin.m.encode(psd);
}
int zx_d(string name)
{
int k=admin.find_d(name);
if(k>0&&admin.flag[k])
{
return 0;
}
return 1;
}
bool nano_d(string name,string psd)
{
if(admin.find_d(name)==0)
{
admin.name[admin.xl]=admin.m.encode(name);
admin.psd[admin.xl]=admin.m.encode(psd);
admin.xl++;
return true;
}
return false;
}
int rm(string name)
{
int k=admin.find_d(name);
if(k==0)
{
return 1;
}
admin.name[k]="0";
}
int find_d(string name)
{
for(int i=1;i<=admin.xl;i++)
{
if(admin.name[i]==name)
{
return i;
}
}
return 0;
}
void F5_d()
{
int n=0,y=0,i=1;
admin.xl=1;
ifstream in1,in2;
in1.open(".\\admin\\name.txt",ios::in);
in2.open(".\\admin\\psd.txt",ios::in);
while(!in1.eof()||!in2.eof())
{
char buffer[1024]={0};
in1.getline(buffer,1024);
admin.name[i]=buffer;
in2.getline(buffer,1024);
admin.psd[i]=buffer;
i++;
admin.xl++;
}
in1.close();
in2.close();
}
void co_d()
{
int n=0,y=0,i=1;
ofstream in1,in2;
in1.open(".\\admin\\name.txt",ios::out);
in2.open(".\\admin\\psd.txt",ios::out);
for(int i=1;i<=user.xl;i++)
{
if(admin.name[i]!="0")
{
in1<<admin.name[i]<<endl;
in2<<admin.psd[i]<<endl;
}
}
in1.close();
in2.close();
}