C课设简单画图程序

C课设简单画图程序
C课设简单画图程序

简单画图程序

1.基本功能描述

本次课程设计的任务是利用计算机和VC开发环境编写一个简单画图程序,该程序的设计指标(即主要功能)有:①用鼠标拖动绘制圆、椭圆、矩形,线等基本图形;②能控制画笔的线宽和颜色;③能对图形进行颜色填充;④在鼠标移动的过程中能实时显示当前绘制的图形。

除了以上几点功能,我有另外添加了工具栏、铅笔、橡皮等功能来使程序更方便地让用户使用,简化了人机交互的过程。

2.设计思路

首先是界面的问题,既然课设的题目是简单画图,那在建立工程的时候就要选择文档结构而不是以前做的基于对话框。可选择单文档结构或多文档结构,但想到画图界面一般只有一个,从简洁的角度考虑,选择单文档结构。而且用户界面在设计的时候要尽可能简单美观,一目了然,对相应功能有图标提示,使用户方便使用。

然后便是画图功能的具体实现。分析课设要求,可以发现功能一要求的的椭圆、矩形、直线可以分别通过Ellipse();、Rectangle();、MoveTo();、LineTo();这四个函数来实现。功能二控制画笔线宽和颜色可以给二者分别关联参数,通过改变线宽参数值来控制线宽,通过调用通用对话框改变颜色参数值来控制颜色。功能三对图形进行颜色填充虽以前未接触过,但查阅资料后发现可以调用ExtFloodFill();并合理设定参数值来实现。功能四的实时显示功能可以通过调用MouseMove();函数来实现。

这些功能需要建立菜单资源来表示各个功能选项,并建立相应的消息响应函数来进行实现。另外,画图程序主要是通过鼠标来进行操作,所以要对鼠标消息的响应及处理函数多下功夫来思考和编写。

至于额外添加的功能,工具栏通过添加工具栏资源和关联相应菜单中画图功能ID实现;铅笔、橡皮的功能则是利用MouseMove();函数,在其中做了一些改动来实现。

.程序流程图:

开始

3.软件设计

.设计步骤

1)打开VS2010,选择新建项目,选中MFC应用程序,标题为CWN_Graphic;

2)选择单文档结构,其他为默认值,点击完成。

.界面设计

添加菜单

1)选择资源视图,鼠标右键,添加,资源;

2)在资源视图中打开添加的菜单资源,将各个功能的名称添加进去并合理安排,并设

置好相应的ID,如图2:

图2编辑菜单及相应ID

.添加工具栏

1)在资源视图下右键选择添加资源,ToolBar;

3)将每个按钮的ID与菜单项一一对应起来,如图3:

图3工具栏样式及ID .关键功能实现

1)打开类向导;

2)为各个菜单项添加消息函数,如图4:

图4 添加消息函数

相关ID、关联变量及响应函数如表1:

表1相关功能ID 及所关联变量

3)按照所需在中添加变量并在中对变量初始化:

UINT m_nDrawType = 0;论与心得体会

本次课程设计虽说是“简单”画图程序的设计,但真要是自己做起来,感觉一点也不简单。以前做的课程实验及课后习题等,几乎都是在老师讲解过相关课本知识和示范操作后稍作一定的功能修改,但因为毕竟是学过了,也看过老师的演示,所以就算有不会的地方也能在观看教学PPT或课堂笔记及查看教材资料后自行解决。但这次的简单画图程序的设计,不仅综合了以前对MFC编程的全部所学知识,而且还有未学过的几个函数的详细应用,这就需要在仔细查阅相关书籍、网络资料等来对这几个函数的用法进行了解。虽说起来简单,但实际操作中却漏洞百出,代码设计一改再改才最后实现了预定功能。

另外,在这次的课程设计程序编写过程中,我对MFC编程的过程流程在脑中也愈发清晰,对每个函数应如何声明,实现,使用的过程愈发明了。过程一波三折,有语法问题,函数使用的问题,兼容性问题,头文件或变量无法识别,逻辑错误等等,每一种错误都花费了许多精力去找寻问题所在。虽然辛苦,但觉得收获良多。

在编写程序的过程中,首先是一头雾水,总是在出错,而自己有不明白为什么会出错;慢慢坚持编写和查资料等找错,就一点点好了起来,对整个流程需要做的事也越来越明白;等到后期,就基本不会再出什么错了,就只是对程序的优化处理。可能程序的编写就是这样,开头最难,等写下去,后面倒是只是代码的添加,却不怎么难了。所以,在编写程序

之前,一定要自己把程序流程好好想一想,弄明白每个流程的关键所在,流程搞得越清楚,在后续编写的过程中遇到的错误就会越少,越顺利。

除此之外,遇到搞不明白的问题的时候,要多和同学进行讨论。本次编写过程中,我就经常和选题相同的另一位同学进行相关的讨论,尤其是对MouseMove函数的使用以及填充功能的实现,我们进行了大量的讨论,在讨论后我们再进行实际验证,并不断修改代码,最终才使相关功能得以实现。

5.思考题

1)说明直线、椭圆、矩形绘制使用的函数,及其参数含义?

答:直线、椭圆及矩形的绘制是在CCWN_GraphicView::OnLButtonUp();函数中实现,此函数在左键弹起时,将松开点坐标传给PC,并由之前选择的绘画类型(m_nDrawType的值,为2则直线,3则是矩形,4则是椭圆)来判断要进行的绘画操作。若为直线,则调用(m_ptOldOrigin); (m_ptNewOrigin);这两个函数,前者将窗口坐标移到指定位置,后者执行连线操作;若为矩形,则调用(CRect(m_ptOldOrigin,m_ptNewOrigin));函数,通过两点坐标画出矩形;若为椭圆,则调用(CRect(m_ptOldOrigin,m_ptNewOrigin));函数,由两点坐标确定一个矩形,再由矩形来内接画出一个椭圆。

2)如何控制菜单项的状态,使用的消息类型?

答:菜单项的状态是通过各个消息响应函数来确定的,我规定了几个变量m_Pen,m_Eraser 等,在选中其中一种功能后,在相应函数将其值置为TRUE,其他值置为FALSE以免产生干扰。而其他的如线型线宽因顾不干扰则只是设置了代表各自实际值的变量而未设置是否被选中的变量。

3)如何设置菜单和工具栏按钮的快捷键操作?

答:快捷键的功能通过在资源视图下设置加速键来实现。

在资源视图下打开加速键列表,在列表末尾空白处点击出现一个新的加速键选项,选择需要设置加速键的菜单ID值,如IDM_LINE,在修饰符下拉菜单中选择想要进行的快捷操作如Ctrl,在Key下输入想要组合的键值如L,类型选择VIRTKEY后便可完成快捷

键的设置。

6.附录

.调试报告

本次课设程序编写及调试过程中,遇到的问题主要由以下几种:

1)语法错误:

例如在写“;”时的中英文格式不对、少写了“}”等导致的语法错误,修改方法即为将错误的语法改为正确的。

2)无法识别预编译头文件:

遇到这样的问题后,在项目中打开属性,C/C++,预编译头,选择不使用预编译头文件即可。

3)无法识别**字符:

这类问题的解决方法是:在项目中打开属性,配置属性,常规,字符集,选择使用多字节字符集即可解决。

4)函数使用方式有错误:

出现这一类错误主要是对函数的使用不熟悉,对其中参数的作用不了解所致;解决方法只能是去多方查阅资料,深入了解其使用方法及参数含义,并在可能的情况下去找一些范例来进行对比,从而掌握其正确使用方法。

5)其他:

本次编写过程中还出现过编译链接都能过去,但运行时却会出现一个对话框的warning 然后程序不能运行的错误。有过两次,第一次未搞明白其具体含义,在上网查询解决方法后,通过项目属性,代码生成,运行库下选择多线程DLL(/MD)后解决;第二次在多方查找资料后明白了是因为在添加工具栏按钮时,按钮位图大小不一(有两种,一种大小17*17,另一种大小15*16)所致,将按钮位图大小改为相同的后,报错消失。

.测试结果

初始界面,图5:

图5程序运行初始界面线型线宽设置对话框,图6:

图6线型线宽设置对话框操作示例,图7:

图7操作示例

.关键源代码

// : CGraphicView 类的实现

//

#include ""

// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的// ATL 项目中进行定义,并允许与该项目共享文档代码。

#ifndef SHARED_HANDLERS

#include ""

#endif

#include ""

#include ""

#include ""

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CGraphicView

IMPLEMENT_DYNCREATE(CGraphicView, CView)

BEGIN_MESSAGE_MAP(CGraphicView, CView)

// 标准打印命令

ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CGraphicView::OnFilePrintPreview) ON_WM_CONTEXTMENU()

ON_WM_RBUTTONUP()

ON_WM_LBUTTONUP()

ON_WM_LBUTTONDOWN()

ON_COMMAND(IDM_DOT, &CGraphicView::OnDot)

ON_COMMAND(IDM_LINE, &CGraphicView::OnLine)

ON_COMMAND(IDM_RECTANGLE, &CGraphicView::OnRectangle)

ON_COMMAND(IDM_ELLIPSE, &CGraphicView::OnEllipse)

ON_COMMAND(IDM_LINE_WIDTH, &CGraphicView::OnLineWidth)

ON_COMMAND(IDM_PEN, &CGraphicView::OnPen)

ON_WM_MOUSEMOVE()

ON_COMMAND(IDM_FILL, &CGraphicView::OnFill)

ON_COMMAND(IDM_ERASER1, &CGraphicView::OnEraser1) ON_COMMAND(IDM_ERASER2, &CGraphicView::OnEraser2)

ON_COMMAND(IDM_ERASER3, &CGraphicView::OnEraser3) END_MESSAGE_MAP()

// CGraphicView 构造/析构

CGraphicView::CGraphicView()

{

// TODO: 在此处添加构造代码

/**************变量初始化*************/

m_nDrawType = 0;//绘画类型初始为0

m_ptOldOrigin = 0;//坐标点初始值为0

m_ptNewOrigin = 0;

m_EraserWidth = 1;//橡皮初始大小为1

m_nLineWidth = 0;//线宽初始值0

m_nLineStyle = 0;//线型初始为0

m_clr = RGB(0,0,0);//颜色初始值为黑

m_Pen = FALSE;//画笔初始未选中

m_Eraser = FALSE; //橡皮初始未选中

m_LButtonDown = FALSE; //鼠标左键初始值为0

m_Fill = FALSE;//填充按钮初始未选中

CGraphicView::~CGraphicView()

{

}

BOOL CGraphicView::PreCreateWindow(CREATESTRUCT& cs) {

// TODO: 在此处通过修改

// CREATESTRUCT cs 来修改窗口类或样式

return CView::PreCreateWindow(cs);

}

// CGraphicView 绘制

void CGraphicView::OnDraw(CDC* pDC)

{

CGraphicDoc* pDoc = GetDocument();

ASSERT_V ALID(pDoc);

if (!pDoc)

// TODO: 在此处为本机数据添加绘制代码

}

// CGraphicView 打印

void CGraphicView::OnFilePrintPreview()

{

#ifndef SHARED_HANDLERS

AFXPrintPreview(this);

#endif

}

BOOL CGraphicView::OnPreparePrinting(CPrintInfo* pInfo) {

// 默认准备

return DoPreparePrinting(pInfo);

}

void CGraphicView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {

// TODO: 添加额外的打印前进行的初始化过程

}

void CGraphicView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {

// TODO: 添加打印后进行的清理过程

}

void CGraphicView::OnRButtonUp(UINT /* nFlags */, CPoint point)

{

ClientToScreen(&point);

OnContextMenu(this, point);

}

/**********左键按下************/

void CGraphicView::OnLButtonDown(UINT nFlags , CPoint point)

{

m_ptNewOrigin=point;//将当前点坐标传给变量

m_LButtonDown=TRUE;//左键按下赋值1

if(m_Fill==TRUE)//填充功能

{

CClientDC dc(this);

HBRUSH hBrush=CreateSolidBrush(m_clr);

(hBrush);

,,RGB(0,0,0),0);

}

CView::OnLButtonDown(nFlags,point);

}

/***********左键松开************/

void CGraphicView::OnLButtonUp(UINT nFlags , CPoint point)

{

m_LButtonDown=FALSE; //左键松开赋值0 CClientDC dc(this);

CPen pen(m_nLineStyle,m_nLineWidth,m_clr); //创建画笔画刷(&pen);

CBrush*pBrush=CBrush::FromHandle((HBRUSH)GetStockObject

(pBrush);

m_ptNewOrigin=point; //左键松开的坐标点送给m_ptNewOrigin

switch(m_nDrawType)

{

case 1:/*******点*******/

(point,m_clr);

break;

case 2:/*******线*********/

(m_ptOldOrigin);

(m_ptNewOrigin);

break;

case 3:/**********矩形**********/

(CRect(m_ptOldOrigin,m_ptNewOrigin));

break;

case 4:/*********椭圆**********/

(CRect(m_ptOldOrigin,m_ptNewOrigin));

break;

}

}

/*************动态显示******************/

void CGraphicView::Draw()

{

CClientDC dc(this);

CPen pen(m_nLineStyle,m_nLineWidth,m_clr);

CPen *oldPen=(&pen);

(NULL_BRUSH);

int drawmode=(R2_NOTXORPEN);

/*R2_MERGENOTPEN模式的作用是:先把画笔的颜色取反,再与屏幕颜色进行“或”操作,从而得到像素最终显示的颜色。*/

switch(m_nDrawType)

{

case 2:

(m_ptOldOrigin);

(m_ptNewOrigin);

break;

case 3:

(CRect(m_ptOldOrigin,m_ptNewOrigin));

简单画图程序的设计

面向对象程序设计 课程设计报告 设计题目:简单画图程序的设计 学院:信息工程学院 专业:计算机科学与技术(交通)学号:201224020326 姓名:房战锋 同组同学学号:201224020325 指导教师:张少博 2013 年12 月24 日

目录 第一章:设计目的及内容 (2) 1.1【设计目的】 (2) 1.2【设计内容】 (2) 第二章:基本功能概述 (3) 2.1【工程的新建】 (3) 2.2【单文档简介】 (4) 2.3【添加消息响应函数】 (5) 2.4【资源】 (5) 2.5【设备环境】 (6) 第三章:设计思路 (6) 第四章:软件设计 (7) 4.1【设计步骤及关键代码】 (7) 4.1.1【点、直线、矩形、椭圆的绘制】 (9) 4.1.2【连续线及扇形的绘制】 (11) 4.1.3【画刷】 (12) 4.2【设置对话框】 (14) 4.3【颜色】 (14) 4.4【打开与保存】 (15) 第五章:结论与心得体会 (16) 参考文献: (17) 附录: (18) 【调试报告】 (18) 【测试结果】 (18) 【关键代码】 (18)

第1章:设计目的及内容 1.1【设计目的】 1 学习Visual C++的MFC开发程序的步骤。 2 综合运用所学的类、继承和多态的知识。 3 进一步掌握程序的调试方法。 1.2【设计内容】 1利用MFC的向导,创建基于单文档的应用程序; 2 编程实现,绘制线、圆、矩形的功能; 3 能够设定当前要画的图形样式(最少为以上3种)和图形颜色(最少能够设为以下 4 种颜色:黑、红、绿、蓝)。 4 当窗口重绘后,还能保持原来的图形。 5 选做1:能够选中某些已绘制的图形,并删除之。 6 选做2:能够保存已绘制的图形,下次打开时恢复原状。

C++课设:简单画图程序

简单画图程序 1.基本功能描述 本次课程设计的任务是利用计算机和VC开发环境编写一个简单画图程序,该程序的设计指标(即主要功能)有:①用鼠标拖动绘制圆、椭圆、矩形,线等基本图形;②能控制画笔的线宽和颜色;③能对图形进行颜色填充;④在鼠标移动的过程中能实时显示当前绘制的图形。 除了以上几点功能,我有另外添加了工具栏、铅笔、橡皮等功能来使程序更方便地让用户使用,简化了人机交互的过程。 2.设计思路 首先是界面的问题,既然课设的题目是简单画图,那在建立工程的时候就要选择文档结构而不是以前做的基于对话框。可选择单文档结构或多文档结构,但想到画图界面一般只有一个,从简洁的角度考虑,选择单文档结构。而且用户界面在设计的时候要尽可能简单美观,一目了然,对相应功能有图标提示,使用户方便使用。 然后便是画图功能的具体实现。分析课设要求,可以发现功能一要求的的椭圆、矩形、直线可以分别通过Ellipse();、Rectangle();、MoveTo();、LineTo();这四个函数来实现。功能二控制画笔线宽和颜色可以给二者分别关联参数,通过改变线宽参数值来控制线宽,通过调用通用对话框改变颜色参数值来控制颜色。功能三对图形进行颜色填充虽以前未接触过,但查阅资料后发现可以调用ExtFloodFill();并合理设定参数值来实现。功能四的实时显示功能可以通过调用MouseMove();函数来实现。 这些功能需要建立菜单资源来表示各个功能选项,并建立相应的消息响应函数来进行实现。另外,画图程序主要是通过鼠标来进行操作,所以要对鼠标消息的响应及处理函数多下功夫来思考和编写。 至于额外添加的功能,工具栏通过添加工具栏资源和关联相应菜单中画图功能ID实现;铅笔、橡皮的功能则是利用MouseMove();函数,在其中做了一些改动来实现。

C入门练习题附绘图步骤

AutoCAD练习题 10.1 习题1:定数等分画圆弧 ◆练习说明: 1、此图中间为6等分,可使用定数等分命令分段; 2、连续曲线可采用多段线的圆弧命令快速绘制。 ◆操作提示: ⑴先画一条长为70的直线,然后在这条直线上6等分(如图所示) ⑵使用“多段线”命令,在“指定起点: 指定下一个点或[圆弧 (A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]:”提示下输入a; 在“指定圆弧的端点或[角度(A)/圆心(CE)/方向(D)/半宽(H)/直线(L)/半径(R)/第二个点(S)/放弃(U)/宽度(W)]:”提示下输入d,开始绘制圆弧的方向(如图所示) ⑶重复以上的操作,完成圆弧的绘制(如图所示) ⑷选择“圆”命令,捕捉圆的中点,在“指定圆的半径或[直径 (D)]”提示下输入35,回车 ⑸删除辅助线,添加尺寸标注(如图所示) 10.2 习题2:环形阵列画圆弧 ◆练习说明: 1、此图外面由8段相同的圆弧构成; 2、使用环形阵列命令快速绘制。 ◆操作提示: ⑴先画一个直径为35的圆,然后向上复制(如图所示) ⑵使用“环形阵列”命令,阵列出8个圆(如图所示)

⑶使用“修剪”命令,修剪出一段圆弧后,并删除多余的圆(如图所示) ⑷再次使用“环形阵列”命令,阵列出8个圆弧,添加尺寸标注(如图所示) 10.3 习题3:使用极轴追踪绘制图形 ◆练习说明: 1、此图主要练习多边形的绘制; 2、在绘制中间的矩形时将会用到45°极轴追踪。 ◆操作提示: ⑴先对“极轴追踪”进行设置,鼠标右击状态栏上的“极轴”,点击“设置”按钮(如图所示) ⑵在“极轴追踪”对话框中勾选“启用极轴追踪(F10)”选项,在“增量角”改为45°(改成45°的意思是:凡是45°的倍数都能追踪得到)(如图所示) ⑶先画一个直径为70的圆,再画一个内接于圆的正6边形(如图所示) ⑷使用“对象捕捉”命令,绘制里面的直线,并用“极轴追踪”方式绘制一条连接于线上的直线(如图所示) ⑸使用“直线”命令连接其余直线(如图所示) ⑹捕捉大圆的圆心,在矩形里面绘制一个小圆,并添加尺寸标注

十款公认最实用的绘图软件评测

十款公认最实用的绘图软件评测 导读: 很多人以为只有专业从事艺术设计类或者画画工作的人才会用到绘图软件,其实不然。在我们的日常生活中,也有许多需要用到绘图软件的职业,工程师、建筑师、原画师、网页设计师、电工师傅等等,在他们的日常工作中都会用到不同类型的绘图软件。 如今市面上有很多种类的绘图软件,但是他们的侧重点都不一样,有的侧重画工业图,有的偏向于艺术设计,还有的偏向于3D画图等,虽然都属于画图软件,但是涉及的方向大不一样。想要正确选择出适合自己的绘图软件,一个个去了解有些不太现实,下面就让小编为大家盘点一下目前公认最好用的10款绘图软件吧! 一、亿图图示专家:亿图图示Edraw Max是一款跨平台使用的全类型图形图表设计软件,用户可以通过它绘制260多种类型的图表,其中包含常用的:流程图、思维导图、信息图、组织结构图、甘特图、地图、线框图、数据模型图、UML以及网络拓扑图等等。 它拥有丰富的精美模板及矢量符号库,操作简单易上手,能让难以理解的文本和

表格转化为简单清晰的图表。除了具备多种绘图功能,亿图还能与其他办公软件相兼容,可以轻松通过软件将文件导出为Office word、excel、ppt、图片、pdf、html、svg、ps,甚至连Visio格式也不在话下! 二、Visio:是微软公司出品的一款的软件,它有助于 IT 和商务专业人员轻松地可视化、分析和交流复杂信息。丰富的组件库,各种各样的图表支持,和word 的无缝对接是visio的强项,但是由于其价格过于昂贵,并且无法在linux和osx下运行,可以选择的模板也比较少,加上设计风格过于扁平化,所以目前成为一款很容易被国产新秀软件替代的产品。

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

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

简单画图程序-课程设计

简单画图程序-课程设计 目录 1. 基本功能描 述 ............................................................. 1 2. 设计思路 ................................................................. 1 3. 软件设 计 (3) 3.1 设计步 骤 (3) 3.2 界面设 计 (6) 3.3 关键功能的实 现 ...................................................... 7 4. 结论与心 得体会 ........................................................... 8 5. 参考文 献 ................................................................. 9 6. 思考 题 (9) 7. 附 录 ..................................................................... 9 7.1 调试报 告 (9)

7.2 测试结 果 (10) 7.3 关键源代 码 (1) 武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书 简单画图程序 1. 基本功能描述 1) 在菜单处的有相应的菜单项,可以选择绘制的图形形状,如直线、矩形及椭圆,可 -5可供选择,还可以选择线色以及填充色,通过弹出的颜色对话框选择以选择线宽,有1 需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔以及画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,鼠标弹起,此图形则绘制完毕。 3) 增添了工具栏,有相应的选择项,可以更方便地实现相应的功能。 2. 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,则改变画笔和画刷的属性。 3) 鼠标的按下响应LButtonDown(),定义起点的坐标,鼠标的拖动响应MouseMove()改变终点的坐标,鼠标的弹起响应LButtonUp(),刷新,得到绘制图形。

C语言程序简单例子讲解学习

实验二参考答案 1.输入两个整型数字,输出他们的和。 #include main() { int a, b, sum; scanf(“%d%d ”, &a, &b); sum=a+b; printf(“a+b=%d ”, sum); } 2.输入两个实型数,输出他们的和与乘积。 #include main() { float a, b, sum, product; scanf(“%f%f ”, &a, &b); sum=a+b; product=a*b; printf(“a+b=%5.2f, a*b =%5.2f ”, sum, product); } 3.求方程02=++c bx ax 的根(设042≥-ac b )(其中a ,b ,c 的值由键盘输入)。 #include #include main() { float a, b, c, dt, x1, x2; scanf(“%f%f%f ”, &a, &b, &c); dt=sqrt(b*b-4*a*c); x1=(-b+dt)/(2*a); x2=(-b-dt)/(2*a); printf(“x1=%5.2f, x2 =%5.2f ”, x1, x2); }

4.鸡兔同笼,已知鸡兔总头数为h,总脚数为f,求鸡兔各多少只?(h和f的值由键盘输入,输出鸡和兔的头数) #include main() { int h, f, x,y; scanf(“%d%d”, &h, &f); x=2*h-f/2; y=f/2-h; printf(“x=%d, y =%d”, x, y); }

mfc简单绘图程序

M F C 简 单 的 绘 图 程 序 ——王帅

目录 摘要 (2) 关键字 (2) 1 引言 (2) 设计目的 ............................................................................................................ 错误!未定义书签。 2 功能说明 (2) 2.1菜单栏....................................................................................................... 错误!未定义书签。 2.1.1图形 (3) 2.1.2画笔 (4) 2.1.3画硬币 (4) 2.2工具栏 (5) 2.3状态栏 (5) 3 功能的实现 (5) 3.1 视图设计 (5) 3.2 编辑资源 (6) 3.3 编程思路及各个函数的实现 (7) (1)思路 (7) (2)代码的实现 (7)

1.为基本形状创建一个基类 (8) 2.基本形状类的创建 (8) 2.1矩形类的创建及定义 (8) 2.2圆形类的创建及定义 (10) 2.3正五边形类的创建及定义 (11) 2.4正三角形类的创建及定义 (14) 2.5椭圆类的创建及定义 (16) 2.6正四边形类的创建及的定义 (17) 2.7正六边形类的创建及定义 (18) 2.8直线类的创建及定义 (19) 3.各基本形状类在CMyDraw2_0类中的调用和绘图的实现 (20) 3.1矩形类的调用与与绘图的实现 (20) 3.2圆形类的调用 (24) 3.3正三角形类的调用 (25) 3.4基本类型调用的剩余代码 (26) 4.画笔的使用、颜色及大小的调整 (29) 5.画硬币 (35) 6.工具栏中的自定义控件 (38) 7.状态栏中的显示 (39) 4程序功能的测试 (41) 5最后总结 (42)

简易画图板设计报告

设计报告:Graphic简易画 图板 -----韩伟谢程焜肖越周峰 电科二班

1设计目的 设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。 2 总体设计 设计图如图6

图6 3详细设计 首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID及名称如表1所示。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。

在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述: private: UINT m_nDrawType; 接着,在视类的构造函数中将此变量初始化为0,程序代码如下: CGraphicView::CGraphicView() { // TODO: add construction code here m_nDrawType=0; } 利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:void CGraphicView::OnDot() { // TODO: Add your command handler code here m_nDrawType=1; } void CGraphicView::OnLine() { // TODO: Add your command handler code here m_nDrawType=2; } void CGraphicView::OnRectangle() { // TODO: Add your command handler code here m_nDrawType=3; } void CGraphicView::OnEllipse() { // TODO: Add your command handler code here m_nDrawType=4;

JAVA课程设计画图软件

package hh; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import java.awt.geom.*; class Point { int x,y; Color col; int tool; int boarder; Point(int x, int y, Color col, int tool, int boarder) { this.x = x; this.y = y; this.col = col; this.tool = tool; this.boarder = boarder; } } /* *BasicStroke *Choice *validate(); **/ class paintboard extends Frame implements ActionListener, MouseMotionListener, MouseListener, ItemListener { int xx0=0,yy0=0; int xx1=0,yy1=0; int type=6; int x = -1, y = -1; int con = 1; //画笔大小 int Econ = 5; //橡皮大小 int toolFlag = 0; //toolFlag:工具标记 //toolFlag工具对应表: //(0--画笔);(1--橡皮);(2--清除);

//(3--直线);(4--圆);(5--矩形); Color c = new Color(0,0,0); //画笔颜色 BasicStroke size = new BasicStroke (con,BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);//画笔粗细 Point cutflag = new Point(-1, -1, c, 6, con);//截断标志 Vector paintInfo = null;//点信息向量组 int n = 1; // *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/ Panel toolPanel; Button eraser, drLine,drCircle,drRect; Button clear ,pen; Choice ColChoice,SizeChoice,EraserChoice; Button colchooser; Label 颜色,大小B,大小E; paintboard(String s)//构造函数 { super(s); addMouseMotionListener(this); addMouseListener(this); paintInfo = new Vector(); /*各工具按钮及选择项*/ //颜色选择 ColChoice = new Choice(); ColChoice.add("黑色"); ColChoice.add("红色"); ColChoice.add("蓝色"); ColChoice.add("绿色"); ColChoice.addItemListener(this); //画笔大小选择 SizeChoice = new Choice(); SizeChoice.add("1"); SizeChoice.add("3"); SizeChoice.add("5"); SizeChoice.add("7"); SizeChoice.add("9"); SizeChoice.addItemListener(this); //橡皮大小选择 EraserChoice = new Choice();

简单的绘图程序实验报告

面向对象程序设计实训(基于MFC程序设计) 题目: 简单的绘图程序 院系专业: 姓名: 学号: 同组其他学生(学号):

简单绘图程序说明 1、功能分析 目前这个软件的主要功能有如下: 1、画直线:通过OnLine()函数实现。 2、画矩形:通过OnRectangle()函数实现。 3、画圆角矩形:通过OnRoundrect()函数实现。 4、画椭圆:通过OnEllipse()函数实现。 5、铅笔工具:可以画任意线条。通过直接在OnMouseMove(UINT nFlags, CPoint point)函数里面添加代码实现。 6、右键弹出菜单:可以在客户中点击鼠标右键,快速选择常用菜单。通过 OnContextMenu函数实现。 7、状态栏显示鼠标移动的坐标:在程序的右下角显示,通过调用setWidnowText 和GetParent()实现。 8、画图颜色选择:可以画任何颜色的线条,通过OnColor()函数实现。 9、线条类型及线宽的设置:可以将画出的线条设置成实线、虚线、点线、点划 线,双点划线,还可以设置线条的粗细,,通过实例这一功能立刻显示所选择线条的粗细及线型。通过新建CLineSettingDlg类,其中OnSelchangeLineStyle()函数实现线型的改变,OnChangeEditLineWidth()函数实现线宽的改变。再在CDrawView类中调用OnLineSetting()函数实现画笔的对话框, CLineSettingDlg类中的OnPaint()函数是实现示例功能的。 10、窗口的重绘时不擦除原来的内容:新建CShape类用来保存线条的颜色,线 宽,填充色等属性,在窗口大小发生变化时有OnDraw(CDC* pDC)函数进行重绘工作,重绘中调用了各个绘图函数的Draw(CDC *pDC)函数。 11、所绘图形的保存于读取,通过Serialize(CArchive &ar)函数进行序列化操作, 将所绘图形的信息通过文件的形式保存起来。

《认识画图软件》教学设计

《认识画图软件》教学设计 知识与技能: 1、认识Windows XP系统中自带的画图软件。 2、掌握画图软件的启动与退出的方法,并熟悉画图软件窗口的组成。 3、熟练掌握工具箱中个别工具的使用及操作方法。 过程与方法:通过运用画图软件绘画,进一步熟练掌握画图软件的操作及使用方法。 情感态度与价值观:通过画图软件的学习,使学生进一步熟练掌握画图软件各部分的操作方法,同时激发学生对学习电脑的兴趣,感受成功,体验学习计算机,用计算机画画的快乐! 教学目标: 1、知道并掌握画图软件的打开、退出方法; 2、认识并掌握画图窗口的各个组成部分; 尝试使用画图软件工具箱中的椭圆、铅笔、直线、橡皮工具。 教学重点:认识并掌握画图窗口的各个组成部分。 教学难点:画图软件工具的认识及操作方法。 教学过程: 一、导入 我们在上美术课的时候,我们都用一些什么工具画画? 接下来我们来欣赏几张图画,你喜欢它们吗?看它们美吗?你们知道这些画是怎么画出来的吗?这些画都是用电脑画出来的。你们想不想也用电脑试一试,跟他们比一比,看你们能不能超过他们? 如果想用电脑画画,首先我们就应该先认识一些图像处理软件。目前,有许多图像处理软件可以用来画画,今天,我们就来学习这个大家庭中的一个最简单,最容易学会的成员,利用它我们可以画出很多漂亮的图画,比如我们刚才看到的。今天我们就来一起来学习并认识画图软件。(播放PPT并板书课题) 二、新课讲解 “画图“软件是Windows系统中的一名成员。我们想用它来画出漂亮的图画,我们就应该先去了解它,想了解它就需要启动或是关闭它。 第一部分认识画图软件(理论部分) (一)启动画图软件的方法:(边说边在教师机上演示,并把最后结果用PPT 的形式展示在教师机上) 1、鼠标单击开始——程序——附件——画图。 2、双击桌面上的“画图”软件图标。 (二)关闭画图软件的方法:(边说边在教师机上演示,并把最后结果用PPT

课程设计常用数学软件

《常用数学软件介绍》课程设计用Matlab求解下列各题,要求:抄题,写出程序、运行结果,根据要求贴上运行图。 1、求矩阵 211 020 413 A - ?? ? = ? ? - ?? 的逆矩阵1 A-及特征值和特征向量。 解: >> clear; A=[-2 1 1;0 2 0;-4 1 3]; inv(A) [V,D]=eig(A) ans = Columns 1 through 2 Column 3 -1.5000e+000 5.0000e-001 5.0000e-001 0 5.0000e-001 0 -2.0000e+000 5.0000e-001 1.0000e+000 V = Columns 1 through 2 Column 3 -7.0711e-001 -2.4254e-001 3.0151e-001 0 0 9.0453e-001 -7.0711e-001 -9.7014e-001 3.0151e-001 D = -1 0 0 0 2 0 0 0 2 2、化方阵 222 254 245 A - ?? ? =- ? ? -- ?? 为对角阵。 解:A=[2 2 -2;2 5 -4;-2 -4 5]; >> diag(diag(A)) ans = 2 0 0 0 5 0 0 0 5 3、已知 422134 305,203 153211 A B - ???? ? ? =-=-- ? ? ? ? - ???? ,在MA TLAB命令窗口中建立A、B矩阵并对

其进行以下操作: (1) 计算矩阵A 的行列式的值det()A (2) 分别计算下列各式:1122,*,.*,,,,T A B A B A B AB A B A A --- 解: (1)、 A=[4 -2 2;-3 0 5;1 5 3]; >> det(A) ans = -158 (2)、 ans = 7 -7 0 -4 0 13 0 11 5 ans = 12 10 24 7 -14 -7 -3 0 -8 ans = 4 -6 8 6 0 -15 2 -5 3 ans = -2.2204e-016 -6.6613e-016 2.0000e+000 -2.7143e+000 -8.0000e+000 -8.1429e+000 2.4286e+000 3.0000e+000 2.2857e+000 ans = 4.8734e-001 4.1139e-001 1.0000e+000 3.6709e-001 - 4.3038e-001 2.7756e-017 -1.0759e-001 2.4684e-001 1.3878e-017 ans = 24 2 4 -7 31 9 -8 13 36 ans = 4 -3 1 -2 0 5 2 5 3 4、在MA TLAB 中分别利用函数rank 、函数inv 求下列矩阵的秩: (1) 16323540,11124A -?? ?=- ? ?--?? 求 rank(A)=?

计算机绘图C、

第一节 , 1,如何快速定义屏幕上出现(或取消)哪些工具栏? 右击任意一个已经打开的工具栏,在弹出的快捷菜单中选取工具栏的名称即可。工具栏名称前有“”符号,则表示该工具栏已经显示在工作界面中了,点击其名 称即可关闭。 2,如何在现有的工具栏中添加图标按钮? 选择主菜单“视图”中的“工具栏”选项或主菜单“工具”中的“自定义”选项;或把鼠标放在任意一个已经打开的工具栏上右击选取快捷菜单中最下方的“自定义”选项,均可打开“自定义用户界面”对话框,在“命令列表”栏中选取所需按钮所在的命令名称,再在出现的命令中用鼠标拖放到相应的工具栏中即可。 3.如何改变绘图窗口的背景色? 选取主菜单“工具”→“选项”命令或在绘图窗口内右击,在弹出的快捷菜单中选取“选项”命令,系统弹出“选项”对话框,在“显示”选项卡中点击按钮,就可在弹出的“图形窗口颜色”对话框中的“颜色”下拉列表框中为绘图窗口指定新的背景色。 4.分清以下点的坐标含义:(20,-10)、(@20,-10)、(20<60)、(@20<60) (20,-10)为绝对直角坐标,距原点X轴正向20,Y轴负向10。 (@20,-10)为相对直角坐标,距前一点X轴正向20,Y轴负向10。 (20<60)为绝对极坐标,与原点的距离为20,并与X轴正向成60度。 (@20<60)为相对极坐标,与前一点的距离为20,并与X轴正向成60度。 5.重复当前AutoCAD运行命令的操作应该按下哪个键? 回车键或空格键。 6.如何取消上次命令? 单击“标准”工具栏中的“放弃”键,或在命令窗口输入“U”,即Undo命令。 7.在命令执行过程中可以随时按哪个键退出或取消该命令? Esc键。 8.简述对象捕捉功能的作用。 绘制或编辑图形时,使用对象捕捉功能可以在已有图素上用指定的捕捉方式捕捉需要的点,如直线的端点、中点、圆的圆心和切点等,这样就可以精确快速地绘图。 9.“对象捕捉方式”中的“最近点”的含义是什么? 捕捉直线、圆、圆弧等对象上距光标最近的点。 10.在用窗口选择对象时,“W(Window)”和“C(Cross)”选项有什么不同? “W(Window)”选项将该窗口内的多个图素一次选中;“C(Cros s)”选项 则所有穿越或包含在窗口内的图素均被选中。 11.如何在已有的选择集里移除或添加对象?

简单的C语言编程题例题

1、编写程序,把560分钟换算成用小时和分钟表示,然后输出。解:其所编程序如下 #include"stdio.h" void main() {int a=560,b=60,c,d; c=a/b; d=a%b; printf("560分钟=%d小时%d分钟",c,d); } 2、编写程序,输入两个整数:1500和350,求出它们的商和余数并进行输出。 解:所编程序如下 #include"stdio.h" void main() {int a,b,c,d; printf("Input two numbers:"); scanf("%d%d",&a,&b); c=a/b; d=a%b; printf("c=%d,d=%d\n",c,d); } 3、编写程序,读入三个双精度数,求出它们的平均值并保留此平均

值小数点后一位数,对小数点后的第二位数进行四舍五入,最后输出结果。 解:所编程序如下 #include"stdio.h" void main() {double a,b,c,ave; printf("Enter three numbers:"); scanf("%lf%lf%lf",&a,&b,&c); ave=(a+b+c)/3; printf("(1)ave=%f\n",ave); ave=(int)(ave*10+0.5)/10.0; printf("(2)ave=%f\n",ave); } 4、编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a 中原来的值给b,把b中原来的值给c,把c中原来的值给a,然后输出a、b、c。 解:所编程序如下 #include"stdio.h" void main() {int a,b,c,m,n,t; printf("Enter three numbers:"); scanf("%d%d%d",&a,&b,&c);

Java画图软件设计报告

佛山科学技术学院 《可视化编程技术》课程设计报告 画图软件设计 学生姓名:周敏婷 学号: 2011914123 年级专业:11级教育技术学2班指导老师:容汝佳 学院:教育科学学院 广东★佛山 提交日期:2013年6月

目录 1. 前言 (2) 2.概要设计 (3) 2.1 开发环境 (3) 2.2 画图软件功能 (3) 2.3 界面设计 (3) 2.4 类的框架结构图 (4) 3. 详细设计 (4) 3.1 使用的JAVA类的说明 (4) 3.2 类的主要方法 (5) 3.2.1 颜色选择

器 (5) 3.2.2 控制画笔样式 (5) 3.2.3 选取颜色按钮的监听件类 (6) 3.2.4 设计总体认识 (6) 3.2.5 程序流程图 (7) 4. 运行结果 (7) 5. 测试分析 (8) 5.1 程序运行情况 (8) 6. 源程序 (8) 参考文献 (14) 设计总

结 (14)

摘要:该程序是一个图形界面的简单的java画图软件,具有良好的界面,使用人员能快捷简单地进行操作。该画图软件操作较为简单,只需要一直按着左键就能根据你鼠标移动的方面,画出你想要的图案。你也可以选择你自己想到的颜色和画笔的粗细。而且可以显示你当前的画笔的状态。界面为灰白对称。是一个非常简单的作图工具,让人能轻松上手。 关键字:java,画图类,方法,事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的画图工具,可以实现简单的画图作图功能,满足日常基本的工作学习和娱乐需要。 Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。 Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet 所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2 企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。 Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C++语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图

简单C语言程序的例子

例子: #include main () { tips(); /*caller*/ printf(“\n Success is about banging on after others have let go”); } tips() /*caller*/ { printf (“\n When you reach the end of the rope tie a knot & hang on”,)0; } [上述程序的输出结果如下: When you reach the end of the ropt tie a knot & hang on. Success is about hanging on after others have let go.] #include main() { int a,fact; printf(“\nEnter any number”); scanf(“%d”,&a); fact=rec(a); printf(“Factorial value is%d”,fact); } rec(x); int x; { int f; if(x==1) return(1); else f=x*rec(x-1); return(f); } [其显示的结果为:Factorial value is 2.] 比较两个数较大的那个: #include main()

{ int a,b,max; scanf (“%d%d”,&a,&b); if (a>b) max=a; else max=b; printf (“%d”,max); } 输出a+b的值: #include void main() { int a,b,x; scanf (“%d%d”,&a,&b); x=a+b; printf (“%d”,x); } 输出a,b中最大的一位数: #include int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); } void main() { int a,b,c; scanf (“%d%d”,&a,&b); c=max(a,b); printf (“%d\n”,c); } 输出Hello: #include int main() { printf (“Hello!”);

mfc简单绘图程序报告

简单绘图程序 1 需求说明 1.1 问题描述 设计一个简单的绘图应用程序,可以绘制图形或自由绘制线段,可以更改颜色、画笔粗细、保存文件。 1.2功能说明 1.图形绘制功能:直线、椭圆、矩形。 在菜单栏中选择需要的图形(也可以通过工具栏中选择)用鼠标便能在视图中绘出相应的图形。 2.可以绘制自由线段 3.对图形的操作:能通过菜单栏弹出对话框选择线宽、自定义颜色,也可以擦除绘制的线段。 4.可以保存绘图文件,保存后打开可以继续绘制。 2.1.3 数据说明 在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。在CDzyView类中添加一个私有变量xz;用来保存用户的选择(直线、矩形、椭圆、自由绘图)在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标停止移动时得到另外一个点。为视图类CDzyView分别捕获鼠标左键按下和弹起这两个消息。当鼠标左键按下时,需要将鼠标当前按下点保存至sx、sy,在鼠标移动停止后,将当前坐标保存至ex,ey.

其他主要数据说明: int fd 判断是否为自由绘图模式int w 线宽 int R RGB中的R int G RGB中的G int B RGB中的B CGraph类中 int m_nType:保存后重绘时用户的选择int qdx; 重绘起点x int qdy; 重绘起点y int zdx; 重绘终点x int zdy; 重绘终点y CLine类中 int cx; 重绘线宽 int sx; 重绘起点x int sy; 重绘起点y int zx; 重绘终点x int zy; 重绘终点y int w; 重绘线宽 自定义颜色对话框关联变量: IDC_EDIT_RED int m_Red IDC_EDIT_GREEN int m_Green IDC_EDIT_BLUE int m_Blue IDC_SCROLL_RED CScrollBar m_Sred IDC_SLIDER_GREEN CSliderCtrl m_Sgreen IDC_SPIN_BLUE CSpinButtonCtrl m_Sblue 2 分析、设计与实现 2.1 主要功能设计与实现

实验项目:实验一 最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar 函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计

(所属课程:《C 语言程序设计》学时:2) 一、实验目的 1.了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式。 3.熟练掌握if 语句和switch 语句 二、实验条件 Pc 和vc++编程环境 三、实验内容 1.有一函数: ?? ???≥-<≤-<=)10x (113x )10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

相关文档
最新文档