版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、中南林業(yè)科技大學(xué)管理系統(tǒng)中計算機(jī)應(yīng)用實踐報告姓名:XXX專業(yè):人力資源管理院(系):中南林業(yè)科技大學(xué)成教學(xué)院實習(xí)時間:2013年4月18日實習(xí)地點:XXXXXXXXXX指導(dǎo)教師評語:成績:簽名:4書月日撰寫及批改注意事項、填寫信息1、學(xué)生填寫信息齊全、字跡清晰、日期真實;2、教師批改后的簽名和日期應(yīng)完整;3、報告中封面、圖、程序要求打印(封面與此頁要求正反雙面打印,教師評語要求手寫)。、實習(xí)報告的撰寫1、實習(xí)報告撰寫認(rèn)真細(xì)致,數(shù)據(jù)計算正確、誤差分析準(zhǔn)確、實驗結(jié)論分析符合科學(xué)規(guī)律。2、實習(xí)報告有繪制的圖形、圖表時,要求(1)用電腦繪制;(2)應(yīng)在報告中注明圖號、表號三、批改實驗報告1、一律采用百
2、分制;2、批改時應(yīng)對錯分明,錯誤之處應(yīng)有文字說明或指出錯誤的標(biāo)記;3、指導(dǎo)教師評語的內(nèi)容:(1)對本次認(rèn)識實習(xí)完成情況的評語;(2)對本次認(rèn)識實習(xí)報告的評語;目錄1. 軟件編譯理論及實踐教程實習(xí)內(nèi)容42. 套接字編程62.1 使用說明書62.2 原理說明書72.3 程序注釋73. 連接數(shù)據(jù)庫193.1 使用說明書193.2 原理說明書203.3 程序注釋204. 實習(xí)總結(jié)、體會與收獲26(正文部分)1.軟件編譯理論及實踐教程實習(xí)內(nèi)容:我的電腦磁盤分析0000000000管理節(jié)點1000000003F000000003FC盤(48.8GB)00061AB82700061AB827管理節(jié)點2000
3、61AB86600061AB866D盤(73.4GB)000F48CDDA000F48CDDA分區(qū)間隙000F48CE18000F48CE18管理節(jié)點3000F48CE19000F48CE19E盤(73.4GB)001876E38D001876E38D分區(qū)間隙001876E3CB001876E3CB六進(jìn)制源碼分在文件存儲空ping.exe十析如下:2.套接管理節(jié)點4001876E3CC001876E3CCF盤(102.4GB)0025422D6C1剩余扇區(qū)PING.EXE十析間中,六進(jìn)制源碼分字編程2.1 .使用說明書:第一步:先打開服務(wù)器端(server.exe).根據(jù)提示輸入端口號,需要輸
4、入大于5001小于65535的值,否則就是用默認(rèn)的5001作為端口值第二步:創(chuàng)建套接字并選擇協(xié)議。第三步:打開客戶端(client.exe),根據(jù)提示,將客戶端(server.exe)所在的服務(wù)器的IP地址輸入進(jìn)去。第四步:輸入在服務(wù)器端(server.exe)中建立的端口號值。第五步:選擇和服務(wù)器端(server.exe)中一樣的協(xié)議第六步:收發(fā)數(shù)據(jù)第七步:關(guān)閉連接。2.2 原理說明書2.3 程序注釋*client.c-簡單的TCP/UDP套接字客戶程序windows環(huán)境*#include<winsock2.h>/關(guān)于套接字的頭文件#include<stdlib.h>
5、#include<stdio.h>#include<string.h>#include<conio.h>#pragmacomment(lib,"ws2_32")/添力口'ws2_32庫/端口號intmain(void)unsignedshortport=5001;intsocket_type=SOCK_STREAM;/缺省使用TCP1接charBuffer1280;/收發(fā)緩沖區(qū)unsignedintaddr;/IP地址變量intretval,i;臨時變量structsockaddr_inserver,from;/structhos
6、tent*hp;指針WSADATAwsaData;套接字地址結(jié)構(gòu)變量/主機(jī)信息結(jié)構(gòu)變量/windows套接字信SOCKETconn_socket;/套接字變量息/先輸入客戶程序所需要的基本信息:服務(wù)器地址,端口號,套接字類型printf("請輸入服務(wù)器地址:");scanf("%s",Buffer);printf("請輸入端口號(>5000):");scanf("%d",&i);if(i<5000|i>65535)printf("不正確的端口號d,用缺省端口號5001n"
7、;,i);elseport=i;printf("請輸入套接字類型(1,TCP;2,UDP):");scanf("%d",&i);if(i=1)socket_type=SOCK_STREAM;設(shè)定為SOCK_STREAMelseif(i=2)socket_type=SOCK_DGRAM;設(shè)定為SOCK_DGRAMelseprintf("不正確的輸入d,使用TCP據(jù)流n",i);/在windows環(huán)境下,需要先初始化協(xié)議棧if(retval=WSAStartup(0x202,&wsaData)!=0)/WSAStartup
8、函數(shù)調(diào)用,用來初始“socketprintf("WSAStartup失敗,錯誤號:%dn",retval);WSACleanup();/當(dāng)調(diào)用了WSAStartup之后,就需要調(diào)用WSACleanupi數(shù)釋放內(nèi)存return-1;/取得主機(jī)IP地址if(isalpha(Buffer0)/是域名或命名地址,用首字母的是否在A-Z,或者a-z來判斷是域名還是IP地址hp=gethostbyname(Buffer);/取出主機(jī)信息else從一個主機(jī)數(shù)據(jù)庫中提是點分地址addr=inet_addr(Buffer);/根據(jù)hp=gethostbyaddr(char*)&add
9、r,4,AF_INET);/網(wǎng)絡(luò)地址,獲得主機(jī)信息,執(zhí)行成功,就返回一個指向主機(jī)信息的結(jié)構(gòu)if(hp=NULL)printf("不能解析地址%s:錯誤號dn",Buffer,WSAGetLastError();/用于獲取錯誤信息WSACleanup();exit(1);/拷貝解析的信息到sockaddr_in結(jié)構(gòu)中memset(&server,0,sizeof(server);/分配內(nèi)存空間,由server返回memcpy(&(server.sin_addr),hp->h_addr,hp->h_length);/信息的copy組協(xié)議初始化serv
10、er.sin_family=hp->h_addrtype;/server.sin_port=htons(port);/端口號初始化/建立套接字conn_socket=socket(AF_INET,socket_type,0);if(conn_socket<0)(printf("socket()失敗,錯誤號:%dn",WSAGetLastError();WSACleanup();return-1;)/對于流式套接字,需要先建立連接/其實也可以使用connect(),send(),recv()等函數(shù)在windows里面一樣實現(xiàn)數(shù)據(jù)報套接字功能if(socket_ty
11、pe!=SOCK_DGRAM)printf("正在連接到:%sn",hp->h_name);if(connect(conn_socket,(structsockaddr*)&server,sizeof(server)=SOCKET_ERROR)printf("connect()失敗,錯誤號:dn",WSAGetLastError();closesocket(conn_socket);/如果創(chuàng)建失敗,就關(guān)閉連接套接字WSACleanup();return-1;while(1)/得到要發(fā)送的信息字符串puts("n輸入送到服務(wù)器的信息
12、:");gets(Buffer);if(!strlen(Buffer)/如果沒有輸入信息,繼續(xù)循環(huán)continue;/發(fā)送網(wǎng)絡(luò)信息if(socket_type!=SOCK_DGRAM)retval=send(conn_socket,Buffer,strlen(Buffer)+1,0);面向tcp,類似BSDwrite()elseretval=sendto(conn_socket,Buffer,strlen(Buffer)+1,0,/發(fā)送字符串的時候,須將字符串的結(jié)束符0發(fā)送/面向UDP(structsockaddr*)&server,sizeof(server);if(ret
13、val=SOCKET_ERROR)printf("發(fā)送失敗,錯誤號:%dn",WSAGetLastError();break;elseprintf("發(fā)送信息:%sn",Buffer);/接收網(wǎng)絡(luò)信息i=sizeof(from);if(socket_type!=SOCK_DGRAM)retval=recv(conn_socket,Buffer,sizeof(Buffer),0);/面向tcp,類似BSDread()elseretval=recvfrom(conn_socket,Buffer,sizeof(Buffer),0,(structsockaddr
14、*)&from,&i);/面向UDPif(retval=SOCKET_ERROR)(printf("接收信息失敗,錯誤號:dn",WSAGetLastError();break;elseif(retval=0)/對于面向連接的套接字,需要判斷對方是否關(guān)閉連接(printf("服務(wù)器關(guān)閉連接n");break;else/正確接收到網(wǎng)絡(luò)信息printf("收到%d字節(jié)信息:%sn",retval,Buffer);/程序的一個退出條件if(!stricmp(Buffer,"quit")break;/關(guān)閉套
15、接字closesocket(conn_socket);WSACleanup();return0;*server.c-簡單TCP/UDP套接字服務(wù)器程序windows環(huán)境*、*1#include<winsock2.h>/套接字頭文件#include<stdlib.h>#include<stdio.h>#include<string.h>#include<iostream.h>#pragmacomment(lib,"ws2_32")/添力庫/端口號intmain(void)unsignedshortport=5001;
16、/收發(fā)緩沖區(qū)臨時/套接字地址結(jié)構(gòu)變intsocket_type=SOCK_DGRAM;/缺省使用TCRit接charBuffer1024;intretval,fromlen,i,isconnected=0;變量structsockaddr_inlocal,from;一SOCKETlisten_socket,msgsock;/套接字變量WSADATAwsaData;/windows套接字信/先輸入服務(wù)器程序所需要的基本信息:端口號,套接字類型printf("請輸入端口號(>5000):");scanf("%d",&i);if(i<500
17、0|i>65535)printf("不正確的端口號d用缺省端口號5001n",i);elseport=i;printf("請輸入套接字類型(1,TCP;2,UDP):");scanf("%d",&i);if(i=1)socket_type=SOCK_STREAM;elseif(i=2)socket_type=SOCK_DGRAM;elseprintf("不正確的輸入d,使用TC吸據(jù)流n",i);/在windows環(huán)境下,需要先初始化協(xié)議棧if(retval=WSAStartup(0x202,&
18、wsaData)!=0)/始化套接字版本等信息printf("WSAStartup失敗,錯誤號: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()失敗,錯誤號:d'n",WSAGetLastError();WSACleanup();return-1;/拷貝解析的信息到sockaddrin結(jié)構(gòu)中l(wèi)oca
19、l.sin_family=AF_INET;local.sin_addr.s_addr=INADDR_ANY;local.sin_port=htons(port);/邦定網(wǎng)絡(luò)地址到套接字if(bind(listen_socket,(structsockaddr*)&local,sizeof(local)=SOCKET_ERROR)/綁定網(wǎng)絡(luò)地址printf("bind()失敗,錯誤號:d'n",WSAGetLastError();WSACleanup();return-1;/對于流式套接字,讓套接字處于監(jiān)聽狀態(tài),等待連接到來if(socket_type!=SO
20、CK_DGRAM)if(listen(listen_socket,5)=SOCKET_ERROR)/聽網(wǎng)絡(luò)(printf("listen()失敗,錯誤號:%dn",WSAGetLastError();WSACleanup();return-1;printf("監(jiān)聽端口:%d,使用協(xié)議:%sn",port,(socket_type=SOCK_STREAM)?"TCP":"UDP");while(1)(fromlen=sizeof(from);if(socket_type=SOCK_DGRAM)msgsock=list
21、en_socket;elseif(isconnected=0)/對于TCP1接,如果沒有連接,等待一個連接的到來msgsock=accept(listen_socket,(structsockaddr*)&from,&fromlen);if(msgsock=INVALID_SOCKET)printf("accept()失敗,錯誤號:dn",WSAGetLastError();WSACleanup();return-1;isconnected=1;printf("從5收到連接,端口是: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,類似BSDread()elseretval=recvfrom(msgsock,Buffer,sizeof(Buffer),0,(structsockaddr*)&from,&fromlen);/面向UDPprintf("從5收到數(shù)據(jù)報,端口是:dn",inet_ntoa(from.sin_addr),htons(from.sin_port);
23、/結(jié)果判斷if(retval=SOCKET_ERROR)printf("recv()失敗,錯誤號:%dn",WSAGetLastError();closesocket(msgsock);continue;elseif(retval=0)printf("客戶端關(guān)閉連接n");closesocket(msgsock);continue;else/正常接收printf("收到%d字節(jié)的數(shù)據(jù):%sn",retval,Buffer);if(socket_type!=SOCK_DGRAM)/對于TCP!接,我們收到"exit"
24、有一個關(guān)閉連接的操作if(!stricmp(Buffer,"exit")printf("關(guān)閉TCP連接,等待下一次連接n");closesocket(msgsock);isconnected=0;continue;/信息回送printf("將同樣的信息回送給客戶端n'n");printf("pleaseinputthemessage:n");scanf("%s",Buffer);if(socket_type!=SOCK_DGRAM)retval=send(msgsock,Buffer,s
25、trlen(Buffer)+1,0);/面向tcp,類似BSDwrite()elseretval=sendto(msgsock,Buffer,strlen(Buffer)+1,0,(structsockaddr*)&from,fromlen);面向UDPif(retval=SOCKET_ERROR)printf("send()失敗,錯誤號:d'n",WSAGetLastError();/程序的一個退出條件if(!stricmp(Buffer,"quit")break;WSACleanup();return0;)3.連接數(shù)據(jù)庫3.1 使用說
26、明書第一步:在開始菜單中找到SQLSERVER打開第二步:建立一個新的數(shù)據(jù)庫。在SQLSERVER建立一個名為student的數(shù)據(jù)庫第三步:在student庫下創(chuàng)建一個Stu_Info表,并在表中包含以下字段名:snumsnamessex,sage,smajor。輸入一些數(shù)據(jù),進(jìn)行測試。第四步:在安全性中設(shè)置密碼為123.第三步:編譯生成可執(zhí)行的文件,點擊運(yùn)行。根據(jù)提示框中的信息,輸入我們需要插入的數(shù)據(jù)。關(guān)閉程序。第四步:在次點擊運(yùn)行,查看我們插入的數(shù)據(jù)是否成功的插入。3.2 原理說明通過ADOT問數(shù)據(jù)庫的技術(shù)進(jìn)行數(shù)據(jù)庫編程。我們需要在計算機(jī)上配置數(shù)據(jù)源。配置數(shù)據(jù)源的過程,就是和讓數(shù)據(jù)庫的驅(qū)動
27、程序來對數(shù)據(jù)庫進(jìn)行操作,以便使我們再程序中,可以調(diào)用驅(qū)動程序來完成我們需要完成的工作。處理ADO$問技術(shù)之外,還有ODBC開放式數(shù)據(jù)庫互聯(lián))等。3.3 程序注釋尸*利用ADO問MSSQL2000要求:【1】輸出Stu_Info表內(nèi)的每一條記錄2添加一條新記錄【3】刪除名字為"李立"的記錄*#import"c:ProgramFilesCommonFilesSystemADOmsado15.dll"/導(dǎo)入動態(tài)鏈接庫,使我們可以使用AD既程no_namespacerename("EOF","EndOfFile")/為了防
28、止命名沖突,不使用命名空間#include<iostream>/標(biāo)準(zhǔn)輸入輸出流#include<iomanip>/forsetw()usingnamespacestd;classSTU/定義學(xué)生類public:charsnum10;/學(xué)號charsname10;/姓名charssex2;/姓別longsage;/年齡charsmajor20;/專業(yè)public:STU()STU();intmain()STUstudent;/定義學(xué)生對象:CoInitialize(NULL);/初始化OLE/CO陣環(huán)境,為訪問ADCg口做準(zhǔn)備_RecordsetPtrm_pRecords
29、et("ADODB.Recordset");/建立t己錄集_ConnectionPtrm_pConnection("ADODB.Connection");/建立連接_bstr_tbstrSQL("select*fromstu_info");/查詢語句char*query_cmd="DELETEFROMstu_infoWHEREsname='李立“';try/異常處理(/創(chuàng)建Connection對象m_pConnection.CreateInstance("ADODB.Connection"
30、);/設(shè)置連接字符串,必須是BST煙或者_(dá)bstr_t類型_bstr_tstrConnect="Provider=SQLOLEDB;Server=(local);Database=student;uid=sa;pwd=123;"/若數(shù)據(jù)庫在網(wǎng)絡(luò)上則Server為形如/用戶sa和密碼123只是針對我的庫m_pConnection->Open(strConnect,"","",adModeUnknown);if(m_pConnection=NULL)cerr<<"LinddataERROR!n"/創(chuàng)建
31、記錄集對象m_pRecordset.CreateInstance(_uuidof(Recordset);/取得表中的記錄>Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);_variant_tvsnum,vsname,vsage,vssex,vsmajor;/對應(yīng)庫中的snum,sname,sage,ssex,smajorcout<<"學(xué)號姓名年齡姓別專業(yè)";cout<<"nn"while(!m_pRe
32、cordset->EndOfFile)/如果記錄集沒有到記錄的尾端vsnum=m_pRecordset->GetCollect(_variant_t(long)0);/這兒給字段編號和字段名都可以vsname=m_pRecordset->GetCollect("sname");vsage=m_pRecordset->GetCollect("sage");vssex=m_pRecordset->GetCollect("ssex");vsmajor=m_pRecordset->GetCollect(&q
33、uot;smajor");if(vsnum.vt!=VT_NULL&&vsname.vt!=VT_NULL&&vsage.vt!=VT_NULL&&vssex.vt!=VT_NULL&&vsmajor.vt!=VT_NULL)如果不為空學(xué)號出姓名性別cout.setf(ios:left);設(shè)置左對齊cout<<setw(14)<<(char*)(_bstr_t)vsnum;cout<<setw(14)<<(char*)(_bstr_t)vsname;/cout<<
34、;setw(8)<<vsage.lVal;/輸出年齡cout<<setw(8)<<(char*)(_bstr_t)vssex;/輸出輸出cout<<setw(20)<<(char*)(_bstr_t)vsmajor;/出專業(yè)cout.unsetf(ios:left);/取消左對齊cout<<endl;m_pRecordset->MoveNext();/移到下一條記錄cout<<"nn"/輸入將要插入的信息cout<<"n請輸入你要添加的學(xué)生信息n"cout<<"學(xué)號:";cin>>student.snum;cout<<"n姓名:";cin>>st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024運(yùn)輸公司車輛掛靠合同
- 2024瀝青采購合同
- 專題07.理解詞語的含義-2023年四升五語文暑期閱讀專項提升(統(tǒng)編版)
- 專題10 開放性題目-2022-2023學(xué)年小升初語文記敘文知識點銜接(部編版)
- 2024美容美發(fā)股份合同范本
- 2024證券交易委托代理合同范文
- 2024上海市房屋租賃(商品房預(yù)租)合同樣本合同范本
- 深圳大學(xué)《醫(yī)電創(chuàng)新基礎(chǔ)實驗》2022-2023學(xué)年期末試卷
- 別墅土建合同(2篇)
- 領(lǐng)隊徒步出游免責(zé)協(xié)議書(2篇)
- 九年級英語仁愛版上冊Unit4-Topic1-SectionA-優(yōu)質(zhì)課教案
- 沙眼衣原體感染
- 搶救車藥物說明書匯編
- 《C語言程序設(shè)計》課程思政教學(xué)案例(一等獎)
- BIM技術(shù)大賽考試題庫(600題)
- 2023年大學(xué)試題(法學(xué))-著作權(quán)法考試參考題庫(含答案)
- 綠博園站初步設(shè)計說明
- 中控ECS-700學(xué)習(xí)課件
- 武漢理工大學(xué)計算機(jī)網(wǎng)絡(luò)試題及答案
- 山地光伏施工組織設(shè)計
- 漢字演變500例(中)
評論
0/150
提交評論