




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
暑期实习报告由数字信号处理原理可知:计算有限长数字序列线性卷积的公式为:则题目要求:(1)输入N1,N2,输出y(n)值(2)在图形方式下以x轴为n,y轴分别为x(n)、h(n)、y(n)画出其关系图设计方案:使用编程语言为:MicrosoftVisualBasic开发工具为:MicrosoftVisualBasic6.0sp6中文企业版在Form1中进程编辑,利用五个CommandButton,分别控制x(n)、h(n)、y(n)的序列图像输出、y(n)序列输出及清除功能,3个Picturebox用来显示x(n)、h(n)、y(n)的坐标图,Label用来表达所要操作的内容。定义两个整型变量N1、N2,要想显示其中的一个图像时,先将所输入的两个值附给上述两个变量,然后利用Picture.Scale与Picture.Line来画坐标图,最后通过for….next语句实现循环画点,从而实现每个图像的显示。当想进行清除时只要再清除的CommandButton下输入Picture.Cls、Label.Caption=""、Text.Text=""等语句即可。流程图:开始开始定义变量N1,N2输入两个整形数分别赋值给N1,N2N1<=N2输出x(n),h(n),y(n)的图形按N1>N2的情况输出y(n)输出x(n),h(n),y(n)的图形按N1<=N2的情况输出y(n)结束源代码:DimN1%,N2%PrivateSubCommand1_Click()N1=Int(Text1.Text):N2=Int(Text2.Text)Picture1.Scale(-1,20)-(20,-1)'画x(n)坐标Picture1.Line(0,0)-(19,0)Picture1.Line(19,0)-(18.5,-0.5)Picture1.Line(19,0)-(18.5,0.5)Picture1.Line(0,0)-(0,19)Picture1.Line(0,19)-(0.5,18.5)Picture1.Line(0,19)-(-0.5,18.5)Fori=0ToN1xi=1Picture1.PSet(i,1),vbBlack'画x(n)的图像NextiForn=0ToN1Picture1.CurrentX=n:Picture1.CurrentY=0.4:Picture1.PrintnNextnEndSubPrivateSubCommand2_Click()N1=Int(Text1.Text):N2=Int(Text2.Text)Picture2.Scale(-1,20)-(20,-1)'画h(n)坐标Picture2.Line(0,0)-(19,0)Picture2.Line(19,0)-(18.5,-0.5)Picture2.Line(19,0)-(18.5,0.5)Picture2.Line(0,0)-(0,19)Picture2.Line(0,19)-(0.5,18.5)Picture2.Line(0,19)-(-0.5,18.5)Forn=0ToN2Picture2.PSet(n,n/2),vbBlack'画h(n)的图像NextnForn=0ToN2Picture2.CurrentX=n:Picture2.CurrentY=0.4:Picture2.PrintnNextnndSubPrivateSubCommand3_Click()N1=Int(Text1.Text):N2=Int(Text2.Text)Picture3.Scale(-3,44)-(44,-3)Picture3.Line(0,0)-(44,0)Picture3.Line(44,0)-(43.5,-0.5)Picture3.Line(44,0)-(43.5,0.5)Picture3.Line(0,0)-(0,44)Picture3.Line(0,44)-(0.5,43.5)Picture3.Line(0,44)-(-0.5,43.5)Forn=0To(N1+N2)y=0Form=0TonIfm<=N1ThenXn=1ElseXn=0EndIfIf(n-m)<=N2ThenHn=0.5*(n-m)ElseHn=0EndIfy=y+Xn*HnNextmPicture3.PSet(n,y),vbBlackNextnForn=0ToN1+N2Picture3.CurrentX=n:Picture3.CurrentY=0.4:Picture3.PrintnNextnEndSubPrivateSubCommand4_Click()N1=Int(Text1.Text):N2=Int(Text2.Text)Forn=0To(N1+N2)y=0Form=0TonIfm<=N1ThenXn=1ElseXn=0EndIfIf(n-m)<=N2ThenHn=0.5*(n-m)ElseHn=0EndIfy=y+Xn*HnNextmLabel7.Caption=Label7.Caption+"y("+Format(n)+")="+Format(y)+""'输出y(n)的值Label7.Font.Size=12NextnEndSubPrivateSubCommand5_Click()Picture1.ClsPicture2.ClsPicture3.ClsLabel7.Caption=""Text1.Text=""Text2.Text=""EndSub程序运行主界面截图:功能介绍:当输入N1,N2的值后,点击X(n)序列图,坐标图中将显示X(n)的坐标图,点击H(n)序列图坐标图中将显示H(n)的坐标图,点击Y(n)序列图将坐标图中显示Y(n)的序列图并输出Y(n)的值。清除可以清除掉当前输入的N1,N2的值,保存具有保存当然坐标图象的功能。题目要求:设计方案:使用编程语言为:MicrosoftVisualBasic开发工具为:MicrosoftVisualBasic6.0sp6中文企业版当输入所要查询的日期所在的年和月是否是闰年和闰月时,应先对其进行计算并判断,然后分别显示年和月是否为闰的情况并同时显示输入日期是星期几。当输入设置时间time1后,每当系统时间的增加1秒就和所设的时间比较一遍,直到相等时则开始执行所需任务,弹出对话框并进行声音提醒,当点击确认之后之后则整个提醒结束,并可以重新设置下个提醒任务。流程图:开始开始定义变量year,month,day输入三个整型数分别赋值给以上三个变量所赋的时间合理显示所输入日期所在的闰年、闰月的情况及是星期几定义变量timeds1.text,time2.text输入所设的时间并赋值给timeds1.text将系统的当前时间值赋给time2.texttimeds1.text=time2,text弹出提示框并运行声音文件确认结束源代码:PrivateSubnl1_Click()'设定闹铃1CommonDialog1.Filter="*.wav"'打开铃声文件CommonDialog1.ShowOpen'显示打开对话框MMControl1.FileName=CommonDialog1.FileName'接收文件EndSubPrivateSubnl2_Click()CommonDialog2.Filter="*.wav"CommonDialog2.ShowOpenMMControl2.FileName=CommonDialog2.FileNameEndSubPrivateSubnl3_Click()CommonDialog3.Filter="*.wav"CommonDialog3.ShowOpenMMControl3.FileName=CommonDialog3.FileNameEndSubPrivateSubnl4_Click()CommonDialog4.Filter="*.wav"CommonDialog4.ShowOpenMMControl4.FileName=CommonDialog4.FileNameEndSubPrivateSubexit_Click()x=MsgBox("真的要退出吗?",4+32+0,"退出系统")Ifx=6Then'点击“是”,退出EndEndIfEndSubPrivateSubText2_Change()IfTextds1.Text=Text2.TextThen'当设定的时间与当时时间一样时MMControl1.Command="open"'闹铃打开并播放MMControl1.Command="play"a=MsgBox(Textdingshi1.Text,0,"事件")'弹出对话框显示事件提醒MMControl1.Command="stop"'点击确定后闹铃关闭,同时设定的时间与事件一并清除Textds1.Text="输入时间1"Textdingshi1.Text=""EndIfIfTextds2.Text=Text2.TextThenMMControl2.Command="open"MMControl2.Command="play"b=MsgBox(Textdingshi2.Text,0,"事件")Textds2.Text="输入时间2"Textdingshi2.Text=""MMControl2.Command="stop"EndIfEndSubPrivateSubText3_change()'捕捉文本框内容的改变,立刻显示是否闰年IfText3.Text=""ThenText4.Text="未输入年份"Elsea=Val(Text3.Text)IfaMod100=0Then'当a被100整除时判断是否也被400整除IfaMod400=0ThenText4.Text="是"'是则是闰年ElseText4.Text="否"'否则不是闰年EndIfElseIfaMod4=0Then'当a不被100整除时判断是否被4整除Text4.Text="是"'是则是闰年ElseText4.Text="否"'否则不是闰年EndIfEndIfEndIfEndSubPrivateSubTimer1_Timer()Text1.Text=Date$'输出日期Text2.Text=Format(Time,"ttttt")'输出时间EndSub程序运行主界面截图:功能介绍:可输入的要查询的年份是否为闰年并且题目要求:作一个两辆赛车比赛的游戏,要求可以用A,S,D,W和小键盘的上下左右键控制小汽车的运行方向进行比赛。设计方案:所用软件为MacromediaFlash8设置控制键,通过按键对小车进行控制,在控制的同时判断小车的位置使其行驶在跑道上,当而这种有一个到达终点时,比赛结束,并输出比赛结果。开始流程图:开始方向键控制方向键控制小车停止小车停止对两小车是否碰到跑道进行判断对两小车是否碰到跑道进行判断YYNN判断比赛是否完成判断比赛是否完成NNYY显示比赛的输赢显示比赛的输赢结束结束源代码:defs:car1.code="player1";car2.code="player2";acceleration=0.4;speedDecay=0.9;rotationStep=10;maxSpeed=10;backSpeed=2;actions:functionstep(who){ //checktoseeifthecarinquestioniscontrolledbytheplayerorbythecomputer if(_root["car"+who].code=="player2"){ //wewillconstantlydecreasespeedbymultiplyingitwithanumberbelow1 if(this["speed"+who]>0.3){ this["speed"+who]*=_root.speedDecay; }else{ this["speed"+who]=0; } //thecarwillreacttocertainkeys //accelerate if(Key.isDown(87)&&this["speed"+who]<_root.maxSpeed){ this["speed"+who]+=_root.acceleration; } //brake(reverse) if(Key.isDown(83)){ this["speed"+who]-=_root.backSpeed; } //steerleft if(Key.isDown(65)&&this["speed"+who]>0.3){ _root["car"+who]._rotation-=_root.rotationStep*(this["speed"+who]/_root.maxSpeed); } //steerright if(Key.isDown(68)&&this["speed"+who]>0.3){ _root["car"+who]._rotation+=_root.rotationStep*(this["speed"+who]/_root.maxSpeed); } this["rotation"+who]=_root["car"+who]._rotation; //wecalculatethetwocomponentsofspeed(XaxisandYaxis) this["speedx"+who]=Math.sin(this["rotation"+who]*(Math.PI/180))*this["speed"+who]; this["speedy"+who]=Math.cos(this["rotation"+who]*(Math.PI/180))*this["speed"+who]*-1; //applythecomponentsontheactualpositionofthecar _root["car"+who]._x+=this["speedx"+who]; _root["car"+who]._y+=this["speedy"+who]; if(_root["car"+who].hitTest(end)){ gotoAndPlay(3); }; if(_root["car"+who].hitTest(car1)){ this["speed"+who]=0; }; for(i=1;i<=17;i++){ if(_root["car"+who].hitTest(_root["bark"+i])){ this["speed"+who]=0; }; } if(_root["car"+who]._x<50){ this["speed"+who]=0;}; if(_root["car"+who]._x>1150){ this["speed"+who]=0;}; if(_root["car"+who]._y<50){ this["speed"+who]=0;}; if(_root["car"+who]._y>700){ this["speed"+who]=0;}; } if(_root["car"+who].code=="player1"){ //wewillconstantlydecreasespeedbymultiplyingitwithanumberbelow1 if(this["speed"+who]>0.3){ this["speed"+who]*=_root.speedDecay; }else{ this["speed"+who]=0; } //thecarwillreacttocertainkeys //accelerate if(Key.isDown(Key.UP)&&this["speed"+who]<_root.maxSpeed){ this["speed"+who]+=_root.acceleration; } //brake(reverse) if(Key.isDown(Key.DOWN)){ this["speed"+who]-=_root.backSpeed; } //steerleft if(Key.isDown(Key.LEFT)&&this["speed"+who]>0.3){ _root["car"+who]._rotation-=_root.rotationStep*(this["speed"+who]/_root.maxSpeed); } //steerright if(Key.isDown(Key.RIGHT)&&this["speed"+who]>0.3){ _root["car"+who]._rotation+=_root.rotationStep*(this["speed"+who]/_root.maxSpeed); } this["rotation"+who]=_root["car"+who]._rotation; //wecalculatethetwocomponentsofspeed(XaxisandYaxis) this["speedx"+who]=Math.sin(this["rotation"+who]*(Math.PI/180))*this["speed"+who]; this["speedy"+who]=Math.cos(this["rotation"+who]*(Math.PI/180))*this["speed"+who]*-1; //applythecomponentsontheactualpositionofthecar _root["car"+who]._x+=this["speedx"+who]; _root["car"+who]._y+=this["speedy"+who]; if(_root["car"+who].hitTest(end)){ gotoAndPlay(4); }; //shengli for(i=1;i<=17;i++){ if(_root["car"+who].hitTest(_root["bark"+i])){ this["speed"+who]=0; }; } if(_root["car"+who].hitTest(car2)){ this["speed"+who]=0; }; if(_root["car"+who]._x<50){ this["speed"+who]=0;}; if(_root["car"+who]._x>1150){ this["speed"+who]=0;}; if(_root["car"+who]._y<50){ this["speed"+who]=0;}; if(_root["car"+who]._y>700){ this["speed"+who]=0;}; }}程序运行主界面截图:功能介绍:可进行两辆赛车的比赛4、题目要求:设计一个成绩管理系统,可添加、删除、修改班级,科目、学生。可按照科目和学号组合查询、可按照班级打印成绩单(要求:可添加、删除、修改班级,科目、学生,查询、打印)设计方案:使用编程语言为:MicrosoftVisualBasic开发工具为:MicrosoftVisualBasic6.0sp6中文企业版对输入的数据库文件进行存储,然后对其访问即可开始流程图:开始建立数据库文件建立数据库文件保存保存对选定的班级进行成绩打印按科目和学号查找对数据库文件进行修改操作对选定的班级进行成绩打印按科目和学号查找对数据库文件进行修改操作结束结束源代码:窗体代码:frmMainPrivateSubMDIForm_Load()Me.Width=Screen.Width*0.75Me.Height=Screen.Height*0.75Me.Left=Screen.Width*0.125Me.Top=Screen.Height*0.125Me.Show'总是将工作目录设到应用程序所在目录ChDirApp.Path'初始化文档窗体数组,并显示第一个子窗体ReDimDoc(1)ReDimFState(1)Doc(1).Tag=1FState(1).Dirty=FalseDoc(1).Caption="新成绩表:1"Doc(1).Show'读系统注册表并适当地设置最近使用的菜单文件列表控件数组GetRecentFilesEndSubPrivateSubMDIForm_Unload(CancelAsInteger)IfNotAnyPadsLeft()ThenEndEndIfEndSubPrivateSubmnuFileExit_Click()EndEndSubPrivateSubmnuFileNew_Click()'调用FileNew过程FileNewEndSubPrivateSubmnuFileOpen_Click()'调用文件打开过程FileOpenProcEndSubPrivateSubmnuHelpAbout_Click()frmAbout.ShowvbModal,MeEndSubPrivateSubmnuhelpmain_Click()frmHelp.ShowvbModal,MeEndSubPrivateSubmnuRecentFile_click(IndexAsInteger)'调用文件打开过程,传递一个对选定文件名的引用OpenFile(mnuRecentFile(Index).Caption)'更新文件列表GetRecentFilesEndSubPrivateSubtbToolBar_ButtonClick(ByValButtonAsComctlLib.Button)'用SelectCase语句处理Key属性,'以确定单击了哪个按钮。WithfrmMain.ActiveFormSelectCaseButton.KeyCase"new"'选择新建FileNewCase"Open"'选择打开FileOpenProcCase"Save"'选择保存'检测文件是否已经有了文件名DimstrFilenameAsStringIfLeft(frmMain.ActiveForm.Caption,4)="新成绩表"ThenstrFilename=GetFileName(strFilename)ElsestrFilename=.CaptionEndIfIfstrFilename<>""ThenSaveFileAsstrFilename'调用文件保存过程EndIfCase"Print"'选择打印filePrintJCase"Copy"'选择复制a=.ChengJB.Rowb=.ChengJB.RowSelc=.ChengJB.Cold=.ChengJB.ColSelCopyThing(a),(b),(c),(d)Case"Edit"'选择表元编辑.mnuEditBaoyuan.Checked=True.mnuEditKemu.Checked=False.mnuEditCheng.Checked=FalseCase"Hang"'选择按行输入.mnuEditBaoyuan.Checked=False.mnuEditKemu.Checked=False.mnuEditCheng.Checked=TrueCase"Lie"'选择按列输入.mnuEditBaoyuan.Checked=False.mnuEditKemu.Checked=True.mnuEditCheng.Checked=FalseCase"Big"'选择字体放大FontChang(1)Case"Little"'选择字体缩小FontChang(-1)Case"Up"'选择升序排列.ChengJB.Sort=1Case"Down"'选择降序排列.ChengJB.Sort=2Case"Shuxing"'选择成绩表属性frmShuxing.ShowvbModal,frmMainEndSelectEndWithEndSub模块代码:Module1TypeformstateDeletedAsIntegerDirtyAsIntegerColorAsLongEndTypePublicFState()Asformstate'用户自定义数组PublicDoc()AsNewfrmBG'子窗体对象数组PublicConstThisApp="管理系统"'定义ThisApp函数PublicConstThisKey="RecentFiles"'定义ThisKey函数SubMain()'启动窗体frmSplash.ShowfrmSplash.RefreshEndSubFunctionAnyPadsLeft()AsInteger'检测是否还有打开的子窗体DimiAsIntegerFori=1ToUBound(Doc)IfNotFState(i).DeletedThenAnyPadsLeft=TrueExitFunctionEndIfNextEndFunctionSubFileNew()'新建文件过程DimfIndexAsInteger'找到下一个可用的索引并显示该子窗体fIndex=FindFreeIndex()Doc(fIndex).Tag=fIndexDoc(fIndex).Caption="新成绩表:"&fIndexDoc(fIndex).ShowEndSubFunctionFindFreeIndex()AsInteger'空文件索引检索过程DimiAsIntegerDimArrayCountAsIntegerArrayCount=UBound(Doc)Fori=1ToArrayCountIfFState(i).DeletedThenFindFreeIndex=iFState(i).Deleted=FalseExitFunctionEndIfNext'如果子窗体对象数组中没有一个元素被删除,'文档数组与状态数组均加1并返回新元素的索引(Index)。ReDimPreserveDoc(ArrayCount+1)ReDimPreserveFState(ArrayCount+1)FindFreeIndex=UBound(Doc)EndFunctionSubGetRecentFiles()'读注册表数据,更新“文件”菜单Dimi,jAsIntegerDimVarFilesAsVariant'用Getallsettings语句从注册表中返回最近使用过的文件'常数ThisApp和ThisKey已在模块中定义IfGetSetting(ThisApp,ThisKey,"Recentfile1")=EmptyThenExitSubVarFiles=GetAllSettings(ThisApp,ThisKey)Fori=0ToUBound(VarFiles,1)frmMain.mnuRecentFile(0).Visible=TruefrmMain.mnuRecentFile(i).Caption=VarFiles(i,1)frmMain.mnuRecentFile(i).Visible=True'更新所有子窗体的“文件”菜单Forj=1ToUBound(Doc)IfNotFState(j).DeletedThenDoc(j).mnuRecentFile(0).Visible=TrueDoc(j).mnuRecentFile(i+1).Caption=VarFiles(i,1)Doc(j).mnuRecentFile(i+1).Visible=TrueEndIfNextjNextiEndSubSubWriteRecentFiles(OpenFileName)'写注册表数据'本过程使用SaveSettings语句将最近使用的文件名写入系统注册表Dimi,jAsIntegerDimstrFile,KeyAsString'将文件RecentFile1复制给RecentFile2等等Fori=3To1Step-1Key="RecentFile"&istrFile=GetSetting(ThisApp,ThisKey,Key)IfstrFile<>""ThenKey="RecentFile"&(i+1)SaveSettingThisApp,ThisKey,Key,strFileEndIfNexti'将正在打开的文件写到最近使用的文件列表的第一项SaveSettingThisApp,ThisKey,"RecentFile1",OpenFileNameEndSubFunctionFgi(rAsInteger,cAsInteger)AsInteger'表格单元值函数Fgi=c+frmMain.ActiveForm.ChengJB.Cols*rEndFunctionSubCopyThing(a,b,c,dAsInteger)'复制过程Dimi,jAsIntegerDimCopyTextAsStringCopyText=""WithfrmMain.ActiveFormFori=aTobForj=cTodCopyText=CopyText&.ChengJB.TextArray(Fgi((i),(j)))Ifj<>dThenCopyText=CopyText&vbTabEndIfNextjIfi<>bThenCopyText=CopyText&vbCrLfEndIfNextiClipboard.ClearClipboard.SetTextCopyTextEndWithEndSubSubFontChang(sAsString)'字体变化过程WithfrmMain.ActiveFormDimAbcAbc=.ChengJB.Font.Size+sIfAbc>0Then.ChengJB.Font.Size=AbcFori=2To17.ChengJB.ColWidth(i)=.ChengJB.ColWidth(1)*7/8Next.ChengJB.ColWidth(18)=.ChengJB.ColWidth(1)*5/8.txtedit.Font.Size=.ChengJB.Font.SizeFState(.Tag).Dirty=TruefrmMain.sbStatusBar.Panels(3).Text="当前表格字号"&.ChengJB.Font.SizeEndWithEndSubSubChushi()'初始化主窗体状态栏WithfrmMain.ActiveFormIf.TextShuxing(1).Text<>"Text1"ThenfrmMain.sbStatusBar.Panels(1).Text=_"班级:"&.TextShuxing(1).Text&""&.TextShuxing(2).Text.ChengJB.ToolTipText=""ElsefrmMain.sbStatusBar.Panels(1).Text=_"未知班级请单击“文件”菜单下的“属性”项,设置属性"EndIfEndWithEndSub程序运行主界面截图:功能介绍:可进行日常的成绩统计,添加、删除、修改班级,科目、学生,还可按照科目和学号组合查询、可按照班级打印成绩单题目要求:(2)画出信号波形。(3)对该信号采样,并作文件存入磁盘中。(4)幅度、频率两种调制方式。设计方案:使用编程语言为:MicrosoftVisualBasic开发工具为:MicrosoftVisualBasic6.0sp6中文企业版本题编程语言仍选择VB。信号的调制就是用一个频率适当的余弦信号乘以原信号,得到想要的高频信号。在输入载波信号,调制信号的频率和幅值后,选择调制方式,然后根据所选的调制方式进行调制。本题首先打开与选择波形相匹配的已存文件,然后设置调制波形的振幅频率,根据设置的振幅频率画出图形,在设置在波信号的振幅频率,根据设置的振幅频率画出图形,最后显示抽样波形,画出图形流程图:开始开始选择调制波形设定频率与幅值,设定载波幅值与频率定义坐标变量(y,t)t=0t<=T0输出(y,t)t=t+0.001结束源代码:Publica1,w1,a2,w2,m1,m2,n1,n2AsDouble,filenameAsStringPrivateSubCommand1_Click()'绘制波形Picture1.Clsa1=Val(Text1.Text):w1=Val(Text2.Text)'调制信号m1=HScroll1.Value:m2=HScroll2.ValueIf(a1>0Andw1>0)ThenIfOption1.ValueOrOption2.ValueOrOption3.ValueOrOption4.ValueThenCallSource(a1,w1)ElseMsgBox"请选择调制波形",,"提示"ExitSubEndIfElseMsgBox"输入不符合条件请重新输入",,"提示"ExitSubEndIfEndSubPrivateSubCommand10_Click()Picture3.ClsCallfm(a1,w1,a2,w2)EndSubPublicSubfm(a1,w1,a2,w2)'已调波形Step=Picture3.Width/9255Picture3.Line(0,1150)-(Picture3.Width,1150)IfOption1.ValueThen'选择余弦Forn=0ToPicture3.WidthStepStepX=nY=1150-a2*HScroll1.Value*Cos(Cos(w1*X*HScroll2.Value/100)*w2*X*HScroll4.Value/100)Picture3.PSet(X,Y)NextEndIfEndSubPrivateSubCommand11_Click()save_pictureCommonDialog1.ShowSaveEndSubPrivateSubsave_picture()CommonDialog1.Filter="BMP格式文件(*.bmp)|*.bmp"CommonDialog1.Flags=cdlOFNPathmustexitOrcdlOFNOverwritePromptCommonDialog1.ShowSaveIfCommonDialog1.filename=""ThenExitSubSavePicturePicture3.Image,CommonDialog1.filenameEndSubPrivateSubCommand12_Click()Picture3.ClsStep=Picture3.Width/92.55Picture3.Line(0,1150)-(Picture3.Width,1150)Forn=0ToPicture3.WidthStepStepX=nY=a2*HScroll1.Value*Cos(Cos(w1*X*HScroll2.Value/100)*w2*X*HScroll4.Value/100)Picture3.Line(X,1150)-(X,1150-Y)NextEndSubPrivateSubCommand3_Click()Picture2.ClsPicture2.Line(0,900)-(Picture2.Width,900)a2=Val(Text3.Text):w2=Val(Text4.Text)n1=HScroll3.Value:n2=HScroll4.ValueStep=Picture2.Width/9255Forn=0ToPicture2.WidthStepStepX=nY=900+n1*a2*Cos(w2*X*n2*0.01)Picture2.PSet(X,Y)NextEndSubPrivateSubCommand2_Click()Picture1.ClsEndSubPublicSubSource(a1,w1)'调制信号Picture1.Line(0,1000)-(Picture1.Width,1000)IfOption1.ValueThen'余弦Step=Picture1.Width/9255Forn=0ToPicture1.WidthStepStepX=nY=1000+m1*a1*Cos(w1*X*0.01*m2)Picture1.PSet(X,Y)NextElseIfOption2.ValueThenStep=6.283185307/(w1*m2*0.01)Forn=0ToPicture1.WidthStepStep'方波Picture1.Line(n,1000+m1*a1)-(n+Step/2,1000+m1*a1)Picture1.Line(n+Step/2,1000+m1*a1)-(n+Step/2,1000-m1*a1)Picture1.Line(n+Step/2,1000-m1*a1)-(n+Step,1000-m1*a1)Picture1.Line(n+Step,1000-m1*a1)-(n+Step,1000+m1*a1)NextElseIfOption3.ValueThenStep=6.283185307/(w1*m2*0.01)Forn=0ToPicture1.WidthStepStepPicture1.Line(n,1000+m1*a1)-(n+Step,1000-m1*a1)Picture1.Line(n+Step,1000-m1*a1)-(n+Step,1000+m1*a1)NextElseIfOption4.ValueThenStep=6.283185307/(w1*m2*0.01)Forn=0ToPicture1.WidthStepStepPicture1.Line(n,1000+m1*a1)-(n+Step/2,1000-m1*a1)Picture1.Line(n+Step/2,1000-m1*a1)-(n+Step,1000+m1*a1)NextEndIfEndSubPrivateSubCommand4_Click()Picture2.ClsEndSubPrivateSubCommand5_Click()Picture3.ClsCallmodulated(a1,w1,a2,w2)EndSubPublicSubmodulated(a1,w1,a2,w2)'已调波形Step=Picture3.Width/9255Picture3.Line(0,1150)-(Picture3.Width,1150)IfOption1.ValueThen'选择余弦Forn=0ToPicture3.WidthStepStepX=nY=1150-a1*a2*HScroll1.Value/10*HScroll3.Value/10*Cos(w1*X*HScroll2.Value/100)*Cos(w2*X*HScroll4.Value/100)Picture3.PSet(X,Y)NextElseIfOption2.ValueThensp=3(w1*m2*0.01)s=1Forn=0ToPicture3.WidthStepsp'方波ForX=nTo(n+sp)StepStepY=1150-a1*s*a2*HScroll3.Value/10*HScroll1.Value/10*Cos(w2*X*HScroll4.Value/100)Picture3.PSet(X,Y)Nexts=s*(-1)NextElseIfOption3.ValueThen'锯齿sp=6.283185307/(w1*m2*0.01)Forn=0ToPicture3.WidthStepspForz=(-sp/2)To(sp/2)StepStepX=n+z+sp/2Y=1150-2*a1*a2*z*HScroll1.Value/10*HScroll3.Value/10*Cos(w2*X*HScroll4.Value/100)/spPicture3.PSet(X,Y)NextNextElseIfOption4.ValueThen'三角波sp=6.283185307/(w1*m2*0.01)Forn=0ToPicture3.WidthStepspForz=(-sp/2)To(sp/2)StepStepX=n+z+sp/2Y=1150-2*a1*a2*z*HScroll1.Value/10*HScroll3.Value/10*Cos(w2*X*HScroll4.Value/100)/spPicture3.PSet(X,Y)NextNextEndIfEndSubPrivateSubCommand6_Click()Picture3.ClsPicture3.ClsStep=Picture3.Width/92.55Picture3.Line(0,1150)-(Picture3.Width,1150)Forn=0ToPicture3.WidthStepStepX=nY=a2*HScroll3.Value*Cos(w2*X*HScroll4.Value/100+Cos(w1*X*HScroll4.Value/100))Picture3.Line(X,1150)-(X,1150-Y)NextEndSubPrivateSubCommand7_Click()DimfilenoAsIntegerDimresponseStep=Picture3.Width/92.55fileno=FreeFileOnErrorResumeNext'设置错误处理否则if不能用CommonDialog1.CancelError=True'设置错误处理否则if不能用CommonDialog1.Action=2'打开共用对话框CommonDialog1.Filter="Word文档(*.DOC)|*.DOC|文本文件(*.TXT)|*.TXT|所有文件(*.*)|*.*"'设置过滤但没法用CommonDialog1.FilterIndex=2'设置过滤默认值但没法用IfErr.Number=32755Then'选择取消时ExitSubEndIffilename=CommonDialog1.filenameOpenCommonDialog1.filenameForOutputAs#filenoPrint#fileno,"x","y";IfOption1.ValueThen'选择余弦Forn=0ToPicture3.WidthStepStepX=nY=a1*a2*HScroll1.Value/10*HScroll3.Value/10*Cos(w1*X*HScroll2.Value/100)*Cos(w2*HScroll4.Value/100*X)Print#fileno,X,YNextElseIfOption2.ValueThensp=3(w1*m2*0.01)s=1Forn=0ToPicture3.WidthStepsp'方波ForX=nTo(n+sp)StepStepY=a1*s*a2*HScroll1.Value/10*HScroll3.Value/10*Cos(w2*HScroll4.Value/100*X)Print#fileno,X,YNexts=s*(-1)NextElseIfOption3.ValueThen'锯齿sp=6.283185307/(w1*m2*0.01)Forn=0ToPicture3.WidthStepspForz=(-sp/2)To(sp/2)StepStepX=n+z+sp/2Y=2*a1*z*a2*HScroll1.Value/10*HScroll3.Value/10*Cos(w2*HScroll4.Value/100*X)/spPrint#fileno,X,YNextNextElseIfOption4.ValueThen'sp=6.283185307/(w1*m2*0.01)Forn=0ToPicture3.WidthStepspForz=(-sp/2)To(sp/2)StepStepX=n+z+sp/2Y=2*a1*a2*z*HScroll1.Value/10*HScroll3.Value/10*Cos(w2*X*HScroll4.Value/100)/spPrint#fileno,X,YNextNextEndIfCloseEndSubPrivateSubCommand8_Click()Step=Picture3.Width/92.55Picture3.ClsIfOption1.ValueThen'选择余弦Forn=0ToPicture3.WidthStepStepX=nY=a1*a2*HScroll1.Value/10*HScroll3.Value/10*Cos(w1*X*HScroll2.Value/100)*Cos(w2*HScroll4.Value/100*X)Picture3.Line(X,1150)-(X,1150-Y)NextElseIfOption2.ValueThensp=3(w1*HScroll2.Value/100)s=1Forn=0ToPicture3.WidthStepsp'方波ForX=nTo(n+sp)StepStepY=a1*s*a2*HScroll1.Value/10*HScroll3.Value/10*Cos(w2*HScroll4.Value/100*X)Picture3.Line(X
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机三级软件测试技术基础与公共政策试题及答案
- 软考网络工程师技术更新与应对试题及答案
- 西方国家医疗制度的政治分析试题及答案
- 新经济形态下的政策创新需求试题及答案
- 深入探讨西方国家的公共关系与政治制度试题及答案
- 如何设计有效的公共政策干预措施试题及答案
- 项目管理中的利益分析与规划试题及答案
- 机电工程跨学科整合的探索试题及答案
- 可再生能源利用试题及答案
- 公共政策编制方法探讨试题及答案
- 妇科护理查房教学课件
- 枣庄学院教师招聘考试历年真题
- LCE-RB-3-004空调风柜保养指导书内容
- GB/T 26516-2011按摩精油
- 2023年燕舞集团有限公司招聘笔试模拟试题及答案解析
- 电机检测报告
- 上市合作合同协议书范本-IPO
- 最新消毒记录表每日消毒表
- 自发冠脉夹层诊疗指南解读
- 《一滴水经过丽江》的课件
- 三级医院服务能力指南2022
评论
0/150
提交评论