VB课程设计报告.docx

上传人:大米 文档编号:563246197 上传时间:2023-04-18 格式:DOCX 页数:35 大小:133.22KB
返回 下载 相关 举报
VB课程设计报告.docx_第1页
第1页 / 共35页
VB课程设计报告.docx_第2页
第2页 / 共35页
VB课程设计报告.docx_第3页
第3页 / 共35页
VB课程设计报告.docx_第4页
第4页 / 共35页
VB课程设计报告.docx_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《VB课程设计报告.docx》由会员分享,可在线阅读,更多相关《VB课程设计报告.docx(35页珍藏版)》请在金锄头文库上搜索。

1、VB课程设计报告22020年4月19日文档仅供参考Visual Basic程序设计课程设计报告设计题目 直线拟合 题目难度 四星级 姓 名 蒋龙鑫 学 号 9141010F0309 指导教师 申 屠 德 忠 提交日期 4月15号 目 录一、题目描述与功能要求1二、程序设计1(一)计算模型或算法实行1(二)模块设计(窗体界面与代码)2窗体1的设计.3窗体2的设计7窗体3的设计12三、算例演示14四、参考文献15五、课程设计总结15一、题目描述与功能要求 1题目描述 本题目重要是用于将实验中得到的具有线性特征的一组数据经过最小二乘法拟合成直线,求出其直线方程和绘制出该直线的图形。也就是寻找一条直线

2、使这些离散的点尽可能平均的位于该直线的两边,它对于寻找数据的规律有很大的帮助,是一个比较实用的程序。2功能要求:(1)运行程序中,首先显示如下图窗体1的“直线拟合”窗口,从中选择要拟合数据的组数。单击“确定”按钮进入“数据输入”窗口。(2)“数据输入”窗口中有10对文本框,用于输入最多10组实验数据。根据在“直线拟合”窗口的选择不同,这10对文本框只有指定数目的文本框可用。输入指定的数据,然后单击“确定”按钮。如果数据未完全输入,则显示错误提示的消息框。(3)如果数据输入正确,在“数据输入”窗口中单击“确定”按钮之后,程序进入“直线参数与图形”窗口,在此窗口中,程序根据输入的数据自动计算拟合直

3、线方程的参数,并将系数和方程显示在窗口顶部。在窗口的绘图区绘制直线图形。二、程序设计(一)计算模型或算法实行假设实验中得到n个点,P1(X1,Y1),P2(X2,Y2),Pn(Xn,Yn),用i表示第i个点.由于各种误差的存在,这些数据点不可能完全在一条直线上。如果我们能找到一条直线,使这n个点到该直线的距离之平方和最小,则该直线就是用最小二乘法拟合出来的直线。设拟合的直线方程为F(X)=Y=bX+a,由于拟合出来的直线斜率是固定的,我们能够用每一个数据点与直线在Y方向上的“残差”来定义,即残差Yi=F(Xi)-Yi,可得: (Yi)2=(F(Xi)-Yi)2=(bXi+a-Yi)2根据最小二

4、乘法原理,(bXi+a-Yi)2取极小值时,即为残差最小,这时确定的直线即为拟合的直线。上式是一个二元函数求极值的问题,可分别对自变量a与b求偏导数,可易得: na+bXi =Yi aXi+b(Xi)2=(XiYi) 从而得到公式:由上公式可知,我们可用n个点的坐标确定直线方程的系数a与b,得到方程并将方程拟合出来.本题目的程序设计由三个窗体组成。在Form1中,有1个框架控件、1个标签控件、2个命令按钮和1个由6个单选按钮组成的控件数组。单选按钮控件数组用来选择要输入的数据组数,当选择好后,单击“确定”按钮,就能够进入下一个窗体。单击“取消”按钮则退出程序Form1的代码见附件。在Form2

5、中有2个命令按钮、20个文本框(每10个组成一个控件数组)、12个标签控件和许多直线组成。在文本框中输入实验数据后,点击“确定”按钮,若数据没有全部输入,则出现消息框,提醒没有完全输入。若已经完全输入,则显示Form3,隐藏Form2。与此同时,对实验数据计算,得出拟合直线的截距和斜率,并在Form3的标签控件1中体现;根据所得的斜率和截距得到拟合直线方程,并在Form3的标签2中体现;还能够在Form3中绘出拟合直线和每个实验点(用绿色),根据实验数据调整坐标系统,画出拟合直线。Form2的代码见附件。(二)模块设计(窗体界面与代码)本题目的程序设计由3个模块组成,其中窗体模块3个。序号模块

6、名称模块类型模块功能1 Form1窗体模块选择要输入的数据组数,当选择好后,单击“确定”按钮,就能够进入下一个窗体;单击“取消”按钮则退出程序2 Form2窗体模块输入实验数据后,对实验数据计算,得出拟合直线的截距和斜率,根据所得的斜率和截距得到拟合直线方程。3Form3窗体模块根据实验数据调整坐标系统,画出拟合直线。窗体1的设计 表1 窗体1中控件列表序号控件名称控件类型LeftTopWidthHeightCaption1Label1标签控件14401202055375直线拟合程序2Frame1框架控件48060038551455请选择数据组数3Option1单选框控件36036097525

7、55组4Option2单选框控件3607209752556组5Option3单选框控件36010809752557组6Option4单选框控件25203609752558组7Option5单选框控件25207209752559组8Option6单选框控件2520108097525510组9Command1命令按钮控件72022801575495确定10Command2命令按钮控件252022801575495退出表2 窗体1中事件过程列表序号事件过程功能1Option1-click()选择数据组数为5组2Option2-click()选择数据组数为6组3Option3-click()选择数据组

8、数为7组4Option4-click()选择数据组数为8组5Option5-click()选择数据组数为9组6Option6-click()选择数据组数为10组7Command1-click()进入第二个窗体坐标轴的输入8Command2-click()退出拟合值线的数据输入表3 窗体1中通用过程与函数列表序号过程与函数输入参数输出参数功能1MsgBox()以文本向用户显示运行过程中的信息,让用户单击按钮作选择2Chr()10换行符使消息内容在中间某处换行3Chr()13回车符窗体1的代码Form1Private Sub Command1_Click() 显示第二个窗体Form1.HideFo

9、rm2.ShowForm3.Hidezxnh = MsgBox(你必须完全输入所选的项目! & Chr(10) & Chr(13) & _ 否则程序将会出错!, 48, 直线拟合)End SubPrivate Sub Command2_Click() 结束程序EndEnd Sub使第二个窗体的文本框按照第一个窗体给出的数据组数显示Private Sub Option1_Click()Form2.Label6.Enabled = FalseForm2.Label7.Enabled = FalseForm2.Label8.Enabled = FalseForm2.Label9.Enabled =

10、FalseForm2.Label10.Enabled = FalseFor n = 6 To 10 Form2.Text1(n).Enabled = False Form2.Text1(n).BackColor = &H8000000F Form2.Text2(n).Enabled = False Form2.Text2(n).BackColor = &H8000000FNextEnd SubPrivate Sub Option2_Click()Form2.Label6.Enabled = TrueForm2.Label7.Enabled = FalseForm2.Label8.Enabled

11、 = FalseForm2.Label9.Enabled = FalseForm2.Label10.Enabled = FalseForm2.Text1(6).Enabled = TrueForm2.Text1(6).BackColor = &HFFFFFFForm2.Text2(6).Enabled = TrueForm2.Text2(6).BackColor = &HFFFFFFFor n = 7 To 10 Form2.Text1(n).Enabled = False Form2.Text1(n).BackColor = &H8000000F Form2.Text2(n).Enabled

12、 = False Form2.Text2(n).BackColor = &H8000000FNextEnd SubPrivate Sub Option3_Click()Form2.Label6.Enabled = TrueForm2.Label7.Enabled = TrueForm2.Label8.Enabled = FalseForm2.Label9.Enabled = FalseForm2.Label10.Enabled = FalseFor n = 6 To 7 Form2.Text1(n).Enabled = True Form2.Text1(n).BackColor = &HFFF

13、FFF Form2.Text2(n).Enabled = True Form2.Text2(n).BackColor = &HFFFFFFNext For n = 8 To 10 Form2.Text1(n).Enabled = False Form2.Text1(n).BackColor = &H8000000F Form2.Text2(n).Enabled = False Form2.Text2(n).BackColor = &H8000000FNextEnd SubPrivate Sub Option4_Click()Form2.Label6.Enabled = TrueForm2.Label7.Enabled = TrueForm2.Label8.Enabled = TrueForm2.Label9.Enabled = FalseForm2.Label10.Enabled = FalseFor n = 6 To 8 Form2.Text1(n).Enabled = True Form2.Text1(n).BackColor = &HFFFFFF Form2.Text2(n).Enabled

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号