VC++程序设计实验报告

时间:2024.3.31

VC++程序设计实验报告


第二篇:VC程序设计课程实验报告要求(模板)


VC程序设计课程实验报告

实验题目:使用几种常用资源

班级   生物医学08(1)班   姓名    张春香         学号   2008023005     日期   2011年6月19日            

一、        需求分析

(一)实验目的

       1.了解 学会VC++ 6。0 集成环境 操作界面的使用

    2.使用MFC进行可视化的编程

3.理解文档/视程序的结构,MFC消息映射机制,理解发送给窗口的消息是如何被MFC框架            通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。

4.了解CDocument类的串行化存储功能保存与加载数据和MFC框架程序的文档类和视类的关系

 5. 学会使用ClassWizard添加成员变量创建新的类和删除一个类和添加消息

(二)实验内容和要求

1. 如图编写一个对话框应用程序,a)单击按钮1时,按钮上的文字“Show1”现就变成“Show2”; 参照书本实例 228页例题9-5)。如下图所示

编写一个单文档(SDI)应用程序,对SDI的四个类CxxxApp,CxxxDoc,CxxxView,CMainFrame分别添加一个消息,模拟一下SDI的消息传递过程。

2. 编写一个单文档应用程序,点击菜单项增加硬币,则硬币增加,点击菜单项减少硬币,则硬币减少.如下图所示:

1)首先如下图所示建立一个单文档应用程序

2)然后在已有的菜单上添加菜单项,“增加硬币”,“减少硬币”菜单条目

3)然后类向导(ClassWizard),鼠标移动到到菜单条目“增加硬币”,然后点击鼠标右键,点击类对类向导(ClassWizard),添加菜单项的消息响应,在类向导中,Class Name选择文档类(如:CCoinShowDoc),Object IDs中选中 ID号为“增加硬币”的ID号(如IDM_ADDCOIN),Message选择COMMAND消息,然后点击按钮Add Function,然后点击Edit Code。按照上述方法同样添加“减少硬币”菜单条目消息的响应

4)然后在CCoinShowDoc类的头文件和源文件中添加下列代码.

5)然后在类CCoinShowView中添加代码

6)程序编译,运行。

(三)实验步骤

   1.使用AppWizard应用程序向导创建一个MFC应用程序的步骤(参见实验使用几种常用的控件)

  2.用ClassWizard创建一个类的步骤把一个类添加到MFC应用程序,该类既可以扩展一个MFC类,也可以独立存在

  a. 扩展一个已存在的MFC类

1) 单击Developer Studio的View / ClassWizard菜单命令,打开MFC ClassWizard对话框,

然后单击Add Class(添加类)按钮(见图7-1 ),将出现一个下拉菜单,从中应选择New?以打开New Class(新类)对话框。

2) 输入新类的名字,在新类的名字前面添加一个“ C”(当创建类的.h和.cpp文件时,

Class Wizard将删除这个“C”),然后从可用的MFC类列表中选择一个基类(见图7-2 )。如果选择CRecordSet,ClassWizard还将引导用户通过捆绑一个数据库表到新类所必须的步骤。要从CWnd类派生,可以选择“generic CWnd”;要派生CSplitterWnd,选择“splitter”。如果想派生的MFC类没有列出(诸如用CToolBar),则选择一个类似的名字(如CToolBar Ctr l ) ,然后编辑由此产生的文件。

b. 创建一个非MFC类

如果不想用一个MFC类作为基类,则单击环境的Insert/New Class菜单命令,以打开一个

选择性的New Class对话框。这一选择性版增加了用以指定Class Type的组合框。选择Gene r ic Type要求指定自己的基类(如果有的话)(见图7-3)。

 

3.用ClassWizard删除一个类的步骤

1) 首先,必须从文件的工程列表和工程的子目录中删除ClassWizard创建的.cpp和 h文件。

2) 然后删除.clw文件,ClassWizard对每一个在各自的.clw文件中创建的类保持一个记录。不过只要删除.clw文件,下次调用ClassWizard时,它就会告诉你没有找到.clw文件,并提问是否想创建一个新的,回答Yes,则ClassWizard将用工程目录中的. h文件建立一个新的.clw文件。

二:程序设计

1.  框架类型选择依据

2.  指明要添加代码的位置。

BEGIN_MESSAGE_MAP(CEditBoxDlg, CDialog)

       //{{AFX_MSG_MAP(CEditBoxDlg)

       ON_WM_SYSCOMMAND()

       ON_WM_PAINT()

       ON_WM_QUERYDRAGICON()

       ON_BN_CLICKED(IDC_Exit, Exit)

       ON_BN_CLICKED(IDC_show1, Onshow1)

       ON_BN_CLICKED(IDC_clear1, Onclear1)

       ON_BN_CLICKED(IDC_show2, Onshow2)

       ON_BN_CLICKED(IDC_clear2, Onclear2)

       ON_BN_CLICKED(IDC_Transfer, OnTransfer)

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CEditBoxDlg message handlers

BOOL CEditBoxDlg::OnInitDialog()

{

       CDialog::OnInitDialog();

       // Add "About..." menu item to system menu.

       // IDM_ABOUTBOX must be in the system command range.

       ASSERT((IDM_ABOUTBOX & 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, strAboutMenu);

              }

       }

       // Set the icon for this dialog.  The framework does this automatically

       //  when the application's main window is not a dialog

       SetIcon(m_hIcon, TRUE);                  // Set big icon

       SetIcon(m_hIcon, FALSE);          // Set small icon

      

       // TODO: Add extra initialization here

      

       return TRUE;  // return TRUE  unless you set the focus to a control

}

void CEditBoxDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

       if ((nID & 0xFFF0) == IDM_ABOUTBOX)

       {

              CAboutDlg dlgAbout;

              dlgAbout.DoModal();

       }

       else

       {

              CDialog::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 using the document/view model,

//  this is automatically done for you by the framework.

void CEditBoxDlg::OnPaint()

{

       if (IsIconic())

       {

              CPaintDC dc(this); // device context for painting

              SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

              // Center icon in client rectangle

              int cxIcon = GetSystemMetrics(SM_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 icon

              dc.DrawIcon(x, y, m_hIcon);

       }

       else

       {

              CDialog::OnPaint();

       }

}

// The system calls this to obtain the cursor to display while the user drags

//  the minimized window.

HCURSOR CEditBoxDlg::OnQueryDragIcon()

{

       return (HCURSOR) m_hIcon;

}

void CEditBoxDlg::Exit()

{

       // TODO: Add your control notification handler code here

      

}

void CEditBoxDlg::Onshow1()

{

       // TODO: Add your control notification handler code here

       m_Edit1.SetSel(0,-1);

       m_Edit1.ReplaceSel("This is the first EditBox.");

      

}

void CEditBoxDlg::Onclear1()

{

       // TODO: Add your control notification handler code here

       m_Edit1.SetSel(0,-1);

       m_Edit1.ReplaceSel("");

      

}

void CEditBoxDlg::Onshow2()

{

       // TODO: Add your control notification handler code here

       m_Edit2.SetSel(0,-1);

       m_Edit2.ReplaceSel("This is the second EditBox.");

}

void CEditBoxDlg::Onclear2()

{

       // TODO: Add your control notification handler code here

       m_Edit2.SetSel(0,-1);

       m_Edit2.ReplaceSel("");

}

void CEditBoxDlg::OnTransfer()

{

       // TODO: Add your control notification handler code here

              m_Edit1.SetSel(0,-1);

              m_Edit1.Copy();

              m_Edit2.SetSel(0,-1);

              m_Edit2.ReplaceSel("");

              m_Edit2.Paste();

}

3列出要添加的代码及代码分析

三:调试分析

3):调试中遇到的问题及对问题的解决方法;

答:遇到的问题有很多变量没有定义,一些是因为大小写的原因,另外是忘记定义。解决方法自习检查分析。

4):心得体会及收获小结

答:了解 学会VC++ 6。0 集成环境 操作界面的使用,使用MFC进行可视化的编程,理解文档/视程序的结构,MFC消息映射机制,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。了解CDocument类的串行化存储功能保存与加载数据和MFC框架程序的文档类和视类的关系, 学会使用ClassWizard添加成员变量创建新的类和删除一个类和添加消息

四:使用说明及测试结果

1)程序结果:

2)程序中会犯大小写的错误。导致程序调试不出。仔细修改就可以。还有一些参数的设置,有要求,要根据需要来设置达到理想的结果。

更多相关推荐:
C程序设计实验报告

C语言程序设计实验报告学号不告诉你哦班级信管一班姓名你猜猜哈哈一实验题目一编程实验猜数问题输入两个整数并求这两个整数的和输入所猜的结果如果输入数比正确的结果要大提示猜大了如果输入数比正确的结果要小提示猜小了当猜...

C++程序设计实验报告

C++程序设计实验报告学号:姓名:班级:指导老师:实验一、字符和格式的输出实验一,实验目的1、重点把握各种内部数据类型、数值和逻辑运算,各种表达式、函数声明、定义和调用。2、掌握过程控制编程方法,正确编制多重循…

实验三最简单的C程序设计实验报告

实验三最简单的程序设计一实验目的1掌握语言中使用最多的一种语句赋值语句的使用方法2掌握各种类型数据的输入输出方法能正确使用各种格式输出符二实验内容和步骤掌握各种格式输出符的使用方法includeltstdioh...

C程序设计实验报告5

工学院工业设计专业10级20xx至20xx学年度第1学期学号2104021638姓名杨芹芹20xx年9月22日第34节综合楼325教室

C程序设计综合实验报告

华北科技学院计算机系综合性实验实验报告课程名称C程序设计实验学期20xx至20xx学年第二学期学生所在系部年级专业班级学生姓名学号任课教师孙改平实验成绩计算机系制华北科技学院计算机系综合性实验报告C程序设计课程...

C程序设计实验报告3-

院专业20xx级20xx至20xx学年度第1学期学号姓名20xx年10月8日第34节综合楼325教室

C程序设计综合性实验报告模版

C程序设计综合性实验实验报告题目学生成绩管理姓名班级学号指导教师完成时间一实验题目学生成绩管理二实验目的1掌握一维数组二维数组的使用方法2掌握结构体数组的定义和使用3综合应用数据文件的读写语句保存结构体数组中的...

C程序设计教程与实验 吉顺如主编 实验报告4参考答案

实验四选择结构程序设计解答1改错题1下列程序的功能为输入1个字母如果它是小写字母则首先将其转换成大写字母再输出该字母的前序字母该字母该字母的后序字母例如输入g则输出FGH输入a则输出ZAB输入M则输出LMN输入...

C循环结构程序设计实验报告

韩师实验五循环结构程序设计实验时间20xx507同组人员实验目的1熟悉掌握用while语句dowhile语句和for语句实现循环的方法2掌握在程序设计中用循环的反方法实现一些常用的算法3进一步学习调试程序实验内...

C程序设计实验指导

C语言程序设计实验指导韶关学院计算机科学学院庄景明课程性质非独立设置的实验课课程类别专业基础课学时学分总学时72总学分4实验学时18实验学分1适用专业计算机科学与技术信息管理与信息系统专业层次本科专科第一部分上...

C语言程序设计实验报告

实验报告实验名称火车票订票系统信息与通信学院院系电子信息工程专业班第作者学号实验日期20xx年12月29日一实验目的和要求1列车原始信息可以从文件导入或者控制台录入包括车次票数等2客户可以按车次进行列车信息查询...

C语言程序设计实验报告

C语言程序设计实验报告实验名称计算出1000以内10个最大素数之和实验目的1熟练掌握ififelseifelseif语句和witch语句格式及使用方法掌握if语句中的嵌套关系和匹配原则利用if语句和switch...

c++程序设计实验报告(33篇)