cout<<"请输入您的选择(Y/N):
";
cin>>choice;
if(choice=='N')
{break;}
else
{choice='Y';}
}
while(choice=='Y');
}
2.用Visual Basic制作的源代码:
PrivateSubCommand1_Click()
Dimp,n,cAsDouble
If(NotIsNumeric(Text1)OrNotIsNumeric(Text2))Then
Text1.Text=""
Text1.SetFocus
Else
p=Text1.Text
n=Text2.Text
c=Log10(490#)+(Log10(p)-Log10(0.8))/(Log10(3.8)-Log10(0.8))*(Log10(4900#)-Log10(490#))
If(n>=4900OrLog10(n)>=c)Then
型号.Text="O型"
Else
c=Log10(100#)+(Log10(p)-Log10(1#))/(Log10(10.5)-Log10(1#))*(Log10(3400#)-Log10(100#))
If(n>=3400OrLog10(n)>=c)Then
型号.Text="A型"
Else
c=Log10(100#)+(Log10(p)-Log10(2.7))/(Log10(22.5)-Log10(2.7))*(Log10(2400#)-Log10(100#))
If(n>=2400OrLog10(n)>=c)Then
型号.Text="B型"
Else
c=Log10(100#)+(Log10(p)-Log10(5.9))/(Log10(35#)-Log10(5.9))*(Log10(1500#)-Log10(100#))
If(n>=1500OrLog10(n)>=c)Then
型号.Text="C型"
Else
c=Log10(100#)+(Log10(p)-Log10(17.5))/(Log10(85#)-Log10(17.5))*(Log10(1200#)-Log10(100#))
If(n>=1200OrLog10(n)>=c)Then
型号.Text="D型"
Else
c=Log10(100#)+(Log10(p)-Log10(44#))/(Log10(170#)-Log10(44#))*(Log10(700#)-Log10(100#))
If(n>=700OrLog10(n)>=c)Then
型号.Text="E型"
Else
型号.Text="F型"
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
型号.Text=""
EndSub
PrivateSubCommand3_Click()
End
EndSub
PrivateSubtext1_lostfocus()
DimiAsInteger
IfNotIsNumeric(Text1)Then
Text1.Text=""
Text1.SetFocus
Else
If(Text1.Text<0.8OrText1.Text>800#)Then
i=MsgBox("输入值超出范围,请重新输入",5+vbExclamation,"输入超出范围")
Ifi=2Then
End
Else
Text1.Text=""
Text1.SetFocus
EndIf
EndIf
EndIf
EndSub
PrivateSubtext2_lostfocus()
DimjAsInteger
IfNotIsNumeric(Text2)Then
Text2.Text=""
Else
If(Text2.Text<100#OrText2.Text>6800#)Then
j=MsgBox("输入值超出范围,请重新输入",5+vbExclamation,"输入超出范围")
Ifj=2Then
End
Else
Text2.Text=""
EndIf
EndIf
EndIf
EndSub
FunctionLog10(X)'定义函数
Log10=Math.Log(X)/Math.Log(10#)
EndFunction
四.程序截图:
图一.V带选型截图(VC++)
图二.V带选型截图(VB6.0)
作业二:
VF建数据库
一.设计要求:
1.做一个轴承的数据库,能调用先前已建好的表或数据库。
2.能实现首尾查询、输入设定范围查询、打印、添加数据、修改数据、删除数据。
3.做一个表单方便管理数据库。
二.设计思路:
由于该部分少有涉及代码的问题,故只需简要说明如下:
1.建立项目
2.在项目内新建数据库
3.在数据库内新建数据
4.在“数据”项内新建“表”
5.新建或编辑“表”
三.
设计截图:
图三.作业二(轴承数据库)截图
作业三:
三次Bezier曲线
一.设计要求:
1.在程序窗口中建立坐标系
2.输入控制点,绘制出三次Bezier曲线
3.四个控制点间依次用细线连接
4.在程序窗口显示四个控制点的位置并标出
二.设计思路:
先在草稿纸上算出三次Bezier曲线的函数表达式:
(0≤u≤1)
=a×
+b×
+c×u+d
其中a、b、c、d的值为:
a=(-
)+3×
-3×
+
b=3×
-6×
+3×
c=(-3)×
+3×
d=
将
、
、
、
中的(x,y)坐标值分别代入a、b、c、d中得到
、
、
、
和
、
、
、
则:
=
×
+
×
+
×u+
(1)
=
×
+
×
+
×u+
(2)
根据以上结果(1)和(2)编程求得当u取不同值时所得到的点P(u)。
再将各点用线连接起来即可拟合三次Bezier曲。
三.设计过程:
以下是用VB编三次Bezier曲线时的源代码:
其中显示四个控制点的思路是将控制点在x和y方向的坐标值都增大1,然后再与控制点用粗实线连接起来。
这样一来在窗口中显示的即为一个较大的实点。
Functiondrawcs()'此模块为建立坐标系
DimkAsInteger
PictDraw.DrawWidth=1:
PictDraw.FontSize=9'设置线宽和字体
PictDraw.Line(-400,0)-(400,0),RGB(100,100,100)
PictDraw.Line(0,-300)-(0,300),RGB(100,100,100)
Fork=(-360)To360Step40
PictDraw.Line(k,-5)-(k,0):
PictDraw.CurrentX=k-20:
PictDraw.CurrentY=5:
PictDraw.Printk
Nextk
Fork=(-280)To-40Step40
PictDraw.Line(5,k)-(0,k):
PictDraw.CurrentX=-40:
PictDraw.CurrentY=k-10:
PictDraw.Print(-1)*k
Nextk
Fork=(40)To280Step40
PictDraw.Line(5,k)-(0,k):
PictDraw.CurrentX=-40:
PictDraw.CurrentY=k-10:
PictDraw.Print(-1)*k
Nextk
EndFunction
PrivateSubForm_Load()
PictDraw.AutoRedraw=True
PictDraw.ScaleWidth=800
PictDraw.ScaleHeight=600
Text1.Text=-300:
Text2.Text=-250:
Text3.Text=300:
Text4.Text=-250
Text5.Text=-300:
Text6.Text=250:
Text7.Text=300:
Text8.Text=250'作为初始值,便于测试
drawcs
EndSub
PrivateSubcmdCancle_Click()
PictDraw.Cls
drawcs'清除屏幕后,重建坐标系
EndSub
PrivateSubdelet_Click()'此模块为清除输入框中的值
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text7.Text=""
Text8.Text=""
EndSub
PrivateSubcmdDraw_Click()'此模块为画三次Bezier曲线
Dimpx(4)AsDouble'定义控制点的x坐标的数组
Dimpy(4)AsDouble'定义控制点的y坐标的数组
Dima1,b1,c1,d1AsDouble'定义x系数
Dima2,b2,c2,d2AsDouble'定义y系数
Dimx,y,uAsDouble'定义曲线中的自变量u和变量x,y
DimiAsInteger
If(NotIsNumeric(Text1)OrNotIsNumeric(Text2)OrNotIsNumeric(Text3)OrNotIsNumeric(Text4)_
OrNotIsNumeric(Text5)OrNotIsNumeric(Text6)OrNotIsNumeric(Text7)OrNotIsNumeric(Text8))Then
Text1.Text="":
Text2.Text=""
Text3.Text="":
Text4.Text=""
Text5.Text="":
Text6.Text=""
Text7.Text="":
Text8.Text=""
Text1.SetFocus'判断输入框中的字符是否为数字,如果为数字执行else开始画图
Else
px(0)=Text1.Text:
py(0)=Text2.Text
px
(1)=Text3.Text:
py
(1)=Text4.Text
px
(2)=Text5.Text:
py
(2)=Text6.Text
px(3)=Text7.Text:
py(3)=Text8.Text
PictDraw.FontSize=18'设置字体,为显示输入的四个点设置字体大小
PictDraw.CurrentX=px(0):
PictDraw.CurrentY=(-1)*py(0):
PictDraw.Print"P";0
Fori=0To2
PictDraw.DrawWidth=1
PictDraw.Line(px(i),(-1)*py(i))-(px(i+1),(-1)*py(i+1)),RGB(0,0,255):
PictDraw.Print"P";i+1
Nexti
Fori=0To3
PictDraw.DrawWidth=7
PictDraw.Line(px(i),(-1)*py(i))-(px(i)+1,(-1)*py(i)-1)
Nexti
a1=-px(0)+3*px
(1)-3*px
(2)+px(3)'计算x和y的参数
b1=3*px(0)-6*px
(1)+3*px
(2)
c1=-3*px(0)+3*px
(1)
d1=px(0)
a2=-py(0)+3*py
(1)-3*py
(2)+py(3)
b2=3*py(0)-6*py
(1)+3*py
(2)
c2=-3*py(0)+3*py
(1)
d2=py(0)
Foru=0To1Step0.001'每当u增加0.001求一次x和y
x=a1*u*u*u+b1*u*u+c1*u+d1'求x的值
y=(-1)*(a2*u*u*u+b2*u*u+c2*u+d2)'求y的值
Ifu=0Then
PictDraw.CurrentX=x'设置画线起点
PictDraw.CurrentY=y
Else
PictDraw.DrawWidth=2
PictDraw.Line-(x,y),RGB(255,0,0)'连点成线
EndIf
Nextu
EndIf
EndSub
PrivateSubcmdEnd_Click()'退出窗口程序
End
EndSub
四.设计截图:
图四.三次Bezier曲线截图