ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:72.19KB ,
资源ID:20201621      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20201621.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《管理系统中计算机应用》实践报告Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《管理系统中计算机应用》实践报告Word格式文档下载.docx

1、打开客户端(client.exe),根据提示,将客户端(server.exe)所在的服务器的 IP 地址输入进去。第四步:输入在服务器端(server.exe)中建立的端口号值。第五步:选择和服务器端(server.exe)中一样的协议 第六步:收发数据 第七步:关闭连接。2.2 原理说明书 2.3 程序注释/*client.c-简单的 TCP/UDP 套接字客户程序 windows 环境*/#include/关于套接字的头文件#include#include#include#include#pragma comment(Iib,ws2_32)添加 ws2_32 库 int main(void

2、)unsigned short port=5001;/端口号 int socket_type=SOCK_STREAM;/缺省使用 TCP 连接 char Buffer1280;/收发缓冲区 套接字地址结构变量 struct sockaddr_in server,from;/指针 /先输入客户程序所需要的基本信息:服务器地址,端口号,套接字类型 printf(请输入服务器地址:);scanf(%s,Buffer);printf(请输入端口号(5000):scanf(%d,&i);if(i 65535)printf(不正确的端口号d,用缺省端口号 5001n,i);else port=i;prin

3、tf(请输入套接字类型(1,TCP;2,UDP):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 环境下,需要先初始化协议栈 if(retval=WSAStartup(0 x202,&wsaData)!=0)/WSAStartup 函数调用,用来初始/socket printf(WSAStartup 失败,错误号:%dn,retvaI);WSACIeanup(

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

5、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);/信息的 copy server.sin_family=hp-h_addrtype;/组协议初始化 server.sin_port=htons(port);/端口

6、号初始化/建立套接字 conn_socket=socket(AF_INET,socket_type,0);if(conn_socket h_name);(connect(conn_socket,(struct sockaddr*)&server,sizeof(server)=SOCKET_ERROR)printf(connect()失 败,错 号:%dn,WSAGetLastError();closesocket(conn_socket);/如果创建失败,就关 闭连接套接字 WSACleanup();return-1;while(1)/得到要发送的信息字符串 puts(n 输入送到服务器的信息

7、:gets(Buffer);if(!strlen(Buffer)/如果没有输入信息,继续循环 continue;/发送网络信息 strlen(Buffer)+1,0);/面向 tcp,类似 BSD write()else retval=sendto(conn_socket,Buffer,strlen(Buffer)+1,0,/发送字符串的时候,须将字符串的结束符 0 发送(struct sockaddr*)&server,sizeof(server);/面向 UDP if(retval=SOCKET_ERROR)printf(发 送 失 败,错 误 号:break;else printf(发送

8、信息:%sn,Buffer);/接收网络信息 i=sizeof(from);sizeof(Buffer),0);/面向 tcp,类似 BSD read()else retval=recvfrom(conn_socket,Buffer,sizeof(Buffer),0,(struct sockaddr*)&from,&/面向 UDP if(retval=SOCKET_ERROR)printf(接 收 信 息 失 败,错 误 号:else if(retval=0)/对于面向连接的套接字,需 要判断对方是否关闭连接 printf(服务器关闭连接 n);%s n,retval,windows 环境 e

9、lse/正确接收到网络信息 printf(收到%d 字节信息:Buffer);/程序的一个退出条件 if(!stricmp(Buffer,quit)break;/关闭套接字 closesocket(conn_socket);WSACleanup();return 0;/*server.c-简单 TCP/UDP 套接字服务器程序*/#include/套接字头文件#include#include#include#include#pragma comment(lib,ws2_32)/添加库 int main(void)unsigned short port=5001;int socket_type=

10、SOCK_DGRAM;char Buffer1024;int retval,fromlen,i,isconnected=0;变量 struct sockaddr_in local,from;量 SOCKET listen_socket,msgsock;/WSADATA wsaData;息/端口号/缺省使用 TCP 连接/收发缓冲区/临 时/套接字地址结构变 套接字变量/windows 套接字信/先输入服务器程序所需要的基本信息:端口号,套接字类型 printf(请输入端口号(5000):if(i 65535)printf(不正确的端口号d用缺省端口号 5001n,i);2,UDP):else

11、if(i=2)socket_type=SOCK_DGRAM;else printf(”不正确的输入d使用 TCP 数据流n,i);=0)/初 始化套接字版本等信息 printf(WSAStartup 失败,错误号:%dn,retval);/在创建失败,或者程序结束,都要调用 return-1;/建立套接字 listen_socket=socket(AF_INET,socket_type,0);if(listen_socket=INVALID_SOCKET)printf(socket()失 败,错 误 号:/拷贝 解析的信息到 sockaddr_in 结构中 local.sin_family=A

12、F_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()失 败,错 误 号:/对于流式套接字,让套接字处于监听状态,等待连接到来 if(socket_type!=SOCK_DGRAM)if(listen(listen_socket,5)=SOCKET_ERROR/)监 听网络 printf(listen()

13、失 败,错 误 号:printf(监听端口:%d,使用协议:%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)/对于 TCP 连接,如果没有连接,等待一个连接的到来 msgsock=accept(listen_socket,(struct sockaddr*)&fromlen);if(msgsock=INVALID_SOCKET)printf(accept()失

14、败,错 误 号: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,类似 BSD read()else retval=recvfrom(msgsock,Buffer,sizeof(Buffer),0,(struct sockaddr*)&/面向 UDP printf(从%s 收 到 数 据 报

15、,端 口 是:/结果判断 if(retval=SOCKET_ERROR)printf(recv()失 败,错 误 号:closesocket(msgsock);continue;else if(retval=0)printf(客户端关闭连接 n);else/正常接收 printf(收到%d 字节的数据:%s n,retval,Buffer);if(socket_type!=SOCK_DGRAM)/对于 TCP 连接,我们收到 exit 有一个关闭连 接的操作 if(!stricmp(Buffer,exit)printf(关闭 TCP 连接,等待下一次 连接.n);isconnected=0;/

16、信息回送 printf(将同样的信息回送给客户端.nn);printf(please input the message:n);=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()失 败,错 误 号:3.连接数据库连接数据库 3.

17、1使用说明书 第一步:在开始菜单中找到 SQL SERVE 并打开 第二步:建立一个新的数据库。在 SQL SERVER建立一个名为 student 的数据库 第三步:在 student 库下创建一个 Stu_Info 表,并在表中包含以 下字段名:snum,sname,ssex,sage,smajor。输入一些数据,进 行测试。在安全性中设置密码为 123.第三步:编译生成可执行的文件,点击运行。根据提示框中的信息,输入我们需要插入的数据。关闭程序 第四步:在次点击运行,查看我们插入的数据是否成功的插入。3.2原理说明 通过 ADO访问数据库的技术进行数据库编程。我们需要在计算机上 配置数据

18、源。配置数据源的过程,就是和让数据库的驱动程序来对 数据库进行操作,以便使我们再程序中,可以调用驱动程序来完成 我们需要完成的工作。处理 ADO访问技术之外,还有 ODB(开放式 数据库互联)等。3.3程序注释/*利用 ADC 访问 MS SQL2000 要求:【1】输出 Stu_Info 表内的每一条记录【2】添加一条新记录【3】删除名字为 李立 的记录*/#import c:Program FilesCommon FilesSystemADOmsado15.dll/导入动态链接库,使我们可以 为了防止命名冲突,使用 ADC 编程 no_namespace rename(EOF,EndOfF

19、ile)/不使用命名空间#include /标准输入输出流#include /for setw()using namespace std;class STU/定义学生类 public:char snum10;/学号 char sname10;/姓名 char ssex2;/姓别 long sage;/年龄 char smajor20;/专业 public:STU()STU();int main()STU student;/定义学生对象:Colnitialize(NULL);/初始化 OLE/COM 库环境,为访问 ADO接 口做准备 _RecordsetPtr m_pRecordset(ADO

20、DB.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.Createlnstance(ADODB.Connection);/设置连接字符串,必须是 BSTR 型或者_bstr_t 类型 _bstr_t strConnect=Pro

21、vider=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_t vsnum,vsname,vsage,vssex,

22、vsmajor;/对应库中的 snum,sname,sage,ssex,smajor cout 学号 姓名 年龄 姓别 专业;cout 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-GetCollec

23、t(smajor);if(vsnum.vt!=VT_NULL&vsname.vt!vsage.vt!vssex.vt!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;/输出年龄 性别 cout setw(20)(char*)(_bstr_t)vsmajor;/出专业 cout.unsetf(ios:/取消左对齐 cout

24、 MoveNext();/移到下一条记录 cout n n;/输入将要插入的信息 cout n 请输入你要添加的学生信息 n;cout student.snum;cout student.sname;cout student.sage;cout student.ssex;cout student.smajor;m_pRecordset-MoveFirst();/移动到第一条记录 m_pRecordset-AddNew();/添加新记录 m_pRecordset-PutCollect(snum,_variant_t(student.snum);/将数据添加 进去输入库 m_pRecordset-

25、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

26、);/用 Execute 执行 sql 语句来删除 m_pRecordset-Close();/关闭记录集 /捕捉异常 catch(_com_error e)/显示错误信息 cerr nERROR:State)m_pConnection-Close();:CoUninitialize();4.实习总结、体会与收获实习总结、体会与收获 通过这些天老师给我们讲授实习课,我知道的我们专业的实 用性,以及在软件工程上我们应该怎么学,学些什么,光靠课堂上 我们学习的东西十分有限,要充分利用课余时间,利用图书馆和互 联网。学习这个专业,要求我们要深入进去,不能只学会些皮毛,要不断跟进时代的步伐,不断学习新的知识,开拓视野,才能在这 个专业上有更好的作为,使我们走得更远,这门课程的学习使我受益 匪浅,为以后的学习打下了基础,激发了我的学习兴趣,使我明确 了自己的专业方向。

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

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