当前位置:文档之家› windows程序设计实验报告

windows程序设计实验报告

windows程序设计实验报告
windows程序设计实验报告

《Windows程序设计》

实验报告

实验室: S306(308)

学院:计算机科学与技术

专业:计算机科学与技术

目录

实验一、熟悉visual c++的编程环境 (3)

一、实验目的和要求: (3)

二、实验内容、程序清单及运行结果: (3)

1.编辑第一个C++程序 (3)

2. 用AppWizard建立一个MFC Windows应用 (3)

3. 编写简单的计算程序 (4)

运行结果: (4)

三、心得体会: (4)

实验二、对话框的使用 (5)

一、实验目的和要求: (5)

二、实验内容、程序清单及运行结果 (5)

实验步骤: (5)

实验结果: (7)

三、心得体会: (7)

实验三、创建一个进程来运行一个应用程序 (8)

一、实验要求和目的 (8)

二、实验内容、程序清单及运行结果 (8)

实验步骤: (8)

实验结果: (9)

三、实验心得 (9)

实验四、调整线程优先级 (10)

一、实验要求和目的 (10)

二、实验内容、程序清单及运行结果 (10)

实验步骤: (10)

实验结果: (11)

三、实验心得 (11)

实验一、熟悉visual c++的编程环境

一、实验目的和要求:

1.了解和使用VC集成开发环境

2.熟悉VC环境的基本命令和功能键,

3.熟悉常用的功能菜单命令

4.学习使用VC++环境的帮助

5.学习完整的C++程序开发过程

6.理解简单的C++程序结构

7.了解用Visual C++开发Windows MFC应用程序的过程

二、实验内容、程序清单及运行结果:

1.编辑第一个C++程序

源程序代码:

//hello world example

#include

int main() {

cout << "hello!"<< endl ;

return 0; //正常返回

}

运行结果:

2. 用AppWizard建立一个MFC Windows应用

在窗口中输出"Hello,World!",修改OnDraw函数的定义,在最后一行加一句:pDC->TextOut(50,50,"Hello, World");

运行结果:

3. 编写简单的计算程序

输入圆的半径,计算圆的周长和面积并输出。

源程序代码:

//该程序让用户输入圆的半径Radius,输出圆的周长Perimeter和面积Area

#include

#include

const double PI = 3.14159; //定义一个常量PI

int main() {

int radius;

double perimeter, area;

cout << "Please input the radius: ";

cin >> radius;

perimeter = 2 * PI * radius; //周长=2πR

area = PI *radius* radius; //面积=πR2

cout << "The perimeter of the circle : " << perimeter << endl;

cout << "The area of the circle : " << area << endl;

return 0;

}

运行结果:

三、心得体会:

通过本次实验我了解了VC集成开发环境及基本命令、功能键和功能菜单命令,学会了使用VC++环境的帮助,理解了完整的C++程序开发过程及简单的C++程序结构,了解用Visual C++开发Windows MFC应用程序的过程.

实验二、对话框的使用

一、实验目的和要求:

掌握Visual c++中对话框的使用

二、实验内容、程序清单及运行结果

使用资源编辑器编辑对话框在Windows开发中弹出对话框是一种常用的输入/输出手段,同时编辑好的对话框可以保存在资源文件中。Visual C++提供了对话框编辑工具,利用编辑工具可以方便的添加各种控件到对话框中,而且利用ClassWizard可以方便的生成新的对话框类和映射消息。

实验步骤:

1)使用AppWizard生成一个基于对话框的工程,工程名为DlgDemo,其他均选择VC的默认摄制。

2)在对话框资源编辑器中删除VC自动生成的[确定][取消]按钮以及Static控件.

3)给对话框添加按钮[显示模态对话框],ID更改IDC_MODAL,用来显示一个模态对话框;给对话框添加按钮[显示非模态对话框],ID更改 IDC_MODALESS,用来显示一个非模态对话框;给对话框添加一个编辑控件和Static控件。

4)在资源编辑器中添加两个对话框资源IDD_MODAL和IDD_MODALESS.

5)用ClassWizard为对话框IDD_MODAL添加一个对话框类CmodalDlg。

6)为CdlgDemoDlg类的[显示模态对话框]按钮添加消息处理函数如下:

void CDlgDemoDlg::OnModal()

{

CModalDlg dlg;

dlg.DoModal();

}

在DlgDemoDlg.cpp文件中加入如下CmodalDlg类的定义文件:

#include "ModalDlg.h"

7)使用ClassWizard给对话框IDD_MODALESS添加一个对话框类CmodalessDlg.

8)给CdlgDemoDlg类添加一个成员变量m_pModalessDlg.

private:

CModalessDlg* m_pModalessDlg ;

在CdlgDemoDlg类的构造函数中加入如下代码:

CDlgDemoDlg::CDlgDemoDlg(CWnd* pParent /*=NULL*/)

: CDialog(CDlgDemoDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CDlgDemoDlg)

// NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

m_pModalessDlg = NULL;

}

在DlgDemoDlg.h文件中加上如下语句:

#include "ModalessDlg.h"

9)在CdlgDemoDlg类中给[显示非模态对话框]按钮添加消息映射函数如下:

void CDlgDemoDlg::OnModaless()

{

m_pModalessDlg = new CModalessDlg();

//检查指针是否有效

if(m_pModalessDlg != NULL)

{

BOOL ret = m_pModalessDlg->Create(IDD_MODALESS,this);

if(!ret)

AfxMessageBox("创建非模态对话框失败");

m_pModalessDlg->ShowWindow(SW_SHOW);

}

else

AfxMessageBox("创建非模态对话框失败");

}

10)给CdlgDemoDlg类映射WM_DESTROY消息,在WM_DESTROY消息的处理函数OnDestroy中小毁非模态对话框指针。

void CDlgDemoDlg::OnDestroy()

{

CDialog::OnDestroy();

if (m_pModalessDlg)

{

m_pModalessDlg->DestroyWindow();

m_pModalessDlg = NULL;

}

}

编译运行程序。

实验结果:

三、心得体会:

通过此次实验掌握了在掌握了Visual c++中对话框的使用,在Visual C++利用对话框编辑工具,学会了添加各种控件到对话框中。学会利用ClassWizard可以方便的生成新的对话框类和映射消息。

实验三、创建一个进程来运行一个应用程序

一、实验要求和目的

掌握CreateProcess函数各个参数的使用方法.

二、实验内容、程序清单及运行结果

使用该CreateProcess函数创建一个进程(通过调用Windows配备的应用程序附件如calc.exe等体现)

实验步骤:

1) 使用Visual C++创建一个单文档GUI应用程序项目;

可以在New – Projects 选项卡上,选 Win32 Application。在接下来的对话框中,选“A typical “Hello World!” application”。

2) 在应用程序菜单中添加“运行”→“计算器”菜单(设“计算器”子菜单名为ID_RUN_CALC);

3)添加鼠标点击ID_RUN_CALC菜单的事件处理代码。

然后在相应的函数中写入相应代码,如:

STARTUPINFO si = {sizeof(si)};

TCHAR szPath[MAX_PATH] = TEXT("C:\\WINNT\\system32\\calc.exe");

// 计算器程序文件也可能在Windows目录下。

SECURITY_ATTRIBUTES saProcess, saThread;

//定义进程对象和线程对象的安全性属性

PROCESS_INFORMATION piProcessB;

//定义创建进程的信息

saProcess.nLength = sizeof(saProcess);

saProcess.lpSecurityDescriptor = NULL;

saProcess.bInheritHandle = TRUE;

//设置进程安全属性

saThread.nLength = sizeof(saThread);

saThread.lpSecurityDescriptor = NULL;

saThread.bInheritHandle = FALSE;

//设置线程安全属性

CreateProcess(NULL, szPath, &saProcess, &saThread, FALSE, 0, NULL, NULL, &si, &piProcessB);

//上述代码可以简化,可将saProcess和saThread参数均设置为NULL。

4)书写完毕,进行build,然后execute

点击“运行”→“计算器”菜单,将创建一个进程来运行计算器应用程序。

实验结果:

三、实验心得

通过本次实验,我学会了使用CreateProcess函数创建一个进程,并且掌握了CreateProcess函数各个参数的使用方法。在实验的过程中,由于在修改文件的时候忘了修改路径,导致运行不出最终结果,最后在同学的帮助下才找到原因所在,得到了实验的最终结果。

实验四、调整线程优先级

一、实验要求和目的

掌握线程优先级的处理。

二、实验内容、程序清单及运行结果

对于一个多线程应用程序,通过调用SetProcessPriorityBoost函数来禁止系统动态调整该进程中所有线程的优先级;通过调用SetThreadPriority函数(也可以结合使用SetPriorityClass函数),来调整各线程的优先级;然后通过一个进度条来显示各线程的运行进度;或者通过调用GetThreadTimes函数来显示各线程获得的CPU时间。

实验步骤:

1)使用Visual C++创建一个支持多线程的单文档GUI应用程序项目;

可以在New – Projects 选项卡上,选 Win32 Application。在接下来的对话框中,选“A typical “Hello World!” application”。

在Project Settings对话框,C/C++选项卡上,Code Generation类别,从Use run-time library组合框中选定“Multithreaded DLL”。

2)创建线程函数,来完成一些工作。如:

unsigned __stdcall ThreadFunc(PVOID pvParam) {

DWORD i = 0;

while (i<100000000)

i++;

_endthreadex(0);

return(0);

}

3)禁止系统动态调整该进程中所有线程的优先级。如:

SetProcessPriorityBoost(GetCurrentProcess(), FALSE);

4)创建多个新线程。如:

HANDLE thread1, thread2, thread3;

unsigned threadID;

thread1 = (HANDLE)_beginthreadex(NULL, 0, &ThreadFunc, NULL, 0, &threadID);

thread2 = (HANDLE)_beginthreadex(NULL, 0, &ThreadFunc, NULL, 0, &threadID);

thread3 = (HANDLE)_beginthreadex(NULL, 0, &ThreadFunc, NULL, 0, &threadID);

注意:要先 #include

5)调整各线程的优先级。如:

SetThreadPriority(thread1, THREAD_PRIORITY_LOWEST);

SetThreadPriority(thread2, THREAD_PRIORITY_NORMAL);

SetThreadPriority(thread3, THREAD_PRIORITY_HIGHEST);

6)通过进度条来显示各线程的运行进度;或者通过调用 GetThreadTimes函数来

显示各线程获得的CPU时间。如:

首先:

FILETIME ftCreationTime, ftExitTime, ftKernelTime, ftUserTime;

GetThreadTimes(thread1, &ftCreationTime, &ftExitTime, &ftKernelTime, &ftUserTime);

把KernelTime和UserTime加起来得到CPU时间,可以:

__int64 time;

time = FileTimeToQuadWord(&ftKernelTime) + FileTimeToQuadWord(&ftUserTime);

其中,FileTimeToQuadWord函数的定义如下:

__int64 FileTimeToQuadWord (PFILETIME pft){

return(Int64ShllMod32(pft->dwHighDateTime ,32)|pft->dwLowDateTime );

}

也许想把__int64 time转换成字符串以便显示,可以调用_i64tot、_i64toa、或_i64tow 函数,如:

TCHAR timestr[65];

_i64tot(time, timestr, 10); // 转换成10进制数后再转换得到字符串。

实验结果:

三、实验心得

这次实验是《Windows程序设计》进行的最后一次实验了,这次实验主要是对线程优先级进行处理:线程的创建、调用、调节优先级、显示运行进度及CPU占用时间等功能。通过本次实验我掌握了通过创建一些线程函数来完成一些工作。掌握了线程的优先级调用步骤。

Windows程序设计题(含简答题答案)

Windows 程序设计》模拟题 单项选择题 1. 在 VC++ 中,项目文件的扩展名是( B )。 A ) exe B)dsp C ) dsw D ) cpp 2. 在 MFC 中,利用 ClassWizard 不能( D )。 A )建立新类 B )进行消息映射 C )增加类的成员变量 D )插入资源 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送( 3. C )消 息。 4. 5. A ) WM_CHAR B ) WM_HSCROLL C ) W M_VSC ROLL 更新菜单状态的消息是( C A ) WM_COMMAND )。 C ) UPDATE_COMMAND_UI 对于消息队列描述正确的是( A )在Windows 中只有一个消息系统, 据结构,用于临时存储消息。 D ) WM_CHANG E B ) UPDATE D) INVALIDATE 即系统消息队列。 消息队列是一个系统定义的数 B )系统可从消息队列将信息直接发给窗口。 另外,每个正在 Windows 下运行的应用程 序都有自己的消息队列。 C )系统消息队列中的每个消息最终都要被 USER 模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D )以上都正确 6. 在 MFC 中,所有的控件都是( B )类的派生类,都可以作为一个特殊的窗口来处理。 CView B ) CWnd C) 7. 使用 CWindow C) D ) CDialog GetDC () 获取的设备上下文在退出时,必须调用( A )释放设备上下文。 ReleaseDC() B ) delete() DeleteDC () D ) Detach () 8. 希望菜单无效,应该用 CCmdUI 类的( A )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 9.希望菜单前出现一个“V”,应该用 CCmdUI 类的(C )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 10.下面(A )不是MFC 设备环境类CDC 类的派生类。 A ) GDI B ) CPaintDC C) CClientDC D) CWindowDC 11.在MFC 中,所有的文档类都派生于( C ),所有的视图类都派生于( A )。 A) CView B) CWindow C) CDocument D) CFormView

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

windows程序设计之扫雷游戏经典之作

WIN32模拟WINDOWS XP扫雷 程序 课程设计目的与要求: 本课程设计是计算机科学与技术专业重要的实践性环节之一,是对本程学习后进行的一次全面而综合的练习。本次课程设计的目的与任务主要有: 1.巩固和加深学生对C和C++语言的基本知识的理解与掌握。 2.掌握C和C++语言编程和调试的基本技能 3.运用C和C++语言对程序的简单设计 4.掌握程序设计说明文档的能力与技巧 5.提高与运用C和C++语言解决能实际问题的能力 一、题目描述: 自行分析Windows XP系统自带扫雷游戏,查找规则并对主要功能进行模仿程序实现,对于实现过程中出现的bug进 行调试解决。 二、使用语言: C和C++ 语言 选用C++语言的原因,简而言之主要是因为C++的设计目标,就是要让C++既具有适合于系统程序设计的C语言所具 有的可适应性和高效性,又能在其程序组织结构方面具有像其 他的语言所支持的程序优势。这即是说,C++所提供的抽象机 制能够被应用于那些对效率和可适应性具有极高要求的程序设 计任务之中。

三、编译以及运行环境: 编译环境:Microsoft Visual C++ 6.0 运行环境:Windows XP或其他兼容兼容系统 四、题目分析: 经过对游戏的初步分析,扫雷游戏含有如下规则: 根据输入的信息,执行相应的挖雷,插旗,疑问标记,自动蔓延开挖等。挖雷过程由计时器计时,由一个计数器统计插旗后雷的剩余个数。如果选择了标记功能,那么单机右键会依次对未知点进行插旗,标记,取消插旗与标记。如果点滴到插旗的如果点击到了未插旗子的雷区,如果是雷,则判定游戏失败,之后对雷区的点击进行屏蔽,不予响应。如果是疑问标记则像正常区域对待。如何判断胜利,如果所有的雷都被插旗或者点击后剩余的雷区, 五、程序运行流程简介以及流程图: 点击程序按默认参数进行初始化,输入,表情对鼠标左右键点击进行变化响应,对于雷区内点击进行规律响应,对雷区点击后果进行统计,判断失败与成功,失败或者成功之后,对于雷区内的输入也就是点击进行屏蔽,对菜单游戏级别、重新开始游戏按钮响应。级别选择,重新游戏时时间归零、雷数显示刷新。如此重复规则,直到点击退出。 程序简要流程图:

Windows程序设计课程复习题

Windows程序设计复习题 一选择题 1 下列程序设计方法中,()是一种基于对象的程序设计方法。 A: MFC程序设计B: 使用WindowsAPI编程 C: 使用VisualBasic语言编程 D: 使用C#程序设计语言编程 2 MFC程序框架中,最先执行的函数是()。 A: WinMain函数B: CWinApp类的构造函数 C: CWinApp类的InitInstance函数D: Cwnd的OnCreate函数 3 CWinApp类中用()成员函数实现了对消息环的封装。 A: InitInstance( ) B: Run() C: OnIdle() D: WndProc() 4 消息的4个参数中,表示消息类型的参数是()。 A: HWND hwnd B: messageID C: wParam D: lParam 5下列各消息中,与程序的菜单命令、工具栏按钮或对话框按钮相对应的消息是()。A: WM_CHAR B: WM_COMMAND C: WM_CREATE D: WM_PAINT 6 MFC消息映射机制中,下列消息映射表 BEGIN_MESSAGE_MAP(CGraphicsView, CScrollView) ON_WM_PAINT() END_MESSAGE_MAP() 把WM_PAINT消息映射到()。 A: CGraphicsView类OnPaint函数B: CGraphicsView类OnDraw函数。 C: CScrollView类的OnPaint函数D: CScrollView类的OnDraw成员函数。 7 下列MFC类中,不直接支持消息映射的MFC基类是(), A: CCmdTarget B: CWinAPP C: CWnd D: CMap 8 下列集合类中,其内部是使用散列表技术实现的MFC类的是()。 A: CArray B: CList C: CMap D: CPtrList 9 下列CWnd类成员函数中,用于任何消息的可覆盖函数是()。 A: OnCommand B: OnNotifyt C: OnUpdate D: WindowProc 10 Windows程序中,用于表示通用字符的数据类型是()。 A: char B: unsigned short C: TCHAR D: unsigned char 11 下列数据类型中,表示设备上下文句柄的数据类型是()。 A: HWND B: HDC C: HMENU D: HPEN 12 下列各个窗口类中,表示各种视图类的基类的MFC类是()。 A: CScrollView B: CTextView C: CRichEditView D: CView 13 下列各种窗口对象中,对象最好在栈(Stack)中分配MFC窗口类是()。 A: CToolBar B: CView C: CWnd D: CFrameWnd 14下列各宏命令中,应该放在类实现中以支持序列化特性的宏命令是()。 A: IMPLEMENT_DYNAMIC(class_Name) B: IMPLEMENT_DYNCREATE(class_Name) C: IMPLEMENT_SERIAL(class_Name) D: IMPLEMENT_MESSAGE_MAP() 15 CRuntimeClass类的操作中,用于从类名字符串获得该类CRunTimeClass对象指针的方法为()。

数字钟课程设计实验报告

《电子技术课程设计报告》 教学院:电气与电子信息工程学院 专业班级:xx级电子信息工程(x)班 学号:xxxxxxxxxxxx 学生:坏水 指导教师:xxxxxxxxxxxx 时间:2011.10.10~10.23 地点:电子技术实验室

课程设计成绩评定表

电子技术课程设计任务书 2011~2012学年第一学期 学生:坏水专业班级:xx电信本x班 指导教师:xxxxxxxxx 工作部门:电气与电子信息工程学院 一、课程设计题目:多功能数字钟电路的设计/直流稳压电源的设计 二、课程设计容(含技术指标): ①拟定多功能数字钟和直流稳压电源的组成框图,要现电路的基本功能,使用 的器件少,成本低; ②画出数字钟和直流稳压电源的主体电路逻辑图; ③测试多功能数字钟的逻辑功能,同时满足基本功能与扩展功能的要求; ④设计并安装各单元电路,要求布线整齐、美观,便于级联与调试;

四、基本要求 1.基本功能:要求设计出+5V的直流稳压电源。数字钟要求以数字形式显示时、分、秒的时间。小时计数器的计时要求为“12翻1”,要求具有手动校时功能。 2.扩展功能:定时控制,其时间自定;仿广播电台正点报时,自动报整点时数或触摸报整点时数(主要体现在理论知识上进行电路设计)。 (一)实训题目:直流稳压电源和多功能数字钟。 (二)实训目的: 1、巩固和加深学生对模拟电子技术,数字逻辑电路等课程基本知识的理解,综 合运用课程中所学到的理论知识去独立完成一个实际课题。 2、根据课程需要,通过查阅手册和文献资料,培养学生独立分析和解决实际问 题的能力。 3、通过电路方案的分析、论证和比较,设计计算和选用元气件,通过电路组装, 调试和检测环节,掌握电路的分析方法和设计方法。 4、熟用常用电子元气件的类型和特性,并掌握合理选用原则。 5、掌握电路图、PCB图的设计方法,学会电路的安装与调试。 6、掌握常用仪器、仪表的正确使用方法,学会电路整机指标的测试方法。(三)实训要求

Windows程序设计题(含简答题答案)

《Windows程序设计》模拟题 一.单项选择题 1、在VC++中,项目文件得扩展名就是(B)。 A)exe????B)dsp C)dsw???D)cpp 2、在MFC中,利用ClassWizard不能(D)。 A)建立新类??B)进行消息映射 C)增加类得成员变量?D)插入资源 3、当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR??B)WM_HSCROLL C)W M_VSCROLL???D)WM_CHANGE 4、更新菜单状态得消息就是(C )。 A)WM_MANDB)UPDATE C)UPDATE_MAND_UI D)INVALIDATE 5、对于消息队列描述正确得就是(D) A)在Windows中只有一个消息系统,即系统消息队列。消息队列就是一个系统定义得 数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行得应用程序都有自己得消息队列。 C)系统消息队列中得每个消息最终都要被USER模块传送到应用程序得消息队列中去。 应用程序得消息对列中存储了程序得所有窗口得全部消息. D)以上都正确 6、在MFC中,所有得控件都就是(B)类得派生类,都可以作为一个特殊得窗口来处理。 A)CView??B)CWnd C)C Window???D)CDialog 7、使用GetDC()获取得设备上下文在退出时,必须调用(A)释放设备上下文. A)ReleaseDC()???B)delete() C)D eleteDC()???D)Detach() 8、希望菜单无效,应该用CCmdUI类得(A )成员函数。 ???B)SetRadio A)Enable?? ? C)SetCheck???D)SetText 9、希望菜单前出现一个“√",应该用CCmdUI类得(C)成员函数. A)Enable ???B)SetRadio C)SetCheck??D)SetText 10、下面(A)不就是MFC设备环境类CDC类得派生类. A)GDI ????B)CPaintDC C)CClientDC ??D)CWindowDC 11、在MFC中,所有得文档类都派生于(C),所有得视图类都派生于(A )。 A)CView B)CWindowC)CDocumentD)CFormView 12、采用C++进行绘图时,(B)用于指定图形得填充样式,(A)用于指定图形得边框样式.

windows程序设计学习笔记(一)

Windows程序设计学习笔记 2015年10月4日 一、宽字符wide-character 1、wchar_t: char的双字节(Unicode) 定义:typedef unsigned short wchar_t 示例:wchar_t c=’A’; wchar_t *pw=L”hello!”; //L(代表long)告诉编译器按宽字符保存,即每个字符占两个字节 wchar_t a[]=L”hello!”; 2、宽字符库函数 wcslen( ):计算宽字串符的长度 如:wchar_t *pw=L”hello!”; iLength=wcslen(pw); //字符串长度是6 二、windows头文件类型 1、CHAR和WCHAR typedef char CHAR; //8位 typedef wchar_t WCHAR; //16位变量前面可加wc以说明是一个宽字符 2、字符串指针 (1)8位字符串指针 tpyedef CHAR *PCHAR, *LPCH, *PCH, *NPSTR, *LPSTR, *PSTR; tpyedef CONST CHAR *LPCCH, *PCCH, *LPCSTR, *PCSTR; 前缀N和L表示“near”和“long”,指的是16位windows中两种大小不同的指针,在Win32中near和long指针没有区别 (2)16位字符串指针 tpyedef WCHAR *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR; tpyedef CONST WCHAR *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR; 3、WINAPI 定义:#define WINPAI _stdcall 该语句指定了一个调用约定,包括如何生成机器代码以在堆栈中放置函数调用的参数三、Hello程序 /*------------------------------------- HELLO.C--windows下显示Hello,world! 作者:lw 时间:2015年国庆 -------------------------------------*/ #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("HelloWin"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc;

单片机电子时钟课程设计实验报告

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化1211 指导老师:阮海容 目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路 PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。 3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。

Windows程序设计题(含简答题标准答案)

《Windows程序设计》模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B)。 A)exe ????B)dsp C)d sw?????D)cpp 2.在MFC中,利用ClassWizard不能(D )。 A)建立新类?????B)进行消息映射 C)增加类的成员变量?D)插入资源 3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR ?B)WM_HSCROLL C)WM_VSCROLL???D)WM_CHANGE 4. 更新菜单状态的消息是(C)。 A)WM_COMMANDB)UPDATE C)UPDATE_COMMAND_UI D)INVALIDATE 5.对于消息队列描述正确的是( D ) A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程 序都有自己的消息队列。 C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6. 在MFC中,所有的控件都是(B )类的派生类,都可以作为一个特殊的窗口来处理。 ?B)CWnd A)CView ??? C)C Window ???D)CDialog 7.使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A)ReleaseDC()???B)delete() C)D eleteDC() ?D)Detach() 8. 希望菜单无效,应该用CCmdUI类的(A )成员函数。 A)Enable ???B)SetRadio C)S etCheck ??D)SetText 9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。 A)Enable??B)SetRadio C)SetCheck????D)SetText 10. 下面(A)不是MFC设备环境类CDC类的派生类。 A)GDI??????B)CPaintDC C)C ClientDC ???D)CWindowDC 11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A )。 A)CViewB)CWindowC)CDocument D)CFormView 12. 采用C++进行绘图时,(B )用于指定图形的填充样式,(A)用于指定图形的边框样式。 A)画笔B)画刷C)区域D)位图

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

windows程序设计

消息驱动运行中发生的各种事件(鼠标键盘输入,各种状态的改变等),以消息的形式通知Windows系统Windows系统接收消息,提交给发生事件的应用程序应用程序的窗口处理函数负责处理响应收到的消息处理完成后继续等待下一个消息API application programming Interface SDK software Development kit 事件是用户对计算机操作的动作或程序中某个对象的状态发生的变化,每个事件对应一个消息,即每个事件发生的效果是产生消息消息是描述事件发生的信息事件驱动程序执行的顺序不是事先规定的,而是由事件的发生来控制在程序执行过程中,当某个对象的状态发生变化,或有外部输入等情况发生,则产生相应的事件当事件产生时,系统会发出特定的消息编写程序时可以对这些消息做出反应,也可以不做出;若要做出反应(即响应消息),则把响应此消息的程序写在与此消息相关联的函数中在程序执行时,一旦产生了一个消息,会调用与此消息相关联的函数窗口是Windows应用程序基本的操作单位,是应用程序与用户之间交互的接口,也是系统管理应用程序的基本单位消息传输事件发生,产生消息消息保存到消息队列分配给应用程序消息队列消息循环提取消息窗口函数响应消息MFC Microsoft foundation class MFC应用程序框架提供了一般应用程序需要的全部面向对象软件组件的集成集合MFC程序结构基于框架窗口的应用程序(早期的MFC)程序运行管理、窗口及数据管理分开两部分,与SDK程序类似基于文档/视图的应用程序单文档应用程序(重点)程序运行管理、窗口管理、交互管理、数据管理分开基于对话框的应用程序程序运行管理、对话框管理分开目前的MFC应用程序都采用文档/视图结构,把原来窗口框架类的工作分开窗口框架类管理窗框视图类(即视窗类)管理数据显示、接收用户输入文档类负责数据管理文档视图架构的思想数据嵌入文档中,利用文档的架构管理文档与视图通信,使数据在视图中显示视图显示数据,并与用户交互视图放入窗口中文档模板类对象管理上述对象协调工作CDocument是负责管理数据的类应用程序中的文档类是这个类的派生类作用数据管理程序员应将用户的实际数据对象内嵌在自己的文档类中需要与自己的视图类通信在程序中实现CDocument的派生类,以便嵌入数据对象,并改写成员函数实现对数据的处理用于派生应用程序的视图类CView 作用处理与用户的交互显示文档类中的数据接收用户输入(例如鼠标操作)通常要改写视图类的成员函数OnDraw或OnPrint,实现数据显示框架自动调用OnDraw函数WM_PAINT消息OnPaint()OnDraw() 菜单及响应利用菜单编辑器修改IDR_MAINFRAME 菜单资源在相应的类中为新菜单项映射消息COMMAND单击或用快捷键选中时生产UPDATE_COMMAND_UI上一级菜单显示前生产用于控制菜单状态编写新菜单项的消息处理函数快捷键在菜单项标题后面加“(&字母)”菜单动态为要添加的菜单项定义一个宏(例如ID_MENU1)用CWnd::GetMenu( )获得指向菜单条的指针(如果在子菜单上添加,应用CMenu::GetSubMenu()获得该菜单的指针)为菜单项手工映射消息处理函数在适当的地方调用InsertMenu或AppendMenu添加菜单项调用CWnd::DrawMenuBar()函数重画菜单动态删除菜单项与上面类似(使用DeleteMenu函数)动态创建菜单项用函数BOOL CreateMenu( );获得新菜单句柄,再用此句柄当作AppendMenu函数的第2个参数(需进行(UTIN)强制类型转换)通常用于创建弹出式菜单的顶级(不需映射消息)快捷菜单建立菜单如果菜单已经存在,且功能齐全,只需确定弹出方式即可也可以另加一个菜单资源,此法可使菜单条中不显示快捷菜单关联类(对于新加菜单)把此菜单资源关联到视图类上选中此菜单资源的情况下打开类向导,选视图类影射消息并编写消息处理函数选择弹出方式可在视图类的WM_CONTEXTMENU消息(鼠标右键单击客户区时产生)处理函数中弹出Windows系统有一个存放消息的队列每个应用程序也有一个消息队列Windows系统先将收到的消息存放在系统队列中,然后再分发到相应的应用程序队列中应用程序则从自身的队列中获取消息并进行处理类的消息响应一个类要响应多种消息对于每一种消息最重要的是知道是哪个消息:消息的标识(ID 身份证)这个消息对应的响应函数是什么(函数的起始地址)解决的办法建立一个结构体数组(消息映射表)一行(一个数组元素)是一个消息的信息每行至少包含消息的标识(ID)指向响应函数的指针消息的响应当收到消息后,根据消息ID在表中查找,找到后调用对应的消息处理函数消息路由当一个类收到消息后,先在自己的消息映射表中搜索,搜索到就执行相应的消息处理函数,然后结束消息处理过程未搜到,则到上一层基类中搜索,依此类推如果都未搜到,则交给系统默认的窗口处理函数去处理消息种类窗口消息命令消息控件通知消息实现消息映射消息映射的要点为每个要响应的消息建立一个处理函数为每个能够响应消息的类建立一个结构类型的数组(消息映射表)并填写这个数组编写每个消息处

Windows程序设计案例教程习题解答

《Windows程序设计案例教程》习题解答 第1章 1.1 选择题 https://www.doczj.com/doc/cb14279047.html, Framework是一种( )。 A、编程语言 B、程序运行平台 C、操作系统 D、数据库管理系统 2.用Visual https://www.doczj.com/doc/cb14279047.html,编写的程序被编译成中间语言(MSIL)后,运行时还要再一次被编译,这种编译被称为( )。 A、CLR B、JIT C、GC D、GDI https://www.doczj.com/doc/cb14279047.html,ing namespace的作用是表示( )。 A、引入名字空间 B、使用数据库 C、使用一个文件 D、使用一段程序 4.要使程序运行,需要按( )键。 A、F5 B、Ctrl+F5 C、F10 D、F11 5.C#中的数据类型有( )和( )两种。 A.值类型B.调用类型C.引用类型D.关系类型 6.以下运算符中,()是三目运算符。 A.?:B.――C.=D.<= 7.下列不能为类的成员的是()。 A、属性 B、方法 C、索引器 D、接口 8.下列哪一个不是类的成员的访问修饰符() A、private B、base C、public D、protected 9. 调用构造函数创建对象时,通常使用( )关键字。 A.typeof B.new C.as D.is 10.关键字virtual只能用来修饰类的()成员。 A.字段 B.方法 C.属性 D.常量 11.用()关键字定义的方法,属于整个类而不属于类的某一个具体实例。 A.public B.static C.protected D.private 12.在属性的访问声明中,对属性的读操作用( )关键字标出,表明属性的值是只读的,不能改写。 A.set B.get C.private D.public 13.声明了一个数组Array[13],则Array[3]表示第( )个元素。 A.3 B.4 C.5 D.无法知道 14.在C#中,多继承通过( )来实现 A.属性 B.接口 C.索引器 D.方法 15.采用异常处理格式编写程序的目的在于使程序( )。 A.不会引发异常 B.顺利通过编译 C. 减少异常 D. 在出现异常后能够得到处理 16.窗体的标题条显示的标题由窗体的( )属性决定。 A、BackColor B、Text C、ForeColor D、Opacity 17.关闭窗体需要调用窗体( )方法。 A、Show B、Hide C、Activate D、Close 18.对文本文件写进一行,需要调用StreamWriter实例的()方法。 A.Write B.WriteLine C.Flush D.Close

多功能数字钟实验报告

《多功能数字钟电路的设计、制作》 课程设计报告 班级:(兴) 2008级自动化 姓名:胡荣 学号:2008960623 指导教师:刘勇 2010年11月13日

目录 一、设计目的.................................1 二、设计内容及要求...........................1 三、总设计原理...............................1 四、主要元件及设备...........................2 五、单元电路的设计...........................5 1、数字电子计时器组成原理.................5 2、用74LS160实现12进制计数器..............6 3、校时电路...............................7 4、时基电路设计...........................8 六、设计总电路图.............................8 七、设计结果及其分析.........................8 八、设计过程中的问题及解决方案...............9 九、心得体会.................................9 十、附录.....................................10

多功能数字钟电路设计 一、设计目的 通过课程设计要实现以下两个目标:一、初步掌握电子线路的设计、组装及调试方法。即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求;二、课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让我们开始从理论学习的轨道上逐渐引向实际方面,运用已学过的分析和设计电路的理论知识,逐步掌握工程设计的步骤和方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。 二、设计内容及要求 1、功能要求: ①基本功能: 以数字形式显示时、分、秒的时间,小时计数器的计时要求为“12翻1”,并要求能手动快校时、快校分或慢校时、慢校分。 ②扩展功能: 定时控制,其时间自定;仿广播电台正点报时—自动报正点时数。 2、设计步骤与要求: ①拟定数字钟电路的组成框图,要求先实现电路的基本功能,后扩展功能,使用的器件少,成本低; ②设计各单元电路,并用Multisim软件仿真; ③在通用电路板上安装电路,只要求显示时分; ④测试数字钟系统的逻辑功能; ⑤写出设计报告。设计报告要求:写出详细地设计过程(含数字钟系统的整机逻辑电路图)、调试步骤、测试结果及心得体会。 三、总设计原理 数字电子钟原理是一个具有计时、校时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。石英晶体振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。 四、主要元件及设备 1、给定的主要器件: 74LS00(4片),74LS160(4片)或74LS161(4片),74LS04(2片),74LS20(2片),74LS48(4片),数码管BS202(4只),555(1片),开关(1个),电阻47k(2个)电容10uF(1个)10nF(1个) 各元件引脚图如下图:

数字时钟设计实验报告

电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路与校时电路构成电路。 秒时钟信号发生器可由振荡器与分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时与分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器就是数字电子钟的核心部分,它的精度与稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ? 振荡器: 通常用555定时器与RC 构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ? 分频器: 分频器功能主要有两个,一就是产生标准秒脉冲信号,一就是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz 标准秒脉冲。其电路图如下: 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数与进位功能。利用74LS161与74LS11设计6进制计数器显示秒的十位 ,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下: 图三60进制--秒计数电路 ?60进制——分计数电路 分的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:来自秒计数电路的进位脉冲使分的个位加1,利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0

Windows程序设计复习资料(完整答案)

一、单项选择题: 1.WinMain()函数的工作。 WinMain()函数是Windows程序的入口点 在WinMain中进行:注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。 BeginPaint ----------EndPaint GetDC---------------ReleaseDC(成对出现) 利用GetDC()函数获取设备环境句柄 3.句柄的含义。 句柄是一个(通常为32位的)无符号整数(unsigned int),它代表一个内核对象内核对象在应用层的表示 4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。 当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同 5.Windows程序的控制流程。 Windows程序没有固定的控制流程,事件驱动程序控制流程 6.事件驱动、消息驱动的概念。 事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。 消息是事件到达Windows内部后的称呼 7.对话框、控件的作用。 对话框是程序与用户之间进行交互,接收用户输入、并把数据显示出来的一个窗口; 控件是用户可与之交互以输入或操作数据的对象。控件通常出现在对话框中或工具栏上。 8.MFC中怎样处理WM_PAINT消息。 在OnDraw()函数中处理该消息 9.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束。 在接收到WM_QUIT消息时返回0 10.Windows中,应用程序的输出是怎样进行的。 通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。 CObject类 12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。 CWinApp类 13.每次当窗口客户区需要重新绘制时,应用程序框架怎么处理。 发送WM_PAINT消息,调用OnDraw()函数进行重绘 14.CDC类的作用。 CDC是设备描述表类的基类,除了一般的窗口显示外,还用于基于桌面的全屏幕绘制和非屏幕显示的打印机输出。 15.当程序中某个函数改变了数据而需要重新绘制客户区时,OnDraw()函数不会被自动调

大连海事大学C语言与Windows程序设计6道课后题答案

大连海事大学C语言与Windows程序设计6道课后题答案 1.(1)设计具有以下功能的程序:从键盘上输入10个非负整数,统计并输出最大数和最小数,当输入负数时结束输入。 #include void main() { int a, max=-1, min=32767,num=1; cout<<"Please input a number:"<>a; if(a<0) break; //输入负数结束输入 if(a>max) max =a; if(a=0&&num<=10); if(max>=0) cout<<"Max="< void main() { inti,n,sign=1; float sum=0.0; printf("请输入n:"); scanf("%d",&n); for(i=1;i<=n;i+=2) { sum+=sign*(1.0/i); sign=-sign; } printf("\nsum=%f\n",sum); }

2.设计具有以下功能的程序:从键盘输入10个整数,然后排序。(要求:利用函数调用实现并以数组作为函数的参数) 3.编写几何点(二维平面上)的类Point,包括位置属性(二维坐标x,y), 成员函数包括: 点的位置获取函数GetX()和GetY(), 点的位置设置函数SetX()和SetY(), 点的位置移动函数MoveTo() 点的信息打印函数Display()。 void main() { Point p(100,100); p.Display(); p.MoveTo(200,200); cout<<"after moving…"<

相关主题
文本预览
相关文档 最新文档