先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
return this->id;
}
string getpassward() {//-----------------------------------------------------------获取密码
return this->passward;
}
string getsecproblem() {//--------------------------------------------------------获取密保问题
return this->secproblem;
}
string getsecanswer() {//---------------------------------------------------------获取密保答案
return this->secanswer;
}
UaAdate*& getnext() {//------------------------------------------------------------节点的指针域
return next;
}
};
链表基类的作用就是实现基类的指针指向子类的对象,实现多态
主要的功能是对链表的增删改查。
class baselink {//----------------------节点功能类-----------------------
public:
virtual void addnode(string id, string passward, string secproblem, string secanswer)=0;
virtual UaAdate* looklink(string id) = 0;
virtual void savelink() = 0;
virtual void printlink() = 0;
virtual void delnode(string id) = 0;
};
这里的用户类头结点使用的UaAdate,大家可以多实现几个数据类型,将用户数据类型设置的
与管理员类型不一样。主要对链表基类中的接口进行实现
class Userlink :public baselink{//-----------------用户继承----------------------------
private:
UaAdate* Userhead;
public:
//---------------------------------------------------从用户文件中获取信息
Userlink() {
}
//------------------------------------------查找函数(给id查节点)
UaAdate* looklink(string id) {
}
//---------------------------------------------删除某一节点
void delnode(string id) {
}
//在末尾加上一个新的节点
void addnode(string id, string passward, string secproblem, string secanswer) {
}
void printlink() {//----------------------------------------打印链表
};
与用户链表类很相似
class Admlink :public baselink {
private:
UaAdate* Admhead;
public:
//------------------------------------------从文件中获取管理员信息
Admlink() {
}
UaAdate* looklink(string id) {//查找函数
}
void savelink() {
}
void printlink() {
}
void addnode(string id, string passward, string secproblem, string secanswer) {
}
//---------------------------------------------删除某一节点}
void delnode(string id) {
};
对图书信息进行封装,用于组成链表中的节点
class bookdate {//--------------------------------------------------书类
private:
string name;
string writer;
int sum;
string bookclass;
bookdate* next;
public:
bookdate() {
}
bookdate(string name,string writer,int sum,string bookclass){
this->name = name;
this->writer = writer;
this->sum = sum;
this->bookclass = bookclass;
}
void setnext(string name,string writer,int sum,string bookclass) {
this->next = new bookdate(name,writer,sum,bookclass);
this->next->next = NULL;
}
void setsum(int sum) {
this->sum = sum;
}
void setbookclass(string bookclass) {
this->bookclass = bookclass;
}
bookdate*& getnext() {
return next;
}
string getname() {
return name;
}
string getwriter() {
return writer;
}
int getsum() {
return sum;
}
string getbookclass() {
return bookclass;
}
};
对图书的增删改查
class booklink {//-----------------------------------------------书库存书的功能类
private:
bookdate* head;
public:
booklink() {//------------------------------------------初始化私有成员
}
bookdate*& gethead() {
return head;
}
bookdate* looklink(string name, string writer) {//--------------查重---------
}
void savelink() {//--------------------------------------------------将新链表储存一下
}
void creatnode(string name,string writer,int sum,string bookclass) {//----------增书
}
void selectbook(string name,string writer) {//--------------------------查书
}
void rebuildbook(string name,string writer,int sum,string bookclass) {//-改书
}
void printlink() {//-----------------------------------------------打印链表
}
};
用户借书的时候,记录一下借阅的图书的数量,借书人的基本信息
并对类中的信息进行封装,作为借记功能类的节点使用
class userbook {//------------------------------------------------用户借书登记信息
private:
string bookname;
string bookwriter;
int sum;
string name;
string phone;
userbook* next;
public:
userbook() {
next = NULL;
}
userbook(string bookname, string bookwriter, int sum, string name, string phone) {
this->bookname = bookname;
this->bookwriter = bookwriter;
this->sum = sum;
this->name=name;
this->phone = phone;
this->next = NULL;
}
void setnext(string bookname,string bookwriter,int sum,string name,string phone) {
this->next = new userbook(bookname,bookwriter, sum, name, phone);
}
void setsum(int sum) {
this->sum = sum;
}
userbook*& getnext() {
return next;
}
string getbookname() {
return bookname;
}
string getbookwriter() {
return bookwriter;
}
int getbooksum() {
return sum;
}
string getusername() {
return name;
}
string getuserphone() {
return phone;
}
};
用户借书的信息进行记录
class userbooklink {//-----------------------------------------------用户借书登记功能类
private:
userbook* head;
public:
userbooklink() {//-------------------------------------------------构造函数将文件里面的东西读出来
}
userbook* looklink(string bookname,string bookwriter,string name) {//有就返回,没有就返回空
}
void addonenode(string bookname, string bookwriter, int sum, string name, string phone) {
}
void savelink() {//--------------------------------存链表
}
void changesum(string bookname,string bookwriter,int sum,string name) {//修改书的数量
};
这里实现多态主要在登录器处进行了实现,使用的一个登录器可以进行两种身份的登入。
int main() {
baselink* p;
Userlink U1;
Admlink A1;
booklink b;
p = &A1;
char n;bool k;
mainHere:
system(“cls”);
mainMenu();
n = Shield_4();
if (n == ‘1’ || n == ‘2’) {
if (n == ‘1’) {
p = &U1;
}
else if (n == ‘2’) {
p = &A1;
string Admpassward;
system(“cls”);
cout << “请输入管理员密匙:”;
cin >> Admpassward;
if (Admpassward != “芝麻开门”) {
cout << “密匙不匹配,您应该不是管理员”;
system(“pause”);
goto mainHere;
}
}
k=thisMenu§;//登录菜单
if (k == false) {
goto mainHere;
}
else {
if (p == &A1) {
k=Admmeun();
}<