上海立信会计学院本科实验报告班级:学号:姓名:指导教师:系部:专业:实验时间:实验8数据文件及图形操作一、实验目的1.掌握顺序文件的特点和使用2.掌握顺序文件的打开、关闭和读写操作3.掌握在应用程序中使用文件4.掌握图形操作二、实验要求1.在C:\下建立子文件夹“VB实验8”,按照题目要求,在该文件夹下为各题保存相应的文件,如本实验中的第一题,需保存的文件有:工程文件(81.vbp)、窗体文件(81.frm)及可执行文件(81.exe),本实验中的第二题,需保存的文件有:工程文件(82.vbp)、窗体文件(82.frm)及可执行文件(82.exe),其余实验依此类推。2.撰写实验过程中出现了哪些问题、错误,你是如何解决的,做一个小结。三、实验内容:1.设计一个应用程序,窗体内所有控件字体为宋体、大小为五号,运行界面如图8-1所示。若单击“建立文件”按钮,则分别用Print#和Write#语句将三个同学的学号、姓名和成绩写入(当前目录)文件Score.dat和Score1.dat;若单击“读取文件”按钮,则用lineInput语句按行将两个(当前目录)文件中的数据送往相应的文本框。其中:学号和姓名是字符串类型,成绩是整型:数据如下:051023,王海涛,66051024,周文英,88051025,王海涛,71图8-1PrivateSubCommand1_Click()Openscore.datForOutputAs#1Print#1,051023,王海涛,66Print#1,051024,周文英,88Print#1,051025,王海涛,71Close#1Shellnotepadscore.datOpenscore1.datForOutputAs#1Write#1,051023,王海涛,66Write#1,051024,周文英,88Write#1,051025,王海涛,71Close#1Shellnotepadscore1.datEndSubPrivateSubCommand2_Click()DiminputdataAsStringOpenscore.datForInputAs#1DoWhileNotEOF(1)LineInput#1,inputdataText1.Text=Text1.Text+inputdata+vbCrLfLoopClose#1Openscore1.datForInputAs#1DoWhileNotEOF(1)LineInput#1,inputdataText2.Text=Text2.Text+inputdata+vbCrLfLoopClose#1EndSubPrivateSubForm_Load()Text1.Text=Text2.Text=EndSub2.设计一个应用程序,界面如图8-2(1),窗体内所有控件字体为宋体、大小为五号,点击“建立文件”按钮,则建立数组num,数组元素为10个小于100的随机整数,将数组数据写入文件(当前目录)Fb.dat,文件内容及格式如图8-2(2);点击“读取文件”按钮,则从(当前目录)Fb.dat文件中将数据读取出来,显示在列表框中,并计算这些数的合计与平均数,并把计算结果也显示在列表框中。图8-2(1)图8-2(2)PrivateSubCommand1_Click()Dimnum(9)AsIntegerDimi%,outputstringAsStringOpenFb.datForOutputAs#1Fori=0To9num(i)=Int(Rnd*100)outputstring=num(&i&)=Write#1,outputstring,num(i)NextiClose#1EndSubPrivateSubCommand2_Click()Dimsum%,ave!DiminputstringAsString,inputdataAsIntegerOpenFb.datForInputAs#1sum=0DoWhileNotEOF(1)Input#1,inputstring,inputdataList1.AddIteminputstring&inputdatasum=sum+inputdataLoopClose#1List1.AddItem合计:&sumave=sum/10List1.AddItem平均:&aveEndSubPrivateSubForm_Load()'RandomizeEndSub3.设计一个应用程序,界面如图8-3,窗体内所有控件字体为宋体、大小为五号。要求:1)点击“打开文件”按钮,则弹出一个“打开”通用对话框,用户选择文件后将文件内容显示在文本框中;“C:\VB实验8”下的“实验83.txt”供调试使用;2)点击“保存文件”按钮,则弹出“另存为”通用对话框,用户确定文件保存目录为“C:\VB实验8”,文件名为83.dat,保存内容为文本框中显示的所有文字内容;3)点击“结束”,则退出程序。图8-3PrivateSubCommand1_Click()CommonDialog1.Filter=Textfiles(*.txt)|*.txt|Datafiles(*.dat)|*.dat|Allfiles(*.*)|*.*CommonDialog1.FilterIndex=1CommonDialog1.FileName=CommonDialog1.Action=1OpenCommonDialog1.FileNameForInputAs#1DoWhileNotEOF(1)LineInput#1,inputdataText1.Text=Text1.Text+inputdata+vbCrLfLoopClose#1EndSubPrivateSubCommand2_Click()CommonDialog1.Filter=Textfiles(*.txt)|*.txt|Datafiles(*.dat)|*.dat|Allfiles(*.*)|*.*CommonDialog1.FilterIndex=2CommonDialog1.FileName=CommonDialog1.Action=2OpenCommonDialog1.FileNameForOutputAs#1Print#1,Text1.TextClose#1EndSubPrivateSubCommand4_Click()EndEndSubPrivateSubForm_Load()Text1.Text=EndSub4.编一循环程序,单击窗体后,用Line方法在屏幕上随机产生20条长度、颜色(用QBColor实现)、宽度(2-4单位)各异的直线,效果图8-4所示。图8-4PrivateSubForm_Click()ClsDimi%,lx1%,lx2%,lx3%,lx4%,c$RandomizeFori=1To20lx1=Rnd*Form1.ScaleWidthly1=Rnd*Form1.ScaleHeightlx2=Rnd*Form1.ScaleWidthly2=Rnd*Form1.ScaleHeightForm1.DrawWidth=Int(Rnd*3+2)c=RGB(Rnd*255,Rnd*255,Rnd*255)'QBColor(Rnd*15)Line(lx1,ly1)-(lx2,ly2),cNextiEndSub5.编一程序,单击窗体后,用Pest方法在窗体内画200个随机彩色点(颜色用QBColor实现),点的大小在单位3~6之间变化,如图8-5所示。图8-5PrivateSubForm_Click()ClsDimi%,lx1%,lx2%,c$RandomizeFori=1To200lx1=Rnd*Form1.ScaleWidthly1=Rnd*Form1.ScaleHeightForm1.DrawWidth=Int(Rnd*4+3)c=RGB(Rnd*255,Rnd*255,Rnd*255)'QBColor(Rnd*15)PSet(lx1,ly1),cNextiEndSub6.编一程序,在窗体上放置一个“绘图”按钮。单击“绘图”按钮,定义窗体的坐标体系为(-5,5)-(7,-8);用Line方法在窗体上按阿基米德螺线方程SinyCos,在0~2π之间展开直线(直线的一端为坐标系原点,另一端坐标用阿基米德方程计算),要求直线的颜色随机变化(用QBColor实现),步长为0.1,如图8-6所示。图8-6PrivateSubCommand1_Click()ClsDima!,c$RandomizeForm1.DrawWidth=1Form1.Scale(-4,4)-(4,-8)Fora=0To6.28Step0.1c=RGB(Rnd*255,Rnd*255,Rnd*255)'QBColor(Rnd*15)Line(0,0)-(a*Cos(a),a*Sin(a)),cNextaEndSub7.编一程序,单击窗体后,用Circle方法在窗体上绘制如图8-7所示图案,圆心x随坐标递增,y始终为窗体高度的一半,半径随x而变化。图8-7PrivateSubForm_click()Dimx%Forx=0To2000Step50Form1.Circle(500+x,Form1.ScaleHeight/2),x/2NextxEndSub四、实验过程中的问题、错误,解决方法,总结、体会、建议。