【管理系統(tǒng)中計算機應用】實踐報告26頁

上傳人:文**** 文檔編號:40517788 上傳時間:2021-11-16 格式:DOC 頁數:26 大?。?58KB
收藏 版權申訴 舉報 下載
【管理系統(tǒng)中計算機應用】實踐報告26頁_第1頁
第1頁 / 共26頁
【管理系統(tǒng)中計算機應用】實踐報告26頁_第2頁
第2頁 / 共26頁
【管理系統(tǒng)中計算機應用】實踐報告26頁_第3頁
第3頁 / 共26頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《【管理系統(tǒng)中計算機應用】實踐報告26頁》由會員分享,可在線閱讀,更多相關《【管理系統(tǒng)中計算機應用】實踐報告26頁(26頁珍藏版)》請在裝配圖網上搜索。

1、中南林業(yè)科技大學 《管理系統(tǒng)中計算機應用》 實踐報告 姓 名:XXX 專 業(yè): 人力資源管理 院 (系): 中南林業(yè)科技大學成教學院 實習時間: 2013年4月18日 實習地點: XXXXXXXXXX 指導教師評語:

2、 成績: 簽名: 年 月 日 撰寫及批改注意事項 一、填寫信息 1、學生填寫信息齊全、字跡清晰、日期真實; 2、教師批改后的簽名和日期應完整; 3、報告中封面、圖、程序要求打?。ǚ饷媾c此頁要求正反雙面打印,教師評語要求手寫)。 二、實習報告的撰寫 1、實習報告撰寫認真細致,數據

3、計算正確、誤差分析準確、實驗結論 分析符合科學規(guī)律。 2、實習報告有繪制的圖形、圖表時,要求 (1)用電腦繪制; (2)應在報告中注明圖號、表號。 三、批改實驗報告 1、一律采用百分制; 2、批改時應對錯分明,錯誤之處應有文字說明或指出錯誤的標記; 3、指導教師評語的內容: (1)對本次認識實習完成情況的評語; (2)對本次認識實習報告的評語; 目 錄 1. 軟件編譯理論及實踐教程實習內容 4 2. 套接字編程 6 2.1 使用說明書 6 2.2 原理說明書 7 2.3

4、 程序注釋 7 3. 連接數據庫 19 3.1 使用說明書 19 3.2 原理說明書 20 3.3 程序注釋 20 4. 實習總結、體會與收獲 26 (正 文 部 分) 1.軟件編譯理論及實踐教程實習內容 一:我的電腦磁盤分析: 0000000000 管理節(jié)點1 000000003F 000000003F C盤(48.8GB) 00061AB827 00061AB827 管理節(jié)點2 00061AB

5、866 00061AB866 D盤(73.4GB) 000F48CDDA 000F48CDDA 分區(qū)間隙 000F48CE18 000F48CE18 管理節(jié)點3 000F48CE19 000F48CE19 E盤(73.4GB) 001876E38D 001876E38D 分區(qū)間隙 001876E3CB 001876E3CB 管理節(jié)點4 001876E3CC

6、001876E3CC F盤(102.4GB) 0025422D6C1 剩余扇區(qū) 二. PING.EXE十六進制源碼分析 在文件存儲空間中,ping.exe十六進制源碼分析如下: 2. 套接字編程 2.1.使用說明書: 第一步:

7、先打開服務器端(server.exe).根據提示輸入端口號,需要輸入大于5001小于65535的值,否則就是用默認的5001作為端口值 第二步:創(chuàng)建套接字并選擇協(xié)議。 第三步:打開客戶端(client.exe),根據提示,將客戶端(server.exe)所在的服務器的IP地址輸入進去。 第四步:輸入在服務器端(server.exe)中建立的端口號值。 第五步:選擇和服務器端(server.exe)中一樣的協(xié)議 第六步:收發(fā)數據 第七步:關閉連接。 2.2原理說明書 2.3程序注釋 /*************

8、*****************************************\ * client.c - 簡單的 TCP/UDP 套接字客戶程序 windows環(huán)境 * \******************************************************/ #include //關于套接字的頭文件 #include #include #include #include #pragma comment (lib,"ws2_32")//添加

9、‘ws2_32’庫 int main(void) { unsigned short port = 5001; //端口號 int socket_type = SOCK_STREAM; //缺省使用TCP連接 char Buffer[1280]; //收發(fā)緩沖區(qū) unsigned int addr; //IP地址變量 int retval,i; //臨時變量 struct sockaddr_in server, from; //套接字地址結構變量 struct hostent *hp; //主機信息結

10、構變量指針 WSADATA wsaData; //windows套接字信息 SOCKET conn_socket; //套接字變量 //先輸入客戶程序所需要的基本信息:服務器地址,端口號,套接字類型 printf("請輸入服務器地址:"); scanf("%s", Buffer); printf("請輸入端口號( >5000 ):"); scanf("%d", &i); if(i < 5000 || i > 65535) printf("不正確的端口號%d,用缺省端口號5001\n", i); else port

11、= i; printf("請輸入套接字類型( 1,TCP; 2, UDP ):"); scanf("%d",&i); if(i == 1) socket_type = SOCK_STREAM;//設定為SOCK_STREAM else if(i == 2) socket_type = SOCK_DGRAM;//設定為SOCK_DGRAM else printf("不正確的輸入%d,使用TCP數據流\n", i); //在windows環(huán)境下,需要先初始化協(xié)議棧 if ((retval = WSAStartup(0x202, &wsaData)

12、) != 0) //WSAStartup函數調用,用來初始//socket { printf("WSAStartup 失敗,錯誤號:%d\n",retval); WSACleanup();//當調用了WSAStartup之后,就需要調用WSACleanup函數釋放內存 return -1; } //取得主機IP地址 if (isalpha(Buffer[0])) //是域名或命名地址,用首字母的是否在A-Z,或者a-z來判斷是域名還是IP地址 hp = gethostbyname(Bu

13、ffer);//從一個主機數據庫中提取出主機信息 else { addr = inet_addr(Buffer);//是點分地址 hp = gethostbyaddr((char *)&addr,4,AF_INET);//根據網絡地址,獲得主機信息,執(zhí)行成功,就返回一個指向主機信息的結構 } if (hp == NULL ) { printf("不能解析地址[%s]: 錯誤號%d\n", Buffer, WSAGetLastError());//用于獲取錯誤信息 WSACleanu

14、p(); exit(1); } // 拷貝 解析的信息到sockaddr_in結構中 memset(&server,0,sizeof(server));//分配內存空間,由server返回 memcpy(&(server.sin_addr),hp->h_addr,hp->h_length);//信息的copy server.sin_family = hp->h_addrtype;//組協(xié)議初始化 server.sin_port = htons(port);//端口號初始化 //建立套接字 con

15、n_socket = socket(AF_INET,socket_type,0); if (conn_socket <0 ) { printf("socket()失敗,錯誤號:%d\n", WSAGetLastError()); WSACleanup(); return -1; } //對于流式套接字,需要先建立連接 //其實也可以使用connect(),send(),recv()等函數在windows里面一樣實現數據報套接字功能 if(socket_type != SOCK_DGRAM) {

16、 printf("正在連接到: %s\n",hp->h_name); if (connect(conn_socket,(struct sockaddr*)&server,sizeof(server)) == SOCKET_ERROR) { printf("connect()失敗,錯誤號:%d\n",WSAGetLastError()); closesocket(conn_socket);//如果創(chuàng)建失敗,就關閉連接套接字 WSACleanup(); return -1; } } while(1)

17、{ //得到要發(fā)送的信息字符串 puts("\n輸入送到服務器的信息:"); gets(Buffer); if(!strlen(Buffer)) //如果沒有輸入信息,繼續(xù)循環(huán) continue; //發(fā)送網絡信息 if(socket_type != SOCK_DGRAM) retval = send(conn_socket, Buffer, strlen(Buffer)+1, 0); //面向tcp,類似BSD write() else retval = sendto(conn_socket, B

18、uffer, strlen(Buffer)+1, 0, //發(fā)送字符串的時候,須將字符串的結束符\0發(fā)送 (struct sockaddr*)&server, sizeof(server)); //面向UDP if (retval == SOCKET_ERROR) { printf("發(fā)送失敗,錯誤號: %d\n", WSAGetLastError()); break; } else printf("發(fā)送信息:%s\n", Buffer); //接收網絡信息

19、 i = sizeof(from); if(socket_type != SOCK_DGRAM) retval = recv(conn_socket, Buffer, sizeof(Buffer), 0 );//面向tcp,類似BSD read() else retval = recvfrom(conn_socket, Buffer, sizeof(Buffer), 0, (struct sockaddr*)&from, &i); //面向UDP if (retval == SOCKET_ERROR) {

20、 printf("接收信息失敗,錯誤號:%d\n",WSAGetLastError()); break; } else if (retval == 0) // 對于面向連接的套接字,需要判斷對方是否關閉連接 { printf("服務器關閉連接\n"); break; } else //正確接收到網絡信息 printf("收到 %d 字節(jié)信息:%s \n", retval, Buffer); //程序的一個退出條件

21、 if(!stricmp(Buffer, "quit")) break; } //關閉套接字 closesocket(conn_socket); WSACleanup(); return 0; } /*******************************************************\ * server.c - 簡單 TCP/UDP 套接字服務器程序 windows環(huán)境 * \*******************************************************/ #incl

22、ude //套接字頭文件 #include #include #include #include #pragma comment(lib,"ws2_32")//添加庫 int main(void) { unsigned short port= 5001; //端口號 int socket_type = SOCK_DGRAM; //缺省使用TCP連接 char Buffer[1024]; //收發(fā)緩沖區(qū) int r

23、etval, fromlen, i, isconnected = 0; //臨時變量 struct sockaddr_in local, from; //套接字地址結構變量 SOCKET listen_socket, msgsock; //套接字變量 WSADATA wsaData; //windows套接字信息 //先輸入服務器程序所需要的基本信息:端口號,套接字類型 printf("請輸入端口號( >5000 ):"); scanf("%d", &i); if(i < 5000 || i > 65535) printf("

24、不正確的端口號%d,用缺省端口號5001\n",i); else port = i; printf("請輸入套接字類型( 1,TCP; 2, UDP ):"); scanf("%d", &i); if(i == 1) socket_type = SOCK_STREAM; else if(i == 2) socket_type = SOCK_DGRAM; else printf("不正確的輸入%d,使用TCP數據流\n",i); //在windows環(huán)境下,需要先初始化協(xié)議棧 if ((retval = WSAStartup(

25、0x202, &wsaData)) != 0) //初始化套接字版本等信息 { printf("WSAStartup 失敗,錯誤號:%d\n", retval); WSACleanup();//在創(chuàng)建失敗,或者程序結束,都要調用 return -1; } //建立套接字 listen_socket = socket(AF_INET, socket_type, 0); if (listen_socket == INVALID_SOCKET) { printf("socke

26、t()失敗,錯誤號:%d\n", WSAGetLastError()); WSACleanup(); return -1; } // 拷貝 解析的信息到sockaddr_in結構中 local.sin_family = AF_INET; local.sin_addr.s_addr = INADDR_ANY; local.sin_port = htons(port); //邦定網絡地址到套接字 if (bind(listen_socket,(struct sockaddr*)&local,

27、sizeof(local) ) == SOCKET_ERROR) //綁定網絡地址 { printf("bind()失敗,錯誤號:%d\n", WSAGetLastError()); WSACleanup(); return -1; } //對于流式套接字,讓套接字處于監(jiān)聽狀態(tài),等待連接到來 if (socket_type != SOCK_DGRAM) { if (listen(listen_socket,5) == SOCKET_ERROR) //監(jiān)聽網絡 {

28、 printf("listen()失敗,錯誤號:%d\n", WSAGetLastError()); WSACleanup(); return -1; } } printf("監(jiān)聽端口:%d, 使用協(xié)議:%s\n", port, (socket_type == SOCK_STREAM)? "TCP": "UDP"); while(1) { fromlen =sizeof(from); if (socket_type == SOCK_

29、DGRAM ) msgsock = listen_socket; else if( isconnected == 0) {//對于TCP連接,如果沒有連接,等待一個連接的到來 msgsock = accept(listen_socket,(struct sockaddr*)&from, &fromlen); if (msgsock == INVALID_SOCKET) { printf("accept()失敗,錯誤號:%d\n",WSAGetLastError(

30、)); WSACleanup(); return -1; } isconnected = 1; printf("從%s收到連接, 端口是:%d\n", inet_ntoa(from.sin_addr), htons(from.sin_port)); } //等待接收網絡信息 if (socket_type != SOCK_DGRAM) retval = recv(msgsock, Buffer,

31、sizeof (Buffer), 0 ); //面向tcp,類似BSD read() else { retval = recvfrom(msgsock, Buffer, sizeof (Buffer), 0, (struct sockaddr *)&from, &fromlen); //面向UDP printf("從%s收到數據報,端口是:%d\n", inet_ntoa(from.sin_addr), htons(from.sin_port)); } //結果判斷

32、 if (retval == SOCKET_ERROR) { printf("recv()失敗,錯誤號:%d\n", WSAGetLastError()); closesocket(msgsock); continue; } else if (retval == 0) { printf("客戶端關閉連接\n"); closesocket(msgsock); continue;

33、 } else //正常接收 { printf("收到 %d 字節(jié)的數據:%s \n", retval, Buffer); if (socket_type != SOCK_DGRAM) {//對于TCP連接,我們收到"exit"有一個關閉連接的操作 if(!stricmp(Buffer, "exit")) { printf("關閉TCP 連接,等待下一次連接...\n"); closesocket(msgsock); isconnected = 0; continue;

34、} } } //信息回送 printf("將同樣的信息回送給客戶端...\n\n"); printf("please input the message:\n"); scanf("%s",Buffer); if (socket_type != SOCK_DGRAM) retval = send(msgsock, Buffer, strlen(Buffer)+1, 0); //面向tcp,類似BSD write() else retval = send

35、to(msgsock, Buffer, strlen(Buffer)+1, 0, (struct sockaddr *)&from, fromlen); //面向UDP if (retval == SOCKET_ERROR) { printf("send()失敗,錯誤號:%d\n", WSAGetLastError()); } //程序的一個退出條件 if(!stricmp(Buffer, "quit")) break; } WSACleanup();

36、return 0; } 3.連接數據庫 3.1使用說明書 第一步:在開始菜單中找到SQL SERVER并打開 第二步:建立一個新的數據庫。在SQL SERVER中建立一個名為student的數據庫 第三步:在student庫下創(chuàng)建一個Stu_Info表,并在表中包含以下字段名:snum,sname,ssex,sage,smajor。輸入一些數據,進行測試。 第四步:在安全性中設置密碼為123. 第三步:編譯生成可執(zhí)行的文件,點擊運行。根據提示框中的信息,輸入我們需要插入的數據。關閉程序。 第四步:在次點擊運行,查看我們插入的數據是否成功的插入。 3.2原理

37、說明 通過ADO訪問數據庫的技術進行數據庫編程。我們需要在計算機上配置數據源。配置數據源的過程,就是和讓數據庫的驅動程序來對數據庫進行操作,以便使我們再程序中,可以調用驅動程序來完成我們需要完成的工作。處理ADO訪問技術之外,還有ODBC(開放式數據庫互聯)等。 3.3程序注釋 /******************************************************************* 利用ADO訪問MS SQL2000 要求: 【1】輸出Stu_Info表內的每一條記錄 【2】添加一條新記錄 【3】刪除名字為"李立"的記錄 ********

38、*********************************************************/ #import "c:\Program Files\Common Files\System\ADO\msado15.dll" \//導入動態(tài)鏈接庫,使我們可以使用ADO編程 no_namespace rename("EOF", "EndOfFile") //為了防止命名沖突,不使用命名空間 #include //標準輸入輸出流 #include //for setw() using namespace std; cl

39、ass STU //定義學生類 { public: char snum[10]; //學號 char sname[10]; //姓名 char ssex[2]; //姓別 long sage; //年齡 char smajor[20]; //專業(yè) public: STU(){} ~STU(){} }; int main() { STU student; //定義學生對象 ::CoInitialize(NULL); // 初始化OLE/COM庫環(huán)境 ,為訪問ADO接口做準備 _Recor

40、dsetPtr m_pRecordset("ADODB.Recordset"); //建立記錄集 _ConnectionPtr m_pConnection("ADODB.Connection"); //建立連接 _bstr_t bstrSQL("select * from stu_info"); //查詢語句 char * query_cmd = "DELETE FROM stu_info WHERE sname = 李立"; try //異常處理 { // 創(chuàng)建Connection對象 m_pConnection.CreateInstance("

41、ADODB.Connection"); // 設置連接字符串,必須是BSTR型或者_bstr_t類型 _bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;"; //若數據庫在網絡上則Server為形如(192.168.1.5,3340) //用戶sa和密碼123只是針對我的庫 m_pConnection->Open(strConnect,"","",adModeUnknown); if(m_pConnection==NULL) c

42、err<<"Lind data ERROR!\n"; // 創(chuàng)建記錄集對象 m_pRecordset.CreateInstance(__uuidof(Recordset)); // 取得表中的記錄 m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText); _variant_t vsnum,vsname,vsage,vssex,vsmajor; //對應庫中的snum,sname,sage,ssex,smajo

43、r cout << "學號 姓名 年齡 姓別 專業(yè)"; cout << "\n----------------------------------------------------------------\n"; while (!m_pRecordset->EndOfFile) //如果記錄集沒有到記錄的尾端 { vsnum = m_pRecordset->GetCollect(_variant_t((long)0));//這兒給字段編號和字段名都可以 vsname = m_pRecordset->GetCollect("sname")

44、; vsage = m_pRecordset->GetCollect("sage"); vssex = m_pRecordset->GetCollect("ssex"); vsmajor = m_pRecordset->GetCollect("smajor"); 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); /

45、/設置左對齊 cout << setw(14) << (char*)(_bstr_t)vsnum; //輸出學號 cout << setw(14) << (char*)(_bstr_t)vsname; //輸出姓名 cout << setw(8) << vsage.lVal; //輸出年齡 cout << setw(8) << (char*)(_bstr_t)vssex; //輸出性別 cout <

46、out << endl; } m_pRecordset->MoveNext(); ///移到下一條記錄 } cout << "\n----------------------------------------------------------------\n"; //輸入將要插入的信息 cout << "\n請輸入你要添加的學生信息\n"; cout << "學號:"; cin >> student.snum; cout << "\n姓名:"; cin >> student.sname; cout << "\n年齡:"; c

47、in >> student.sage; cout << "\n姓別:"; cin >> student.ssex; cout << "\n專業(yè):"; cin >> student.smajor; m_pRecordset->MoveFirst(); //移動到第一條記錄 m_pRecordset->AddNew(); ///添加新記錄 m_pRecordset->PutCollect("snum",_variant_t(student.snum)); //將數據添加進去輸入庫 m_pRecordset->PutCollect("sname",_va

48、riant_t(student.sname)); m_pRecordset->PutCollect("sage",_variant_t(student.sage)); m_pRecordset->PutCollect("ssex",_variant_t(student.ssex)); m_pRecordset->PutCollect("smajor",_variant_t(student.smajor)); m_pRecordset->Update();//更新操作,如果不更新,對數據庫的操作將沒有得到相應的操作 m_pConnection->Execute(

49、query_cmd,NULL,1); //用Execute執(zhí)行sql語句來刪除 m_pRecordset->Close(); // 關閉記錄集 } // 捕捉異常 catch(_com_error e) { // 顯示錯誤信息 cerr << "\nERROR:" << (char*)e.Description();//拋出異常 } if(m_pConnection->State) m_pConnection->Close(); ::CoUninitialize(); return 0; } 4.實習總結、體會與收獲 通過這些天老師給我們講授實習課,我知道的我們專業(yè)的實用性,以及在軟件工程上我們應該怎么學,學些什么,光靠課堂上我們學習的東西十分有限,要充分利用課余時間,利用圖書館和互聯網。學習這個專業(yè),要求我們要深入進去,不能只學會些皮毛,要不斷跟進時代的步伐,不斷學習新的知識,開拓視野,才能在這個專業(yè)上有更好的作為,使我們走得更遠,這門課程的學習使我受益匪淺,為以后的學習打下了基礎,激發(fā)了我的學習興趣,使我明確了自己的專業(yè)方向。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!