版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中南林業(yè)科技大學(xué)管理系統(tǒng)中計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告姓 名:XXX 專 業(yè): 人力資源管理 院 (系): 中南林業(yè)科技大學(xué)成教學(xué)院 實(shí)習(xí)時(shí)間: 2013年4月18日 實(shí)習(xí)地點(diǎn): XXXXXXXXXX 指導(dǎo)教師評(píng)語(yǔ): 成績(jī):簽名: 年 月 日撰寫(xiě)及批改注意事項(xiàng)一、填寫(xiě)信息1、學(xué)生填寫(xiě)信息齊全、字跡清晰、日期真實(shí);2、教師批改后的簽名和日期應(yīng)完整;3、報(bào)告中封面、圖、程序要求打?。ǚ饷媾c此頁(yè)要求正反雙面打印,教師評(píng)語(yǔ)要求手寫(xiě))。二、實(shí)習(xí)報(bào)告的撰寫(xiě) 1、實(shí)習(xí)報(bào)告撰寫(xiě)認(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)告中注明
2、圖號(hào)、表號(hào)。三、批改實(shí)驗(yàn)報(bào)告 1、一律采用百分制; 2、批改時(shí)應(yīng)對(duì)錯(cuò)分明,錯(cuò)誤之處應(yīng)有文字說(shuō)明或指出錯(cuò)誤的標(biāo)記;3、指導(dǎo)教師評(píng)語(yǔ)的內(nèi)容: (1)對(duì)本次認(rèn)識(shí)實(shí)習(xí)完成情況的評(píng)語(yǔ); (2)對(duì)本次認(rèn)識(shí)實(shí)習(xí)報(bào)告的評(píng)語(yǔ);目 錄1.軟件編譯理論及實(shí)踐教程實(shí)習(xí)內(nèi)容42.套接字編程62.1使用說(shuō)明書(shū)62.2原理說(shuō)明書(shū)72.3程序注釋73.連接數(shù)據(jù)庫(kù)193.1使用說(shuō)明書(shū)193.2原理說(shuō)明書(shū)203.3程序注釋204.實(shí)習(xí)總結(jié)、體會(huì)與收獲26 (正 文 部 分)1.軟件編譯理論及實(shí)踐教程實(shí)習(xí)內(nèi)容一:我的電腦磁盤(pán)分析: 管理節(jié)點(diǎn)1FF C盤(pán)(48.8GB)00061AB82700061AB827 管理節(jié)點(diǎn)200061A
3、B86600061AB866 D盤(pán)(73.4GB)000F48CDDA000F48CDDA 分區(qū)間隙000F48CE18000F48CE18 管理節(jié)點(diǎn)3000F48CE19000F48CE19 E盤(pán)(73.4GB)E38DE38D 分區(qū)間隙E3CBE3CB 管理節(jié)點(diǎn)4E3CCE3CC F盤(pán)(102.4GB)D6C1 剩余扇區(qū)二. PING.EXE十六進(jìn)制源碼分析在文件存儲(chǔ)空間中,ping.exe十六進(jìn)制源碼分析如下:2. 套接字編程2.1.使用說(shuō)明書(shū):第一步:先打開(kāi)服務(wù)器端(server.exe).根據(jù)提示輸入端口號(hào),需要輸入大于5001小于65535的值,否則就是用默認(rèn)的5001作為端口值第
4、二步:創(chuàng)建套接字并選擇協(xié)議。第三步:打開(kāi)客戶端(client.exe),根據(jù)提示,將客戶端(server.exe)所在的服務(wù)器的IP地址輸入進(jìn)去。第四步:輸入在服務(wù)器端(server.exe)中建立的端口號(hào)值。第五步:選擇和服務(wù)器端(server.exe)中一樣的協(xié)議第六步:收發(fā)數(shù)據(jù)第七步:關(guān)閉連接。2.2原理說(shuō)明書(shū)2.3程序注釋/* client.c - 簡(jiǎn)單的 TCP/UDP 套接字客戶程序 windows環(huán)境 */#include /關(guān)于套接字的頭文件#include #include #include #include #pragma comment (lib,ws2_32)/添加ws
5、2_32庫(kù)int main(void) unsigned short port = 5001;/端口號(hào) int socket_type = SOCK_STREAM;/缺省使用TCP連接 char Buffer1280;/收發(fā)緩沖區(qū) unsigned int addr;/IP地址變量 int retval,i;/臨時(shí)變量 struct sockaddr_in server, from; /套接字地址結(jié)構(gòu)變量 struct hostent *hp;/主機(jī)信息結(jié)構(gòu)變量指針 WSADATA wsaData;/windows套接字信息 SOCKET conn_socket;/套接字變量/先輸入客戶程序所
6、需要的基本信息:服務(wù)器地址,端口號(hào),套接字類型printf(請(qǐng)輸入服務(wù)器地址:);scanf(%s, Buffer);printf(請(qǐng)輸入端口號(hào)( 5000 ):);scanf(%d, &i);if(i 65535)printf(不正確的端口號(hào)%d,用缺省端口號(hào)5001n, i);elseport = i;printf(請(qǐng)輸入套接字類型( 1,TCP; 2, UDP ):);scanf(%d,&i);if(i = 1)socket_type = SOCK_STREAM;/設(shè)定為SOCK_STREAMelse if(i = 2)socket_type = SOCK_DGRAM;/設(shè)定為SOCK_
7、DGRAMelseprintf(不正確的輸入%d,使用TCP數(shù)據(jù)流n, i);/在windows環(huán)境下,需要先初始化協(xié)議棧if (retval = WSAStartup(0x202, &wsaData) != 0) /WSAStartup函數(shù)調(diào)用,用來(lái)初始/socket printf(WSAStartup 失敗,錯(cuò)誤號(hào):%dn,retval); WSACleanup();/當(dāng)調(diào)用了WSAStartup之后,就需要調(diào)用WSACleanup函數(shù)釋放內(nèi)存 return -1; /取得主機(jī)IP地址 if (isalpha(Buffer0) /是域名或命名地址,用首字母的是否在A-Z,或者a-z來(lái)判斷是
8、域名還是IP地址 hp = gethostbyname(Buffer);/從一個(gè)主機(jī)數(shù)據(jù)庫(kù)中提取出主機(jī)信息 else addr = inet_addr(Buffer);/是點(diǎn)分地址 hp = gethostbyaddr(char *)&addr,4,AF_INET);/根據(jù)網(wǎng)絡(luò)地址,獲得主機(jī)信息,執(zhí)行成功,就返回一個(gè)指向主機(jī)信息的結(jié)構(gòu) if (hp = NULL ) printf(不能解析地址%s: 錯(cuò)誤號(hào)%dn, Buffer, WSAGetLastError();/用于獲取錯(cuò)誤信息 WSACleanup(); exit(1); / 拷貝 解析的信息到sockaddr_in結(jié)構(gòu)中 memse
9、t(&server,0,sizeof(server);/分配內(nèi)存空間,由server返回 memcpy(&(server.sin_addr),hp-h_addr,hp-h_length);/信息的copy server.sin_family = hp-h_addrtype;/組協(xié)議初始化 server.sin_port = htons(port);/端口號(hào)初始化/建立套接字 conn_socket = socket(AF_INET,socket_type,0); if (conn_socket h_name);if (connect(conn_socket,(struct sockaddr*)
10、&server,sizeof(server) = SOCKET_ERROR) printf(connect()失敗,錯(cuò)誤號(hào):%dn,WSAGetLastError(); closesocket(conn_socket);/如果創(chuàng)建失敗,就關(guān)閉連接套接字WSACleanup();return -1; while(1) /得到要發(fā)送的信息字符串 puts(n輸入送到服務(wù)器的信息:);gets(Buffer);if(!strlen(Buffer) /如果沒(méi)有輸入信息,繼續(xù)循環(huán)continue;/發(fā)送網(wǎng)絡(luò)信息if(socket_type != SOCK_DGRAM) retval = send(con
11、n_socket, Buffer, strlen(Buffer)+1, 0);/面向tcp,類似BSD write()else retval = sendto(conn_socket, Buffer, strlen(Buffer)+1, 0,/發(fā)送字符串的時(shí)候,須將字符串的結(jié)束符0發(fā)送(struct sockaddr*)&server, sizeof(server);/面向UDP if (retval = SOCKET_ERROR) printf(發(fā)送失敗,錯(cuò)誤號(hào): %dn, WSAGetLastError(); break; elseprintf(發(fā)送信息:%sn, Buffer);/接收網(wǎng)
12、絡(luò)信息i = sizeof(from);if(socket_type != SOCK_DGRAM) retval = recv(conn_socket, Buffer, sizeof(Buffer), 0 );/面向tcp,類似BSD read()elseretval = recvfrom(conn_socket, Buffer, sizeof(Buffer), 0,(struct sockaddr*)&from, &i);/面向UDP if (retval = SOCKET_ERROR) printf(接收信息失敗,錯(cuò)誤號(hào):%dn,WSAGetLastError(); break; else
13、 if (retval = 0) / 對(duì)于面向連接的套接字,需要判斷對(duì)方是否關(guān)閉連接 printf(服務(wù)器關(guān)閉連接n); break; else /正確接收到網(wǎng)絡(luò)信息printf(收到 %d 字節(jié)信息:%s n, retval, Buffer);/程序的一個(gè)退出條件if(!stricmp(Buffer, quit) break; /關(guān)閉套接字 closesocket(conn_socket); WSACleanup();return 0;/* server.c - 簡(jiǎn)單 TCP/UDP 套接字服務(wù)器程序 windows環(huán)境 */#include /套接字頭文件#include #include
14、 #include #include #pragma comment(lib,ws2_32)/添加庫(kù)int main(void) unsigned short port= 5001;/端口號(hào) int socket_type = SOCK_DGRAM;/缺省使用TCP連接 char Buffer1024;/收發(fā)緩沖區(qū) int retval, fromlen, i, isconnected = 0;/臨時(shí)變量 struct sockaddr_in local, from;/套接字地址結(jié)構(gòu)變量 SOCKET listen_socket, msgsock;/套接字變量 WSADATA wsaData;
15、/windows套接字信息/先輸入服務(wù)器程序所需要的基本信息:端口號(hào),套接字類型printf(請(qǐng)輸入端口號(hào)( 5000 ):);scanf(%d, &i);if(i 65535)printf(不正確的端口號(hào)%d,用缺省端口號(hào)5001n,i);elseport = i;printf(請(qǐng)輸入套接字類型( 1,TCP; 2, UDP ):);scanf(%d, &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)
16、境下,需要先初始化協(xié)議棧 if (retval = WSAStartup(0x202, &wsaData) != 0) /初始化套接字版本等信息 printf(WSAStartup 失敗,錯(cuò)誤號(hào):%dn, retval); WSACleanup();/在創(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(); WSAClea
17、nup(); return -1; / 拷貝 解析的信息到sockaddr_in結(jié)構(gòu)中 local.sin_family = AF_INET; 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(); WSACleanup(); retu
18、rn -1; /對(duì)于流式套接字,讓套接字處于監(jiān)聽(tīng)狀態(tài),等待連接到來(lái) if (socket_type != SOCK_DGRAM) if (listen(listen_socket,5) = SOCKET_ERROR) /監(jiān)聽(tīng)網(wǎng)絡(luò) printf(listen()失敗,錯(cuò)誤號(hào):%dn, WSAGetLastError(); WSACleanup(); return -1; printf(監(jiān)聽(tīng)端口:%d, 使用協(xié)議:%sn, port,(socket_type = SOCK_STREAM)? TCP: UDP); while(1) fromlen =sizeof(from); if (socket_
19、type = SOCK_DGRAM ) msgsock = listen_socket;else if( isconnected = 0)/對(duì)于TCP連接,如果沒(méi)有連接,等待一個(gè)連接的到來(lái) msgsock = accept(listen_socket,(struct sockaddr*)&from, &fromlen); if (msgsock = INVALID_SOCKET) printf(accept()失敗,錯(cuò)誤號(hào):%dn,WSAGetLastError(); WSACleanup(); return -1; isconnected = 1; printf(從%s收到連接, 端口是:%
20、dn, inet_ntoa(from.sin_addr), 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(msgsock, Buffer, sizeof (Buffer), 0, (struct sockaddr *)&from, &fromlen);/面向UDP printf(從%s收到數(shù)據(jù)報(bào),端口是:%dn, inet_n
21、toa(from.sin_addr), htons(from.sin_port); /結(jié)果判斷 if (retval = SOCKET_ERROR) printf(recv()失敗,錯(cuò)誤號(hào):%dn, WSAGetLastError(); closesocket(msgsock); continue; else if (retval = 0) printf(客戶端關(guān)閉連接n); closesocket(msgsock); continue; else /正常接收printf(收到 %d 字節(jié)的數(shù)據(jù):%s n, retval, Buffer);if (socket_type != SOCK_DGR
22、AM)/對(duì)于TCP連接,我們收到exit有一個(gè)關(guān)閉連接的操作if(!stricmp(Buffer, exit) printf(關(guān)閉TCP 連接,等待下一次連接.n);closesocket(msgsock);isconnected = 0;continue;/信息回送 printf(將同樣的信息回送給客戶端.nn);printf(please input the message:n);scanf(%s,Buffer); if (socket_type != SOCK_DGRAM) retval = send(msgsock, Buffer, strlen(Buffer)+1, 0);/面向tc
23、p,類似BSD write() else retval = sendto(msgsock, Buffer, strlen(Buffer)+1, 0, (struct sockaddr *)&from, fromlen);/面向UDP if (retval = SOCKET_ERROR) printf(send()失敗,錯(cuò)誤號(hào):%dn, WSAGetLastError(); /程序的一個(gè)退出條件if(!stricmp(Buffer, quit)break; WSACleanup();return 0;3.連接數(shù)據(jù)庫(kù)3.1使用說(shuō)明書(shū)第一步:在開(kāi)始菜單中找到SQL SERVER并打開(kāi) 第二步:建立一
24、個(gè)新的數(shù)據(jù)庫(kù)。在SQL SERVER中建立一個(gè)名為student的數(shù)據(jù)庫(kù)第三步:在student庫(kù)下創(chuàng)建一個(gè)Stu_Info表,并在表中包含以下字段名:snum,sname,ssex,sage,smajor。輸入一些數(shù)據(jù),進(jìn)行測(cè)試。第四步:在安全性中設(shè)置密碼為123.第三步:編譯生成可執(zhí)行的文件,點(diǎn)擊運(yùn)行。根據(jù)提示框中的信息,輸入我們需要插入的數(shù)據(jù)。關(guān)閉程序。第四步:在次點(diǎn)擊運(yùn)行,查看我們插入的數(shù)據(jù)是否成功的插入。3.2原理說(shuō)明通過(guò)ADO訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù)進(jìn)行數(shù)據(jù)庫(kù)編程。我們需要在計(jì)算機(jī)上配置數(shù)據(jù)源。配置數(shù)據(jù)源的過(guò)程,就是和讓數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,以便使我們?cè)俪绦蛑?,可以調(diào)用驅(qū)動(dòng)程
25、序來(lái)完成我們需要完成的工作。處理ADO訪問(wèn)技術(shù)之外,還有ODBC(開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián))等。3.3程序注釋/*利用ADO訪問(wèn)MS SQL2000要求: 【1】輸出Stu_Info表內(nèi)的每一條記錄【2】添加一條新記錄【3】刪除名字為李立的記錄 */#import c:Program FilesCommon FilesSystemADOmsado15.dll /導(dǎo)入動(dòng)態(tài)鏈接庫(kù),使我們可以使用ADO編程no_namespace rename(EOF, EndOfFile) /為了防止命名沖突,不使用命名空間#include /標(biāo)準(zhǔn)輸入輸出流#include /for setw() using names
26、pace std; class STU /定義學(xué)生類 public: char snum10; /學(xué)號(hào) char sname10; /姓名 char ssex2; /姓別 long sage; /年齡 char smajor20; /專業(yè) public: STU() STU() ; int main() STU student; /定義學(xué)生對(duì)象 :CoInitialize(NULL); / 初始化OLE/COM庫(kù)環(huán)境 ,為訪問(wèn)ADO接口做準(zhǔn)備 _RecordsetPtr m_pRecordset(ADODB.Recordset); /建立記錄集 _ConnectionPtr m_pConnec
27、tion(ADODB.Connection); /建立連接 _bstr_t bstrSQL(select * from stu_info); /查詢語(yǔ)句 char * query_cmd = DELETE FROM stu_info WHERE sname = 李立; try /異常處理 / 創(chuàng)建Connection對(duì)象 m_pConnection.CreateInstance(ADODB.Connection); / 設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型 _bstr_t strConnect= Provider=SQLOLEDB;Server=(local);Databas
28、e=student; uid=sa; pwd=123; /若數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)上則Server為形如 /用戶sa和密碼123只是針對(duì)我的庫(kù) m_pConnection-Open(strConnect,adModeUnknown); if(m_pConnection=NULL) cerrOpen(bstrSQL,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText); _variant_t vsnum,vsname,vsage,vssex,vsmajor; /對(duì)應(yīng)庫(kù)中的snum,sname,sage,ssex
29、,smajor cout 學(xué)號(hào) 姓名 年齡 姓別 專業(yè); cout EndOfFile) /如果記錄集沒(méi)有到記錄的尾端 vsnum = m_pRecordset-GetCollect(_variant_t(long)0);/這兒給字段編號(hào)和字段名都可以 vsname = m_pRecordset-GetCollect(sname); vsage = m_pRecordset-GetCollect(sage); vssex = m_pRecordset-GetCollect(ssex); vsmajor = m_pRecordset-GetCollect(smajor); if (vsnum.v
30、t != 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) (char*)(_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)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年河道堤岸建設(shè)標(biāo)準(zhǔn)化協(xié)議版
- 2024年借款協(xié)議范本:權(quán)利義務(wù)明確版
- 機(jī)動(dòng)高爾夫球車車輛市場(chǎng)環(huán)境與對(duì)策分析
- 用于測(cè)量血糖水平的試紙項(xiàng)目可行性實(shí)施報(bào)告
- 2024年景觀綠化工程項(xiàng)目簡(jiǎn)易施工協(xié)議版
- 清潔醫(yī)療器械用海綿相關(guān)項(xiàng)目建議書(shū)
- 小升初專項(xiàng)復(fù)習(xí) 專題21:句型轉(zhuǎn)換
- 教育機(jī)構(gòu)遠(yuǎn)程教育實(shí)施規(guī)范
- 爐灰箱相關(guān)項(xiàng)目實(shí)施方案
- 工廠節(jié)能減排管理制度手冊(cè)
- Unit4《This is my friend》-2024-2025學(xué)年三年級(jí)上冊(cè)英語(yǔ)單元測(cè)試卷(譯林版三起 2024新教材)
- 2025屆單一概念材料作文“被討厭的勇氣”審題指導(dǎo)高考語(yǔ)文寫(xiě)作技巧實(shí)戰(zhàn)分析與素材運(yùn)用
- 國(guó)家開(kāi)放大學(xué)《Web開(kāi)發(fā)基礎(chǔ)》形考任務(wù)實(shí)驗(yàn)1-5參考答案
- 第三單元達(dá)標(biāo)練習(xí)(單元練習(xí))2024-2025學(xué)年統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)
- 順豐同城新人考試
- 9 正確認(rèn)識(shí)廣告(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治四年級(jí)上冊(cè)
- 山東省春季高考2024年二??荚嚁?shù)學(xué)試題(解析版)
- 2024至2030年中國(guó)鋼鐵行業(yè)當(dāng)前現(xiàn)狀及未來(lái)趨勢(shì)發(fā)展預(yù)測(cè)報(bào)告
- 江蘇省泰興市2024年中考一模語(yǔ)文試卷(含答案)
- 2024年山東省高考物理試卷(真題+答案)
- 漢語(yǔ)詞匯與文化智慧樹(shù)知到期末考試答案章節(jié)答案2024年浙江師范大學(xué)
評(píng)論
0/150
提交評(píng)論