• 大小: 8.45MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-23
  • 语言: C/C++
  • 标签:

资源简介

1、IP地址查询 输入文件是IPAddr.txt,该文件描述了不同地区、不同用户获得的公有IP地址块信息。要求将该文件中的数据到线性表中,并完成以下的功能。 1)使用静态链表作为存储结构 2)静态链表使用动态数组,数组容量N根据数据集大小确定,N自定义,应是2n 3)实现线性表的4个基本操作 4)附加功能: 4.1)输入一个点分十进制的IPv4地址,能够查询其所属机构。 4.2)输入一个机构名称,若存在,输出其拥有IP地址的范围,若不存在,输出相应的信息。 4.3)筛选出所有者名称中以“大学”或“学院”结尾的机构,按拥有IP地址数从大到小排列输出。

资源截图

代码片段和文件信息

/*
2018-6-28
1、IP地址查询
输入文件是IPAddr.txt,该文件描述了不同地区、不同用户获得的公有IP地址块信息。要求将该文件中的数据到线性表中,并完成以下的功能。
1)使用静态链表作为存储结构
2)静态链表使用动态数组,数组容量N根据数据集大小确定,N自定义,应是2n
3)实现线性表的4个基本操作
4)附加功能:
4.1)输入一个点分十进制的IPv4地址,能够查询其所属机构。
4.2)输入一个机构名称,若存在,输出其拥有IP地址的范围,若不存在,输出相应的信息。
4.3)筛选出所有者名称中以“大学”或“学院”结尾的机构,按拥有IP地址数从大到小排列输出。

*/
#include
#include
#include
#include
#include 
#include
#include 
using namespace std;

const int MaxSize = 100;

typedef struct data
{
string start;
string last;
string address1;
string address2;
}Data;

template 
class StaticList
{
public:

typedef struct
{
Data data;
int next;

}Node;
StaticList();                      //
StaticList(DataType a[] int n);    //
~StaticList() {}                    //
int Length() { return length; }    //
void Get(int i);            //
int Locate(string x);         //
string Locate2(string x);
void Insert(int i DataType a1 DataType a2 DataType a3 DataType a4);  //
void Delete(int i);         //
void PrintList();               //
private:
vector SList;         //
int length;                    //
int avail;
};

/*long Stol(string str)
{
long result;
istringstream is(str);
is >> result;
return result;
}*/

vector split(const string &s const string &seperator) {
vector result;
typedef string::size_type string_size;
string_size i = 0;

while (i != s.size()) {
//找到字符串中首个不等于分隔符的字母;
int flag = 0;
while (i != s.size() && flag == 0) {
flag = 1;
for (string_size x = 0; x < seperator.size(); ++x)
if (s[i] == seperator[x]) {
++i;
flag = 0;
break;
}
}

//找到又一个分隔符,将两个分隔符之间的字符串取出;
flag = 0;
string_size j = i;
while (j != s.size() && flag == 0) {
for (string_size x = 0; x < seperator.size(); ++x)
if (s[j] == seperator[x]) {
flag = 1;
break;
}
if (flag == 0)
++j;
}
if (i != j) {
result.push_back(s.substr(i j - i));
i = j;
}

}
return result;
}


template
StaticList::StaticList()
{

length = 0;
/*for (int i = 1; i {
SList[i].next = i + 1;
}

SList[SList.max_size - 1].next = -1;*/
avail = 1;
//SList[0].next =avail;
ifstream fin(“IPAddr2.txt“);
string temp;
int i = 0;
cout << “Loding...“ << endl;

while (getline(fin temp))//导入数据
{

vector s = split(temp ““);
//long a1 = Stol(s[0]);
//long a2 = Stol(s[1]);
Node TempNode;
TempNode.data.start = s[0];
TempNode.data.last = s[1];
TempNode.data.address1 = s[2];
if (s.size() == 4)
{
TempNode.data.address2 = s[3];
}
else
{
TempNode.data.address2 = “ “;
}
TempNode.next = i + 1;
SList.push_back(TempNode);
//cout << data[i].English << “ “ << data[i].Chinese << endl;
i++;
}
length = i - 1;
avail = i;
cout << “Loaded dictionar

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-07-02 15:25  IP1.2\
     目录           0  2018-07-02 15:21  IP1.2\.vs\
     目录           0  2018-07-02 15:21  IP1.2\.vs\IP1.2\
     目录           0  2018-07-05 21:57  IP1.2\.vs\IP1.2\v15\
     文件       30720  2018-07-05 21:57  IP1.2\.vs\IP1.2\v15\.suo
     文件     5623808  2018-07-05 21:57  IP1.2\.vs\IP1.2\v15\Browse.VC.db
     目录           0  2018-07-02 15:22  IP1.2\.vs\IP1.2\v15\ipch\
     目录           0  2018-07-02 15:22  IP1.2\.vs\IP1.2\v15\ipch\AutoPCH\
     目录           0  2018-07-02 15:22  IP1.2\.vs\IP1.2\v15\ipch\AutoPCH\c13797db76a30530\
     文件    33947648  2018-07-05 21:55  IP1.2\.vs\IP1.2\v15\ipch\AutoPCH\c13797db76a30530\IP1.2.ipch
     目录           0  2018-07-05 21:56  IP1.2\Debug\
     文件      181760  2018-07-05 21:56  IP1.2\Debug\IP1.2.exe
     文件      833912  2018-07-05 21:56  IP1.2\Debug\IP1.2.ilk
     文件      839680  2018-07-05 21:56  IP1.2\Debug\IP1.2.pdb
     目录           0  2018-07-05 21:56  IP1.2\IP1.2\
     目录           0  2018-07-05 21:56  IP1.2\IP1.2\Debug\
     文件         776  2018-07-05 21:55  IP1.2\IP1.2\Debug\IP1.2.Build.CppClean.log
     文件         372  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.log
     文件      700362  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.obj
     目录           0  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\
     文件         630  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\CL.command.1.tlog
     文件       19774  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\CL.read.1.tlog
     文件         448  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\CL.write.1.tlog
     文件         209  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\IP1.2.lastbuildstate
     文件        1098  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\link.command.1.tlog
     文件        4080  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\link.read.1.tlog
     文件         424  2018-07-05 21:56  IP1.2\IP1.2\Debug\IP1.2.tlog\link.write.1.tlog
     文件      150528  2018-07-05 21:56  IP1.2\IP1.2\Debug\vc141.idb
     文件      487424  2018-07-05 21:56  IP1.2\IP1.2\Debug\vc141.pdb
     文件        9564  2018-07-05 21:56  IP1.2\IP1.2\IP1.2.cpp
     文件        5943  2018-07-02 15:22  IP1.2\IP1.2\IP1.2.vcxproj
............此处省略4个文件信息

评论

共有 条评论

相关资源