软件课程设计.docx

上传人:b****8 文档编号:10406329 上传时间:2023-02-11 格式:DOCX 页数:18 大小:975.56KB
下载 相关 举报
软件课程设计.docx_第1页
第1页 / 共18页
软件课程设计.docx_第2页
第2页 / 共18页
软件课程设计.docx_第3页
第3页 / 共18页
软件课程设计.docx_第4页
第4页 / 共18页
软件课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

软件课程设计.docx

《软件课程设计.docx》由会员分享,可在线阅读,更多相关《软件课程设计.docx(18页珍藏版)》请在冰豆网上搜索。

软件课程设计.docx

软件课程设计

软件课程设计

 

1、设计目的

2、设计内容

3、设计思想

4、源程序(VB.NET)

5、执行演示

6、总结与体会

 

姓名:

王昂

学号:

110901412

班级:

自动化1104班

东华大学信息科学与技术学院

一、设计目的

通过本课程设计实习,使学生在下列方面有所了解和提高:

1.掌握VisualBasic进行程序设计的基本思路和方法

2.能利用VisualBasic编程实现简单的任务

3.结合控制系统理论用VB进行计算机控制仿真

二、设计内容

实现各种函数发生器并显示

1.基本要求:

实现下列函数发生器,正弦函数、方波函数、锯齿函数、三角函数,函数的生成参数都可以通过菜单设定,并且将生成的函数以图形方式实时显示在窗口中。

2.附加功能:

将系统的历史波形进行保存,并可将系统的历史波形重现。

使用Teechart控件作为显示输出。

三、设计思想

本课程设计基于VisualBasic.NET,与传统的VisualBasic6.0有一定的区别。

利用VisualBasic.NET界面实现函数信号发生器的设计,主要包括正弦函数、方波函数、锯齿函数、三角函数。

函数的生成参数都可以通过菜单进行设定,并将生成的函数以图形方式进行显示,本设计利用Teechart控件进行函数波形显示。

为实现函数信号发生器的各个功能,总体设计了五个窗体,其中一个主窗体,四个子窗体。

主窗体主要实现各种函数功能的选择,子窗体进行具体设计,包含显示函数波形以及函数参数设定等功能。

设计要求重现历史波形,由于对MicrosoftAccess毫无所知并且VisualBasic.NET也是从零开始学的,所以并没有用较复杂的数据库方法保存和重现历史波形,而是在程序中进行简单设计以实现该功能。

 

四、源程序(VB.NET)

主窗体程序:

PublicClassForm1

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load

Form2.Hide()

Form3.Hide()

Form4.Hide()

Form5.Hide()

EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

Form2.Show()

EndSub

PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click

form3.show()

EndSub

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

Form4.Show()

EndSub

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

Form5.Show()

EndSub

EndClass

子窗体程序:

正弦波子程序

ImportsSystem.Math

PublicClassForm2

Dimx(100),y(100)

Dima,w,b,cAsDouble

Dima1,w1,b1,c1AsDouble

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

If(TextBox1.Text=""OrTextBox2.Text=""OrTextBox3.Text=""OrTextBox4.Text="")Then

MsgBox("函数参数未完全设置,请设置",0,"提醒")

Else

a1=a:

b1=b:

c1=c:

w1=w

a=Val(TextBox1.Text)

w=Val(TextBox2.Text)

b=Val(TextBox3.Text)

c=Val(TextBox4.Text)

Fori=1To100Step1

x(i)=i

y(i)=a*Sin(w*i+b)+c

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndIf

EndSub

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

a=1

w=0.2

b=0

c=0

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

x(i)=i

y(i)=a*Sin(w*i+b)+c

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

x(i)=i

y(i)=a1*Sin(w1*i+b1)+c1

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

EndClass

三角波子程序

ImportsSystem.Math

PublicClassForm3

Dimx(100),y(100)

ConstPIAsDouble=3.141592653

DimA,W,s,A1,W1AsDouble

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

A=2

W=0.2

s=0

Fori=1To100Step1

x(i)=i

Forn=1To10000Step2

s=s+(1/n^2)*Cos(n*W*i)

Next

y(i)=A/2+4*A/(PI^2)*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

If(TextBox1.Text=""OrTextBox2.Text="")Then

MsgBox("函数参数未完全设置,请设置",0,"提醒")

Else

A1=A:

W1=W

A=Val(TextBox1.Text)

W=Val(TextBox2.Text)

Fori=1To100Step1

x(i)=i

Forn=1To10000Step2

s=s+(1/n^2)*Cos(n*W*i)

Next

y(i)=A/2+4*A/(PI^2)*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndIf

EndSub

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

s=0

Fori=1To100Step1

x(i)=i

Forn=1To10000Step2

s=s+(1/n^2)*Cos(n*W1*i)

Next

y(i)=A1/2+4*A1/(PI^2)*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

EndClass

方波子程序

ImportsSystem.Math

PublicClassForm4

Dimx(100),y(100)

ConstPIAsDouble=3.141592653

DimA,w,s,n,A1,w1AsDouble

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

If(TextBox1.Text=""OrTextBox2.Text="")Then

MsgBox("函数参数未完全设置,请设置",0,"提醒")

Else

A1=A:

w1=w

s=0

A=Val(TextBox1.Text)

w=Val(TextBox2.Text)

Fori=1To100Step1

x(i)=i

Forn=1To10000Step2

s=1/n*Sin(n*w*i)+s

Next

y(i)=4*A/PI*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndIf

EndSub

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

s=0

A=2

w=0.2

Fori=1To100Step1

x(i)=i

Forn=1To10000Step2

s=1/n*Sin(n*w*i)+s

Next

y(i)=4*A/PI*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

Fori=1To100Step1

x(i)=i

Forn=1To10000Step2

s=1/n*Sin(n*w1*i)+s

Next

y(i)=4*A1/PI*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

EndClass

锯齿波子程序

ImportsSystem.Math

PublicClassForm5

Dimx(100),y(100)

ConstPIAsDouble=3.141592653

DimA,w,s,k,A1,w1AsDouble

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

DimnAsInteger

s=0

k=1

A=2

w=0.2

Fori=1To100Step1

x(i)=i

Forn=1To10000Step1

s=k/n*Sin(n*w*i)+s

k=-k

Next

y(i)=2*A/PI*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

DimnAsInteger

If(TextBox1.Text=""OrTextBox2.Text="")Then

MsgBox("函数参数未完全设置,请设置",0,"提醒")

Else

A1=A:

w1=w

s=0

k=1

A=Val(TextBox1.Text)

w=Val(TextBox2.Text)

Fori=1To100Step1

x(i)=i

Forn=1To10000Step1

s=k/n*Sin(n*w*i)+s

k=-k

Next

y(i)=2*A/PI*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndIf

EndSub

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

DimnAsInteger

s=0

Fori=1To100Step1

x(i)=i

Forn=1To10000Step1

s=k/n*Sin(n*w1*i)+s

k=-k

Next

y(i)=2*A1/PI*s

s=0

Next

WithAxTChart1

.Series(0).Clear()

Fori=1To100Step1

.Aspect.View3D=True

.Panel.Gradient.Visible=False

.Series(0).Add(y(i),x(i),0)

Next

EndWith

EndSub

EndClass

五、执行演示

主界面

子界面(参数未完全设置出现提示对话框)

正弦波子界面

三角波子界面

方波子界面

锯齿波子界面

六、总结与体会

这真是一个很独特的课程设计,什么都没有教直接布置课程设计题目回去做。

而之前又从没学过VB,无疑使得课程设计的难度大大提升。

不过也没什么,考研大学生自学能力的时候到了,学习终究还是要靠自己的。

从零开始,先是从网上下载了VisualStudio2010在电脑上装好,然后大概花了一天时间看VisualBasic.NET程序设计的书,并且一边摸索VisualStudio2010软件的用法。

之后便慢慢开始尝试设计了,一边设计一边学习,像Teechart控件的用法等等。

大概用了两三天时间才大致完成了。

当然,粗陋的设计还是存在一些问题的。

由于时间短促,这也是无法避免的。

像利用数据库实现历史波形的存储和重现就毫无头绪了,不得不使用简单的程序来进行替代。

由于各个函数波形是利用傅里叶级数展开来近似的,所以频率参数的改变有一定的范围,参数设置不合理可能导致函数波形失真,这是有待改进的地方。

但是完全从头开始学起,到最后能大致设计完成,觉得还是挺有成就感的,实在是不容易。

课程设计的收获还是挺大的,学会了怎样从头来自学一门语言以及软件,对VB.NET语言也有了大致的了解。

只能说这只是个开端,想要学好想要精通还有很长的路要走,慢慢努力吧。

 

谢谢审阅!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1