欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    vb实验H数据文件.docx

    • 资源ID:3168282       资源大小:41.05KB        全文页数:15页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    vb实验H数据文件.docx

    vb实验H数据文件实验H 数据文件 一、实验目的 1掌握顺序文件、随机文件及二进制文件的特点和使用。 2掌握各类文件的打开、关闭和读/写操作。 3学会在应用程序中使用文件。 二、实验内容 1编写如图H1所示的应用程序。若单击“建立文件”按钮,则分别用Print#和Write#语句将三个同学的学号、姓名和成绩写入文件Scoredat和Scoreldat;若单击“读取文件”按钮,则用Line Input语句按行将两个文件中的数据送往相应的文本框。 要求:学号和姓名是字符串类型,成绩是整型。 Private Sub Command1_Click Open "C:UsersAdministratorDesktop第八章H1score" For Output As #1 Print #1, "051023", "王海涛", 66 Print #1, "052498", "周文英", 88 Print #1, "050992", "陈建东", 77 Open "C:UsersAdministratorDesktop第八章H1score1" For Output As #2 Write #2, "051023", "王海涛", 66 Write #2, "052498", "周文英", 88 Write #2, "050992", "陈建东", 77 Close i1 = Shell("NOTEPAD.exe" + " c:score", vbNormalNoFocus) i2 = Shell("NOTEPAD.exe" + " c:score1", vbNormalNoFocus) End Sub Private Sub Command2_Click Dim no As String, name As String, s As Integer Open "C:UsersAdministratorDesktop第八章H1score" For Input As #1 Do While Not EOF(1) Line Input #1, linedata List1.AddItem linedata Loop Open "C:UsersAdministratorDesktop第八章H1score1" For Input As #2 Do While Not EOF(2) Input #2, no, name, s List2.AddItem no & name & s Loop Close End Sub 2将斐波那契数列的前1 0项写入文件Fb .dat,然后从该文件将数据读取出来并计算合计和平均数,最后送入列表框。 要求:文件数据格式如图H2所示,列表框中项目格式如图H3所示。 Private Sub Command1_Click Dim fib%(0 To 9), i% Open "C:UsersAdministratorDesktop第八章H2Fb.dat" For Output As #1 For i = 0 To 9 If i = 0 Or i = 1 Then fib(i) = i Else fib(i) = fib(i - 1) + fib(i - 2) End If Print #1, """Fib(" & i & ")""," & fib(i) Next i Close #1 i = Shell("NOTEPAD.exe" + " C:UsersAdministratorDesktop第八章H2Fb.dat", vbNormalNoFocus) Close #1 End Sub Private Sub Command2_Click Dim st$, n%, sum% Open "C:UsersAdministratorDesktop第八章H2Fb.dat" For Input As #1 Do While Not EOF(1) Input #1, st, n sum = sum + n List1.AddItem st & "=" & n Loop Close #1 List1.AddItem "合计:" & sum List1.AddItem "平均:" & sum / 10 End Sub 3设计一个如图H4所示的应用程序。 要求: 单击“打开文件”按钮弹出一个通用对话框,选择文件后显示在文本框中。 单击“保存文件”按钮后弹出通用对话框,确定文件名后保存。 单击“查找下一个”按钮后在文本文件中查找单词“VB”,找到后以高亮度显示。若再单击“查找下一个”按钮,则继续查找。 Private Sub Command1_Click CommonDialog1.Action = 1 Text1.Text = "" Open CommonDialog1.FileName For Input As #1 Do While Not EOF(1) Line Input #1, inputdata Text1.Text = Text1.Text + inputdata + vbCrLf Loop Close #1 End Sub Private Sub Command2_Click CommonDialog1.FileName = "Default.Txt" CommonDialog1.DefaultExt = "Txt" CommonDialog1.Action = 2 Open CommonDialog1.FileName For Output As #1 Print #1, Text1.Text Close #1 End Sub Private Sub Command3_Click Static j% Text1.SetFocus j = InStr(j + 1, Text1, "VB") If j > 0 Then Text1.SelStart = j - 1 Text1.SelLength = 2 j = j + 1 Else MsgBox "找不到" End If End Sub Private Sub Command4_Click End End Sub 4编写一个随机文件程序。 要求: 建立一个具有5个学生的学号、姓名和成绩的随机文件( Random. dat)。 读出Randomdat文件中的内容,然后按成绩排序,最后按顺序写入另一个随机文件( Randomldat)。 再一次读出文件的内容,按文件中的顺序将学生的信息显示在屏幕上,检查正确性。 Private Type Studtype no As String * 4 name As String * 6 mark As Single End Type Dim Student As Studtype, Stud(1 To 5) As Studtype, t As Studtype Private Sub Command1_Click Open "C:UsersAdministratorDesktop第八章H4score.dat" For Random As #1 Len = Len(Student) With Student .no = "0001" .name = "小王" .mark = 66 End With Put #1, 1, Student With Student .no = "0002" .name = "俊杰" .mark = 99 End With Put #1, 2, Student With Student .no = "0003" .name = "勇气" .mark = 88 End With Put #1, 3, Student With Student .no = "0004" .name = "光明" .mark = 55 End With Put #1, 4, Student With Student .no = "0005" .name = "加油" .mark = 77 End With Put #1, 5, Student Close #1 End Sub Private Sub Command2_Click Open "C:UsersAdministratorDesktop第八章H4score.dat" For Random As #1 Len = Len(Student) For i = 1 To 5 Get #1, i, Student Print Student.no, Student.name, Student.mark Stud(i) = Student Next i Close #1 For i = 1 To 5 For j = i + 1 To 5 If Stud(i).mark > Stud(j).mark Then t = Stud(i): Stud(i) = Stud(j): Stud(j) = t Next Next i Open "C:UsersAdministratorDesktop第八章H4score.dat" For Random As #2 Len = Len(Student) For i = 1 To 5 Put #2, i, Stud(i) Next i Close #1 End Sub Private Sub Command3_Click Open "C:UsersAdministratorDesktop第八章H4score.dat" For Random As #1 Len = Len(Student) For i = 1 To 5 Get #1, i, Stud(i) Print Stud(i).no; Stud(i).name; Stud(i).mark Next i Close #1 End Sub 5在教材例8.6中添加一组按钮,如图H.5所示,并编写事件过程。 Dim Student As StudType Dim Record_No As Integer Sub Command1_Click With Student .iNo = Val(Text1.Text) .strName = Text2.Text .strSex = IIf(Option1.Value, "1", "0") .sMark = Val(Text4.Text) End With Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = LOF(1) / Len(Student) + 1 Label4.Caption = Record_No Put #1, Record_No, Student Close #1 End Sub Sub Command2_Click Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = Val(Text3.Text) Get #1, Record_No, Student Text1.Text = Student.iNo Text2.Text = Student.strName If Student.strSex = "1" Then Option1.Value = True Else Option2.Value = True End If Text4.Text = Student.sMark Record_No = LOF(1) / Len(Student) Close #1 End Sub Private Sub Command3_Click Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = 1 Get #1, Record_No, Student Text1.Text = Student.iNo Text2.Text = Student.strName If Student.strName = "1" Then Option1.Value = True Else Option2.Value = True End If Text4.Text = Student.sMark Close #1 End Sub Private Sub Command4_Click Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = Record_No + 1 Get #1, Record_No, Student Text1.Text = Student.iNo Text2.Text = Student.strName If Student.strName = "1" Then Option1.Value = True Else Option2.Value = True End If Text4.Text = Student.sMark Close #1 End Sub Private Sub Command5_Click Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = Record_No - 1 Get #1, Record_No, Student Text1.Text = Student.iNo Text2.Text = Student.strName If Student.strName = "1" Then Option1.Value = True Else Option2.Value = True End If Text4.Text = Student.sMark Close #1 End Sub Private Sub Command6_Click Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = Val(Label4.Caption) Get #1, Record_No, Student Text1.Text = Student.iNo Text2.Text = Student.strName If Student.strName = "1" Then Option1.Value = True Else Option2.Value = True End If Text4.Text = Student.sMark Close #1 End Sub Sub Command7_Click With Student .iNo = Val(Text1.Text) .strName = Text2.Text .strSex = IIf(Option1.Value, "1", "0") .sMark = Val(Text4.Text) End With Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Record_No = Val(Text4.Text) Put #1, Record_No, Student Close #1 End Sub Sub Form_Load Open "C:UsersAdministratorDesktop第八章H5STUDENT.DAT" For Random As #1 Len = Len(Student) Label4.Caption = LOF(1) / Len(Student) Close #1 End Sub 6将教材例8.4用随机文件实现。 Private Type studtype no As Integer name As String * 6 mark As Integer End Type Dim std As studtype Dim record As Integer Private Sub Command1_Click With std .no = Val(Text1.Text) .name = Text2.Text .mark = Val(Text3.Text) End With Open "C:UsersAdministratorDesktop第八章H6score1" For Random As #1 Len = Len(std) record = LOF(1) / Len(std) + 1 Put #1, record, std Close #1 Text1.Text = "" Text2.Text = "" Text3.Text = "" Text1.SetFocus End Sub Private Sub Command2_Click Dim sum, count As Integer Open "C:UsersAdministratorDesktop第八章H6score1" For Random As #1 Len = Len(std) For i = 1 To record Get #1, i, std sum = sum + std.mark count = count + 1 List1.AddItem std.no & " " & std.name & std.mark Next i List1.AddItem "总分" & sum List1.AddItem "平均成绩" & sum / count Close #1 End Sub 7编写一个能将任意两个文件的内容合并的程序,程序界面由自己设计。 提示: 若要处理任意类型的文件,则文件必须作为二进制文件打开。 Private Sub Command1_Click Dim char As Byte Open "C:UsersAdministratorDesktop第八章H7t1.dat" For Binary As #1 Open "C:UsersAdministratorDesktop第八章H7t2.dat" For Binary As #2 Open "C:UsersAdministratorDesktop第八章H7t3.dat" For Binary As #3 Do While Not EOF(1) Get 1, , char Put 3, , char Loop Do While Not EOF(2) Get 2, , char Put 3, , char Loop Close #1, #2, #3 End Sub 习 题 八 l、什么是文件?ASCII文件与二进制文件有什么区别? 答:文件是存储在外存储器上的用文件名称标识的数据的集合。按存储信息的形分类,文件可分为ASCII文件和二进制文件。ASCII文件存放的是各种数据的ASCII代码,可以用记事本打开;二进制文件存放的是各种数据的二进制代码,不能用记事本打开,必须由专用程序打开。 2、根据文件的访问模式,文件可分为哪几种类型? 答:根据文件的访问模式,文件可分为顺序文件、随机文件、二进制文件。顺序文件要求按顺序访问文件中的数据;随机文件可以根据记录号直接访问某一特定记录;二进制文件要求以字节为单位定位数据位置,允许程序直接访问各个字节数据,也允许程序按所需的任何方式组织和访问数据。 3、构造满足下列条件的Open语句。 (1)建立一个新的顺序文件Seqnewdat供用户写入数据,指定文件号为1。 答:Open” Seqnewdat” For Output As #1 (2)打开一个旧的顺序文件Seqolddat,用户将从该文件读出数据,指定文件号为2。 答:Open” Seqolddat” For Intput As #2 (3)打开一个旧的顺序文件Seqappenddat,用户将在该文件后面添加数据,文件号调用FreeFile函数获得。 答:Dim No% No=FreeFile Open” Seqappenddat” For Append As #No 4、试写出程序代码片段,将文本文件Textdat中的内容读入变量strTest$中。 答:文本文件具有行结构的特性,可以按行读取文本文件中的数据: Open "Text.dat" For Input As #1 strtest$ = "" Do While Not EOF(1) Line Input #1, linedata strtest$ = strtest$ + linedata + vbCrLf Loop Close #1 5、Print#和Write#语句的区别?各有什么用途? 答:两种语句区别是:用Write#语句输出数据时,各数据之间自动插入“,”,并给字符串加上双引号,以区别数据类型;而用Print#语句输出数据时,数据项之间既无逗号分隔,字符串又无双引号引起。因此,为了以后读取数据项的方便,输出列表有多个数据项组成时,建议使用Write#语句。 6、试说明EOF函数的功能。 答:EOF函数判断文件指针是否到达文件结束标志。该函数在读取文件中的全部记录时很有用,可作为循环结构中循环终止与否的标志。 7、随机文件和二进制文件的读/写操作有何不同? 答:随机文件以记录为单位读/写数据,而二进制文件以字节为单位读/写数据。 8、试写出程序代码片断,将磁盘上的两个文件合并。 答:随机文件按记录为单位读/写,所以合并时两个文件的记录类型应相同,合并的思路与顺序文件合并的思路相同;否则采取二进制方式以字节为单位读/写。 将两个二进制文件合并成第三个二进制文件程序段如下: Dim char As Byte Open "t1.dat" For Binary As #1 Open "t2.dat" For Binary As #2 Open "t3.dat" For Binary As #3 Do While Not EOF(1) Get 1, , char Put 3, recno, char Loop Do While Not EOF(2) Get 2, , char Put 3, , char Loop Close #1, #2, #3 9、为什么有不使用Close语句关闭文件会导致文件数据丢失? 答:将数据写入文件时,先将数据写入文件缓冲区暂存,等到文件缓冲区满了或文件关闭时才一次性输出到文件中。因此,数据写入文件结束后一定要关闭文件,因为有部分数据仍然在文件缓冲区,不关闭文件会有数据丢失情况的发生,尽管大多数情况下操作系统会自动关闭文件。

    注意事项

    本文(vb实验H数据文件.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开