《管理系统中计算机应用》实践报告.docx

上传人:b****6 文档编号:7107499 上传时间:2023-01-17 格式:DOCX 页数:20 大小:72.19KB
下载 相关 举报
《管理系统中计算机应用》实践报告.docx_第1页
第1页 / 共20页
《管理系统中计算机应用》实践报告.docx_第2页
第2页 / 共20页
《管理系统中计算机应用》实践报告.docx_第3页
第3页 / 共20页
《管理系统中计算机应用》实践报告.docx_第4页
第4页 / 共20页
《管理系统中计算机应用》实践报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

《管理系统中计算机应用》实践报告.docx

《《管理系统中计算机应用》实践报告.docx》由会员分享,可在线阅读,更多相关《《管理系统中计算机应用》实践报告.docx(20页珍藏版)》请在冰豆网上搜索。

《管理系统中计算机应用》实践报告.docx

管理系统中计算机应用实践报告管理系统中计算机应用实践报告中南林业科技大学中南林业科技大学管理系统中计算机应用管理系统中计算机应用实践报告姓名:

XXX专业:

人力资源管理院(系):

中南林业科技大学成教学院实习时间:

2013年4月18日实习地点:

XXXXXXXXXX指导教师评语:

成绩:

签名:

年月日撰写及批改注意事项、填写信息1、学生填写信息齐全、字迹清晰、日期真实;2、教师批改后的签名和日期应完整;3、报告中封面、图、程序要求打印(封面与此页要求正反双面打印,教师评语要求手写)。

二、实习报告的撰写1、实习报告撰写认真细致,数据计算正确、误差分析准确、实验结论分析符合科学规律。

2、实习报告有绘制的图形、图表时,要求

(1)用电脑绘制;

(2)应在报告中注明图号、表号。

三、批改实验报告1、一律采用百分制;2、批改时应对错分明,错误之处应有文字说明或指出错误的标记;3、指导教师评语的内容:

(1)对本次认识实习完成情况的评语;

(2)对本次认识实习报告的评语;1.软件编译理论及实践教程实习内容42.套接字编程62.1使用说明书62.2原理说明书72.3程序注释73.连接数据库193.1使用说明书193.2原理说明书203.3程序注释204.实习0000000000管理节点1000000003F000000003F(正文1.软件论及实实习内一:

我的电脑C盘盘(48.8GB)00061AB82700061AB827管理节点200061AB86600061AB866D盘盘(73.4GB)000F48CDDA000F48CDDA分区间隙000F48CE18总结、体会与26部分)编译理践教程容磁盘分析:

000F48CE18管理节点3000F48CE19000F48CE19E盘盘(73.4GB)001876E38D001876E38D分区间隙001876E3CB001876E3CB管理节点4001876E3CC001876E3CCF盘盘(102.4GB)0025422D6C1剩余扇区(server.exe).根据提示输入端口号,需要输入大于5001小于65535的值,否则就是用默认的5001作为端口值第二步:

创建套接字并选择协议。

第三步:

打开客户端(client.exe),根据提示,将客户端(server.exe)所在的服务器的IP地址输入进去。

第四步:

输入在服务器端(server.exe)中建立的端口号值。

第五步:

选择和服务器端(server.exe)中一样的协议第六步:

收发数据第七步:

关闭连接。

2.2原理说明书2.3程序注释/*client.c-简单的TCP/UDP套接字客户程序windows环境*/#include/关于套接字的头文件#include#include#include#include#pragmacomment(Iib,ws2_32)添加ws2_32库intmain(void)unsignedshortport=5001;/端口号intsocket_type=SOCK_STREAM;/缺省使用TCP连接charBuffer1280;/收发缓冲区套接字地址结构变量structsockaddr_inserver,from;/指针/先输入客户程序所需要的基本信息:

服务器地址,端口号,套接字类型printf(请输入服务器地址:

);scanf(%s,Buffer);printf(请输入端口号(5000):

);scanf(%d,&i);if(i65535)printf(不正确的端口号d,用缺省端口号5001n,i);elseport=i;printf(请输入套接字类型(1,TCP;2,UDP):

);scanf(%d,&i);if(i=1)socket_type=SOCK_STREAM;设定为SOCK_STREAMelseif(i=2)socket_type=SOCK_DGRAM;设定为SOCK_DGRAMelseprintf(”不正确的输入d使用TCP数据流n,i);/在windows环境下,需要先初始化协议栈if(retval=WSAStartup(0x202,&wsaData)!

=0)/WSAStartup函数调用,用来初始/socketprintf(WSAStartup失败,错误号:

%dn,retvaI);WSACIeanup();/当调用了WSAStartup之后,就需要调用WSACIeanu函数释放内存return-1;/取得主机IP地址是域名或命名地址,用首字母的if(isaIpha(Buffer0)/从一个主机数据库中提是否在A-Z,或者a-z来判断是域名还是IP地址hp=gethostbyname(Buffer);/取出主机信息elseaddr=inet_addr(Buffer);/是点分地址hp=gethostbyaddr(char*)&addr,4,AF_INET);/根据网络地址,获得主机信息,执行成功,就返回一个指向主机信息的结构if(hp=NULL)printf(不能解析地址%s:

错误号%dn,Buffer,WSAGetLastError();/用于获取错误信息WSACleanup();exit

(1);/拷贝解析的信息到sockaddr_in结构中memset(&server,0,sizeof(server);/分配内存空间,由server返回memcpy(&(server.sin_addr),hp-h_addr,hp-h_length);/信息的copyserver.sin_family=hp-h_addrtype;/组协议初始化server.sin_port=htons(port);/端口号初始化/建立套接字conn_socket=socket(AF_INET,socket_type,0);if(conn_socketh_name);(connect(conn_socket,(structsockaddr*)&server,sizeof(server)=SOCKET_ERROR)printf(connect()失败,错号:

%dn,WSAGetLastError();closesocket(conn_socket);/如果创建失败,就关闭连接套接字WSACleanup();return-1;while

(1)/得到要发送的信息字符串puts(n输入送到服务器的信息:

);gets(Buffer);if(!

strlen(Buffer)/如果没有输入信息,继续循环continue;/发送网络信息strlen(Buffer)+1,0);/面向tcp,类似BSDwrite()elseretval=sendto(conn_socket,Buffer,strlen(Buffer)+1,0,/发送字符串的时候,须将字符串的结束符0发送(structsockaddr*)&server,sizeof(server);/面向UDPif(retval=SOCKET_ERROR)printf(发送失败,错误号:

%dn,WSAGetLastError();break;elseprintf(发送信息:

%sn,Buffer);/接收网络信息i=sizeof(from);sizeof(Buffer),0);/面向tcp,类似BSDread()elseretval=recvfrom(conn_socket,Buffer,sizeof(Buffer),0,(structsockaddr*)&from,&i);/面向UDPif(retval=SOCKET_ERROR)printf(接收信息失败,错误号:

%dn,WSAGetLastError();break;elseif(retval=0)/对于面向连接的套接字,需要判断对方是否关闭连接printf(服务器关闭连接n);break;%sn,retval,windows环境else/正确接收到网络信息printf(收到%d字节信息:

Buffer);/程序的一个退出条件if(!

stricmp(Buffer,quit)break;/关闭套接字closesocket(conn_socket);WSACleanup();return0;/*server.c-简单TCP/UDP套接字服务器程序*/#include/套接字头文件#include#include#include#include#pragmacomment(lib,ws2_32)/添加库intmain(void)unsignedshortport=5001;intsocket_type=SOCK_DGRAM;charBuffer1024;intretval,fromlen,i,isconnected=0;变量structsockaddr_inlocal,from;量SOCKETlisten_socket,msgsock;/WSADATAwsaData;息/端口号/缺省使用TCP连接/收发缓冲区/临时/套接字地址结构变套接字变量/windows套接字信/先输入服务器程序所需要的基本信息:

端口号,套接字类型printf(请输入端口号(5000):

);scanf(%d,&i);if(i65535)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使用TCP数据流n,i);/在windows环境下,需要先初始化协议栈if(retval=WSAStartup(0x202,&wsaData)!

=0)/初始化套接字版本等信息printf(WSAStartup失败,错误号:

%dn,retval);WSACleanup();/在创建失败,或者程序结束,都要调用return-1;/建立套接字listen_socket=socket(AF_INET,socket_type,0);if(listen_socket=INVALID_SOCKET)printf(socket()失败,错误号:

%dn,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,(structsockaddr*)&local,sizeof(local)=SOCKET_ERROR)/绑定网络地址printf(bind()失败,错误号:

%dn,WSAGetLastError();WSACleanup();return-1;/对于流式套接字,让套接字处于监听状态,等待连接到来if(socket_type!

=SOCK_DGRAM)if(listen(listen_socket,5)=SOCKET_ERROR/)监听网络printf(listen()失败,错误号:

%dn,WSAGetLastError();WSACleanup();return-1;printf(监听端口:

%d,使用协议:

%sn,port,(socket_type=SOCK_STREAM)TCP:

UDP);while

(1)fromlen=sizeof(from);if(socket_type=SOCK_DGRAM)msgsock=listen_socket;elseif(isconnected=0)/对于TCP连接,如果没有连接,等待一个连接的到来msgsock=accept(listen_socket,(structsockaddr*)&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.sin_port);/等待接收网络信息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(从%s收到数据报,端口是:

%dn,inet_ntoa(from.sin_addr),htons(from.sin_port);/结果判断if(retval=SOCKET_ERROR)printf(recv()失败,错误号:

%dn,WSAGetLastError();closesocket(msgsock);continue;elseif(retval=0)printf(客户端关闭连接n);closesocket(msgsock);continue;else/正常接收printf(收到%d字节的数据:

%sn,retval,Buffer);if(socket_type!

=SOCK_DGRAM)/对于TCP连接,我们收到exit有一个关闭连接的操作if(!

stricmp(Buffer,exit)printf(关闭TCP连接,等待下一次连接.n);closesocket(msgsock);isconnected=0;continue;/信息回送printf(将同样的信息回送给客户端.nn);printf(pleaseinputthemessage:

n);scanf(%s,Buffer);if(socket_type!

=SOCK_DGRAM)retval=send(msgsock,Buffer,strlen(Buffer)+1,0);/面向tcp,类似BSDwrite()elseretval=sendto(msgsock,Buffer,strlen(Buffer)+1,0,(structsockaddr*)&from,fromlen);/面向UDPif(retval=SOCKET_ERROR)printf(send()失败,错误号:

%dn,WSAGetLastError();/程序的一个退出条件if(!

stricmp(Buffer,quit)break;WSACleanup();return0;3.连接数据库连接数据库3.1使用说明书第一步:

在开始菜单中找到SQLSERVE并打开第二步:

建立一个新的数据库。

在SQLSERVER建立一个名为student的数据库第三步:

在student库下创建一个Stu_Info表,并在表中包含以下字段名:

snum,sname,ssex,sage,smajor。

输入一些数据,进行测试。

第四步:

在安全性中设置密码为123.第三步:

编译生成可执行的文件,点击运行。

根据提示框中的信息,输入我们需要插入的数据。

关闭程序第四步:

在次点击运行,查看我们插入的数据是否成功的插入。

3.2原理说明通过ADO访问数据库的技术进行数据库编程。

我们需要在计算机上配置数据源。

配置数据源的过程,就是和让数据库的驱动程序来对数据库进行操作,以便使我们再程序中,可以调用驱动程序来完成我们需要完成的工作。

处理ADO访问技术之外,还有ODB(开放式数据库互联)等。

3.3程序注释/*利用ADC访问MSSQL2000要求:

【1】输出Stu_Info表内的每一条记录【2】添加一条新记录【3】删除名字为李立的记录*/#importc:

ProgramFilesCommonFilesSystemADOmsado15.dll/导入动态链接库,使我们可以为了防止命名冲突,使用ADC编程no_namespacerename(EOF,EndOfFile)/不使用命名空间#include/标准输入输出流#include/forsetw()usingnamespacestd;classSTU/定义学生类public:

charsnum10;/学号charsname10;/姓名charssex2;/姓别longsage;/年龄charsmajor20;/专业public:

STU()STU();intmain()STUstudent;/定义学生对象:

Colnitialize(NULL);/初始化OLE/COM库环境,为访问ADO接口做准备_RecordsetPtrm_pRecordset(ADODB.Recordset);/建立记录集_ConnectionPtrm_pConnection(ADODB.Connection);/建立连接_bstr_tbstrSQL(select*fromstu_info);/查询语句char*query_cmd=DELETEFROMstu_infoWHEREsname=李立;try/异常处理/创建Connection对象m_pConnection.Createlnstance(ADODB.Connection);/设置连接字符串,必须是BSTR型或者_bstr_t类型_bstr_tstrConnect=Provider=SQLOLEDB;Server=(local);Database=student;uid=sa;pwd=123;/若数据库在网络上则Server为形如/用户sa和密码123只是针对我的库m_pConnection-Open(strConnect,adModeUnknown);if(m_pConnection=NULL)cerrOpen(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);_variant_tvsnum,vsname,vsage,vssex,vsmajor;/对应库中的snum,sname,sage,ssex,smajorcout学号姓名年龄姓别专业;coutEndOfFile)/如果记录集没有到记录的尾端vsnumm_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(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);/设置左对齐coutsetw(14)(char*)(_bstr_t)vsnum;/输出学号coutsetw(14)(char*)(_bstr_t)vsname;/输出姓名coutsetw(8)vsage.lVal;/输出年龄性别coutsetw(20)(char*)(_bstr_t)vsmajor;/出专业cout.unsetf(ios:

left);/取消左对齐coutMoveNext();/移到下一条记录coutnn;/输入将要插入的信息coutn请输入你要添加的学生信息n;coutstudent.snum;coutstudent.sname;coutstudent.sage;coutstudent.ssex;coutstudent.smajor;m_pRecordset-MoveFirst();/移动到第一条记录m_pRecordset-AddNew();/添加新记录m_pRecordset-PutCollect(snum,_variant_t(student.snum);/将数据添加进去输入库m_pRecordset-PutCollect(sname,_variant_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(query_cmd,NULL,1);/用Execute执行sql语句来删除m_pRecordset-Close();/关闭记录集/捕捉异常catch(_com_errore)/显示错误信息cerrnERROR:

State)m_pConnection-Close();:

CoUninitialize();return0;4.实习总结、体会与收获实习总结、体会与收获通过这些天老师给我们讲授实习课,我知道的我们专业的实用性,以及在软件工程上我们应该怎么学,学些什么,光靠课堂上我们学习的东西十分有限,要充分利用课余时间,利用图书馆和互联网。

学习这个专业,要求我们要深入进去,不能只学会些皮毛,要不断跟进时代的步伐,不断学习新的知识,开拓视野,才能在这个专业上有更好的作为,使我们走得更远,这门课程的学习使我受益匪浅,为以后的学习打下了基础,激发了我的学习兴趣,使我明确了自己的专业方向。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1