当前位置:文档之家› MFC课程设计 绘制曲线

MFC课程设计 绘制曲线

MFC课程设计 绘制曲线
MFC课程设计 绘制曲线

《MFC编程及应用》课程设计报告

题目:绘制曲线

学号:姓名:

指导老师:杨均匀

时间:2013.6

1、设计步骤

(1)工程建立

建立一个单文档应用程序,命名为简单绘图,在绘制曲线的题目要求上有所扩展,除了绘制二次函数,正弦曲线,余弦曲线,还添加了直线,矩形,椭圆,圆的菜单项,另外有颜色对话框和线型对话框,用于改变颜色,线型和线宽。响应鼠标右键消息绘制坐标轴。

(2)类中添加的变量

a)CCosDialog类:编辑框视图类

int m_acos ac

int m_bcos bc

int m_ccos cc

(m_acos不是必要的,用作余弦函数的系数,类型都为int

形,将变量类型设为double形更好,但并无影响)。

b)CSinDialog类视图类

int m_asin as

int m_bsin bs

int m_csin cs

c)CFunction类

m_afunction a

m_bfunction b

m_cfunction c

d)在CLinedialog中定义了编辑框整型变量m_nlinewidth以及单

选按钮变量m_nlinestyle,在视图类中分别用m_nLineWidth

和m_nLineStyle接收。

e)在视图类中定义m_nDrawType,直线、矩形、椭圆、圆是分

别赋值1、2、3、4,然后在鼠标消息中用switch语句分别响

应。

(3)设计思想及需处理的消息的详细代码

a)首先绘制坐标轴;

void CMy***********View::OnRButtonDown

(UINT nFlags, CPoint point)

{ CRect rc ;

GetClientRect(&rc) ;// 获取窗口客户区的坐标

CClientDC dc(this);

dc.MoveTo(rc.right/4,rc.bottom/2) ;

dc.LineTo(rc.right*3/4,rc.bottom/2) ;

dc.MoveTo(rc.right/2,rc.bottom*2/3) ;

dc.LineTo(rc.right/2,rc.bottom/3) ;

//Crect类的两个数据成员,right、bottom指矩形区域右下角的横纵坐标

}

b)设计对话框IDD_COS,并用CCosDialog类管理,然后

在菜单项下用OnCos() 函数响应;

void CMy***********View::OnCos()

{ CcosDialog dlg;

if(dlg.DoModal()==IDOK)

{ this->ac=dlg.m_acos;

this->bc=dlg.m_bcos;

this->cc=dlg.m_ccos;

CClientDC dc(this);

CRect rect;

this->GetClientRect (&rect);

dc.SetViewportOrg (rect.CenterPoint ());

/* CRect类的成员函数CenterPoint (),返回返回矩形

区域中心的坐标*/

CPen pen(m_nLineStyle,m_nLineWidth,m_clr);

dc.SelectObject(&pen);

dc.MoveTo(0,-50*ac*cos(cc));

for(double x = 0,y;x <300;x+=1)

{ y = -50*ac*cos(bc*x/30+cc);

dc.LineTo (x,y);

Sleep(10);

}

画二次函数和正弦函数的思想与此类似,可以举一反

三。

c)启动窗口最大化

void CMainFrame::ActivateFrame(int nCmdShow)

{ nCmdShow=SW_SHOWMAXIMIZED; //窗口启动最大化CFrameWnd::ActivateFrame(nCmdShow);

}

d)设计菜单项“颜色”,用OnColor()函数响应

void CMy***********View::OnColor()

{ CColorDialog dlg;

dlg.m_cc.rgbResult=m_clr;//设置颜色的初始值

if(IDOK==dlg.DoModal())

//显示颜色选择对话框且当选择OK 之后将

m_clr 的值设置成刚刚选取的颜色

m_clr=dlg.m_cc.rgbResult;

}

e)设计对话框IDD_DIA_LINE,并用Clinedialog类管理。设计菜单项“线条”,并用OnLinestyle()函数响应

void CMy***********View::OnLinestyle()

{ CLinedialog dlg;

dlg.m_nlinewidth=this->m_nLineWidth;

dlg.m_nlinestyle=this->m_nLineStyle;

if(IDOK==dlg.DoModal())

{ this->m_nLineWidth =dlg.m_nlinewidth;

this->m_nLineStyle =dlg.m_nlinestyle;}} 然后每次画图前构造一个Cpen类的对象,并选中。CPen pen(m_nLineStyle,m_nLineWidth,m_clr);

//带的三个参数分别是线型、线宽、颜色dc.SelectObject(&pen);

f)实现画直线、矩形、椭圆和圆

首先响应OnLButtonDown的消息

Void CMy***********View::OnLButtonDown (UINT nFlags, CPoint point)

{ CClientDC dc(this);

this->OnPrepareDC (&dc);

//调整设备上下文的属性覆盖

dc.DPtoLP (&point);

// 该函数将设备坐标转变为逻辑坐标

this->nDrawing =1;

this->m_ptOrigin=point;

this->m_ptOld =point;

}

接着响应OnLButtonUp的消息

void CMy***********View::OnLButtonUp

(UINT nFlags, CPoint point)

{ CClientDC dc(this);

this->OnPrepareDC (&dc);

dc.DPtoLP (&point);

CBrush*pBrush=CBrush::FromHandle

((HBRUSH)GetStockObject(NULL_BRUSH));

//选择透明画刷,避免画多个区域时相互覆盖

CPen pen(m_nLineStyle,m_nLineWidth,m_clr);

dc.SelectObject(&pen);

switch(this->m_nDrawType)

{

……

case 2:

dc.SelectObject(pBrush);

dc.Rectangle(CRect(this->m_ptOrigin,point));

this->nDrawing=0;

break;//矩形

case 3:

dc.SelectObject(pBrush);

dc.Ellipse(CRect(this->m_ptOrigin,point));

this->nDrawing=0;

break;//画椭圆

case 4:

dc.SelectObject(pBrush);

int d=sqrt((point.x-this->m_ptOrigin.x)*

(point.x-this->m_ptOrigin.x)+(point.y-this->m_ptOrigi

n.y)*(point.y-this->m_ptOrigin.y));

dc.Ellipse(CRect((this->m_ptOrigin.x-d),(this->m_ ptOrigin.y-d),(this->m_ptOrigin.x+d),(this->m_ptOrigi

n.y+d)));

this->nDrawing=0;

break;//画圆形,因为没有现成的函数,只能引进变量d做圆形的半径,将圆做特殊的椭圆处理。

}

CLine *pline;

pline=new CLine(this->m_ptOrigin,point);

this->m_ptrarray .Add (pline);

//保存起点与终点,用于重绘

}

响应OnMouseMove消息

void CMy***********View::OnMouseMove

(UINT nFlags, CPoint point)

{ CClientDC dc(this);

dc.SetROP2(R2_NOT);

OnPrepareDC(& dc);

dc.DPtoLP(& this->m_ptOrigin);

dc.DPtoLP(& point);

switch(this->m_nDrawType)

……

case 2:

if(this->nDrawing==1)

{ dc.SelectObject(pBrush);

dc.Rectangle(CRect(this->m_ptOrigin,this->m_ ptOld));

dc.Rectangle(CRect(this->m_ptOrigin,point));

this->m_ptOld=point;

}

break;

case 3:

if(this->nDrawing==1)

{ dc.SelectObject(pBrush);

dc.Ellipse(CRect(this->m_ptOrigin,this->m_ptO ld));

dc.Ellipse(CRect(this->m_ptOrigin,point));

this->m_ptOld=point;}

break;

case 4:

if(this->nDrawing==1)

{ dc.SelectObject(pBrush);

int d=sqrt((point.x-this->m_ptOrigin.x)*

(point.x-this->m_ptOrigin.x)+(point.y-this->m_ptOrigi

n.y)*(point.y-this->m_ptOrigin.y));

dc.Ellipse(CRect((this->m_ptOrigin.x-d),

(this->m_ptOrigin.y-d),(this->m_ptOrigin.x+d),(this->

m_ptOrigin.y+d)));

dc.Ellipse(CRect((this->m_ptOrigin.x-d), (this->m_ptOrigin.y-d),(this->m_ptOrigin.x+d),(this->

m_ptOrigin.y+d)));

this->m_ptOld=point;

}

break;

}

g)接着是美化界面做的工作。

改变标题

在框架类的PreCreateWindow函数下添加

cs.lpszName="简单绘图";

cs.style &=~FWS_ADDTOTITLE;

加载图标:

先将后缀.ico的图标文件移动至resource文件下,并在OnCreate函数下添加如下代码:

SetClassLong(m_hWnd,GCL_HICON,(LONG)Loa dIcon(AfxGetApp()->m_hInstance,MAKEINTRESOU

RCE(IDI_ICON1)));

在状态条中添加时间

现在OnCreate函数添加计时器

SetTimer(1,1000,NULL);

然后添加响应函数WM_TIMER

void CMainFrame::OnTimer(UINT nIDEvent)

{ CTime t=CTime::GetCurrentTime();

CString str=t.Format("%H:%M:%S");

CClientDC dc(this);

CSize sz=dc.GetTextExtent(str);

m_wndStatusBar.SetPaneInfo(4,IDS_TIMER,

BPS_NORMAL,sz.cx);

m_wndStatusBar.SetPaneText(4,str);

CFrameWnd::OnTimer(nIDEvent);

}

在状态栏中显示鼠标的位置

在鼠标移动消息的响应函数中添加:

CString str;

str.Format("x=%d,y=%d",point.x,point.y);

((CMainFrame*)GetParent())->m_wndStatusBar.Set

WindowText(str);

2.遇到的问题及解决办法

a)画坐标轴时原想添加一个菜单项,然后为菜单项添加命令函数,可是运行无反应。然后,我在菜单项的命令函数中给m_nDrawType 赋值为5,先后在lbuttondown、ondraw、lbuttonup消息响应函数中用if语句判断后,添加画坐标轴的代码代码,运行无果,最后我只能去掉坐标轴的菜单项,并添加了rbuttondown消息,直接绘制出坐标轴。

b)窗口启动最大化

在框架类PreCreateWindow(CREATESTRUCT& cs)中,添加:cs.style |= WS_MAXIMIZE;

但没有实现,可能的原因是此种方法不稳定,所以在框架类中添加ActivateFrame函数,在函数中添加如下代码:

nCmdShow=SW_SHOWMAXIMIZED; //窗口启动最大化

CFrameWnd::ActivateFrame(nCmdShow);

c)绘制曲线时,我原想用计时器消息来实现,初始所有变量的定义都是在OnTimer内部,然后发现每次调用这些变量都回复初始值,导致所画一直是直线;后来我把这些变量作为视图类的数据成员来处理,反复调试后终于可以实现功能。

void CMy***********View::OnTimer(UINT nIDEvent)

//DEL { CClientDC dc(this);

//DEL CRect rect;

//DEL this->GetClientRect(&rect);

//DEL dc.SetViewportOrg(rect.CenterPoint());

//DEL int x,y;

//DEL CPen pen(m_nLineWidth, m_nLineStyle,m_clr);

//DEL dc.SelectObject(&pen);

//DEL switch(nIDEvent)

//DEL {

//DEL case 1:

//DEL dc.MoveTo(x0,y0);

//DEL x=i*lx/360.0;

//DEL y=-ly*(a*(i/360.0)*(i/360.0)+b*(i/360.0)+c);

//DEL dc.LineTo(x,y);

//DEL x0=x;

//DEL y0=y;

//DEL i++;

//DEL if(i==360)

//DEL KillTimer(1);

……

但缺憾在于画出图像过大,比如正弦曲线只能汇出周期的一小部分,调整了几个参数的值后,效果不佳,最后改用sleep函数实现。

e)绘制圆形

我希望以起点为圆心,起点到终点的距离作为半径画圆。利用ellipse 实现,需要椭圆约束矩形左上角和右下角的坐标。圆的约束矩形是正方形,起点是正中心,求出半径d,求出两个坐标的大小就很简单了。

3.参考书籍

《VC++深入详解》孙鑫

4.感想

a)我怕自己完不成所以选择了一个简单的题目,原以为很简单的,实现方式老师都讲过了。但实际操作中还是遇到了很多问题,大大小小的,解决的过程比写在报告中曲折复杂的多。没有达到预期的效果时会心有不甘,会反复查看代码,一遍遍的计算,心里一直记挂的,走在路上躺在床上的时候会不断地想哪里出了问题。想不出来的时候会抱怨,真麻烦,早知道不选这个课程了。但如果再让我选一次,我还是会选。因为这是乐趣所在。当然这时候,很有可能所有花费的时间精力都是无用的,懊恼气愤,只能退而求其次,换其它的方法。

b)我自认为听课还蛮认真的,可上机的过程中(周一下午有课,我一直都是晚上去的),还是会遇到各种各样的问题,都是一个个细节,可能一不注意就出错了,但错过之后感觉就深刻多了。

c)极其后悔没多认识几个一起上课的人,有问题的时候连个讨论的人都没有。讨论的过程中,他人未必能给予自己答案,但是思维的碰撞总能激发出一些新的东西。

f)虽然上课结束了,课程设计业结束了,可我还有不少疑惑,如果发邮件问问题,希望能得到你的解答。

老师,你上课讲的很好,谢谢!

VB图书管理系统 课程设计报告

VB语言程序设计课程设计报告 系 (部) 专业班级 学生姓名 学号/序号 指导教师 完成时间

图书管理系统 一、功能描述 使用VB6.0中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等),建立了这个简易的图书管理系统,方便图书管理人员对图书的管理。用户可以通过此系统的添加、删除,还回,借出等功能对书籍信息、书籍流通进行编辑同时也可以通过直接输入想要查询的书籍信息来获得书籍的流通及库存等相关信息。 二、概要设计 1、系统功能模块框图设计 首先程序运行,出现一个MDI主窗体,里面分别有登录,书籍信息管理系统,退出三个菜单选项,登录前,管理按钮不可用,当正确输入用户名以及密码以后,点管理按钮,图书管理窗体显示,用户可对图书信息进行管理。 2、数据库设计 创建一个数据库为mydb.mdb,该数据库共包含3张表,分别为“书籍信息表”、“图书归还表”和“图书借出表”,表结构如下:

书籍信息表:图书编号、图书名、作者、出版社、数量、出版日期、价格 图1. 书籍信息表 图书归还表:图书编号、图书名、作者、出版社、数量、图书是否损坏、借出日期、归还日期; 图2. 图书归还表 图书借出表:图书编号、图书名、作者、出版社、借出数量、借出时间、联系电话、借出期限、借出者姓名。 图3. 图书借出表

三、详细设计 1、MDI主界面 用户登录模块中登录与取消两按钮,单击登录会进入系统进行下一步的操作,用户名文本框与数据库相连接,当在用户名文本框输入用户名后点击登录按钮后,会在数据库中进行查询看数据库中是否会有该用户名,且该用户名的密码是否与密码框中输入的相同,如果相同会进入系统,如果不存在该用户名或密码与用户名不相匹配,则会提示“密码错误”,用户名文本框会得到焦点,让重新输入。 (1)窗体截图(如图5.1) 图1 MDI主界面

排序演示 vb课程设计论文

成绩南京工程学院课程设计报告(论文) 题目排序演示 课程名称程序设计基础---VB 院(系、部、中心)先进制造技术工程中心 专业机械制造及其自动化 班级D机加工091 学生姓名钱丽 学号231090406 设计地点图书馆A307 指导教师黄陈蓉 设计起止时间: 2011 年 1月4 日至 2011 年 1月 6日

目录 一、设计任务 (3) 二、总体设计思路 (4) 三、画出程序总体框图 (4) 四、系统的调试 (6) 五、收获体会 (8) 六、源代码 (9) 七、主要参考资料 (23)

一、设计任务 (1)程序启动后,显示主界面。首先单击“产生10个随机数”按钮来产生10个随机数,并显示在10个文本框中;然后选择一种“演示模式”和“排序方式”,其中演示模式可以直接给出排序结果,也可以通过动画动态演示整个排序过程,排序方式可以按从小到大顺序,也可以按从大到小顺序排序。 (2)在主窗口的空白区单击鼠标右键,弹出快捷菜单。从中选择“排序算法”命令,打开对话框,从中选择一种排序方式,单击不同排序方式时,“算法描述”中简要介绍了这种算法。单击“确定”按钮返回到主窗口,主窗口中最上方框架控件的标题文字显示当前所选的排序算法。 (3)设置完毕,单击“开始排序”按钮(此按钮在生成数据之前是不可用的),启动排序过程。若选择了动画方式,红色背景的文本框表示当前正在比较的元素,黄色的代表已排序的元素,2个运动的文本框表示交换过程。在排序过程中可以调节水平滚动条的位置来控制演示过程的速度。排序结束后程序以消息框的形式报告数据交换的次数。可以使用快捷菜单中的“将数据写入文件”命令将排序后的数据保存到“data.txt”中覆盖原有内容。 (4)选择窗口主菜单中的“颜色设置”命令,主窗口扩大,底部显示“颜色设置”框架,可以对“文本背景色”、“文本前景色”、“已排序元素色”和“交换结点色”进行设置。再选择此命令,窗口恢复到原来的大小。(5)选择主菜单中的“退出”命令可退出本程序,程序显示消息对话

VB课设报告

沈阳航空航天大学 课程设计任务书 学院:机电工程学院专业:机械设计制造及其自动化班级:94060106 学号:2009040601204 题目:简单的汽车站售票系统 一、课程设计时间 2011年3月14日~20日(第二周),共计一周。 二、课程设计内容 假设每天“沈阳→植物园”有4个班次的汽车,具体的数据如下: 班次发车时间载客量已售票数 1 06:40 50 0 2 09:30 40 0 3 13:00 40 0 4 16:00 40 0 数据保存在文本文件或Access数据库中,请你为售票员开发一个程序,实现每天的“沈阳→植物园”的售票、退票等业务。要求:售票时按旅客要求选择班次,如果某个班次已过了发车时间,则该班次今天不再售票,如果某个班次的票已售完,则也不能再售票。 用户界面中的菜单至少应包括“售票”、“退票”、“显示当前售票情况”、“退出”4项。 三、课程设计要求 程序质量: ?贯彻事件驱动的程序设计思想。 ?用户界面友好,功能明确,操作方便;可以增加其它功能或修饰。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 课程设计说明书: ?课设结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语

目录 需求分析 (4) 设计分析 (4) 技术要点 (6) 主要界面截图 (7) 总结 (9) 完整的源程序 (10) 参考文献 (15)

需求分析 介于乘客买票十分麻烦,需要开发一套自动的售票系统,实现乘客自主的买票,退票,查询,为乘客创造方便。 设计分析 (1)概述: 本次设计涉及到数据库系统,SQL查询语言,ADO数据控件技术,实现了用户买票,退票,售票查询等功能,并且在售票界面,根据时间判断车次是否已经发车,且在查询系统中可以显示售票情况。 (2)总体设计: 汽车站售票系统应该有一个主界面,在主界面下,应该有售票界面,退票界面和查询界面。 (3)详细设计:

vb课程设计心得体会范文

vb课程设计心得体会范文 vb课程设计心得体会范文 vb课程设计心得体会范文1 经过近一个月的设计与制作,我们组的《20xx世界杯观战指南》终于完成了,现将过程中遇到的问题、获得的体会记录如下。 这次数据库课程设计中我主要负责用户登录、注册及数据库维护方面的设计。 1.Delphi是一款功能很强大的软件,其控件之多超出了我的想象,因此在运用时要借助很多资料。要学会查找和利用现有资料来解决问题 2.在设计中用到了很多SQL语句,因此对SQL及程序语句地掌握也是必不可少的。 3.后期的软件制作都是以前期的工作为基础的,因此在前期的需求分析及数据库设计阶段要认真、细致。 4.我们是三个人的小组,在设计过程要互相协调,合作。这样才能充分发挥每个人的作用。 vb课程设计心得体会范文2 首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的。Visual指的是可视的图形用户界面开发方法。不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏

幕上的某点即可。如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧。 BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的语言之一。VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言。其特点是概念多,实践性强,涉及面广。 之后,了解到一些基本的概念,含义。例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义。而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等。但我们在建立之前必须清楚对象的三要素:属性,方法和事件。而建立程序的步骤大致可分为: (1)启动程序,装载和显示窗体。 (2)窗体等待事件的发生。 (3)事件发生时,执行对应的事件发生过程。 (4)再重复(2)(3)的过程(5)最后直接遇到“END”结束语句结束程序的运行或按“结束”强行停止程序的运行。 再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象。而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本

学画曲线图形

学画曲线图形 教学目标: 一、操作目标: 1、学会用“曲线”工具绘画出带一个或两个弯的光滑曲线。 2、学会用“文字”工具为图画填加文字。 3、利用学过的工具结合“曲线”、“文字”工具画组合图形。 二、能力目标: 培养学生的观察能力、动手能力、想象能力、创造能力及审美能力。 三、情感目标: 激发学生的学习兴趣,培养学生热爱科学技术的情感。 教学重点:“曲线”工具及“文字”工具的用法。 教学难点:利用“曲线”工具及“文字”工具画组合图形。 教学过程: 一、导入新课:(出示幻灯片) 1、作品欣赏:首先让学生欣赏用画图软件做的作品,以引起学生的学习兴趣。然后启发学生试想用手画能否画出 美丽的作品,借以来引入画图软件并介绍它的好处。 2、教具:计算机。 二、讲授新课: (一)利用多媒体电子教室摇控演示,讲授用“曲线”工具画柳树的方法。

3、开始→程序→附件→画图。 4、认识“曲线”工具并画柳树。 (二)、操作方法: (1)从工具箱中,单击曲线工具。 (2)选黑色为前景色,选喜欢的线条宽度。 (3)将光标移入绘图区。按住鼠标左键固定曲线的一段,拖动光标,一条柔性线从固定延伸到鼠标处,当柔性线达到需要的位置时,松开鼠标左键,就出现了一条黑色细线。光标移到细线中间的部位上,按下鼠标左键,并向右拖动光标,把原来的直线调整为曲线。 (4)单击这条细线的结束端点,一条以我们选定颜色和线宽的曲线就出现了。用同样的方法画出树干。 (5)将绿色改为前景色。用画树干的同样的方法画出所有柳条。 (6)在柳条上,用两条很短的曲线,画出树叶,其中一条曲线向上弯,另一条向下弯,两条曲线开始和结束的端点是相同的,(7)用上述方法画出若干片树叶。 如图所示: 5、学生上机操作。 (三)、好的学生作品摇控演示给学生们看。以鼓励学生学习热情。

VB课程设计总结

通过几周对VB的学习,使我增加了对VB课程的了解. 首先了解到VB的特点,VB是在原来的Basic语言基础上发展而来的.Visual指的是可视的图形用户界面开发方法.不需编写大量代码去描述界面元素的外观和位置,只要把预先建立的对象添加到屏幕上的某点即可.如果使用者诸多PAINT之类的绘图程序,则实际上已经掌握了创建用户界面的必要技巧.BASIC指的是B语言,一种在计算机技术发展历史上应用得最为广泛的语言之一.VB在原来BASIC语言的基础上进一步发展至今包含了数百条语句,函数及关键词,其中很多和WINDOWS GUI有直接关系,VB不仅是可视语言,而且是面向对象的编程语言.其特点是概念多,实践性强,涉及面广. 之后,了解到一些基本的概念,含义.例如类,就是创建对象实例的模板包含了创建的属性描述和行为特征的定义.而此中的对象又是类的一个实例,继承了类的属性,方法,而VB中长用的对象有窗体,控件等.但我们在建立之前必须清楚对象的三要素:属性,方法和事件.而建立程序的步骤大致可分为:(1)启动程序,装载和显示窗体.(2)窗体等待事件的发生.(3)事件发生时,执行对应的事件发生过程.(4)再重复(2)(3)的过程(5)最后直接遇到"END"结束语句结束程序的运行或按"结束"强行停止程序的运行. 再用VB创建一个应用程序,第一步骤是创建窗体,它是用户与应用程序进行交互操作的可视部分,窗体是创建界面的基本构造模块,也是创建应用程序所使用的对象.而后必要设置窗体的属性,从而构出窗体的外观,设置好的窗体,窗体就作为对象,能够对其定义的事件作出响应,这也是所谓的窗体事件,而窗体事件又包括窗体本身事件,键盘事件和鼠标事件.在了解窗体基本知识就还应了解VB的语言基础,其中包括了代码模块(窗体模块,标准模块,类模块),注释,分行和续行,数据类节(字节型,逻辑型,数值型,日期型),变量与常数,运算符与表达式,数组,控制结构,子过程和函数.同时,为了编程,我们还应培养良好的编程习惯,首先是对象,变量及过程的命名约定,然结构化编码约定. 在VB中创建应用程序之际也就是和对象打交道之时,对象是代码和数据的组合,可以作为一个单位来处理,对象可以是应用程序的一部分,比如可以是控件,窗体,或数据访问对象.控件也是对象中的一种,主要用来获取用户的输入信息和显示输出信息.应用程序中可用的控件包括文本框,命令按扭和列表框.而通过另外一些控件可以访问其他应用程序并处理数据. VB程序设计同时可设计出一个更好的菜单系统,这样就可以使用户了解到更大量有关应用程序设计和结构的信息,精心规划菜单与工具栏有助于提高应用程序的可用性.同时在基于WINDOWS的应用程序中,对话框被用来提示应用程序继续运行所需的数据或者用户显示信息.对话框是一种特殊类型的窗体对象,在VB中按对话框的创建有三种类型的对话框,他们是

EXCEL表画曲线图方法

函数画曲线的方法用Excel引用1.用Excel 函数画曲线图的一般方法 因为Excel有强大的计算功能,而且有数据填充柄这个有力的工具,所以,绘制曲线还是十分方便的。用Excel画曲线的最大优点是不失真。大体步骤是这样的:⑴用“开始”→“程序”→“Microsoft office”→”Excel”,以进入Excel窗口。再考虑画曲线,为此: ⑵在A1 和A2单元格输入自变量的两个最低取值,并用填充柄把其它取值自动填入; ⑶在B列输入与A列自变量对应的数据或计算结果。有三种方法输入: 第一种方法是手工逐项输入的方法,这种方法适合无确定数字规律的数据:例如日产量或月销售量等; 第二种方法是手工输入计算公式法:这种方法适合在Excel的函数中没有列入粘贴函数的情况,例如,计算Y=3X^2时,没有现成的函数可用,就必须自己键入公式后,再进行计算; 第三种方法是利用Excel 中的函数的方法,因为在Excel中提供了大量的内部预定义的公式,包括常用函数、数学和三角函数、统计函数、财务函数、文本函数等等。 怎样用手工输入计算公式和怎样利用Excel的函数直接得出计算结果,下面将分别以例题的形式予以说明; ⑷开始画曲线:同时选择A列和B列的数据→“插入”→“图表”→这时出现如下图所示的图表向导: 选“XY散点图”→在“子图表类型”中选择如图所选择的曲线形式→再点击下面的‘按下不放可查看示例'钮,以查看曲线的形状→“下一步”→选“系列产生在列”→“下一步”→“标题”(输入本图表的名称)→“坐标”(是否默认或

取消图中的X轴和Y轴数据)→“网络线”(决定是否要网格线)→“下一步”后,图形就完成了; ⑸自定义绘图区格式:因为在Excel工作表上的曲线底色是灰色的,线条的类型(如连线、点线等)也不一定满足需要,为此,可右击这个图,选“绘图区格式”→“自定义”→“样式”(选择线条样式)→“颜色”(如果是准备将这个曲线用在Word上,应该选择白色)→“粗细”(选择线条的粗细)。 ⑹把这个图形复制到Word中进行必要的裁剪; ⑺把经过裁剪过的图形复制到Word画图程序的画板上,进行补画直线或坐标,或修补或写字,“保存”后,曲线图就完成了。 2.举例 下面针对三种不同的情况举三个例子说明如下: 例1. 下图是今年高考试题的一个曲线图,已知抛物线公式是Y=2X^2 ,请画出其曲线图。 因为不能直接利用Excel给出的函数,所以,其曲线数据应该用自己输入公式的方法计算出来,画图步骤如下: ⑴用“开始”→“程序”→“Microsoft Office”→”Excel”进入Excel界面;首先画抛物线,为此: ⑵在A1单元格输入“-10”;在A2单元格输入“-9”,并用填充柄把自变量的取值拖到“10”。具体方法是:选择A1和A2单元格,并把鼠标指针拖到A2单元格的右下角,使鼠标指针变成细十字型时,按住鼠标往下拖,直至出现”10”为止。这样,就把自变量x的取值都列出来了; ⑶利用输入公式的方法求出函数值,并把结果列在B列上与A列的自变量相对应的位置。为此:单击选定单元格B1→单击编辑区的空格,在空格栏出现竖直形状指针后,输入“= 2*A1^2”(见下图,这是计算机能认识的公式,且等号和乘号都不可省)→回车→这时在B1单元格将出现数值“200”→用填充柄把B列的数据填满。

VB程序设计课程设计报告完整版

V B程序设计课程设计 报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

《VB程序设计》 课程设计报告(2016 — 2017 学年第 1 学期) 题目:排序演示 学院:经济与管理学院 班级:物流管理1502 学号: 姓名: 指导教师:阮冰 时间:起 2017年1月3日止 1月6日

一、课程设计基本信息 课程代码:05190124 课程名称:计算机基础课程设计 课程英文名称: Computer-based Course Design 课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群 课程面向专业:生物科学类、制药工程、制药工程(生物制药)、药物制 剂、物流管理 课程类型:必修课 先修课程:大学计算机基础通识选修课程、Visual Basic程序设计课程学分:1 总学时:16 二、课程设计目标 掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 3.系统设计编程简练,可用,功能全面,并有一定的容错能力。用户界面良好,有较好的输出功能。在完成课题基本要求后,具有创新型设计,具有一定的实用价值。 4.根据个人的设计调试过程,撰写设计报告。 三、课程设计内容 利用已掌握的VB程序设计语言基础,以及面向对象的程序设计方法、事件驱动的编程方式,进行应用程序和系统的开发设计。在强化巩固已有编程知识基础之上,训练新的设计与编程思路,通过综合应用所学知识设计、编制、调试实用的Visual Basic程序。 四、课程设计要求 1.要求每个同学都要认真对待,积极参与。 2.课程设计结束时,提交完成的所有源程序、相关文件和可执行文件。同 时填写并完成《课程设计报告册》。 3.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计 中完全未参与的将作不及格处理。 五、考核方式

EXCEL曲线图

引用用Excel函数画曲线的方法1.用Excel函数画曲线图的一般方法 因为Excel有强大的计算功能,而且有数据填充柄这个有力的工具,所以,绘制曲线还是十分方便的。用Excel画曲线的最大优点是不失真。大体步骤是 这样的: ⑴用“开始”→“程序”→“Microsoft office”→”Excel”,以进入Excel窗口。再考虑画曲线,为此: ⑵在A1 和A2单元格输入自变量的两个最低取值,并用填充柄把其它取值自动填入; ⑶在B列输入与A列自变量对应的数据或计算结果。有三种方法输入: 第一种方法是手工逐项输入的方法,这种方法适合无确定数字规律的数据:例如日产量或月销售量等; 第二种方法是手工输入计算公式法:这种方法适合在Excel的函数中没有 列入粘贴函数的情况,例如,计算Y=3X^2时,没有现成的函数可用,就必须自己键入公式后,再进行计算; 第三种方法是利用Excel 中的函数的方法,因为在Excel中提供了大量的 内部预定义的公式,包括常用函数、数学和三角函数、统计函数、财务函数、 文本函数等等。 怎样用手工输入计算公式和怎样利用Excel的函数直接得出计算结果,下 面将分别以例题的形式予以说明; ⑷开始画曲线:同时选择A列和B列的数据→“插入”→“图表”→这时出现如下图所示的图表向导:

选“XY散点图”→在“子图表类型”中选择如图所选择的曲线形式→再点击下面的…按下不放可查看示例?钮,以查看曲线的形状→“下一步”→选“系列产生在列”→“下一步”→“标题”(输入本图表的名称)→“坐标”(是否默认或取消图中的X轴和Y轴数据)→“网络线”(决定是否要网格线)→“下一步”后,图形就完成了; ⑸自定义绘图区格式:因为在Excel工作表上的曲线底色是灰色的,线条的类型(如连线、点线等)也不一定满足需要,为此,可右击这个图,选“绘图区格式”→“自定义”→“样式”(选择线条样式)→“颜色”(如果是准备将这个曲线用在Word上,应该选择白色)→“粗细”(选择线条的粗细)。 ⑹把这个图形复制到Word中进行必要的裁剪; ⑺把经过裁剪过的图形复制到Word画图程序的画板上,进行补画直线或坐标,或修补或写字,“保存”后,曲线图就完成了。 2.举例 下面针对三种不同的情况举三个例子说明如下: 例1. 下图是今年高考试题的一个曲线图,已知抛物线公式是Y=2X^2 ,请画出其曲线图。 因为不能直接利用Excel给出的函数,所以,其曲线数据应该用自己输入公式的方法计算出来,画图步骤如下:

VB学生信息管理系统课程设计报告

专业实践 课 程 设 计 报 告 班级:08计科一班 姓名:*** 学号:*************

学生信息管理系统 1.需求分析: 随着学校的规模不断扩大,学生人数急剧增加,有关学生的各种信息也成倍增长。面对庞大的信息量需要有学生管理系统来提供学生管理工作的效率。通过这样的系统可以做到信息的规范管理,科学统计和快速查询,修改,增加,删除等,从而减少管理方面的工作量。实现学生信息关系的系统化,规范化,自动化,用计算机对学生各种信息进行日常管理。 本系统主要包括学生信息查询和信息添加等功能,来初步实现学生信息的计算机化管理,更多相关功能有待以后慢慢完善。 2.系统功能: 本学生信息管理系统采用的语言是Visual Basic,用SQL Sever 2000数据库完成,有以下功能: (1)有较好的权限管理; (2) 原始数据修改简单方便,支持多条件修改; (3)方便的数据查询,支持多条件查询. 2.1采用Visual Basic有以下特点: 2.1.1可视化编程 Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。 2.1.2结构化程序设计语言 Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。

VB课程设计报告

课程设计(论文)任务书 机电学院专业班 一、课程设计(论文)题目:数学宝典 二、课程设计(论文)工作自20 年 1 月4日起至 20 年1 月 8 日止 三、课程设计(论文) 地点: 计算中心机房 四、课程设计(论文)内容要求: 1. 本课程设计的目的 (1)掌握VB语言的数据类型和各种语句、各种控件和函数的使用; (2)培养学生独立设计算法、编写调试程序的能力; (3)培养学生分析、解决问题的能力; (4)提高学生的科技论文写作能力。 2. 课程设计的任务及要求 设计一个提供计算多项数学问题的程序,至少包含3个数学问题(例如求1!+2!+3!+……+n!;用公式计算e的近似值;)用户可自行选择计算的问题。 1)基本要求: (1)贯彻事件驱动的程序设计思想; (2)要求界面设计简洁、美观、实用; (3)编程、调试、运行结果正确; (4)给程序做出必要的注释,以增强程序的可读性。 (5).提供条件控制功能,如计算e的近似值时要将精度控制在10-9,(键盘提示出n 的取值范围)防止计算结果溢出; 2)创新要求: 在基本要求达到后,可进行创新设计,可以对界面或内容进行创新,界面友好,人性化,内容新颖。 3) 课程设计报告撰写及装订要求

课程设计报告的撰写要求语句通顺,格式规范,图文并茂。 报告按如下内容和顺序用A4纸进行打印并装订成册。 (1)封面 采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。 (2)设计任务书 (3)评阅书 (4)目录 (5)正文 (6)主要参考文献 4) 课程设计评分标准: (1)考勤与课程设计态度:20分; (2)完成设计过程:40分; (3)完成调试:20分; (4)论文质量:20分。 5)参考文献: (1)吴昊 .《VB程序设计教程》中国铁道出版社 (2)龚沛曾《VB程序设计简明教程》高等教育出版社 (3)王栋《VB程序设计实用教程》清华大学出版社 6)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 编程与调试3实验室 撰写论文1图书馆、实验室 学生签名: 年月日

vb课程设计报告心得感想.doc

vb课程设计报告心得感想 vb课程设计报告心得感想篇1 在课程设计过程中,虽然我对程序设计不是很熟悉,但是通过老师详细的讲解,我按照步骤去做,遇到问题的时候先自己想办法解决,解决不了的就去问同学,问老师,通过这种学习,收获很大,学会了自己解决棘手问题,知道了团结的力量。 刚开始做程序的时候,就是完全按照老师的要求,老师的步骤去做的,结果却发现,怎么运行不了?明明是按照老师的步骤去做的,明明是按照老师的要求去做的,但是就是会遇到一些问题使程序运行不了。开始也没有管那么多,仍然是按照课本上的去做。 第一次,在上机课的时候,我根据老师讲的,在机房里做了一次,但没有做完。于是把东西存在了自己的MP3里面,以便以后上机的时候再来做。但真的没有想到,我的MP3,在一次上电子阅览室的时候,忘了拔了。于是乎,我辛辛苦苦做了一大节课的程序就这样没了。心里真的很不舒服,但是,不舒服归不舒服,这个程序,还是得继续做下去,这么以点点小小的失误不算什么,然后跑到学校机房,继续我的VB程序设计。但由于时间问题,做的还是有点粗糙,还是不免存在一定的问题,比如说开始的时候打开不了文件,总是出现错误,自己总也找不出来,后来请教了一下同学,结果发现时代码的编写出现了错误,把代码改过来之后,程序终于可以打开运行了。然后,检查的时候,又发现查找运行错误,又是代码那里出现的黄色的字样,结果发现,是代码拼写错误,于是,拿着同学的代码对比一下,发现了错误所在之地,然后更正了过来。 经过一番努力,程序终于做完了。 后来,室友看了我的程序,她说运行不了的,就是出现了错误,出现了错误,就应该改过啊,这时的我才恍然大。是错误,那么就要改正的! 于是当天,我就去了学校机房,再一次运行我的程序,仍然出现错误情况,需要调试,我回忆起上课的时候,老师是怎么跟我们讲的,哪里出现了错误,需要怎么样改正。于是,我就耐着性子,一个一个,一个一个得改正,编辑代码,一个一个得检查,终于完成了。完成之后,我在运行一下,一切正常,心里终于舒了一口气。经过这次的VB程序设计,让我知道了更多学习的方法。具体如下:(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习.第二,克服畏难情绪,树立学好程序设计的信心(2)要了解概念:VB程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多.要真正能进行程序设计,就要深入理解这些概念.应该重视概念的学习. (3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法.因此我们得多动手编写程序,逐渐提高写程序的能力.自己动手,编写一些程

vb课程设计报告书

《安全信息管理系统》课程设计报告书 题目:建筑施工安全信息系统 专业:计算机应用技术 学生姓名:xx 学号: 完成时间:2013年6月

目录 《安全信息管理系统》课程设计报告书 1.课程设计计划 2.系统需求分析与功能设计 3. 总体设计 4. 数据库设计 5. 程序模块设计 6. 技术难点与分析 7. 系统测试 8. 心得体会 9. 参考文献

1.课程设计计划 本课程设计任务是通过学生信息管理系统的设计与实现,将所学的数据库系统概论理路结合实际课程任务,进一步学习数据库系统的设计与开发,提高实践动手能力,系统使用Visual Basic 6.0和Access 2000等软件作为开发工具,通过调研目前建筑施工安全,了解管理的业务流程;通过分析比较,结合用户对系统的改进意见与实现情况,运用面向对象思想方法,设计和实现一个满足功能和性能,并有所创新的施工安全信息管理系统,以提高管理系统的自动化、友好性等。 通过对建筑施工安全信息管理系统的了解,把整个系统划分为职工信息、事故信息、日常检查记录、事故统计四大模块。在各个模块下,分别建立信息添加、相应信息维护及打印功能,使安全信息管理人员工作方便快捷。 课程设计步骤与计划如下: (1)确定设计题目:建筑施工安全信息管理系统的设计与开发。 (2)需求分析:分析系统需要实现什么样的功能。 (3)程序设计:根据需求分析的结果,进行界面及编程设计。 (4)程序检验:对编好的程序进行测试,校对。 (5)程序改进:对校正后的程序进行改正,试行。 (6)编写报告:编写建筑施工安全信息管理系统设计报告书。

2.系统需求分析与功能设计(根据课题的要求进行简单的需求分析,设计相应的数据流图,得出相应的系统功能需要, 系统数据流图) 2.1建筑施工安全信息管理数据库系统的需求分析 2.1.1功能需求分析 (1)用户管理 为了保证数据库中的数据不被泄露或破坏,登录界面要设计直观,操作简单,友好而且使用方便。尽量使用户输入的数据最少,具有人机亲和力,做到画面尽可能接近实际,界面保持一致,让用户始终用同一种方式思考和操作。 (2)职工信息管理功能 职工信息的管理,并对其进行必要的维护工作,这主要包括了职工编号、部门、工作时间、工种等信息在内的基本信息的输入、修改以及查询。 (3)事故信息管理及统计功能 实现施工单位对不同事故类型的管理,并能够按照实际情况不断更新。界面要求一目了然,并且根据年份或者事故类型作出统计图表,可

VB计算程序课程设计报告

测试与光电工程学院 课程设计任务书 测控技术与仪器系100813班学号10081329 姓名吴辉 课程名称:用最小二乘法求拟合曲线 课题要求: 利用VB语言编程实现对给定离散点的拟合(不小于10个)的拟合 用最小二乘法求数据的拟合曲线。要求有良好的输入、输出界面,输出应包含直线方程并图形显示拟合效果。完成软件的整体设计。 课题进程: 1)熟悉VB编程语言、最小二乘法算法分析3天 2)编写程序实现以上功能3天 3)软件调试、测试2天 4)撰写课程设计报告2天 指导老师:杨琳瑜 目录 摘要---------------------------------------------------------------------------------------- 2 第一章最小二乘法 -------------------------------------------------------------------- 2 1) 理论依据 ----------------------------------------------- 错误!未定义书签。 2) 线性拟合分析 ----------------------------------------- 错误!未定义书签。 3) 非线性拟合分析 --------------------------------------------------------------- 5

第二章系统设计 ----------------------------------------------------------------------- 5 1) 采用的软件及开发平台 ------------------------------------------------------ 5 2) 项目的总体方案 --------------------------------------------------------------- 5 3) 项目的详细设计 --------------------------------------------------------------- 6 第三章设计实现 ---------------------------------------------------------------------- 10 1) 主要功能模块的具体实现 -------------------------------------------------- 10 2) 主要技术问题或难题的解决方法------------------------------------------ 10 3) 亮点或创新点的实现 -------------------------------------------------------- 11 第四章结束语 ------------------------------------------------------------------------- 11 参考文献--------------------------------------------------------------------------------- 12 附录--------------------------------------------------------------------------------------- 13 摘要 最小二乘法最早是由高斯提出的,这是数据处理的一种很有效的统计方法。高斯用这种方法解决了天文学方面的问题,特别是确定了某些行星和彗星的天体轨迹。这类天体的椭圆轨迹由5个参数确定,原则上,只要对它的位置做5次测量就足以确定它的整个轨迹。但由于存在测量误差,由5次测量所确定的运行轨迹极不可靠,相反,要进行多次测量,用最小二乘法消除测量误差,得到有关轨迹参数的更精确的值。最小二乘法近似将几十次甚至上百次的观察所产生的高维空间问题降到了椭圆轨迹模型的五维参数空间。 最小二乘法普遍适用于各个科学领域,它在解决实际问题中发挥了重要的作用。它在生产实践、科学实验及经济活动中均有广泛应用。比如说,我们引入等效时间的概念,根据Arrhenius函数和指数函数研究水化热化学反应速率随温度的变化,最后采用最小二乘法回归分析试验数据,确定绝热温升和等效时间的关系式。

excel画曲线图攻略(2007版本)

正态分布函数的语法是NORMDIST(x,mean,standard_dev,cumulative)cumulative为一逻辑值,如果为0则是密度函数,如果为1则是累积分布函数。如果画正态分布图,则为0。 例如均值10%,标准值为20%的正态分布,先在A1中敲入一个变量,假定-50,选中A列,点编辑-填充-序列,选择列,等差序列,步长值10,终止值70。然后在B1中敲入NORMDIST(A1,10,20,0),返回值为0.000222,选中B1,当鼠标在右下角变成黑十字时,下拉至B13,选中A1B13区域,点击工具栏上的图表向导-散点图,选中第一排第二个图,点下一步,默认设置,下一步,标题自己写,网格线中的勾去掉,图例中的勾去掉,点下一步,完成。图就初步完成了。下面是微调把鼠标在图的坐标轴上点右键,选坐标轴格式,在刻度中填入你想要的最小值,最大值,主要刻度单位(x轴上的数值间隔),y轴交叉于(y为0时,x多少)等等。确定后,正态分布图就大功告成了。 PS:标准正态分布的语法为NORMSDIST(z), 正态分布 (一)NORMDIST函数的数学基础 利用Excel计算正态分布,可以使用函数。 格式如下:变量,均值,标准差,累积, 其中: 变量:为分布要计算的值; 均值:分布的均值; 标准差:分布的标准差; 累积:若1,则为分布函数;若0,则为概率密度函数。 当均值为0,标准差为1时,正态分布函数即为标准正态分布函数 。 例3已知考试成绩服从正态分布,,,求考试成绩低于500分的概率。 解在Excel中单击任意单元格,输入公式: “500,600,100,1 ”,

得到的结果为0.158655,即,表示成绩低于500分者占总人数的15.8655%。 例4假设参加某次考试的考生共有2000人,考试科目为5门,现已知考生总分的算术平均值为360,标准差为40分,试估计总分在400分以上的学生人数。假设5门成绩总分近似服从正态分布。 解设表示学生成绩的总分,根据题意,,。 第一步,求。 在Excel中单击任意单元格,输入公式: “ ”, 得到的结果为0.1587,即,表示成绩高于400分者占总人数的15.87%。 第二步,求总分在400分以上的学生人数,为(人)。 (二)正态分布函数的上侧分位数 利用Excel计算正态分布的上侧分位数,可以使用函数。 格式如下:概率,均值,标准差。 例5已知概率,均值,标准差,求函数的值。 解设,根据题意有,求的值。 在Excel中单击任意单元格,输入公式: “ ”,得到的结果为400,即

VB课程设计报告——拼图游戏

VB课程设计报告 -------拼图游戏 马学清1008260132 指导老师:张小兵 一、题目介绍 “拼图”是一种老少皆宜、容易上手的益智类小游戏。指定一幅完整的图片,将其分割成小的图块,并且打乱顺序后重新排列,其中有一块没有任何东西的“空档”,使用鼠标单机与空档相邻的图块,使该图块与空档位置互换,利用空档位置移动各图块,最终恢复图片原样,完成拼图。移动的步数越少则表明游戏者的水平越高。游戏过程中用参考图来获得帮助查找每图块的相对正确的位置 。 二、功能要求 1.指定一幅图片,将其分割成m × n 小图块,并且打乱顺序后重新排列,其中有一块没 有任何东西的“空挡”。 2.使用鼠标单击与空挡相邻的图块,使该图块与空挡的位置互换。 利用空挡位置移动各图块,最终恢复图片原貌,完成拼图。移动的步数越少则说明游戏者的水平越高。游戏过程中用参考图来获得帮助查找每图块的相对正确的位置 3. 三、程序设计 概述: (1)PictureClip 控件来管理打开图片并将其分为指定的行列图块,其Picture、Rows、Cols等属性值应在程序中设定。 (2)使用image控件数组来显示图块,设计时只需在窗体上放置一个image控件并将其的index设为0 ,其他的用load语句加载。 (3)“打开图片”和“颜色”对话框Commondialog控件实现。设置其filter属性使之只能打开bmp和jpg类型的图片文件。 (4)将image控件的stretch属性设计为TRUE 四、程序源代码 Option Explicit Private Sub cmdOK_Click() frmMain.Rows = txtRows.Text frmMain.Cols = txtCols.Text Unload Me End Sub Option Explicit Public Rows As Integer, Cols As Integer '图块的行列数

Vb课程设计学生成绩处理

学生成绩处理设计报告 一、设计思路 1.要达到的目的 学习VB程序设计的方法,充分体会VB在程序设计方面的强大功能和特点,培养运用VB解决实际问题的能力。通过本次课程设计,使学生进一步巩固课堂上学到的知识,能利用VB中的基本控件和数组编写一个小的应用软件—学生成绩处理。 2.关键问题的解决 ①设计程序界面 ②选取ProgressBar 控件 ③添加TXT文件 二、模块之间的调用关系,或程序流程图 三、部分程序关键源代码及注释 Dim data(100, 3) As String Dim num As Integer Private Sub Command1_Click(Index As Integer) Close #1 Select Case Index Case 0 Open "d:\成绩.txt" For Append As #1 Dim flag As Boolean For i = 0 To 3 If Text1(i) = "" Then MsgBox "请确认学号,姓名,分数都已输入", vbOKOnly, "提示" flag = True

Next If Not flag Then Write #1, Text1(0).Text; Text1(1).Text; Val(Text1(2).Text); Val(Text1(3).Text) MsgBox "添加成功" End If Case 1 Picture1.Cls Dim StrLine As String, a() As String Dim x As Integer, b As Integer Open "D:\成绩.txt" For Input As #1 i = 0 Do While Not EOF(1) Line Input #1, StrLine If StrLine <> "" Then a() = Split(StrLine, ",") For j = 0 To 3 data(i, j) = a(j) Next End If i = i + 1 Loop num = i For x = 0 To num For j = 0 To 3 Picture1.Print data(x, j) + " "; Next Picture1.Print Next Case 2 Picture2.Cls Open "d:\成绩.txt" For Input As #1 While Not EOF(1) Line Input #1, StrLine ss = ss + StrLine + vbCrLf Wend Picture2.Print ss End Select Close #1 End Sub Private Sub Form_Load() Open "D:\成绩.txt" For Append As #1

简易计算器VB课程设计报告

简易计算器 要求:用VB做类似于windows自带的计算器程序 绪论:Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 1.界面设计: 根据WINDOWS计算器界面模型,修改后制作简易计算器界面。新建一个窗体,添加一个文本框用于显示运算数字和结果,添加若干按钮包括(数字0—9,+,-,*,/,=,x^ ,1/x,清屏,退出)。 当单击数字按钮时输入运算数时,单击运算符按钮,再单击“=”按钮,则再文本框中显示计算结果。具体如下图

计算器界面设计示意图 流程图如下: 简易计算器 ↓ 计算器管理界面 ↓ 计算界面 ↓ 退出程序 2.程序代码: Dim A, B As Single Dim Op As String Private Sub Command1_Click() Text1.Text = Text1.Text + Command1.Caption End Sub Private Sub Command14_Click() ’定义减法

If A = 0 Then A = Text1.Text Else B = Text1.Text End If Text1.Text = "" Op = "-" End Sub Private Sub Command2_Click() Text1.Text = Text1.Text + Command2.Caption End Sub Private Sub Command20_Click() ’定义平方 A = Text1.Text B = A ^ 2 Text1.Text = B End Sub Private Sub Command3_Click() Text1.Text = Text1.Text + Command3.Caption End Sub Private Sub Command4_Click() Text1.Text = Text1.Text + Command4.Caption End Sub Private Sub Command13_Click() ’定义加法If A = 0 Then A = Text1.Text Else B = Text1.Text End If Text1.Text = "" Op = "+" End Sub Private Sub Command5_Click() Text1.Text = Text1.Text + Command5.Caption End Sub Private Sub Command6_Click() Text1.Text = Text1.Text + Command6.Caption End Sub Private Sub Command17_Click() ’清屏Text1.Text = "" A = 0: B = 0 End Sub Private Sub Command19_Click() End End Sub

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