版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验1 C+程序的运行环境、编辑、编译、调试、运行方法学号 专业班级 信息071 姓名 报告日期 2009-10-18 1:实验任务: 1.1 解决汉诺塔问题:塔内有三个座A、B、C,开始A座上有64个盘子,盘子大小不等,小的在上大的在下。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘子。且在移动过程中在3个座上的盘子始终保持大盘在下小盘在上。在移动过程中利用B座。要求利用递归编程技术编程并运行后打印出移动的步骤。1.2 用递归法将一个整数n转换成字符串。例如,如入483,应输出字符串“483”。N的位数不确定,可以是任意位整数。1.3 建立一个包含加法函数、减法函数的动态
2、链接库文件和一个包含加法函数、减法函数的函数声明的头文件;编写、调试并运行一个MFC应用程序,该MFC应用程序调用了你所建立的动态链接库中的加法函数、减法函数。2:实验目的:(1) 了解所用的计算机系统的基本操作方法、学会独立使用该系统。(2) 了解在系统上如何编辑、编译、链接和运行一个C+程序。(3) 通过编辑、编译、链接、运行win32 console application、win32 dynamic-link library、win32 appwizard(exe ) 学会Visual C+ 6.0的基本使用方法。3:实验步骤:.1:试验分析:1:首先先建立三个塔,分别为A,B,C,开
3、始是把n个盘子放在A上,目的是把A上的盘子全部放在C上,B是一个中间起辅助作用的盘子。2:如果n=1,直接把这个盘子放在C上,若n大于1时,借助C盘把A上的前n-1个盘子放到B盘上,然后把A上的第n个盘子放到C上。3:此时继续进行递归调用就可以了。.2 其程序代码如下:#include<iostream>using namespace std;void Towers(int n,char A,char C,char B)if(n=1)cout<<"from"<<A<<"to"<<C<<
4、;endl;elseTowers(n-1,A,B,C);cout<<"dish="<<n<<"from"<<A<<"to"<<C<<endl; Towers(n-1,B,C,A); void main() int n; char ch1='A',ch2='B',ch3='C' cin>>n; Towers(n,ch1,ch3,ch2);.3试验运行结果如下: .1试验分析:1:此题的思想时把一
5、个整数转换成字符串的形式,然后在最后输出来。2:首先先在主函数中定义一个整数n,然后调用被调函数,;。3:进入被调函数中以后先对n值进行判断,如n小于10时,直接转换成字符串,给这个整数加上48,然后赋给字符串变量,ch1,然后进行返回,若n大于10,则要通过递归调用把其转换成字符串类型。.2其程序代码如下:#include <iostream>#include <string>using namespace std;string Bianhuan(int n);int main()int n;cout << "请输入一个数字:"cin
6、>> n;cout << "转换为如下字符串:" << endl;cout << Bianhuan(n) << endl;return 0;string Bianhuan(int n)string ch1,ch2;if(n/10 != 0) ch1 = Bianhuan(n/10);ch2 = n%10 + 48;ch1 += ch2;return ch1;elsech1 = n + 48;return ch1;.3试验运行结果:.1:试验分析1:建立一个空的动态链接库以DLL命名。2:然后再建立一个源文件以dll
7、来命名此文件包含两个函数 一个是加法 ,一个是减法。3:最后再建一个MFC AppWizard【exe】动态链接库。DLLtest,然后把DLL中的.Lib文件,Dll.dll放到DLLtest目录下,然后进行连接就可以得出结果来了。.2:其程序代码如下: 1:建立的源文件dll程序代码如下:_declspec (dllexport)int add(int a,int b) return a+b;_declspec (dllexport)int subtract(int a,int b) return a-b;/ DLLtestDlg.cpp : implementation file/#in
8、clude "stdafx.h"#include "DLLtest.h"#include "DLLtestDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enu
9、m IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(C
10、AboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CDLLtestDlg dialogCDLL
11、testDlg:CDLLtestDlg(CWnd* pParent /*=NULL*/): CDialog(CDLLtestDlg:IDD, pParent)/AFX_DATA_INIT(CDLLtestDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
12、void CDLLtestDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CDLLtestDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CDLLtestDlg, CDialog)/AFX_MSG_MAP(CDLLtestDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICK
13、ED(IDC_BNT_add, OnBNTadd)ON_BN_CLICKED(IDC_BNT_subtruct, OnBNTsubtruct)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CDLLtestDlg message handlersBOOL CDLLtestDlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOU
14、TBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX,
15、 strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the
16、focus to a controlvoid CDLLtestDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications
17、 using the document/view model,/ this is automatically done for you by the framework.void CDLLtestDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_
18、CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CDLLtestDlg:OnQueryDragIcon()return (HCU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳化硅超细粉体相关行业投资方案
- 电热圈相关行业投资方案
- 2024年子女抚养与抚恤金合同
- 城市电力管道施工项目方案
- 2024年保密协议书
- 2024年商业空间转租合同模板
- 2024年云计算服务与数据处理合同
- 2024年夫妻财产分配及债务承担合同
- 2024年黑河从业资格证模拟考试题库
- 2024年运载火箭跟踪、遥测及测控设备项目立项申请报告模范
- 视力矫正商业计划书
- 医学课件:临床决策分析
- 幼儿园优质公开课:中班音乐韵律《打喷嚏的小老鼠》课件
- 质量管理体系品质保证体系图
- 人教版(新插图)三年级上册数学 第9课时 用乘除两步计算 解决-归总问题 教学课件
- 四班三倒排班表
- 《现代汉语》考试复习题库及答案
- 13J104《蒸压加气混凝土砌块、板材构造》
- 初中语文七年级上册《世说新语二则》作业设计
- 银行业信息系统灾难恢复管理规范
- 2023老年重症患者静脉血栓栓塞症预防中国专家共识
评论
0/150
提交评论