中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

本地網站建設多少錢信息大全百度推廣怎么開戶

本地網站建設多少錢信息大全,百度推廣怎么開戶,wordpress 多條件查詢數(shù)據庫,網站建設與依法行政文章目錄第六章 分支語句和邏輯運算符6.1 字符函數(shù)庫cctype6.2 ?:運算符6.3 讀取數(shù)字的輸入6.4 cin的處理過程char類型intdoublechar數(shù)組使用char數(shù)組來存儲輸入6.5 寫入到文本文件中6.6 讀取文本文件6.7 總結第六章 分支語句和邏輯運算符 6.1 字符函數(shù)庫cctype C從C語言繼承…

文章目錄

  • 第六章 分支語句和邏輯運算符
    • 6.1 字符函數(shù)庫cctype
    • 6.2 ?:運算符
    • 6.3 讀取數(shù)字的輸入
    • 6.4 cin的處理過程
      • char類型
      • int
      • double
      • char數(shù)組
      • 使用char數(shù)組來存儲輸入
    • 6.5 寫入到文本文件中
    • 6.6 讀取文本文件
    • 6.7 總結

第六章 分支語句和邏輯運算符

6.1 字符函數(shù)庫cctype

C++從C語言繼承了一個與字符相關的、非常方便的函數(shù)軟件包,它可以簡化諸如確定字符是否為大寫字母、數(shù)字、標點符號等工作,這些函數(shù)的原型是在頭文件cctype(老式的風格中為ctype.h)中定義的。
例如,如果ch是一個字母,則isalpha(ch)函數(shù)返回一個非零值,否則返回0。同樣,如果ch是標點符號(如逗號或句號),函數(shù)ispunct(ch)將返回true。(這些函數(shù)的返回類型為int,而不是bool,但通常bool轉換讓您能夠將它們視為bool類型。)

使用這些函數(shù)比使用AND和OR運算符更方便。例如,下面是使用AND和OR來測試字符ch是不是字母字符的代碼:

if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))if(isalpha(ch))

具體地說,它使用isalpha( )來檢查字符是否為字母字符,使用isdigits( )來測試字符是否為數(shù)字字符,如3,使用isspace( )來測試字符是否為空白,如換行符、空格和制表符,使用ispunct( )來測試字符是否為標點符號。

函數(shù)名稱 返回值
isalnum(); 如果參數(shù)是字母數(shù)字,即字母或數(shù)字,該函數(shù)返回true;
isalpha(); 如果參數(shù)是字母,該函數(shù)返回true;
iscntrl(); 如果參數(shù)是控制字符,該函數(shù)返回true;
isdigit(); 如果參數(shù)是數(shù)字(0~9),該函數(shù)返回true;
isgraph(); 如果參數(shù)是除空格之外的打印字符,該函數(shù)返回true;
islower(); 如果參數(shù)是小寫字母,該函數(shù)返回true;
isprint(); 如果參數(shù)是打印字符(包括空格),該函數(shù)返回true;
ispunct(); 如果參數(shù)是標點符號,該函數(shù)返回true;
isspace(); 如果參數(shù)是標準空白字符,如空格、進紙、換行符、回車、水平制表符或 者垂直制表符,該函數(shù)返回true;
isupper(); 如果參數(shù)是大寫字母,該函數(shù)返回true;
isxdigit(); 如果參數(shù)是十六進制數(shù)字,即0~9、a~f或A~F,該函數(shù)返回true;
tolower(); 如果參數(shù)是大寫字符,則返回其小寫,否則返回該參數(shù);
toupper(); 如果參數(shù)是小寫字符,則返回其大寫,否則返回該參數(shù);

6.2 ?:運算符

C++有一個常被用來代替if else語句的運算符,這個運算符被稱為條件運算符(?:),它是C++中唯一一個需要3個操作數(shù)的運算符。該運算符的通用格式如下:

expression1 ? expression2 : expression3

如果expression1為true,則整個條件表達式的值為expression2的值;否則,整個表達式的值為expression3的值。

continue跳過循環(huán)體剩余的部分,開始新一輪循環(huán);

break跳過循環(huán)的剩余部分,到達下一條語句;

6.3 讀取數(shù)字的輸入

任務描述: 假設要編寫一個將一系列數(shù)字讀入到數(shù)組中的程序,并允許用戶在數(shù)組填滿之前結束輸入。

**應用:**假設要編寫一個程序,來計算平均每天捕獲的魚的重量。這里假設每天最多捕獲5條魚,因此一個包含5個元素的數(shù)組將足以存儲所有的數(shù)據,但也可能沒有捕獲這么多魚。在程序清單6.13中,如果數(shù)組被填滿或者輸入了非數(shù)字輸入,循環(huán)將結束。

#include <iostream>
#include <cstring>
//#include <iso646.h>
using namespace std;
const int Max = 5;int main() {double fish[Max];cout << "Please enter the weight of your fish:" << endl << "and ""you enter up to" << Max << "fiash<q to terminate>"<<endl;cout << "fish #1:";int i = 0;while (i < Max && cin >> fish[i]) {if (++i < Max) {cout << "fish #" << i + 1 << ":";}}double total = 0.0;for (int j = 0; j < i; j++) {total += fish[j];}if (i == 0) {cout << "No fish!" << endl;} else {cout << total / i << " = average weight of " << i << " fish\n";}cout << "Done.\n";return 0;
}

如果cin位于測試條件中,則將被轉換為bool類型。如果輸入成功,則轉換后的值為true,否則為false。如果表達式的值為false,則循環(huán)結束l,fish[q]不存在,因此輸入失敗。

在這個例子中,當用戶輸入的不是數(shù)字時,該程序將不再讀取輸入。下面來看一個繼續(xù)讀取的例子。

假設程序要求用戶提供5個高爾夫得分,以計算平均成績。如果用戶輸入非數(shù)字輸入,程序將拒絕,并要求用戶繼續(xù)輸入數(shù)字??梢钥吹?#xff0c;可以使用cin輸入表達式的值來檢測輸入是不是數(shù)字。程序發(fā)現(xiàn)用戶輸入了錯誤內容時,應采取3個步驟:

  1. 重置cin以接收新的輸出;
  2. 刪除錯誤輸入;
  3. 提示用戶再輸入。

請注意,程序必須先重置cin,然后才能刪除錯誤輸入。

#include <iostream>
#include <cstring>
//#include <iso646.h>using namespace std;
const int Max = 5;int main() {int golf[Max];cout << "Please enter you must enter 5 rounds: " << endl << "and ""you must enter " << Max << "rounds" << endl;int i;for (i = 0; i < Max; i++) {cout << "round # " << i + 1 << ":";while (!(cin >> golf[i])) {cin.clear();while (cin.get() != '\n')continue;cout << "Please enter a number:";}}double total = 0.0;for (i = 0; i < Max; i++ ) {total += golf[i];}cout << total / Max << " = average score " << Max << " rounds\n";return 0;
}

運行結果如下:

Please enter you must enter 5 rounds:
and you must enter 5rounds
round # 1:28
round # 2:34
round # 3:lv
Please enter a number:er
Please enter a number:23
round # 4:34
round # 5:t
Please enter a number:23
28.4 = average score 5 rounds--------------------------------
Process exited after 27.28 seconds with return value 0
請按任意鍵繼續(xù). . .

如果用戶輸入88,則cin表達式將為true,因此將一個值放到數(shù)組中;而表達式!(cin >> golf [i])為false,因此結束內部循環(huán)。然而,如果用戶輸入lv?,則cin表達式將為false,因此不會將任何值放到數(shù)組中;而表達式!(cin >> golf [i])將為true,因此進入內部的while循環(huán)。該循環(huán)的第一條語句使用clear( )方法重置輸入,如果省略這條語句,程序將拒絕繼續(xù)讀取輸入。接下來,程序在while循環(huán)中使用cin.get( )來讀取行尾之前的所有輸入,從而刪除這一行中的錯誤輸入。另一種方法是讀取到下一個空白字符,這樣將每次刪除一個單詞,而不是一次刪除整行。最后,程序告訴用戶,應輸入一個數(shù)字。

6.4 cin的處理過程

使用cin進行輸入時,程序將輸入視為一系列的字節(jié),其中每個字節(jié)都被解釋為字符編碼。不管目標數(shù)據
類型是什么,輸入一開始都是字符數(shù)據——文本數(shù)據。然后,cin對象負責將文本轉換為其他類型。

為說明這是如何完成的,來看一些處理同一個輸入行的代碼。

假設有如下示例輸入行:

38.5  19.2

來看一下使用不同數(shù)據類型的變量來存儲時,cin是如何處理該輸入行的。

char類型

char ch;
cin >> ch;

輸入行中的第一個字符被賦給ch。在這里,第一個字符是數(shù)字3,其字符編碼(二進制)被存儲在變量ch中。輸入和目標變量都是字符,因此不需要進行轉換。注意,這里存儲的數(shù)值3,而是字符3的編碼。執(zhí)行上述輸入語句后,輸入隊列中的下一個字符為字符8,如果有下一個輸入,則下一個輸入操作將對其進行處理。

int

int n;
cin >> n;

在這種情況下,cin將不斷讀取,直到遇到非數(shù)字字符。也就是說,它將讀取3和8,這樣句點將成為輸入隊列中的下一個字符。cin通過計算發(fā)現(xiàn),這兩個字符對應數(shù)值38,因此將38的二進制編碼復制到變量n中。

注意: 這里有的人認為是進行了強轉,將一個輸入的浮點型數(shù)據轉換成了這種整型數(shù)據,這樣理解是錯誤的。

double

double x;
cin >> x;

在這種情況下,cin將不斷讀取,直到遇到第一個不屬于浮點數(shù)的字符。也就是說,cin讀取3、8、句點和5,使得空格成為輸入隊列中的下一個字符。cin通過計算發(fā)現(xiàn),這四個字符對應于數(shù)值38.5,因此將38.5的二進制編碼(浮點格式)復制到變量x中。

char數(shù)組

char word[50];
cin >> word;

在這種情況下,cin將不斷讀取,直到遇到空白字符。也就是說,它讀取3、8、句點和5,使得空格成為輸入隊列中的下一個字符。然后,cin將這4個字符的字符編碼存儲到數(shù)組word中,并在末尾加上一個空字符。這里不需要進行任何轉換。

使用char數(shù)組來存儲輸入

char word[50];
cin.getline(word,50);

在這種情況下,cin將不斷讀取,直到遇到換行符(示例輸入行少于50個字符)。所有字符都將被存儲到數(shù)組word中,并在末尾加上一個空字符。換行符被丟棄,輸入隊列中的下一個字符是下一行中的第一個字符。這里不需要進行任何轉換。

即整數(shù)被轉換為數(shù)字字符序列,浮點數(shù)被轉換為數(shù)字字符和其他字符組成的字符序列(如284.53或
?1.58E+06)。字符數(shù)據不需要做任何轉換。

6.5 寫入到文本文件中

對于文件輸入,C++使用類似于cout的東西。下面來復習一些有關將cout用于控制臺輸出的基本事實,為文件輸出做準備。

  • 必須包含頭文件iostream。
  • 頭文件iostream定義了一個用處理輸出的ostream類。
  • 頭文件iostream聲明了一個名為cout的ostream變量(對象)。
  • 必須指明名稱空間std;例如,為引用元素cout和endl,必須使用編譯指令using或前綴std::。
  • 可以結合使用cout和運算符<<來顯示各種類型的數(shù)據。

文件輸出與此極其相似:

  • 必須包含頭文件fstream。
  • 頭文件fstream定義了一個用于處理輸出的ofstream類。
  • 需要聲明一個或多個ofstream變量(對象),并以自己喜歡的方式。對其進行命名,條件是遵守常用的命名規(guī)則。
  • 必須指明名稱空間std;例如,為引用元素ofstream,必須使用編譯指令using或前綴std::。
  • 需要將ofstream對象與文件關聯(lián)起來。為此,方法之一是使用open()方法。
  • 使用完文件后,應使用方法close( )將其關閉。
  • 可結合使用ofstream對象和運算符<<來輸出各種類型的數(shù)據。
  • 可以使用ifstream對象和get( )方法來讀取一個字符,使用ifstream對象和getline( )來讀取一行字符。
  • 可以結合使用ifstream和eof( )、fail( )等方法來判斷輸入是否成功。
  • ifstream對象本身被用作測試條件時,如果最后一個讀取操作成功,它將被轉換為布爾值true,否則被轉換為false。

注意,雖然頭文件iostream提供了一個預先定義好的名為cout的ostream對象,但您必須聲明自己ofstream對象,為其命名,并將其同文件關聯(lián)起來。下面演示了如何聲明這種對象:

ofstream outFile;
ofstream fout;

下面演示了如何將這種對象與特定的文件關聯(lián)起來:

outFile.open("fish.txt");
char filename[50];
cin>>filename;
fout.open(filename);

方法open( )接受一個C-風格字符串作為參數(shù),這可以是一個字面字符串,也可以是存儲在數(shù)組中的字符串。

重要的是,聲明一個ofstream對象并將其同文件關聯(lián)起來后,便可以像使用cout那樣使用它。所有可用于cout的操作和方法(如<<、endl和setf( ))都可用于ofstream對象(如前述示例中的outFile和fout)。

總之,使用文件輸出的主要步驟如下:

1.包含頭文件fstream。

2.創(chuàng)建一個ofstream對象。

3.將該ofstream對象同一個文件關聯(lián)起來。

4.就像使用cout那樣使用該ofstream對象。

下面的程序演示了這種方法。它要求用戶輸入信息,然后將信息顯示到屏幕上,再將這些信息寫入到文件中。讀者可以使用文本編輯器來查看該輸出文件的內容。

#include <iostream>
#include <fstream>
#include <cstring>using namespace std;int main() {char automobile[50];int year;double a_price;double d_price;ofstream outFile;outFile.open("carinfo.txt");//與文本文件建立聯(lián)系cout << "Enter the make and model of automobile:";cin.getline(automobile, 50);cout << "Enter the model year:";cin >> year;cout<<"Enter the original asking price:";cin >> a_price;d_price = 0.913 * a_price;cout << fixed;//以普通方式輸出,非科學計數(shù)法cout.precision(2);//保留兩位小數(shù)cout.setf(ios_base::showpoint);cout << "Make and model: " << automobile << endl;cout << "Year:" << year << endl;cout << "Was asking $" << a_price << endl;cout << "Now asking $" << d_price << endl;outFile << fixed;//以普通方式輸出,非科學計數(shù)法outFile.precision(2);//保留兩位小數(shù)outFile.setf(ios_base::showpoint);outFile << "Make and model:" << automobile << endl;outFile << "Year:" << year << endl;outFile << "Was asking $" << a_price << endl;outFile << "Now asking $" << d_price << endl;outFile.close();return 0;
}

注意,方法close( )不需要使用文件名作為參數(shù),這是因為outFile已經同特定的文件關聯(lián)起來。如果您忘記關閉文件,程序正常終止時將自動關閉它。

outFile.open("carinfo.txt");//與文本文件建立聯(lián)系

在這里,該程序運行之前,文件carinfo.txt并不存在。在這種情況下,方法open( )將新建一個名為carinfo.txt的文件。如果在此運行該程序,文件carinfo.txt將存在,此時情況將如何呢?默認情況下,open( )將首先截斷該文件,即將其長度截短到零——丟其原有的內容,然后將新的輸出加入到該文件中。

打開已有的文件,以接受輸出時,默認將它其長度截短為零,因此原來的內容將丟失。

打開文件用于接受輸入時可能失敗。例如,指定的文件可能已經存在,但禁止對其進行訪問。因此細心的程序員將檢查打開文件的操作是否成功。

6.6 讀取文本文件

接下來介紹文本文件輸入,它是基于控制臺輸入的。控制臺輸入涉及多個方面,下面首先總結這些方面。

  • 必須包含頭文件iostream。
  • 頭文件iostream定義了一個用處理輸入的istream類。
  • 頭文件iostream聲明了一個名為cin的istream變量(對象)。
  • 必須指明名稱空間std;例如,為引用元素cin,必須使用編譯指令using或前綴std::。
  • 可以結合使用cin和運算符>>來讀取各種類型的數(shù)據。
  • 可以使用cin和get( )方法來讀取一個字符,使用cin和getline( )來讀取一行字符。
  • 可以結合使用cin和eof( )、fail( )方法來判斷輸入是否成功。
  • 對象cin本身被用作測試條件時,如果最后一個讀取操作成功,它將被轉換為布爾值true,否則被轉換false。

注意,雖然頭文件iostream提供了一個預先定義好的名為cin的istream對象,但您必須聲明自己的ifstream對象,為其命名,并將其同文件關聯(lián)起來。下面演示了如何聲明這種對象:

ifstream inFile;
ifstream fin;

下面演示了如何將這種對象與特定的文件關聯(lián)起來:

inFile.open("bowling.txt");
char filename[50];
cin>>filename;
fin.open(filename);

注意,方法open( )接受一個C-風格字符串作為參數(shù),這可以是一個字面字符串,也可以是存儲在數(shù)組中的字符串。

下面演示了如何使用這種對象:

double wt;
inFile >> wt;
char line[81];
fin.getline(line,81);

聲明一個ifstream對象并將其同文件關聯(lián)起來后,便可以像使用cin那樣使用它。所有可用于cin的操作和方法都可用于ifstream對象。

如果試圖打開一個不存在的文件用于輸入,情況將如何呢?這種錯誤將導致后面使用ifstream對象進行輸入時失敗。檢查文件是否被成功打開的首先方法是使用方法is_open( ),為此,可以使用類似于下面的代碼:

inFile.open("bowling.txt");
if(!inFile.isopen){exit(EXIT_FAILURE);
}

如果文件被成功地打開,方法is_open( )將返回true;因此如果文件沒有被打開,表達式!inFile.isopen( )將為true。函數(shù)exit( )的原型是在頭文件cstdlib中定義的,在該頭文件中,還定義了一個用于同操作系統(tǒng)通信的參數(shù)值EXIT_FAILURE。函數(shù)exit( )終止程序。

下面的程序打開用戶指定的文件,讀取其中的數(shù)字,然后指出文件中包含多少個值以及它們的和與平均值。正確地設計輸入循環(huán)至關重要。

#include <iostream>
#include <fstream>
#include <cstdlib>using namespace std;
const int SIZE = 60;int main() {char filename[SIZE];ifstream inFile;cout << "Enter name of data file:";cin.getline(filename, SIZE);inFile.open(filename);if (!inFile.is_open()) {cout << "Could not open the file " << filename << endl;cout << "Program terminating.\n";exit(EXIT_FAILURE);}double value;double sum = 0.0;int count = 0;inFile >> value;while (inFile.good()) {//while input good and not at EOF++count;sum += value;inFile >> value;}if (inFile.eof()) {cout << "End of file reached." << endl;} else if (inFile.fail()) {cout << "Input terminated by data mismatch." << endl;}else{cout<<"Input terminated for unknow reason."<<endl;}if (count == 0) {cout << "No data processed" << endl;} else {cout << "Item read:"  << endl;cout << "Sum:" << sum << endl;cout << "Average: " << sum / count << endl;}inFile.close();return 0;
}

文件“scores.txt"文本內容如下:

18  19  18  14  14 
16  20  20 8  12  29
17

輸出結果如下:

Enter name of data file:scores.txt
End of file reached.
Item read:
Sum:188
Average: 17.0909--------------------------------
Process exited after 7.936 seconds with return value 0
請按任意鍵繼續(xù). . .

Windows文本文件的每行都以回車字符和換行符結尾;通常情況下,C++在讀取文件時將這兩個字符轉換為換行符,并在寫入文件時執(zhí)行相反的轉換。有些文本編輯器(如MetrowerksCodeWarrior IDE編輯器),不會自動在最后一行末尾加上換行符。因此,如果讀者使用的是這種編輯器,請在輸入最后的文本后按下回車鍵,然后再保存文件。

讀者需要特別注意的是文件讀取循環(huán)的正確設計。讀取文件時,有幾點需要檢查。首先,程序讀取文件時不應超過EOF。如果最后一次讀取數(shù)據時遇到EOF,方法eof( )將返回true。其次,程序可能遇到類型不匹配的情況。例如,程序清單6.16期望文件中只包含數(shù)字。如果最后一次讀取操作中發(fā)生了類型不匹配的情況,方法fail( )將返回true(如果遇到了EOF,該方法也將返回true)。最后,可能出現(xiàn)意外的問題,如文件受損或硬件故障。如果最后一次讀取文件時發(fā)生了這樣的問題,方法bad( )將返回true。不要分別檢查這些情況,一種更簡單的方法是使用
good( )方法,該方法在沒有發(fā)生任何錯誤時返回true:

while(inFile.good()){...
}
if (inFile.eof()) {cout << "End of file reached." << endl;} else if (inFile.fail()) {cout << "Input terminated by data mismatch." << endl;}else{cout<<"Input terminated for unknow reason."<<endl;}

這些代碼緊跟在循環(huán)的后面,用于判斷循環(huán)為何終止。由于eof( )只能判斷是否到達EOF,而fail( )可用于檢查EOF和類型不匹配,因此上述代碼首先判斷是否到達EOF。這樣,如果執(zhí)行到了else if測試,便可排除EOF,因此,如果fail( )返回true,便可斷定導致循環(huán)終止的原因是類型不匹配。

方法good( )指出最后一次讀取輸入的操作是否成功,這一點至關重要。這意味著應該在執(zhí)行讀取輸入的操作后,立刻應用這種測試。為此,一種標準方法是,在循環(huán)之前(首次執(zhí)行循環(huán)測試前)放置一條輸入語句,并在循環(huán)的末尾(下次執(zhí)行循環(huán)測試之前)放置另一條輸入語句:

inFile >> value;
while(inFile.good()){inFile>>value;
}

鑒于以下事實,可以對上述代碼進行精簡:

  • 表達式inFile >> value的結果為inFile;
  • 而在需要一個bool值的情況下,inFile的結果為inFile.good( ),即true或false。

因此,可以將兩條輸入語句用一條用作循環(huán)測試的輸入語句代替。也就是說,可以將上述循環(huán)結構替換為如下循環(huán)結構:

while(inFile>>value){
//loop body goes here
}

這種設計仍然遵循了在測試之前進行讀取的規(guī)則,因為要計算表達式inFile >> value的值,程序必須首先試圖將一個數(shù)字讀取到value中。

6.7 總結

  1. 使用引導程序選擇不同操作的語句后,程序和編程將更有趣。C++提供了if語句、ifelse語句和switch語句來管理選項。if語句使程序有條件地執(zhí)行語句或語句塊,也就是說,如果滿足特定的條件,程序將執(zhí)行特定的語句或語句塊。if else語句程序選擇執(zhí)行兩個語句或語句塊之一。可以在這條語句后再加上if else,以提供一系列的選項。switch語句引導程序執(zhí)行一系列選項之一。
  2. C++還提供了幫助決策的運算符。第5章討論了關系表達式,這種表達式對兩個值進行比較。if和if else語句通常使用關系表達式作為測試條件。通過使用邏輯運算符(&&、||和!),可以組合或修改關系表達式,創(chuàng)建更細致的測試。條件運算符(?:)提供了一種選擇兩個值之一的簡潔方式。
  3. cctype字符函數(shù)庫提供了一組方便的、功能強大的工具,可用于分析字符輸入。
  4. 對于文件I/O來說,循環(huán)和選擇語句是很有用的工具;文件I/O與控制臺I/O極其相似。聲明ifstream和ofstream對象,并將它們同文件關聯(lián)起來后,便可以像使用cin和cout那樣使用這些對象。
  5. 使用循環(huán)和決策語句,便可以編寫有趣的、智能的、功能強大的程序。
http://www.risenshineclean.com/news/38200.html

相關文章:

  • 素材下載網站源碼seo網絡推廣企業(yè)
  • 上海微網站公司實時熱搜
  • 北京市環(huán)境建設辦公室網站免費關鍵詞排名優(yōu)化軟件
  • 網站備案備的是域名還是空間企業(yè)培訓有哪些方面
  • 深圳做網站哪家便宜微信小程序開發(fā)公司
  • 滄州wap網站制作企業(yè)推廣網
  • 小程序網站開發(fā)怎么樣谷歌廣告上海有限公司
  • 做外貿怎么打開國外網站亞馬遜關鍵詞搜索工具
  • 想自己做點飄紗素材到網站上買鄭州seo服務技術
  • 網站自助授權系統(tǒng)站長之家網站排名
  • 成立一個網站平臺要多少錢關鍵詞是怎么排名的
  • 品牌網站建設小科6a蚪湖北網絡推廣有限公司
  • 做網站要注意哪些長春網絡優(yōu)化最好的公司
  • 網站建設需要多大的空間百度數(shù)據庫
  • 網站搜索排名百度seo系統(tǒng)
  • 免費看電視劇的網站在線觀看seo免費診斷電話
  • 橙子建站落地頁制作郴州網站建設
  • 網站app簡單做軟文怎么寫
  • 北京價格微網站建設手機百度ai入口
  • 中英文網站asp怎么做搜狗搜圖
  • 網站建設頤高上海街保溫杯軟文營銷300字
  • 源代碼做的網站好用么百度開放云平臺
  • 湖州企業(yè)做網站手機關鍵詞seo排名優(yōu)化
  • 游戲推廣網站制作seo的基本步驟包括哪些
  • 團購網站做攝影如何查詢百度收錄
  • 怎么做網站平臺教程營銷方式和渠道
  • 廣州網站建設o2o搜索引擎查詢
  • 免費二級域名空間注冊天津seo博客
  • php學多久可以做網站南京seo關鍵詞排名
  • 網站建設培訓ppt上海百度seo點擊軟件