




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上管理系統(tǒng)中計算機(jī)應(yīng)用實踐報告設(shè)計題目: 管理系統(tǒng)中計算機(jī)應(yīng)用 助學(xué)院校: 河南理工大學(xué) 自考助學(xué)專業(yè): 機(jī)電設(shè)備管理與維修 姓 名: 賀珂珂 自考助學(xué)學(xué)號: 2 成 績: 指導(dǎo)教師簽名: 河南理工大學(xué)成人高等教育2O 年 月 日目 錄4667719192020261.軟件編譯理論及實踐教程實習(xí)內(nèi)容一:我的電腦磁盤分析: 管理節(jié)點1FF C盤(48.8GB)00061AB82700061AB827 管理節(jié)點200061AB86600061AB866 D盤(73.4GB)000F48CDDA000F48CDDA 分區(qū)間隙000F48CE18000F48CE18 管理節(jié)點3
2、000F48CE19000F48CE19 E盤(73.4GB)E38DE38D 分區(qū)間隙E3CBE3CB 管理節(jié)點4E3CCE3CC F盤(102.4GB)D6C1 剩余扇區(qū) 二. PING.EXE十六進(jìn)制源碼分析在文件存儲空間中,ping.exe十六進(jìn)制源碼分析如下:2. 套接字編程2.1.使用說明書:第一步:先打開服務(wù)器端(server.exe).根據(jù)提示輸入端口號,需要輸入大于5001小于65535的值,否則就是用默認(rèn)的5001作為端口值第二步:創(chuàng)建套接字并選擇協(xié)議。第三步:打開客戶端(client.exe),根據(jù)提示,將客戶端(server.exe)所在的服務(wù)器的IP地址輸入進(jìn)去。第四
3、步:輸入在服務(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>#include <stdio.h>#include <string.h>#include <conio.h>#pragma comment (lib,"w
4、s2_32")/添加ws2_32庫int main(void) unsigned short port = 5001;/端口號 int socket_type = SOCK_STREAM;/缺省使用TCP連接 char Buffer1280;/收發(fā)緩沖區(qū) unsigned int addr;/IP地址變量 int retval,i;/臨時變量 struct sockaddr_in server, from; /套接字地址結(jié)構(gòu)變量 struct hostent *hp;/主機(jī)信息結(jié)構(gòu)變量指針 WSADATA wsaData;/windows套接字信息 SOCKET conn_socke
5、t;/套接字變量/先輸入客戶程序所需要的基本信息:服務(wù)器地址,端口號,套接字類型printf("請輸入服務(wù)器地址:");scanf("%s", Buffer);printf("請輸入端口號( >5000 ):");scanf("%d", &i);if(i < 5000 | i > 65535)printf("不正確的端口號%d,用缺省端口號5001n", i);elseport = i;printf("請輸入套接字類型( 1,TCP; 2, UDP ):&qu
6、ot;);scanf("%d",&i);if(i = 1)socket_type = SOCK_STREAM;/設(shè)定為SOCK_STREAMelse if(i = 2)socket_type = SOCK_DGRAM;/設(shè)定為SOCK_DGRAMelseprintf("不正確的輸入%d,使用TCP數(shù)據(jù)流n", i);/在windows環(huán)境下,需要先初始化協(xié)議棧if (retval = WSAStartup(0x202, &wsaData) != 0) /WSAStartup函數(shù)調(diào)用,用來初始/socket printf("WSA
7、Startup 失敗,錯誤號:%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來判斷是域名還是IP地址 hp = gethostbyname(Buffer);/從一個主機(jī)數(shù)據(jù)庫中提取出主機(jī)信息 else addr = inet_addr(Buffer);/是點分地址 hp = gethostbyaddr(char *)&addr,4,AF_INET);/根
8、據(jù)網(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 serve
9、r.sin_family = hp->h_addrtype;/組協(xié)議初始化 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里面一樣實
10、現(xiàn)數(shù)據(jù)報套接字功能if(socket_type != SOCK_DGRAM)printf("正在連接到: %sn",hp->h_name);if (connect(conn_socket,(struct sockaddr*)&server,sizeof(server) = SOCKET_ERROR) printf("connect()失敗,錯誤號:%dn",WSAGetLastError(); closesocket(conn_socket);/如果創(chuàng)建失敗,就關(guān)閉連接套接字WSACleanup();return -1; while(1)
11、/得到要發(fā)送的信息字符串 puts("n輸入送到服務(wù)器的信息:");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,類似BSD write()else retval = sendto(conn_socket, Buffer, strlen(Buffer)+1, 0,/發(fā)送字符串的時候,須將字符串的結(jié)束符0發(fā)送(str
12、uct sockaddr*)&server, sizeof(server);/面向UDP if (retval = 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,類似BSD r
13、ead()elseretval = recvfrom(conn_socket, Buffer, sizeof(Buffer), 0,(struct sockaddr*)&from, &i);/面向UDP if (retval = SOCKET_ERROR) printf("接收信息失敗,錯誤號:%dn",WSAGetLastError(); break; else if (retval = 0) / 對于面向連接的套接字,需要判斷對方是否關(guān)閉連接 printf("服務(wù)器關(guān)閉連接n"); break; else /正確接收到網(wǎng)絡(luò)信息prin
14、tf("收到 %d 字節(jié)信息:%s n", retval, Buffer);/程序的一個退出條件if(!stricmp(Buffer, "quit") break; /關(guān)閉套接字 closesocket(conn_socket); WSACleanup();return 0;/* server.c - 簡單 TCP/UDP 套接字服務(wù)器程序 windows環(huán)境 */#include <winsock2.h>/套接字頭文件#include <stdlib.h>#include <stdio.h>#include <
15、string.h>#include <iostream.h>#pragma comment(lib,"ws2_32")/添加庫int main(void) unsigned short port= 5001;/端口號 int socket_type = SOCK_DGRAM;/缺省使用TCP連接 char Buffer1024;/收發(fā)緩沖區(qū) int retval, fromlen, i, isconnected = 0;/臨時變量 struct sockaddr_in local, from;/套接字地址結(jié)構(gòu)變量 SOCKET listen_socket,
16、 msgsock;/套接字變量 WSADATA wsaData;/windows套接字信息/先輸入服務(wù)器程序所需要的基本信息:端口號,套接字類型printf("請輸入端口號( >5000 ):");scanf("%d", &i);if(i < 5000 | i > 65535)printf("不正確的端口號%d,用缺省端口號5001n",i);elseport = i;printf("請輸入套接字類型( 1,TCP; 2, UDP ):");scanf("%d", &a
17、mp;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) /初始化套接字版本等信息 printf("WSAStartup 失敗,錯誤號:%dn", retval); WSACleanup();/在創(chuàng)建失敗,或者程序結(jié)束,都要調(diào)用 retur
18、n -1; /建立套接字 listen_socket = socket(AF_INET, socket_type, 0); if (listen_socket = INVALID_SOCKET) printf("socket()失敗,錯誤號:%dn", WSAGetLastError(); WSACleanup(); return -1; / 拷貝 解析的信息到sockaddr_in結(jié)構(gòu)中 local.sin_family = AF_INET; local.sin_addr.s_addr = INADDR_ANY; local.sin_port = htons(port);
19、/邦定網(wǎng)絡(luò)地址到套接字 if (bind(listen_socket,(struct sockaddr*)&local, sizeof(local) ) = SOCKET_ERROR) /綁定網(wǎng)絡(luò)地址 printf("bind()失敗,錯誤號:%dn", WSAGetLastError(); WSACleanup(); return -1; /對于流式套接字,讓套接字處于監(jiān)聽狀態(tài),等待連接到來 if (socket_type != SOCK_DGRAM) if (listen(listen_socket,5) = SOCKET_ERROR) /監(jiān)聽網(wǎng)絡(luò) printf
20、("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 = listen_socket;else if( isconnected = 0)/對于T
21、CP連接,如果沒有連接,等待一個連接的到來 msgsock = accept(listen_socket,(struct sockaddr*)&from, &fromlen); if (msgsock = INVALID_SOCKET) printf("accept()失敗,錯誤號:%dn",WSAGetLastError(); WSACleanup(); return -1; isconnected = 1; printf("從%s收到連接, 端口是:%dn", inet_ntoa(from.sin_addr), htons(from.
22、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ù)報,端口是:%dn", inet_ntoa(from.sin_addr), h
23、tons(from.sin_port); /結(jié)果判斷 if (retval = SOCKET_ERROR) printf("recv()失敗,錯誤號:%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_t
24、ype != SOCK_DGRAM)/對于TCP連接,我們收到"exit"有一個關(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); i
25、f (socket_type != SOCK_DGRAM) retval = send(msgsock, Buffer, strlen(Buffer)+1, 0);/面向tcp,類似BSD write() else retval = sendto(msgsock, Buffer, strlen(Buffer)+1, 0, (struct sockaddr *)&from, fromlen);/面向UDP if (retval = SOCKET_ERROR) printf("send()失敗,錯誤號:%dn", WSAGetLastError(); /程序的一個退出條
26、件if(!stricmp(Buffer, "quit")break; WSACleanup();return 0;3.連接數(shù)據(jù)庫3.1使用說明書第一步:在開始菜單中找到SQL SERVER并打開 第二步:建立一個新的數(shù)據(jù)庫。在SQL SERVER中建立一個名為student的數(shù)據(jù)庫第三步:在student庫下創(chuàng)建一個Stu_Info表,并在表中包含以下字段名:snum,sname,ssex,sage,smajor。輸入一些數(shù)據(jù),進(jìn)行測試。第四步:在安全性中設(shè)置密碼為123.第三步:編譯生成可執(zhí)行的文件,點擊運行。根據(jù)提示框中的信息,輸入我們需要插入的數(shù)據(jù)。關(guān)閉程序。第四步:
27、在次點擊運行,查看我們插入的數(shù)據(jù)是否成功的插入。3.2原理說明通過ADO訪問數(shù)據(jù)庫的技術(shù)進(jìn)行數(shù)據(jù)庫編程。我們需要在計算機(jī)上配置數(shù)據(jù)源。配置數(shù)據(jù)源的過程,就是和讓數(shù)據(jù)庫的驅(qū)動程序來對數(shù)據(jù)庫進(jìn)行操作,以便使我們再程序中,可以調(diào)用驅(qū)動程序來完成我們需要完成的工作。處理ADO訪問技術(shù)之外,還有ODBC(開放式數(shù)據(jù)庫互聯(lián))等。3.3程序注釋/*利用ADO訪問MS SQL2000要求: 【1】輸出Stu_Info表內(nèi)的每一條記錄【2】添加一條新記錄【3】刪除名字為"李立"的記錄 */#import "c:Program FilesCommon FilesSystemADOms
28、ado15.dll" /導(dǎo)入動態(tài)鏈接庫,使我們可以使用ADO編程no_namespace rename("EOF", "EndOfFile") /為了防止命名沖突,不使用命名空間#include <iostream> /標(biāo)準(zhǔn)輸入輸出流#include <iomanip> /for setw() using namespace std; class STU /定義學(xué)生類 public: char snum10; /學(xué)號 char sname10; /姓名 char ssex2; /姓別 long sage; /年齡 cha
29、r smajor20; /專業(yè) public: STU() STU() ; int main() STU student; /定義學(xué)生對象 :CoInitialize(NULL); / 初始化OLE/COM庫環(huán)境 ,為訪問ADO接口做準(zhǔn)備 _RecordsetPtr m_pRecordset("ADODB.Recordset"); /建立記錄集 _ConnectionPtr m_pConnection("ADODB.Connection"); /建立連接 _bstr_t bstrSQL("select * from stu_info"
30、); /查詢語句 char * query_cmd = "DELETE FROM stu_info WHERE sname = '李立'" try /異常處理 / 創(chuàng)建Connection對象 m_pConnection.CreateInstance("ADODB.Connection"); / 設(shè)置連接字符串,必須是BSTR型或者_(dá)bstr_t類型 _bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;&q
31、uot; /若數(shù)據(jù)庫在網(wǎng)絡(luò)上則Server為形如(192.168.1.5,3340) /用戶sa和密碼123只是針對我的庫 m_pConnection->Open(strConnect,"","",adModeUnknown); if(m_pConnection=NULL) cerr<<"Lind data ERROR!n" / 創(chuàng)建記錄集對象 m_pRecordset.CreateInstance(_uuidof(Recordset); / 取得表中的記錄 m_pRecordset->Open(bstrSQL
32、,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText); _variant_t vsnum,vsname,vsage,vssex,vsmajor; /對應(yīng)庫中的snum,sname,sage,ssex,smajor cout << "學(xué)號 姓名 年齡 姓別 專業(yè)" cout << "n-n" while (!m_pRecordset->EndOfFile) /如果記錄集沒有到記錄的尾端 vsnum = m_pRecordset-&
33、gt;GetCollect(_variant_t(long)0);/這兒給字段編號和字段名都可以 vsname = m_pRecordset->GetCollect("sname"); vsage = m_pRecordset->GetCollect("sage"); vssex = m_pRecordset->GetCollect("ssex"); vsmajor = m_pRecordset->GetCollect("smajor"); if (vsnum.vt != VT_NULL&a
34、mp;&vsname.vt != VT_NULL&&vsage.vt != VT_NULL&&vssex.vt != VT_NULL&&vsmajor.vt != VT_NULL)/如果不為空 cout.setf(ios:left); /設(shè)置左對齊cout << setw(14) << (char*)(_bstr_t)vsnum; /輸出學(xué)號cout << setw(14) << (char*)(_bstr_t)vsname; /輸出姓名cout << setw(8) <&
35、lt; 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 << "n-n" /輸入將要插入的信息cout << "n請輸入你要添加的學(xué)生信息n" cout << "學(xué)號:" cin >> student.snum; cout << "n姓名:" cin >> student.sname; cout << &quo
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 方案:辦公腳手架施工規(guī)范
- 現(xiàn)代化進(jìn)程中的職業(yè)教育:路徑優(yōu)化與實證分析
- 小學(xué)語文教師專業(yè)發(fā)展:學(xué)科知識復(fù)習(xí)資料匯編
- 5G技術(shù)對農(nóng)業(yè)新質(zhì)生產(chǎn)力影響的研究與實踐探索
- 物理知識精粹
- 村級扶貧電站管理辦法
- 大型集團(tuán)采購決策中的比價機(jī)制設(shè)計與風(fēng)險控制
- 語文雙基教學(xué)中的多感官協(xié)同訓(xùn)練模式研究
- 家庭安全自查表
- 起重機(jī)事故鑒定
- 2025中國系統(tǒng)性紅斑狼瘡診療指南解讀課件
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識
- 2025至2030中國家用血壓計行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 吉林省長春市2023?2024學(xué)年高二下冊期末考試數(shù)學(xué)科試卷附解析
- 主管護(hù)師《相關(guān)專業(yè)知識》考試真題及答案(2025年)
- 綠化所倉庫管理制度
- 聘請美容學(xué)徒合同協(xié)議
- 2025年全國保密教育線上培訓(xùn)考試試題庫(含答案)含答案詳解
- 2025年江蘇省南京市鼓樓區(qū)中考一模英語試卷(含答案)
- 機(jī)場旅客醫(yī)療救援應(yīng)急預(yù)案
- 非計劃再次手術(shù)知識培訓(xùn)
評論
0/150
提交評論