#include<iostream>
#include<cctype>
#include<sstream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
class Create;
class Browser {
friend ostream& operator<<(ostream& os, Browser& a) {
os << "当前网址是: ";
os << a.sa << endl;
return os;
}
friend class Create;
private:
string sa;
Browser* next;
Browser* pre;
public:
Browser(){}
~Browser(){}
};
class Create {
private:
Browser* ptr;
Browser* root;
Browser* roar;
public:
Create() {
root = new Browser;
ptr = new Browser;
roar = new Browser;
root->pre = nullptr;
root->next = NULL;
roar = root;
}
~Create(){}
void insert(string s) {
Browser* pp = root;
Browser* middle=new Browser;
middle->sa = s;
cout << *middle;
if (root->next == NULL) {
root->next = middle;
middle->next = NULL;
middle->pre = roar;
roar = middle;
}
else {
roar->next = middle;
middle->pre = roar;
roar = middle;
roar->next = NULL;
}
ptr = roar;
}
void back() {
if (ptr->pre == NULL) {
cout << "不可后退" << endl;
}
else {
ptr = ptr->pre;
cout << *ptr;
}
}
void front() {
if (ptr->next == NULL) {
cout << "不可前进" << endl;
}
else {
ptr = ptr->next;
cout << *ptr;
}
}
};
int main()
{
Create op;
cout << "欢迎来到有趣小巧的模拟浏览器,现在有如下指令\n";
cout << "v或V-访问新网址\n";
cout << "b或B-后退\n";
cout << "f或F-前进\n";
cout << "x或X-退出\n";
while (1 == 1) {
char ch; cin >> ch;
if (ch == 'F' || ch == 'f') {
op.front();
}
else if (ch == 'x' || ch == 'X') {
cout << "已退出模拟器\n";
break;
}
else if (ch == 'v' || ch == 'V') {
string s;
cout << "请输入新网址: ";
cin >> s;
op.insert(s);
}
else if (ch == 'b' || ch == 'B') {
op.back();
}
}
}