狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

管理系統中計算機應用實踐報告

| 瀏覽次數:

 中南林業科技大學 《管理系統中計算機應用》 實踐報告 姓

 名:XXX

  專

 業:

 人力資源管理

  院 (系):

  中南林業科技大學成教學院

 實習時間:

  2013 年 4 月 18日

  實習地點:

 XXXXXXXXXX

 指導教師評語:

 成績: 簽名:

 年

 月

 日 撰寫及批改注意事項

 一、填寫信息 1、學生填寫信息齊全、字跡清晰、日期真實; 2、教師批改后得簽名與日期應完整; 3、報告中封面、圖、程序要求打?。ǚ饷媾c此頁要求正反雙面打印,教師評語要求手寫). 二、實習報告得撰寫

 1、實習報告撰寫認真細致,數據計算正確、誤差分析準確、實驗結論 分析符合科學規律。

 2、實習報告有繪制得圖形、圖表時,要求

 (1)用電腦繪制;

  (2)應在報告中注明圖號、表號. 三、批改實驗報告

 1、一律采用百分制;

 2、批改時應對錯分明,錯誤之處應有文字說明或指出錯誤得標記; 3、指導教師評語得內容:

  (1)對本次認識實習完成情況得評語;

  (2)對本次認識實習報告得評語; 目

 錄 1、

 軟件編譯理論及實踐教程實習內容 .................................. 4

?。病?/p>

 套接字編程6 ?

 2、1 ? 使用說明書6 ?

 2、2

 原理說明書 ................................................ 7

 2、3

 程序注釋7 ?

 3、 ? 連接數據庫 ........................................................ 19

 3、1

 使用說明書 ............................................... 19

 3、2 ? 原理說明書02 ?

 3、3

 程序注釋02 ?

?。?、 ? 實習總結體會與收獲 ............................................. 26

 (正 文 部 分) 1、軟件編譯理論及實踐教程實習內容 一: : 我得電腦磁盤分析 :

 0000000000

 管理節點1

 000000003F 000000003F

?。帽P(48、8GB)

 00061AB827 00061AB827

 管理節點 2 00061AB866 00061AB866

  D 盤(73、4GB)

 000F48CDDA 000F48CDDA

  分區間隙 000F48CE18 000F48CE18

  管理節點 3 000F48CE19 000F48CE19

  E 盤(73、4GB)

 001876E38D

 二 、

  P P IN G G 、E EXE 十六進制源碼分析 在文件存儲空 間中,ping、exe 十六 進制源碼分析如下: 2、 套 接字編程 2、1、使用 說明書:

 第一步:先打開服務器端(server、exe)、根據提示輸入端口號,需要輸入大于 5001小于 65535得值,否則就就是用默認得5001 作為端口值 第二步:創建套接字并選擇協議. 第三步:打開客戶端(client、exe),根據提示,將客戶端(server、exe)所在得服務器得 IP 地址輸入進去. 第四步:輸入在服務器端(server、exe)中建立得端口號值. 第五步:選擇與服務器端(server、exe)中一樣得協議 第六步:收發數據 001876E38D

 分區間隙

 001876E3CB 001876E3CB

 管理節點 4

 001876E3CC 001876E3CC

 F盤(102、4GB)

 0025422D6C1

 剩余扇區

 第七步:關閉連接. 2、2原理說明書 2、3 程序注釋 /******************************************************\ * client、c - 簡單得 TCP/UDP 套接字客戶程序 windows環境 * \******************************************************/ #include <winsock2、h>//關于套接字得頭文件 #include <stdlib、h> #include 〈stdio、h〉 #include <string、h> #include <conio、h> #pragma ment (lib,”ws2_32")//添加‘ws2_32’庫 int main(void)

 {

  unsigned short port = 5001;// ?

 號口端?

?。閚t socket_type = SOCK_STREAM; //缺省使用 TCP 連接

  char Buffer[1280]; //收發緩沖區

  unsigned int addr; //IP 地址變量

  int retval,i;// ?

 量變時臨?

 struct sockaddr_in server, from; //套接字地址結構變量

  struct hostent *hp;

 // ? 構結息信機主?變量指針

  WSADATA wsaData;

 //windows套接字信息

  SOCKET

 conn_socket;// ?

 量變字接套? //先輸入客戶程序所需要得基本信息:服務器地址,端口號,套接字類型

  printf("請輸入服務器地址:”);

 scanf("%s", Buffer);

  ;)":)

 0005> (號口端入輸請"(ftnirp?

 ;)i& ,"d%”(fnacs? if(i 〈 5000 || i 〉 65535)

 \1005 號口端省缺用,d%號口端得確正不"(ftnirp?n", i);

?。錶se

 ?

 ;i = trop? printf("請輸入套接字類型( 1,TCP; 2, UDP ):");

?。骳anf(”%d",&i);

  )1 == i(fi? ERTS_KCOS 為定設//;MAERTS_KCOS = epyt_tekcos?AM

  )2 == i(fi esle?

 socket_type = SOCK_DGRAM;//設定為 SOCK_DGRAM

 else

 ;)i ,"n\流據數 PCT 用使,d%入輸得確正不"(ftnirp?//

 棧議協化始初先要需,下境環 swodniw 在?if ((retval = WSAStartup(0x202, &wsaData))

 != 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(Buffer);//從一個主機數據庫中提取出主機信息

  else

  {

  addr = inet_addr(Buffer);//就是點分地址

  hp = gethostbyaddr((char *)&addr,4,AF_INET);//根據網絡地址,獲得主機信息,執行成功,就返回一個指向主機信息得結構

  }

  if (hp == NULL )

  {

  printf("不能解析地址[%s]: 錯誤號%d\n", Buffer, WSAGetLastError());//用于獲取錯誤信息

  WSACleanup();

 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;//組協議初始化

  server、sin_port = htons(port);//端口號初始化 //

 字接套立建?

 conn_socket = socket(AF_INET,socket_type,0);

  if (conn_socket <0 )

  {

 printf(”socket()失敗,錯誤號:%d\n", WSAGetLastError());

  WSACleanup();

  return -1;

  }

 //對于流式套接字,需要先建立連接 // 函等)(vcer,)(dnes,)(tcennoc 用使以可也實其?數在 windows 里面一樣實現數據報套接字功能

  )MARGD_KCOS =!

?。澹饄t_tekcos(fi? { ?

  ;)eman_h〉—ph,"n\s% :到接連在正"(ftnirp? )*rddakcos tcurts(,tekcos_nnoc(tcennoc( fi?&server,sizeof(server))

 == SOCKET_ERROR)

 { ? ? LteGASW,"n\d%:號誤錯,敗失)(tcennoc"(ftnirp?astError());

 closesocket(conn_socket);//如果創建失敗,就關閉連接套接字

 ?

??;)(punaelCASW?

 ? return -1;

?。?? ? }

  while(1)

  { ?

?。玫揭l送得信息字符串

  puts("\n 輸入送到服務器得信息:");

 ;)reffuB(steg?

 循續繼,息信入輸有沒果如// ))reffuB(nelrts!(fi?環

  ?

 ;eunitnoc?//

 息信絡網送發?

 )MARGD_KCOS =!

?。錺yt_tekcos(fi?

?。?,reffuB ,tekcos_nnoc(dnes = lavter?trlen(Buffer)+1, 0);// etirw DSB 似類,pct 向面?()

 ?

  esle?

 ? rts ,reffuB ,tekcos_nnoc(otdnes = lavter?len(Buffer)+1, 0, //發送字符串得時候,須將字符串得結束符\0 發送

?。?? ? ?

 ,revres&)*rddakcos tcurts?sizeof(server));// ? ?

?。蠨U向面?

 if (retval == SOCKET_ERROR)

?。?/p>

  printf(”發送失敗,錯誤號: %d\n”, WSAGetLastError());

  break;

  }

 ?

 esle?

  ?

 ;)reffuB ,"n\s%:息信送發"(ftnirp?//

 息信絡網收接?

 ;)morf(foezis = i?

 if(socket_type != SOCK_DGRAM)

?。騟tval = recv(conn_socket, Buffer, sizeof(Buffer), 0 );//面向tcp,類似 BSD read()

  esle?

 ? effuB ,tekcos_nnoc(morfvcer = lavter?r, sizeof(Buffer), 0,

 ? ? ? (

 ;)i& ,morf&)*rddakcos tcurts?

  //面向 UDP

  if (retval == SOCKET_ERROR)

  { ?

 printf("接收信息失敗,錯誤號:%d\n",WSAGetLastError());

  break;

 }

  else if (retval == 0) // 對于面向連接得套接字,需要判斷對方就是否關閉連接

 { ?

?。穑騣ntf(”服務器關閉連接\n");

  break;

  }

 ?

 息信絡網到收接確正// esle? ? ?

 ,lavter ,”n\ s%:息信節字 d% 到收"(ftnirp?Buffer); // ?

 件條出退個一得序程?

?。iuq” ,reffuB(pmcirts!(fi?

 ? break;

  } //

 字接套閉關?

 closesocket(conn_socket);

 WSACleanup();

 return 0; } /*******************************************************\ * server、c - 簡單 TCP/UDP

 套接字服務器程序 windows 環境 * \*******************************************************/ #include <winsock2、h>//套接字頭文件 #include 〈stdlib、h> #include <stdio、h> #include <string、h〉 #include <iostream、h> #pragma ment(lib,"ws2_32")//添加庫 int main(void)

?。?/p>

  unsigned short port= 5001;

?。?端口號

  int socket_type = SOCK_DGRAM; //缺省使用 TCP連接

  char Buffer[1024];

 // ?

 區沖緩發收?

?。閚t retval, fromlen, i, isconnected = 0; //

 量變時臨?

 struct sockaddr_in local, from;// 結址地字接套?構變量

  SOCKET listen_socket, msgsock;// 變字接套?量

  WSADATA wsaData;

 ? // 信字接套 swodniw?息

 //先輸入服務器程序所需要得基本信息:端口號,套接字類型

 printf("請輸入端口號( >5000 ):");

 scanf(”%d”, &i);

 )53556 〉 i || 0005 〈 i(fi?

?。餽intf(”不正確得端口號%d,用缺省端口號 5001\n",i);

  esle?

?。穑飏t = i;

  ;)":)

?。蠨U ,2 ;PCT,1 (型類字接套入輸請"(ftnirp? scanf("%d", &i);

 if(i == 1)

 ?

?。唬虯ERTS_KCOS = epyt_tekcos?

?。? == i(fi esle? ?

 ;MARGD_KCOS = epyt_tekcos? else

 ;)i,"n\流據數 PCT 用使,d%入輸得確正不"(ftnirp?//

 棧議協化始初先要需,下境環 swodniw 在?

 if ((retval = WSAStartup(0x202, &wsaData)) != 0) //初始化套接字版本等信息

  {

  printf(”WSAStartup 失敗,錯誤號:%d\n", retval);

  WSACleanup();//在創建失敗,或者程序結束,都要調用

  return —1;

  }

 //建立套接字

  listen_socket = socket(AF_INET, socket_type, 0);

 if (listen_socket == INVALID_SOCKET)

?。??

 printf("socket()失敗,錯誤號:%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, sizeof(local)

 ) == SOCKET_ERROR) //綁定網絡地址

 {

  printf(”bind()失敗,錯誤號:%d\n”, WSAGetLastError());

  WSACleanup();

  return -1;

  }

 //對于流式套接字,讓套接字處于監聽狀態,等待連接到來

 if (socket_type ?。?SOCK_DGRAM)

  {

  if (listen(listen_socket,5)

 == SOCKET_ERROR)

 //監聽網絡

  {

  printf("listen()失敗,錯誤號:%d\n", WSAGetLastError());

  WSACleanup();

  return —1;

  }

  }

  printf("監聽端口:%d, 使用協議:%s\n", port, ( T" ?)MAERTS_KCOS == epyt_tekcos?CP":

 ”UDP”);

  while(1)

?。?

?。鎟omlen =sizeof(from);

 if (socket_type == SOCK_DGRAM )

  msgsock = listen_socket;

 ?

 )0 == detcennocsi (fi esle? //{

 來到得接連個一待等,接連有沒果如,接連 PCT于對?

 msgsock = accept(listen_socket,(struct sockaddr*)&from, &fromlen);

  if (msgsock == INVALID_SOCKET)

  { ? ?

 printf("accept()失敗,錯誤號:%d\n",WSAGetLastError());

  WSACleanup();

  return -1;

  }

 ?

 ;1 = detcennocsi?

 printf("從%s 收到連接, 端口就是:%d\n”, inet_ntoa(from、sin_addr), htons(from、sin_port));

  }

 //

 息信絡網收接待等?

 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);// ?

 PDU 向面?

 printf("從%s收到數據報,端口就是:%d\n”, inet_ntoa(from、sin_addr), htons(from、sin_port));

?。?/p>

 //

 斷判果結?

 if (retval == SOCKET_ERROR)

  { ? ?

 printf("recv()失敗,錯誤號:%d\n", WSAGetLastError());

  closesocket(msgsock);

  continue;

  }

  else if (retval == 0)

  { ?

?。穑騣ntf(”客戶端關閉連接\n”);

  closesocket(msgsock);

  continue;

  }

  收接常正// esle? { ?

 ? vter ,"n\ s%:據數得節字 d% 到收”(ftnirp?al, Buffer);

  ?

?。㎝ARGD_KCOS =! epyt_tekcos( fi?//{ ? ? 操得接連閉關個一有”tixe"到收們我,接連 PCT 于對?作

 ? ?

  ))"tixe" ,reffuB(pmcirts?。╢i?

  { ? ?

 ? ? ? 連次一下待等,接連 PCT閉關”(ftnirp?接、、、\n”);

  ? closesocket(msgsock);

  ? ?

  ;0 = detcennocsi?

  ?

?。鉶ntinue;

  ?

?。?/p>

?。?? ?

 } // ?

 送回息信?

 printf("將同樣得信息回送給客戶端、、、\n\n");

 ;)”n\:egassem eht tupni esaelp”(ftnirp?

  ;)reffuB,”s%"(fnacs?

 if (socket_type != SOCK_DGRAM)

  retval = send(msgsock, Buffer, strlen(Buffer)+1, 0); //面向tcp,類似 BSD write()

  else

  retval = sendto(msgsock, Buffer, strlen(Buffer)+1, 0,

  ( ? ? ;)nelmorf ,morf&)* rddakcos tcurts?// ? ? ?

 PDU 向面?

 if (retval == SOCKET_ERROR)

 {

 printf("send()失敗,錯誤號:%d\n", WSAGetLastError());

  }

 //

 件條出退個一得序程?

?。閒(!stricmp(Buffer, "quit"))

  ? break;

  }

  WSACleanup();

  ;0 nruter?} 3、連接數據庫 3、1 使用說明書 第一步:在開始菜單中找到 SQL SERVER 并打開

 第二步:建立一個新得數據庫。在 SQL SERVER中建立一個名為student 得數據庫

 第三步:在 student 庫下創建一個Stu_Info表,并在表中包含以下字段名:snum,sname,ssex,sage,smajor.輸入一些數據,進行測試。

 第四步:在安全性中設置密碼為 123、 第三步:編譯生成可執行得文件,點擊運行.根據提示框中得信息,輸入我們需要插入得數據.關閉程序。

 第四步:在次點擊運行,查瞧我們插入得數據就是否成功得插入. 3、2 原理說明 通過 ADO訪問數據庫得技術進行數據庫編程。我們需要在計算機上配置數據源。配置數據源得過程,就就是與讓數據庫得驅動程序來對數據庫進行操作,以便使我們再程序中,可以調用驅動程序來完成我們需要完成得工作。處理 ADO 訪問技術之外,還有 ODBC(開放式數據庫互聯)等。

 3、3 程序注釋 /******************************************************************* 利用ADO 訪問 MS SQL2000

 要求: 【1】輸出 Stu_Info 表內得每一條記錄 【2】添加一條新記錄 【3】刪除名字為”李立"得記錄

 *****************************************************************/ #import ”c:\Program Files\mon Files\System\ADO\msado15、dll" \//導入動態鏈接庫,使我們可以使用 ADO 編程 no_namespace rename("EOF", ”EndOfFile") //為了防止命名沖突,不使用命名空間 #include 〈iostream> //標準輸入輸出流 #include 〈iomanip> //for setw()

 using namespace std;

 class STU //定義學生類 {

 public:

 char snum[10]; //學號

 char sname[10]; //姓名

  char ssex[2]; //姓別

  long sage; //年齡

  char smajor[20]; //專業

 public:

 STU(){}

  ~STU(){}

 };

 int main()

 {

 STU student; //定義學生對象

  ::CoInitialize(NULL); // 初始化 OLE/庫環境 ,為訪問ADO 接口做準備

 _RecordsetPtr 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 //異常處理

 {

  // 創建 Connection 對象

  m_pConnection、CreateInstance("ADODB、Connection");

  // 設置連接字符串,必須就是 BSTR 型或者_bstr_t 類型

  _bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;”;

  //若數據庫在網絡上則 Server為形如

 //用戶 sa 與密碼 123只就是針對我得庫

  m_pConnection-〉Open(strConnect,””,"”,adModeUnknown);

  if(m_pConnection==NULL)

  cerr〈<”Lind data ERROR!\n";

  // 創建記錄集對象

  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,smajor

  cout 〈< "學號 姓名 年齡 姓別 專業”;

  cout 〈< "\n——-—-------——-——————--—---—--—---——-——-——--—-—----—-——--—---—---\n";

  while (!m_pRecordset—〉EndOfFile)

 //如果記錄集沒有到記錄得尾端

?。?/p>

  vsnum = m_pRecordset—>GetCollect(_variant_t((long)0));//這兒給字段編號與字段名都可以

?。鰏name = m_pRecordset->GetCollect(”sname”);

  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); //設置左對齊

  cout <〈 setw(14)

 <〈 (char*)(_bstr_t)vsnum; //輸出學號

  cout << setw(14) << (char*)(_bstr_t)vsname; //輸出姓名

  cout << setw(8) 〈< vsage、lVal; //輸出年齡

  essv)t_rtsb_()*rahc( 〈< )8(wtes 〈< tuoc?x; //輸出性別

  cout <<setw(20) << (char*)(_bstr_t)vsmajor; //輸出專業

 ?

 齊對左消?。? ;)tfel::soi(ftesnu、tuoc? ?

  ;ldne 〈< tuoc?

 } ?

?。韄pRecordset—>MoveNext(); ///移到下一條記錄

  } ? —---———-———-—--——-------——-n\" <〈 tuoc?---——---————-—--------—-———-------—--\n"; //輸入將要插入得信息

 ;"n\息信生學得加添要您入輸請 n\" <〈 tuoc?

  ;":號學" << tuoc?

  ;muns、tneduts 〉〉 nic?

  ;”:名姓 n\" 〈< tuoc?

  ;emans、tneduts 〉〉 nic? cout 〈〈 "\n 年齡:";

  cin 〉> student、sage;

  cout << "\n 姓別:";

  ;xess、tneduts 〉> nic? cout 〈< "\n 專業:”;

  cin >〉 student、smajor;

  錄記條一第到動移// ;)(tsriFevoM>—tesdroceRp_m?

  錄記新加添/// ;)(weNddA>-tesdroceRp_m? m_pRecordset-〉PutCollect("snum",_variant_t(student、snum)); //將數據添加進去輸入庫

 s(t_tnairav_,"emans”(tcelloCtuP>-tesdroceRp_m?tudent、sname));

  airav_,”egas”(tcelloCtuP>—tesdroceRp_m?nt_t(student、sage));

  m_pRecordset-〉PutCollect(”ssex”,_variant_t(student、ssex));

  m_pRecordset-〉PutCollect("smajor",_variant_t(student、smajor));

  對,新更不果如,作操新更//;)(etadpU>—tesdroceRp_m?數據庫得操作將沒有得到相應得操作

  m_pConnection-〉Execute(query_cmd,NULL,1); //用 Execute 執行 sql 語句來刪除

  集錄記閉關 // ;)(esolC>-tesdroceRp_m? }

  //

  常異捉捕? catch(__error e)

  {

 // 顯示錯誤信息

  cerr 〈〈 ”\nERROR:” 〈〈 (char*)e、Description();//拋出異常

 } ? if(m_pConnection->State)

  ;)(esolC>-noitcennoCp_m? ::CoUninitialize();

  ;0 nruter?} 4、實習總結、體會與收獲

 通過這些天老師給我們講授實習課,我知道得我們專業得實用性,以及在軟件工程上我們應該怎么學,學些什么,光靠課堂上我們學習得東西十分有限,要充分利用課余時間,利用圖書館與互聯網。學習這個專業,要求我們要深入進去,不能只學會些皮毛,要不斷跟進時代得步伐,不斷學習新得知識,開拓視野,才能在這個專業上有更好得作為,使我們走得更遠,這門課程得學習使我受益匪淺,為以后得學習打下了基礎,激發了我得學習興趣,使我明確了自己得專業方向。

推薦訪問: 管理系統 計算機應用 實踐

【管理系統中計算機應用實踐報告】相關推薦

工作總結最新推薦

NEW