




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中南林業(yè)科技大學(xué)管理系統(tǒng)中計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告姓 名XXX專.業(yè) 人力資源管理衿(系)中南林業(yè)科技大學(xué)成教學(xué)I 兀 .實(shí)習(xí)時(shí)間:2013 年4月18日實(shí)習(xí)地點(diǎn):XXXXXXXXXX成績:指導(dǎo)教師評(píng)語:簽名:年月日撰寫及批改注意事項(xiàng)、填寫信息1、學(xué)生填寫信息齊全、字跡清晰、日期真實(shí);2、教師批改后的簽名和日期應(yīng)完整;3、報(bào)告中封面、圖、程序要求打印(封面與此頁要求正反雙面打印,教師評(píng)語 要求手寫)。、實(shí)習(xí)報(bào)告的撰寫1、實(shí)習(xí)報(bào)告撰寫認(rèn)真細(xì)致,數(shù)據(jù)計(jì)算正確、誤差分析準(zhǔn)確、實(shí)驗(yàn)結(jié)論分析符合科學(xué)規(guī)律。2、實(shí)習(xí)報(bào)告有繪制的圖形、圖表時(shí),要求(1)用電腦繪制;(2)應(yīng)在報(bào)告中注明圖號(hào)、表號(hào)。三、批改實(shí)驗(yàn)報(bào)告1
2、 、一律采用百分制;2、批改時(shí)應(yīng)對(duì)錯(cuò)分明,錯(cuò)誤之處應(yīng)有文字說明或指出錯(cuò)誤的標(biāo)記;3、指導(dǎo)教師評(píng)語的內(nèi)容:(1)對(duì)本次認(rèn)識(shí)實(shí)習(xí)完成情況的評(píng)語;(2)對(duì)本次認(rèn)識(shí)實(shí)習(xí)報(bào)告的評(píng)語;目錄1. 軟件編譯理論及實(shí)踐教程實(shí)習(xí)內(nèi)容 42. 套接字編程62.1 使用說明書62.2 原理說明書72.3 程序注釋73. 連接數(shù)據(jù)庫193.1 使用說明書193.2 原理說明書 203.3 程序注釋204. 實(shí)習(xí)總結(jié)、體會(huì)與收獲26正文部分)1.軟件編譯理論及實(shí)踐教程實(shí)習(xí)內(nèi)容一:我的電腦磁盤分析:001876E38D001876E38D分區(qū)間隙001876E3CB001876E3CB管理節(jié)點(diǎn)4001876E3CC 001
3、876E3CC(102.4GB)(?b25422D6cl剩余扇區(qū)PING.EXE +六進(jìn)制源碼分 析在文件存儲(chǔ)空間中,Ping.exe十六進(jìn)制源碼分析如 下:-1 力 F7 -1D »'7 -DE F8-DE P9 -00 30 45 -00 00 -00 32-OO1001» 與0500 - 00 白妗 0000 - 0000 - ZG 0D - 0072 732.套接字編程2.1 .使用說明書:第一步:先打開服務(wù)器端(server.exe ).根據(jù)提示輸入端口號(hào),需要輸入大于5001小于65535的值,否則就是用默認(rèn)的5001作為 端口值第二步:創(chuàng)建套接字并選擇
4、協(xié)議。第三步:打開客戶端(client.exe ),根據(jù)提示,將客戶端(server.exe )所在的服務(wù)器的IP地址輸入進(jìn)去。第四輸入在服務(wù)器端(server.exe)中建立的端口號(hào)值。r 1 第五步:選擇和服務(wù)器端(server.exe )中一樣的協(xié)議置六收發(fā)數(shù)據(jù)少第七關(guān)閉連接。2.2原理說明書2.3程序注釋if* client© -簡單的TCP/UDP套接字客戶程序 windows環(huán)境include <winsock2.h>/關(guān)于套接字的頭文件 include <stdlib.h> include <stdio.h> include <
5、string.h> include <conio.h>#pragma comment (lib,Hws2_32n)/ 添力口 ' ws2_321 庫/端口號(hào)int main(void)unsigned short port = 5001;int socket_type = SOCK_STREAM; /缺省使用TCP連接char Buffer1280;/收發(fā)緩沖區(qū)unsigned int addr;IP地址變量int retvalj;臨時(shí)變量套接字地址結(jié)構(gòu)變量/主機(jī)信息結(jié)構(gòu)變量/windows套接字信struct sockaddrjn server, from; /st
6、ruct hostent *hp;指針WSADATA wsaData;/套接字變量SOCKET conn socket;先輸入客戶程序所需要的基本信息:服務(wù)器地址,端口號(hào),套接字類型print"請(qǐng)輸入服務(wù)器地址:”);scanf(n%sn, Buffer);printf(”請(qǐng)輸入端口號(hào)(>5000):");scanf(H%dH, &i);if(i <5000 | i> 65535)printf("不正確的端口號(hào)d,用缺省端口號(hào)5001n; i); elseport = i;printf(“請(qǐng)輸入套接字類型(1,TCP; 2, UDPsca
7、nf(n%dn5&i);if(i =1)socketjype = SOCK_STREAM;/ 設(shè)定為 SOCK_STREAMelse if(i = 2)socketjype = SOCK_DGRAM;設(shè)定為 SOCK_DGRAM elseprintf("不正確的輸入d使用TCP數(shù)據(jù)流n", i);/在windows環(huán)境下,需要先初始化協(xié)議棧if (retval = WSAStartup(0x202, &wsaData) != 0) /WSAStartup 函數(shù)調(diào) 用,用來初始/socketprintf(”WSAStartup 失貝攵,錯(cuò)誤號(hào):%dnn,ret
8、val);WSACIeanup();/當(dāng)調(diào)用了 WSAStartup之后,就需要調(diào)用WSACIeanup函數(shù)釋放內(nèi)存return -1;取得主機(jī)IP地址if (isalpha(Buffeg) 是域名或命名地址,用首字母的是否在A-Z,或者a-z來判斷是域名還是IP地址hp = gethostbyname(Buffer);/從一個(gè)主機(jī)數(shù)據(jù)庫中提 取出主機(jī) 信息elseaddr = inet_addr(Buffer);/是點(diǎn)分地址hp = gethostbyaddr(char *)&addr,4,AF_INET);/根據(jù)網(wǎng)絡(luò)地址,獲得主機(jī)信息,執(zhí)行成功,就返回一個(gè)指向主機(jī)信息的 結(jié)構(gòu))if
9、 (hp = NULL )printf(" 不能解析地址%s:錯(cuò)誤號(hào)%dn",Buffer,WSAGetLastError();/用于獲取錯(cuò)誤信息WSACIeanupQ;拷貝解析的信息到sockaddjin結(jié)構(gòu)中memset(&server,0,sizeof(server);/ 配內(nèi)存空間 ' 由 server返回memcpy(&(server.sin_addr)3hp->h_addr,hp->hjength);/ 信息的 copyserver.sin_family = hp->h_addrtype;/ 組t辦議初始彳匕 serve
10、r.sin_port=htons(port);/端口號(hào)初始彳匕/建立套接字conn_socket = socket(AF_l N ET,socket_type,0);if (conn_socket <0 ) printf("socket()失敗,錯(cuò)誤號(hào):%dn",WSAGetLastError();WSACIeanupQ;return -1;/對(duì)于流式套接字,需要先建立連接其實(shí)也可以使用connect。,send。,recv()等函數(shù)在 windows里面一樣實(shí)現(xiàn)數(shù)據(jù)報(bào)套接字功能if(socket_type != SOCK_DGRAM) printf(n 正在連接到:
11、%snH,hp->h_name);if (connect(conn_socket,(structsockaddr*)&server,sizeof(server) = SOCKET_ERROR)printf("connect()失敗,錯(cuò)誤號(hào):%dnH,WSAGetLastError();closesocket(conn_socket);如果創(chuàng)建失敗,就關(guān)閉連接套接字WSACIeanupQ;return -1; )while(1)得到要發(fā)送的信息字符串 puts”n輸入送到服務(wù)器的信息:”);gets(Buffer);if(!strlen(Buffeij) 如果沒有輸入信息
12、,繼續(xù)循環(huán) continue;/發(fā)送網(wǎng)絡(luò)信息if(socket_type != SOCK_DGRAM)retval = send(conn_socket, Buffer,strlen(Buffer)+1,0);面向 tcp,類似 BSD write()elseretval = sendto(conn_socket, Buffer, strlen(Buffer)+1,0,發(fā)送字符串的時(shí)候,須將字符串的結(jié)束符0發(fā)送(struct sockaddr*)&server, sizeof(server);面向UDPif (retval = SOCKET_ERROR)printf("發(fā)送失
13、敗,錯(cuò)誤號(hào):WSAGetLastError();%dnH,break;elseprint"'發(fā)送信息:sn”, Buffer);/接收網(wǎng)絡(luò)信息i = sizeof(from);if(socket_type != SOCK_DGRAM)retval = recv(conn_socket,Buffer,Buffer,sizeof(Buffer), 0 ); 面向 tcp ,類似 BSD read()elseretval = recvfrom(conn_socketjsizeof(Buffer), 0,(struct sockaddr*)&from, &i);面向U
14、DPif (retval = SOCKET_ERROR)printf("接收信息失敗,錯(cuò)號(hào):%dnH,WSAGetLastError();break;)else if (retval = 0)/對(duì)于面向連接的套接字,要判斷對(duì)方是否關(guān)閉連接(printf("服務(wù)器關(guān)閉連接n");break;)else /正確接收到網(wǎng)絡(luò)信息printf(n 收到 %d 字節(jié)信息:%s nn, retval, Buffer);程序的一個(gè)退出條件 if(!stricmp(Buffer, nquitn) break;/關(guān)閉套接字closesocket(conn_socket);WSACIe
15、anupQ;return 0;if* server©-簡單TCP/UDP套接字服務(wù)器程序windows環(huán)境I#include <winsock2.h>/ 套接字頭文件#include <stdlib.h>#include <stdio.h>#include <string.h>#include <iostream.h>#pragma comment(lib,Hws2_32n)/ 添加庫int main(void)unsigned short port= 5001;/端口號(hào)int socket_type = SOCK_DGRA
16、M;char Buffer1024;缺省使用TCP連接/收發(fā)緩沖區(qū)int retval, fromlen, i, isconnected = 0;臨時(shí)變量struct sockaddrjn local, from;/ 套接字地址結(jié)構(gòu)變SOCKET listen_socket, msgsock; / 套接字變量WSADATA wsaData;/windows 套接字信/先輸入服務(wù)器程序所需要的基本信息:端口號(hào),套接字類型printf("請(qǐng)輸入端口號(hào)(>5000):");scanf(H%dH, &i);if(i < 5000 | i> 65535)pr
17、intf("不正確的端口號(hào)d,用缺省端口號(hào)5001 n"J)elseport = i; printf("請(qǐng)輸入套接字類型(1,TCP; 2, UDP ): H);scanf(n%dM5 &i);if(i = 1)socket_type = SOCK_STREAM;else if(i = 2)socket_type = SOCK_DGRAM;elseprintf("不正確的輸入d,使用TCP數(shù)據(jù)流n;i);在windows環(huán)境下,需要先初始化協(xié)議棧if (retval = WSAStartup(0x202, &wsaData) != 0)
18、/始化套接字版本等信息(printf(nWSAStartup 失敗,錯(cuò)誤號(hào):%dnn5 retval);WSACIeanup();在創(chuàng)建失敗,或者程序結(jié)束,都要調(diào)用 return -1;/建立套接字listen_socket = socket(AF_INET, socket_type, 0);if (listen_socket = INVALID_SOCKET)(printf("socket()失敗,錯(cuò)誤號(hào):%dn",WSAGetLastError();WSACIeanup();return -1;)拷貝 解析的信息到sockaddrjn結(jié)構(gòu)中l(wèi)ocal.sin_famil
19、y = AFJNET;local.sin addr.s addr = INADDR ANY;local.sin_port = htons(port);/邦定網(wǎng)絡(luò)地址到套接字if (bind(listen_socket,(struct sockaddr*)&local, sizeof(local)=SOCKET_ERROR) /綁定網(wǎng)絡(luò)地址printf("bind()失敗,錯(cuò)誤號(hào):%dn",WSAGetLastError();WSACIeanup(); return -1;)/對(duì)于流式套接字,讓套接字處于監(jiān)聽狀態(tài),等待連接到來if (socket_type != SO
20、CK_DGRAM)if (listen(listen_socket,5) = SOCKET_ERROR/)監(jiān) 聽網(wǎng)絡(luò) (printf("listen()失敗,錯(cuò)誤號(hào):%dn", WSAGetLastError();WSACIeanupQ;return -1;printf(“ 監(jiān)聽端口 : d,使用協(xié)議:%sn; port,(socketjype = SOCK_STREAM)?叮CP": ”UDP“);while(1)(fromlen =sizeof(from);if (socketjype = SOCK_DGRAM )msgsock = listen_socket
21、;else if( isconnected = 0)/對(duì)于TCP連接,如果沒有連接,等待一個(gè)連接的到來 msgsock = accept(listen_socket,(struct sockaddr*)&from, &fromlen);if (msgsock = INVALID_SOCKET)(printf(naccept()失敗,錯(cuò)號(hào):%dnH,WSAGetLastError();WSACIeanupQ;return -1;isconnected = 1;printf("從s收到連接,端口是:%dn", inet_ntoa(from.sin_addr),
22、htons(from.sin_port);)/等待接收網(wǎng)絡(luò)信息if (socket_type != SOCK_DGRAM)retval = recv(msgsock, Buffer, sizeof (Buffer),0 ); 面向 tcp ,類似 BSD read()else(retval = recvfrom(msgsockj Buffer, sizeof (Buffer), 0,(struct sockaddr *)&from, &fromlen); 面向UDPprintf(H從s收到 數(shù)據(jù)報(bào),端口是:dn”, inet_ntoa(from.sin_addr), htons
23、(from.sin_port);)/結(jié)果判斷if (retval = SOCKET_ERROR) (printf("recv()失敗,錯(cuò)誤號(hào):%dn",WSAGetLastError();closesocket(msgsock);continue;)else if (retval = 0)(printf(H 客戶端關(guān)閉連接 n"); closesocket(msgsock);continue;)else /正常接收printf(n 收到 %d 字節(jié)的數(shù)據(jù):%s nH, retval,Buffer);if (socket_type != SOCK_DGRAM)對(duì)于T
24、CP連接,我們收到“exit”有一個(gè)關(guān)閉連接的操作if(!stricmp(Buffer, nexitH)(printf("關(guān)閉TCP連接,等待下一次連接俏;closesocket(msgsock);isconnected = 0;continue;信息回送printf("將同樣的信息回送給客戶端.nn");printf(Hplease input the message:nn); scanf(H%sH,Buffer);if (socket_type != SOCK_DGRAM)retval = send(msgsock, Buffer, strlen(Buffer
25、)+1,0); / 面向 tcp , 類似 BSD write()elseretval= sendto(msgsock, Buffer,strlen(Buffer)+1,0,(struct sockaddr *)&from, fromlen);面向 UDPif (retval = SOCKET_ERROR)printf("send()失敗'錯(cuò)誤號(hào):drT,WSAGetLastError(); )程序的一個(gè)退出條件 if(!stricmp(Buffer, "quit") break;)WSACIeanupQ;return 0;)3 .連接數(shù)據(jù)庫3.1
26、 使用說明書第一步:在開始菜單中找到SQL SERVE并R打開第二步:建立一個(gè)新的數(shù)據(jù)庫。在SQL SERVER中建立一個(gè)名為student的數(shù)據(jù)庫第三步:在student庫下創(chuàng)建一個(gè)Stu_lnfo表,并在表中包含以下字段名:snum , sname , ssex ' sage , smajor ° 輸入一些數(shù)據(jù)' 進(jìn)行測試。第四步:在安全性中設(shè)置密碼為123.第三步:編譯生成可執(zhí)行的 文件,點(diǎn)擊運(yùn)行。根據(jù)提示框中的信息,輸入我們需要插入的數(shù) 據(jù)。關(guān)閉程序。第四步:在次點(diǎn)擊運(yùn)行,查看我們插入的數(shù)據(jù)是否成功的插入。3.2 原理說明通過ADO訪問數(shù)據(jù)庫的技術(shù)進(jìn)行數(shù)據(jù)庫編
27、程。我們需要在計(jì)算機(jī) 上配置數(shù)據(jù)源。配置數(shù)據(jù)源的過程,就是和讓數(shù)據(jù)庫的驅(qū)動(dòng)程序來 對(duì)數(shù)據(jù)庫進(jìn)行操作,以便使我們?cè)俪绦蛑?,可以調(diào)用驅(qū)動(dòng)程序來完 成我們需要完成的工作。處理ADO訪問技術(shù)之外,還有ODB (C開放式數(shù)據(jù)庫互聯(lián))等。3 3 不早率 /*利用 ADO訪問 MS SQL2000要求:【1】輸出Stunfo表內(nèi)的每一條記錄2添加一條新記錄3刪除名字為“李立“的記錄#import nc:Program FilesCommonFilesSystemADOmsado15.dll" V/導(dǎo)入動(dòng)態(tài)鏈接庫,使我們可以使用ADO編程no_namespace rename(HEOFn, HEnd
28、OfFileH) / 為了防止命名沖突,不使用命名空間#include <iostream> /標(biāo)準(zhǔn)輸入輸出流#include <iomanip> /for setw()using namespace std;class STU /定義學(xué)生類public:學(xué)號(hào)char snum10; /姓名char sname10; /char ssex2; / 姓別long sage; / 年齡專業(yè)char smajor20; /public:STU()STU();int main() (STU student; /定義學(xué)生又寸象:Colnitialize(NULL);/ 初始化 O
29、LE/COM 庫環(huán)境,為訪問ADO接口做準(zhǔn)備_RecordsetPtr m_pRecordset(nADODB.RecordsetH); / 立 t己錄_ConnectionPtr m_pConnection("ADODB.Connection"); / 建立連接_bstr_t bstrSQL("select * from stujnfo"); / 查詢語句 char*query_cmd = "DELETE FROM stujnfo WHERE sname =,李立”二try /異常處理倉!!建Connection又寸象m_pConnectio
30、n.Createlnstance("ADODB.Connection");設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型_bstrj strConnect=Trovider=SQLOLEDB;Server=(local);Database=student;uid=sapwd=123;H;若數(shù)據(jù)庫在網(wǎng)絡(luò)上則Server為形如(192.168.1.5,3340)用戶sa和密碼123只是針對(duì)我的庫m_pConnection->Open(strConnect,"",""JadModeUnknown); if(m_pConnect
31、ion=NULL)cerr«HLind data ERROR!nH;/創(chuàng)建記錄集對(duì)象m_pRecordset.Createlnstance(_uuidof(Recordset);取得表中的記錄m_pRecordset->Open(bstrSQL,m_pConnection.GetlnterfacePtr()3adOpenDynamic,adLockOptimistic,adCmdText);_variant_t vsnum,vsname,vsage,vssex,vsmajor; / 又寸應(yīng)庫中的snum5sname,sage,ssex5smajorcout«"
32、;學(xué)號(hào)姓名年齡姓別專業(yè)cout«”nn";while (!m_pRecordset->EndOfFile) /如果記錄集沒有到記錄的 尾端 vsnum = m_pRecordset- >GetCollect(_variant_t(long)0);/ 這兒給字段編號(hào)和字段名都可以vsname = m_pRecordset->GetCollect(Hsnamen);vsage = m_pRecordset->GetCollect(nsagen);vssex = m_pRecordset->GetCollect(nssexn);vsmajor = m
33、_pRecordset->GetCollect(nsmajorn);if (vsnum.vt != VT_NULL&&vsname.vt != VT_NULL&&vsage.vt !=VT NULL&&vssex.vt != VT_NULL&&vsmajor.vt != VT_NULL)/ 如 果不為空cout.setf(ios:left);/ 設(shè)置左對(duì)齊輸出cout « setw(14) « (char*)(_bstr_t)vsnum; /學(xué)號(hào)cout « setw(14) « (c
34、har*)(_bstr_t)vsname; /出姓名cout « setw(8) « vsage.lVal; / 輸出年齡cout « setw(8) « (char*)(_bstr_t)vssex; /輸出性別cout «setw(20) « (char*)(_bstr_t)vsmajor; /出專業(yè)cout.unsetf(ios:left); / 取消左對(duì)齊 cout « endl;)m_pRecordset->MoveNext(); III 移到下一條記錄)cout« Hnn" 輸入將要插入的信息cout « "n請(qǐng)輸入你要添加的學(xué)生信息n"cout « "學(xué)號(hào):"cin » studen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州2025年02月貴州省安順市面向社會(huì)公開招考956名事業(yè)單位工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 電子商務(wù)物流配送網(wǎng)絡(luò)布局優(yōu)化策略研究
- 江西2025年01月江西省新余市仙女湖現(xiàn)代服務(wù)業(yè)制造業(yè)融合試驗(yàn)園區(qū)管理委員會(huì)公開招考1名工程技術(shù)人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 軟件著作權(quán)在科技創(chuàng)新中的推動(dòng)作用
- 2025年度湖南省交通規(guī)劃勘察設(shè)計(jì)院有限公司社會(huì)招聘15人筆試參考題庫附帶答案詳解
- 飲食多樣性與營養(yǎng)支持的實(shí)踐
- 初中語文生活美文拉薩的云
- 質(zhì)量保障下的供應(yīng)商篩選標(biāo)準(zhǔn)及實(shí)踐
- 浙江鴨2025版高中生物考前特訓(xùn)選擇題快練考點(diǎn)10免疫系統(tǒng)與免疫功能含解析
- 小學(xué)數(shù)學(xué)數(shù)學(xué)故事他們?nèi)绾握J(rèn)出他的
- 高考必知的自然科學(xué)類基礎(chǔ)知識(shí)考試題庫(400題)
- 設(shè)計(jì)思維電子課件
- 建筑施工企業(yè)安全生產(chǎn)風(fēng)險(xiǎn)分級(jí)管控體系-實(shí)施指南
- 配位鍵和配位化合物課件
- 國際貨物運(yùn)輸與保險(xiǎn)課后習(xí)題參考答案
- 房地產(chǎn)銷售培訓(xùn)PPT培訓(xùn)課件
- 職業(yè)暴露(銳器傷)應(yīng)急預(yù)案演練腳本
- 建筑設(shè)計(jì)電梯計(jì)算
- 蘇教版數(shù)學(xué)二年級(jí)下冊(cè)《認(rèn)識(shí)時(shí)分》教案(無錫公開課)
- 軌道交通云平臺(tái)業(yè)務(wù)關(guān)鍵技術(shù)發(fā)展趨勢(shì)
- 打造金融級(jí)智能中臺(tái)的數(shù)據(jù)底座
評(píng)論
0/150
提交評(píng)論