2022年Visual C++程序设计大作业_第1页
2022年Visual C++程序设计大作业_第2页
2022年Visual C++程序设计大作业_第3页
2022年Visual C++程序设计大作业_第4页
2022年Visual C++程序设计大作业_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual C+程序设计大 作 业 1.请阅读下面代码段回答问题:(20分)if (!AfxSocketInit()AfxMessageBox(IDP_SOCKETS_INIT_FAILED);return FALSE;if (!AfxOleInit()AfxMessageBox(IDP_OLE_INIT_FAILED);return FALSE;AfxEnableControlContainer();CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLA

2、SS(CTest13Doc),RUNTIME_CLASS(CMainFrame),RUNTIME_CLASS(CTest13View);pDocTemplate-SetContainerInfo(IDR_MAINFRAME);AddDocTemplate(pDocTemplate);AfxSocketInit()的作用是什么?(3分)作用:初始化网络环境AfxOleInit()的作用是什么? (3分)作用:初始化链接与嵌入环境AfxEnableControlContainer()的作用是什么? (3分) 作用:容许应用程序作为控件容器来使用(4) pDocTemplate = new CSin

3、gleDocTemplate(IDR_MAINFRAME, 作用:菜单资源显示RUNTIME_CLASS(CTest13Doc), 作用:建立一种文档RUNTIME_CLASS(CMainFrame), 作用:运营主框架RUNTIME_CLASS(CTest13View); 作用:运营视图类的作用是什么?(8分) (5) pDocTemplate-SetContainerInfo(IDR_MAINFRAME)的作用是什么? (3分) 作用:设立主窗口即主框架2.本期教学将COM(组件对象模型)技术融合到动态链库技术中,较为详实地简介了动态链接库工程的创立与调试措施,针对如下界面,请回答如下问题

4、:(20分)函数BOOL ExcelIsExist()的格式阐明什么?extern C _declspec(dllexport) void是可导出函数函数的功能是什么?(2分)功能:检查与否存在excelextern C _declspec(dllexport) BOOL ExcelIsExist()CExcelApp ExcelObj;return ExcelObj.GetExcelAppObj();ImportToCListCtrl 函数的格式阐明了什么?该函数是是一种可导出函数 形式参数规定调用者必须指定哪些实参? (2分) Ctrl TabName extern C _declspec

5、(dllexport) void ImportToCListCtrl(CListCtrl& Ctrl,CString TabName)CExcelApp ExcelObj;/获取系统中的Excel应用程序对象if(ExcelObj.GetExcelAppObj()ExcelObj.ImportListCtrlData(Ctrl,TabName);本实例动态链接库的工程名称是什么?ExcelDll工程编译后创立的可执行代码文献名是什么?(2分) ExcelDll.dll本实例的测试工程名是什么(2分)?Test13阅读OnToExcel()函数回答问题:void CInfoEditListVie

6、w:OnToExcel() HINSTANCE hDll=NULL;/加载动态链接库hDll=:LoadLibrary(ExcelDll.dll);if(hDll=NULL):MessageBox(NULL,Excel接口动态链接库不引入!,严重警告,MB_OK);return ;typedef void (*fpToExcel)(CListCtrl& Ctrl,CString TableName);/获取动态链接库中设立端口fpToExcel pTo=(fpToExcel):GetProcAddress(hDll,ImportToCListCtrl);if(pTo=NULL)AfxMessa

7、geBox(在动态链接库中没有发现 ImportToCListCtrl()函数!);:FreeLibrary(hDll);return;CListCtrl& Ctrl=GetListCtrl();(*pTo)(Ctrl,学生信息);:FreeLibrary(hDll);分别说出:hDll=:LoadLibrary(ExcelDll.dll) 作用:加载动态链接库、GetProcAddress(hDll,ImportToCListCtrl)、作用: 得到解决函数的地址(*pTo)(Ctrl,学生信息)、 作用:设立表名:FreeLibrary(hDll)的作用。 (每问3分) 作用: 释放动态链

8、接库3. 简述下面CBallThread类是什么类 (2分) 作用:线程类,它的基类是什么?(3分) 作用: CwinThread请在找出创立此类对象的措施?(15分) void CMulThreadView:OnThreadCreate() CBallThread *pNewThread=(CBallThread*):AfxBeginThread(RUNTIME_CLASS(CBallThread),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);if(pNewThread)m_ThreadSet.AddTail(pNewThread);int ns=m

9、_ThreadSet.GetCount();int r=ns%3=0?255:0;int g=ns%3=1?255:0;int b=ns%3=2?255:0;int xw=120;pNewThread-m_xOffset=(ns-1)%4*120;pNewThread-m_PenColor=RGB(r,g,b);pNewThread-m_pWnd=this;pNewThread-ResumeThread();class CBallThread : public CWinThreadDECLARE_DYNCREATE(CBallThread)protected:CBallThread();/ A

10、ttributespublic:/ Operationspublic:UINT m_nTimerID;/计时器标记int m_x;/目前x坐标int m_xOffset;/偏移量int m_redarws;/反复次数COLORREF m_PenColor;/目前颜色CWnd* m_pWnd;/线程作用的窗口void Draw();static VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT uIDEvent, DWORD dwTime);/AFX_VIRTUAL(CBallThread)public:virtual BOOL InitIns

11、tance();virtual int ExitInstance();/AFX_VIRTUAL/ Implementationprotected:virtual CBallThread();DECLARE_MESSAGE_MAP();4.使用TCP/IP合同的CSocket流式套接字为什么要启动一种端口? 这个端口表达客户端与操作系统中的谁通讯?(4分) = 1 * GB3 提供一种唯一地址,使本机可以被找到 = 2 * GB3 与操作系统中的应用程序通讯(2) 找出“启动诊听”按钮的点击事件解决函数。(4分)void CSocketOperatorView:OnButtonListen()

12、UpdateData();if(m_Listen_PortGetListCtrl();/启动诊听if(!m_ListenSocket.Listen()m_ListenSocket.Close();AfxMessageBox(不能启动诊听连接祈求!);else/禁用启动诊听按钮CWnd* pWnd=GetDlgItem(IDC_BUTTON_LISTEN);pWnd-EnableWindow(FALSE);elseAfxMessageBox(端口已占用,请另定端口.); (3) 当有客户提交连接祈求时,采用的响应方略是什么?(4分)void CStudentSocket:OnAccept(int

13、 nErrorCode) CSocket socket;if(Accept(socket)if(m_pListCtrl)/动态申请一种新的套接字对象CStudentSocket* pNewSocket=new CStudentSocket;pNewSocket-m_pListCtrl=m_pListCtrl;/赋给CListCtrl控件int ns=m_pListCtrl-GetItemCount();CString txt;txt.Format(%d,ns+1);m_pListCtrl-InsertItem(ns,txt);CString strClientIP;UINT Port;/对客户

14、的IP地址和端口socket.GetPeerName(strClientIP,Port);txt.Format(%d,Port);m_pListCtrl-SetItemText(ns,1,strClientIP);m_pListCtrl-SetItemText(ns,2,txt);/将这个套接字对象绑定在项目上,以便操作m_pListCtrl-SetItemData(ns,(DWORD)pNewSocket);/相应的项号pNewSocket-m_nItem=ns;pNewSocket-Attach(socket.Detach();/发出信息CString welcome=欢迎你!;int l

15、en=welcome.GetLength();pNewSocket-Send(welcome.GetBuffer(len),len);CSocket:OnAccept(nErrorCode);(4) 当有数据达到时应采用什么方略?(4分)接受 分析 解决数据void CStudentSocket:OnReceive(int nErrorCode) char buf256=0;int len=Receive(buf,256);if(len!=SOCKET_ERROR)buflen=0;CString Info=buf;CString Name;int idx=Info.Find(!);/姓名结束

16、标记if(idx0)Name=Info.Left(idx);Info=Info.Mid(idx+3);if(m_nItem-1 & m_pListCtrl)if(Name.GetLength()0)m_pListCtrl-SetItemText(m_nItem,3,Name);m_pListCtrl-SetItemText(m_nItem,4,Info);CSocket:OnReceive(nErrorCode); (5) 根据原代码,请说出顾客姓名与一般信息的辨别措施?(4分)它们的区别在于顾客名后用!作标记。已知SQL Server数据库StudentInfo.mdf文献及其日记文献Stu

17、dentInfo_log.ldf,请简述此数据库附加到SQL Server数据库系统的操作措施(4分)及其使用Windows身份和SQL Server身份混合模式操作数据库的配备措施(6分)。(本题共10分)打开SQLserverManagementstudio,选择服务器名称,选择浏览更多,选择数据库引擎,输入i308*,以windows身份连接。右键i308-*属性安全性选择SQLserver和windows身份验证模式。右键数据库附加添加学生库信息拟定。安全性右键登录名新建登录名SQLserver身份验证服务器角色选择“sysadmin”顾客映射选择studentinfo.mdf并添加d

18、bo构架拟定。5.重新连接:选择SQLserver身份验证输入登录名和密码并连接(若失败)SQLserver配备管理器SQLserver网络配备MSSQLSERVER的合同TCP/IP属性Ip地址将IP2改为本机IP后启用并将IP4的地址改为后启用拟定并启用TCP/IP,SQLserver服务SQLserver(MSSQLSERVER)属性内置账户network应用后拟定按环节4重新连接6. 下面是CDatabaseEditView类的消息映射表:BEGIN_MESSAGE_MAP(CDatabaseEditView, CInfoEditListView)/AFX_MSG_MAP(CDatab

19、aseEditView)ON_COMMAND(IDM_DATABASE_CONNECT, OnDatabaseConnect)ON_COMMAND(ID_LIST_ADD, OnListAdd)ON_COMMAND(IDM_DATABASE_SAVE, OnDatabaseSave)ON_COMMAND(IDM_DATABASE_LOAD, OnDatabaseLoad)ON_COMMAND(ID_LIST_DEL, OnListDel)/AFX_MSG_MAPEND_MESSAGE_MAP()请根据此映射表找出它们的消息响应函数及其功能实现代码,并用文字阐明其功能。(15分,每条命令3分)。

20、(1)if(m_ADO.m_pCon!=NULL)return;if(m_ADO.SQL_Server_Connect()AfxMessageBox(连接成功!); /功能:连接指定的数据库(2)CListCtrl& Ctrl=GetListCtrl();int ns=Ctrl.GetItemCount();CString txt;for(int i=0;ins;i+)txt.Format(%d,i+1);Ctrl.SetItemText(i,0,txt);txt.Format(%d,ns+1);Ctrl.InsertItem(ns,txt);CString guidID=GetGuidIDS

21、(8);Ctrl.SetItemText(ns,1,guidID); /功能:添加数据在目前表中。(3)if(m_ADO.m_pCon=NULL)AfxMessageBox(请连接数据库!);return;CListCtrl& Ctrl=GetListCtrl();if(Ctrl.GetSelectedCount()AddNew();m_ADO.Ado_Write_FieldValue(GuidID,guidID);/将数据写入记录集缓充区CString txt;txt=Ctrl.GetItemText(nSel,2);/学号列m_ADO.Ado_Write_FieldValue(学号,txt

22、);txt=Ctrl.GetItemText(nSel,3);/姓名列m_ADO.Ado_Write_FieldValue(姓名,txt);txt=Ctrl.GetItemText(nSel,4);/性别列m_ADO.Ado_Write_FieldValue(性别,txt);txt=Ctrl.GetItemText(nSel,5);/专业班级列m_ADO.Ado_Write_FieldValue(专业班级名,txt);txt=Ctrl.GetItemText(nSel,6);/骨龄列double gn=0.0;gn=atof(txt);m_ADO.Ado_Write_FieldValue(骨龄

23、,gn);txt=Ctrl.GetItemText(nSel,7);/存款列int ck=0;ck=atoi(txt);/AfxMessageBox(txt);m_ADO.Ado_Write_FieldValue(存款,ck);/将数据写入数据表m_ADO.m_pRs-Update(); /功能:将目前表中的数据读回到数据库中的数据表中(4)if(m_ADO.m_pCon=NULL)AfxMessageBox(请连接数据库!);return;CListCtrl& Ctrl=GetListCtrl();Ctrl.DeleteAllItems();CString strSQL;strSQL=Sel

24、ect * From 学生信息表 Where GuidID IS NOT NULL Order By 学号;POSITION pos=Ctrl.GetFirstSelectedItemPosition();m_ADO.AdoOpenTab(strSQL);int r=0;while(m_ADO.IsRecorderExist()/将数据写入记录集缓充区CString txt;txt.Format(%d,r+1);Ctrl.InsertItem(r,txt);m_ADO.AdoGetFieldValue(GuidID,txt);Ctrl.SetItemText(r,1,txt);m_ADO.AdoGetFieldValue(学号,txt);Ctrl.SetItemText(r,2,txt);/学号列m_ADO.AdoGetFieldValue(姓名,txt);Ctrl.SetItemText(r,3,txt);/姓名列m_ADO.AdoGetFieldValue(性别,txt);txt=Ctrl.SetItemText(r,4,txt);/性别列m_ADO.AdoGetFieldValue(专业班级名,txt);Ctrl.SetItemText(r,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论