当前位置:文档之家› 简单画图程序-课程设计

简单画图程序-课程设计

简单画图程序-课程设计
简单画图程序-课程设计

简单画图程序-课程设计

目录

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(),刷新,得到绘制图形。

4) 选择图形或其它属性,可进行下一次绘制。

开始

初始化(即初始化相关变量,如

shpae、线色m_nColor、填充色

m_fColor、画笔pen、画刷brush、

起点opoint、终点epoint等)

选择线宽,

1

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书Y

改变画笔属性

N

Y 选择颜色,

, 改变画笔属性 N

Y 选择填充,

改变画笔属性

N

直线, 矩形, 椭圆,

响应直线的消响应矩形的消响应椭圆的消

息处理函数息处理函数息处理函数

OnRect()OnRect()OnRect()

shape=1 shape=2 shape=3

鼠标左键按下,响应

LButtonDown(),opoint=point

鼠标左键按下拖动,响应

MouseMove(),epoint=point,

响应OnPaint(),绘制图形

鼠标左键弹起,响应 LButtonUp(),刷新,得到图形

结束

2

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图1 程序流程图

3. 软件设计

3.1 设计步骤

1)创建一个给予单文档的应用程序框架。命名为“yuyangyi”。

图2 创建工程

2)编辑菜单。添加需要的菜单项,如图3;设定好ID值,如图4;建立类向导,在视图类中,对菜单项添加对应的COMMAND消息出理函数,部分菜单项还添加对应的UPDATE_COMMAND_UI消息函数,如图5。

3

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图3 添加菜单项

图4 设定菜单项ID

4

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图5 建立类向导

3)创建工具栏。在插入处选择资源,新建工具栏,如图6;在工具栏上添加相应的按钮,在属性处更改其ID,如图7。

图6 新建工具栏

5

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图7 编辑工具栏

4)在相应消息函数处添加代码,实现其功能。建立类向导,添加WM_PAINT消息,以及LBUTTONDOWN、LBUTTONUP、MOUSEMOVE消息,并在其中添加相应的代码,如图8。

图8 添加WM_PAINT消息

3.2 界面设计

表1 界面控件表

6

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书控件名称控件类型 ID属性相关变量

绘图下拉式菜单

直线菜单项 ID_LINE int shape

工具栏按钮

矩形菜单项 ID_RECT int shape

工具栏按钮

椭圆菜单项 ID_ELLIPSE int shape

工具栏按钮

线宽弹出式菜单 int w

颜色(线色) 菜单项 ID_COLOR COLORREF m_nColor

工具栏按钮

填充色菜单项 ID_FILLCOLOR COLORREF m_fColor

工具栏按钮

3.3 关键功能的实现

1)绘制选择的图形。在直线、矩形以及椭圆的消息处理函数里为shape赋值,选择直线,则shape=1,选择矩形,则shape=2,选择椭圆,则shape=3,在OnPaint()里添加绘图的代码,其中运用3个if语句来绘制不同的图形。当shape=1时执行绘制直线的代码,同理绘制出矩形与椭圆。

2)通过鼠标绘制图形。在视图类里添加WM_LBUTTONDOWN、WM_LBUTTONUP以及WM_MOUSEMOVE消息,在OnLButtonDown()函数里,获取鼠标坐标,将其赋给之前定义作为起点的变量opoint;在OnMouseMove()函数里,把鼠标坐标赋给之前定义作为终点的变量epoint,OnPaint()中绘图的代码中的坐标都得到了,进行绘图;在OnLButtonUp()函数里,进行刷新,显示绘制出的图。

3)改变线宽。定义了默认线宽w=1,在菜单处选择了线宽的值后,对应的值赋给了w,在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w, m_nColor),线宽处用w表示,则改变w的值即改变了画笔的粗细。

4)改变线色。在选择线色时,会弹出系统带的颜色对话框,把选中的颜色给

m_nColor,在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w,

m_nColor),线色处用m_nColor表示,则当 m_nColor改变时,画笔的颜色就会跟着发生变化。

5)改变填充色。选择填充色时,通过颜色对话框选择颜色,选中的颜色赋给

m_fColor,在OnPaint()创建的画刷中,brush.CreateSolidBrush(m_fColor),颜色就是用m_fColor表示的,所以m_fColor是什么颜色,画刷就是什么颜色。

7

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书 4. 结论与心得体会

这次C++程序设计(简单画图程序的实现)的课程设计至此已基本完成,利用这个程序可以在用户区绘制出直线、矩形与椭圆图形,可以自定义线条的颜色以及选择线的宽度,还可以改变图形的填充色。最终设计的程序基本能够达到课设任务书指定的基本功能。

这次课程设计让我收获颇多,感觉很是充实,看到最后程序正常运行时候心里还略有一点小小成就感。在选课题的时候,看到有画图程序这个题目时候,觉得应该有趣一点,不是很枯燥那种,加上平时C++理论课上这种类似的画图程序接触过,老师也讲过类似例子,于是就选择了它。原本以为这个程序制作起来很简单,但是到了开始着手程序设计时候,发现第一步,也就是画出程序流程图,我就不知什么样子的流程图才是任务要求的,在查阅课本以及相关书籍上类似程序流程图实例后,借鉴了例子中的基本框架,然后才画出符合要求的流程图。

当开始用VC进行程序编制时候,创建完工程、编辑好相应菜单选项以及对菜单项添加对应的COMMAND消息出理函数和对应的UPDATE_COMMAND_UI消息函数后,突然思维卡住了,不知道下一步该从何处下手。请教了一下同学才发现自己的问题很低级,在添加完函数后得做的就是在相应消息函数处添加代码来实现其功能。

真正的困难从这时候开始出现了,代码是程序核心部分,自然也是也困难的地方了,在参阅了课本和平时上课的课件之后,自己尝试着编写相应功能的代码,可是编写完某个功能后用VC编译时候,程序便报出许多的错误,其中较大的一些问题在和同学讨论及请教之后得到解决,多数的错误还是属于那种低级的小错误,开始体会到平时一些看起来简单自己编懒得亲自敲打代码实践的小程序在真正做起来也是需要认真细心对待的。在建立完类向导,添加完WM_PAINT消息,以及LBUTTONDOWN、LBUTTONUP、MOUSEMOVE消息,对其进行代码添加时候,最难得部分出现了,自己参照资料所写的代码总是不能运行正确,而且代码不是很精简,冗余

度很大,最终参照着从网上找到的一段代码改写自己代码,最后才得到正常精简的程序代码。

在编程中,遇到过很多问题,有时候好不容易解决掉一个问题,还没来得及高兴就发现这个问题的额解决却衍生出了另外的问题,甚至是一连引发好几个小问题,例如在实现动态画图时,发现每次接着画下一个图形时候,上次以及之前画的图案就全部清空了,修改了相应刷新函数之后,图案是能够保存了,可是动态画图的每一个中间过程也都被一起保留下来了,这一点到最后也没有被解决,这是这次课程设计中最遗憾的一个地方,虽然程序能基本满足要求,但是没能完全满足相应要求。

通过这次课程设计,我学习到了很多,让我感受到之前在理论课程安排的上机试验中,所掌握的实际程序操作都是在表层的,没有深入的程序设计的核心以及整体把握,上机时候我们大部分都是参照着课本以及课件来操作的,所以遇到的问题不多也不大。但这次课程设计是的靠自己来独立操作,需要自己去查阅以及筛选相应的资料来帮助自己完成设计,锻炼我们的独立工作及动手实践能力。让我对VC 中的MFC有了更多的了解及认知。

8

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

5. 参考文献

[1]揣锦华.面向对象程序设计与VC++实践.西安电子科技大学出版社.2005.

[2]Walter Savitch. 完美C++教程.清华大学出版社.2005.

[3](美) Judy Scholl. C++编程:从问题分析到程序设计实验指导书.电子工业出版社.2003.

[4] 夏崇镨, 任海军, 余健. Visual C++课程设计案例精编.清华大学出版社.2008 6. 思考题

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

答:直线、椭圆、矩形绘制使用的函数是OnPaint()。函数里面定义和创建了画笔和画刷,3种图形本身对应的消息处理函数里分别赋给shape不同的值,在OnPaint()里有3个if语句,如果shape=1时,绘制直线,如果shape=2时,绘制矩形,如果shape=3时,绘制椭圆。

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

答:添加UPDATE_COMMAND_UI消息函数,在生成的函数里添加相关代码,如选择直线时,使shape=1,则OnUpdateLine里添加pCmdUI->SetCheck(shape==1),那么当shape的值为1时,即代表选择了直线项,此时菜单中的直线选项前就打勾了,代表选中。

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

答:在资源视图下选择Accelerator,双击IDR_MAINFRAME,打开编辑窗口,双击空白处,在ID下拉列表框中选择需要快捷键的菜单项或工具栏按钮的ID,在键一栏中输入快捷键,选择Ctrl复选框和虚拟键单选按钮即可。 7. 附录

7.1 调试报告

1)在程序第一次运行时候,工具栏线型选定直线,然后发现鼠标在用户区怎么也画不出直线,换作矩形和椭圆也一样,但在菜单绘图里选定线宽之后方能画出图形,后来发现,原理我没有设置默认线宽,于是在“yuyangyiView.cpp”中,添加如下函数及代码:

9

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

CyuyangyiView::CyuyangyiView()

{ w=1; shape=0; }

于是在程序运行时候即便开始不选择线宽,也能画出图形来。

2)要让鼠标来决定图形的起始点,所以定义了起始点opoint和终止点

cpoint,把OnPaint中绘制图形代码的坐标都改成了这2个变量。然后在添加的OnLButtonDown()、OnMouseMove()和OnLButtonUp()中,给这两个变量赋值。接着

我编译运行,确出现了这样的错误,我只要把鼠标左键一按,即使已经马上松开,

鼠标拖动还是会进行绘制,与需要实现的功能不符。于是我添加了一布尔类型的变

量m_Down,代表鼠标的按下与否,当按下时让它为TRUE,在OnMouseMove()里添

加当按下时才执行之前代码的语句。这样画图时,只有鼠标左键按着拖动时,才会

进行绘制。

3)在实现动态画图时候,发现鼠标每次移动时候,所在点都会与原起始点间产

生图形显示出来,效果如图9,后来发现我在在“yuyangyiView.cpp”中的代码段: void CyuyangyiView::OnMouseMove(UINT nFlags, CPoint point)

{ f(m_Down) cpoint=point; Invalidate(0);

CView::OnMouseMove(nFlags, point);} 中多了“Invalidate(0)”一条刷新

句,去掉后程序便正常运行。

10

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图9 错误图样

7.2 测试结果

1) 点击编译、连接、运行后,弹出画图的界面。有添加的菜单和工具栏。如图10。

图10 画图界面

2) 菜单处点击“绘图”,弹出相关选项,点击选择的图形后,被选项前打了个勾,相应的工具栏按钮也显示被按下,在线宽处选择需要线宽,被选项前有圆点,不选默认为1。如图11。

11

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图11 选择图形及相关属性

3) 选择好图形及相关属性后,用鼠标进行绘制。如图12。

图12 绘制图形

4) 继续画多个图形,或改变属性,或改变形状,绘制图形。如图13。

12

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书

图13 绘制多个图形

7.3 关键源代码

1)在“MainFrm.h”中,在class CMainFrame : public CFrameWnd里的protected下定义:

CToolBar m_drawToolBar; //工具栏

2)在“MainFrm.cpp”中,在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

里添加以下代码:

if (!m_drawToolBar.Create(this) ||

!m_drawToolBar.LoadToolBar(IDR_DRAW))

{ TRACE0("Failed to create status bar\n");

return -1;

}

3)在“yuyangyiView.h”中,在class CyuyangyiView : public CView里的public下定义相关变量:

COLORREF m_nColor;

COLORREF m_fColor;

CPoint cpoint;

CPoint opoint;

13

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书BOOL m_Down;

int w;

int shape;

4)在“yuyangyiView.cpp”中,添加如下函数及代码: CyuyangyiView::CyuyangyiView()

{ w=1; //初始线宽默认为1

shape=0;

}

void Cyuyangyi::OnW1() {

w=1; //令线宽为1

}

void CyuyangyiView::OnW2() {

w=2; //令线宽为2

}

void CyuyangyiView::OnW3() {

w=3; //令线宽为3

}

void CyuyangyiView::OnW4() {

w=4; //令线宽为4

}

void CyuyangyiView::OnW5() {

w=5; //令线宽为5

}

void CyuyangyiView::OnUpdateW1(CCmdUI* pCmdUI)

{

pCmdUI->SetRadio(w==1); //当线宽为1时,此选项前标有圆点

14

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书 } void CyuyangyiView::OnUpdateW2(CCmdUI* pCmdUI)

{

pCmdUI->SetRadio(w==2); //当线宽为2时,此选项前标有圆点 }

void CyuyangyiView::OnUpdateW3(CCmdUI* pCmdUI)

{

pCmdUI->SetRadio(w==3); //当线宽为3时,此选项前标有圆点 }

void CyuyangyiView::OnUpdateW4(CCmdUI* pCmdUI)

{

pCmdUI->SetRadio(w==4); //当线宽为4时,此选项前标有圆点 }

void CyuyangyiView::OnUpdateW5(CCmdUI* pCmdUI)

{

pCmdUI->SetRadio(w==5); //当线宽为5时,此选项前标有圆点 }

void CyuyangyiView::OnLine() {

shape=1; //选择直线,则令shape为1

}

void CyuyangyiView::OnRect() {

shape=2; //选择矩形,则令shape为2

}

void CyuyangyiView::OnEllipse() {

shape=3; //选择椭圆,则令shape为3

}

15

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书void CyuyangyiView::OnUpdateLine(CCmdUI* pCmdUI)

{

pCmdUI->SetCheck(shape==1); //shape为1时,直线选项前打上勾 } void CyuyangyiView::OnUpdateRect(CCmdUI* pCmdUI)

{

pCmdUI->SetCheck(shape==2); //shape为2时,矩形选项前打上勾 } void CyuyangyiView::OnUpdateEllipse(CCmdUI* pCmdUI)

{

pCmdUI->SetCheck(shape==3); //shape为3时,椭圆选项前打上勾 } void CyuyangyiView::OnColor() {

CColorDialog Color; // 创建颜色对话框

if(Color.DoModal() == IDOK) // 如果用户点击OK按钮

m_nColor=Color.GetColor(); // 更改颜色,把颜色赋到m_nColor } void CyuyangyiView::OnFillColor() {

CColorDialog FillColor; // 创建颜色对话框

if(FillColor.DoModal() == IDOK) // 如果用户点击OK按钮

m_fColor=FillColor.GetColor(); // 更改颜色,把颜色赋到m_fColor } void CyuyangyiView::OnPaint() {

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

CPen pen; //定义画笔

CBrush brush; //定义画刷

16

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书pen.CreatePen(PS_SOLID,w, m_nColor); //创建画笔

brush.CreateSolidBrush(m_fColor); //创建画刷

dc.SelectObject(&pen); //获取画笔

dc.SelectObject(&brush); //获取画刷

if(shape==1)

{dc.MoveTo(opoint.x,opoint.y);

dc.LineTo(cpoint.x,cpoint.y);} //绘制直线,从opoint到epoint连线if(shape==2)

dc.Rectangle(opoint.x,opoint.y,cpoint.x,cpoint.y); //绘制矩形

if(shape==3)

dc.Ellipse(opoint.x,opoint.y,cpoint.x,cpoint.y); //绘制椭圆

}

void CyuyangyiView::OnLButtonDown(UINT nFlags, CPoint point) {

// TODO: Add your message handler code here and/or call default m_Down=TRUE; //鼠标按下

SetCapture(); //获取坐标

opoint=point; //把鼠标所在坐标赋给起点坐标opoint ReleaseCapture(); //释放坐标

CView::OnLButtonDown(nFlags, point); }

void CyuyangyiView::OnMouseMove(UINT nFlags, CPoint point) {

if(m_Down) //如果鼠标按下

cpoint=point; //把鼠标所在点坐标赋给终点坐标epoint CView::OnMouseMove(nFlags, point); }

void CyuyangyiView::OnLButtonUp(UINT nFlags, CPoint point) {

m_Down=FALSE; //鼠标不按下,即弹起

Invalidate(0); //刷新

CView::OnLButtonUp(nFlags, point); }

17

武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书18

简单画图程序的设计

面向对象程序设计 课程设计报告 设计题目:简单画图程序的设计 学院:信息工程学院 专业:计算机科学与技术(交通)学号: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个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

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