长江大学vb上机实习报告._第1页
长江大学vb上机实习报告._第2页
长江大学vb上机实习报告._第3页
长江大学vb上机实习报告._第4页
长江大学vb上机实习报告._第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机上机实习报告班 级 油气储运21301学 号 201300824序 号 21 姓 名 孙霖 指导老师 张超宇 完成日期 2015.1.11目录一 系统题目.3二 摘要3三 系统设计51 菜单结构图2 重要的输入界面说明四. 系统使用说明.9五. 测试数据.9六. 本次实习报告的收获.12七. 附录:程序代码.13一 系统题目 计算机上机实习二 摘要一、用记事本新建一个文本文件,将本班的M名学生的有关信息及本学期的N门考试课的成绩(分数可以参照实际情况模拟,要求将自己的分数放在第一行)输入到这个文件中,建议按如下形式存放(注:20M50、5N8,下文以M=20,N=5为例):序号 姓名 幸

2、运日 出生日期 英语 VB 数学 体育 专业课1 万志龙 5 1992.12.19 99 92 98 88 88 2 时俊杰 6 1993.08.06 97 96 80 89 95 3 潘正彪 1 1994.11.16 89 58 59 97 95 4 王航 1 1993.06.04 56 76 43 54 77 5 刘德华 5 1992.01.05 59 87 85 79 59 7 林振耀 2 1994.01.15 85 56 84 76 68 8 胡峰 7 1994.08.29 95 62 69 76 70 9 江源 6 1993.11.14 61 89 83 85 88 10 雷声 3

3、1996.06.12 66 64 62 68 71 11 谢云峰 7 1991.07.26 77 76 59 86 62 12 程龙 4 1992.08.18 76 85 77 88 90 13 敖博文 8 1994.06.08 95 95 99 80 79 14 胡斌 5 1992.09.14 85 76 81 64 72 15 李腊春 1 1991.01.17 65 59 51 62 79 16 李思睿 3 1992.03.18 92 89 93 85 86 17 穆楠 7 1993.03.04 95 95 92 80 90 18 黎雪莲 6 1994.05.06 85 86 75 72

4、81 19 刘思彤 4 1995.08.02 80 86 85 89 92 20 张璇 5 1993.02.09 80 76 84 82 87 二、将本学期的N门课程及其学分(16学时为1个学分)输入到另一个数据文件(文件类型同上)中,建议如下列形式存放: 编号 课程名称 课程学分1 英语 5.02 vb 43 数学 4.54 体育 3 5 专业 10三、请编写一个简单的学生信息管理程序,要求具备以下菜单功能: 1 找出“出生日”与幸运日相同的人,并打印出其信息(每行输出一个人信息) 2统计出分别拥有幸运数字1,2,3,4,5,6,7,8,9,0的人数3 能查询出任何一个你感兴趣的人的信息;4

5、 可新添加一个人的信息5 可以删除某个不受欢迎的人的信息6可以对某人的幸运数字进行修改,只修改其幸运数字,其他信息不变;7 根据以上两文件内容分别计算每个学生N门课的加权平均分(保留2位小数,4舍5入),按平均分排列名次,平均分相同则名次并列,如第1、2、2、4、5、5、7名。用VB创建一个数据文件,存放班级的成绩表,建议按以下形式存放。 学号 姓名 英语 C程序设计 数学 平均成绩 名次 1 张某 76 89 89 80.5 2 2 李某 91 96 67 78.2 3 3 王某 75 58 56 88.8 1 4 赵某 58 67 77 68.5 48 分别统计全班每门课的平均分,并计算各

6、分数段(60分以下;6069;7079;8089;90分以上)的学生人数。用VB创建一个新的数据文件,在该文件中存放数据的格式如下:范围. 英语 VB . .=90 3 5 . .80-89 10 12 . . . . . . . . . . .9 打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。10 打印所有存在不及格课程学生的名单(含学号、不及格课程名称、课程的学分及成绩)。11 打印优等生名单(学号、门课成绩、平均分名次) 优等生条件:a) 平均分 90分b) 名次在本班位于前三名c) 平均分85分,并且有二门课的成绩都 95分选做内容:打印每门课成绩分布图说 明:所

7、有输出结果应写入用VB创建的文件中,格式要整齐,并有适当的文字说明。实习报告要求:应包括分析设计与说明、部分过程(函数)的源程序清单、程序调试过程中遇到的问题及解决方法,有待改善或改进的意见,对本次实习的意见与建议、收获等。其中原始数据及程序运行的结果应作为附录附于实习报告之后。.三系统设计1.菜单结构图总菜单文件编辑查找打印统计文件原始数据退出学生信息课程信息编辑添加学生信息修改幸运数字删除某人信息查找按姓名查找按编号查找幸运日相同出生日相同统计统计每门课的平均分各个分数段的学生人数每个幸运数字的人数按平均分排名N门课的加权平均分打印学生成绩条不及格学生名单优秀学生名单2重要的输入界面说明添

8、加学生信息时弹出的对话框 按姓名查找时的对话框 删除学生信息时的对话框 添加学生信息时的对话框 四 系统使用说明:本程序可以进行对文本文件的数据读取和处理,实现对学生的加权平均分和名次,每门课程平均分,平均分各分数段人数,每门课程分数段人数,打印每名学生的成绩条,打印挂科名单和优等生名单,并且可以打印每门课程各分数段的分布段。由于程序对读取的文件有要求,我在设计程序时加入了相应的识别和提示功能,使某些功能只能在满足了部分条件后才能使用,以避免错误发生。五 测试数据统计幸运数字:按学号查找:同学信息:计算加权平均分:计算各分段人数:打印成绩条:打印不及格同学名单:打印优等生名单:六 本次实习的收

9、获1. 通过本次的上机实习,我逐渐熟悉了程序开发环境,原本在课堂上不懂的程序代码,现在感觉并不是什么天书了,可以自己编辑一些简单的程序,感觉挺有趣的。2. 学会了常用控件的编辑和编辑菜单和多窗体的编程,并理解数组和过程及函数的类型定义,以及过程和函数的调用方法,初步认识了文件的读取和存放。3. 编程不仅需要自己的思维和方法,还应该有足够的细心和耐心,否则,这么长的英文代码让你不断的调试和检查早就让你头晕目眩了。同时,不懂就要问,这样才能不断的进步。认真思考也是非常的重要,只有经过自己思考的东西和知识才会变成自己的。4. 编程不仅要知道自己的方法,还应看懂别人的程序,体验别人的思维方法。这样不仅

10、可以在别人遇到问题时给予帮助,还可以通过对比融会贯通并得出最简洁的程序编写方法。5. 最后,我在实习中遇到的问题帮助了我理解在课堂理论上没有弄懂的问题,更让我发现了我学习中的薄弱环节,让我有机会去改正和提高。我也深刻的懂得了实践是获取知识的最好方法,在今后的学习中,我应该多将理论与实践结合起来。七 附录 程序代码Type xsxx 定义学生信息类型 bh As String xm As String xyr As Integer csr As String cj(1 To 5) As Integer zf As Integer pj As Single jqpj As Single mc As

11、 IntegerEnd TypeType student num As Integer name As String * 4 luckyday As Integer birthday As String * 10 score(1 To 5) As Integer average As Single rank As IntegerEnd TypeType kecheng num As Integer kec As String xuef As SingleEnd TypeType fanwei fanw As String kem(1 To 5) As IntegerEnd TypeDim st

12、u() As student, kcxf(1 To 5) As kecheng, n%, m%Private Sub wenjian_Click()Dim str1 As StringOpen d:VB.txt For Input As #1Do While Not EOF(1) Line Input #1, str1 Print str1LoopClose #1End SubSub paixu(a() As Single)Dim i%, j%, mi%, t! For i = 1 To n - 1 mi = 0 For j = 1 To n - i If a(j) a(j + 1) Then

13、 t = a(j) a(j) = a(j + 1) a(j + 1) = t mi = mi + 1 End If Next j If mi = 0 Then Exit For End If Next iEnd SubPrivate Sub bujige10_Click()Dim i%, j%, k%, c%(), h%Open d:不及格.txt For Output As #1For i = 1 To n h = 0 For j = 1 To 5 If stu(i).score(j) 0 Then Print #1, stu(i).num & Space(6 - Len(Trim(stu(

14、i).num) & stu(i).name & Space(7 - Len(Trim(stu(i).name); For k = 1 To UBound(c() - 1 Print #1, kcxf(c(k).kec & Space(4) & stu(i).score(c(k) & Space(4) & kcxf(c(k).xuef & Space(4); Next k Print #1, kcxf(c(UBound(c().kec & Space(4) & stu(i).score(c(UBound(c() & Space(4) & kcxf(c(UBound(c().xuef End If

15、Next iClose #1End SubPrivate Sub chaxun3_Click()Dim ren As String * 4, i%, str1 As Stringren = InputBox(请输入需要查找的人名, 查找信息)For i = 1 To n Cls If stu(i).name = ren Then Print 找到了 Open App.Path + VB.txt For Input As #1 Line Input #1, str1 Print str1 Print stu(i).num & Space(6 - Len(Trim(stu(i).num) & st

16、u(i).name & Space(4) & stu(i).luckyday & Space(4) & stu(i).birthday & Space(5); Print stu(i).score(1) & Space(5); Print stu(i).score(2) & Space(5); Print stu(i).score(3) & Space(6); Print stu(i).score(4) & Space(5); Print stu(i).score(5); Exit For End IfNext iIf i n Then Print 没有找到 & ren & !请重新输入End

17、 IfEnd SubPrivate Sub chazhao1_Click()ClsPrint 出生日与幸运日相同的人有:For i = 1 To n If stu(i).luckyday = Val(Mid(Trim(stu(i).birthday), 9, 2) Then Print stu(i).num; stu(i).name; stu(i).luckyday; stu(i).birthday; For j = 1 To 5 Print stu(i).score(j); Next j Print End IfNext iEnd SubPrivate Sub chengjitiao9_Cl

18、ick()Dim str3 As String, i%, j%Open d:VB.txt For Input As #1 Line Input #1, str3Close #1Open d:成绩条.txt For Output As #1For i = 1 To n Print #1, str3 & Space(4) & 平均成绩 & Space(4) & 名次 Print #1, stu(i).num & Space(7 - Len(Trim(stu(i).num) & stu(i).name & Space(6 - Len(Trim(stu(i).name) & stu(i).luckyd

19、ay & Space(6 - Len(Trim(stu(i).luckyday) & stu(i).birthday & Space(6); For j = 1 To 4 Print #1, stu(i).score(j) & Space(5); Next j Print #1, Space(2) & stu(i).score(5) & Space(5); Print #1, Space(1) & Format(stu(i).average, 0.00) & Space(6) & stu(i).rankNext iClose #1End SubPrivate Sub chunfang7_Cli

20、ck()Dim str0 As String, i%, j%, sum!, sun!, c() As SingleReDim c(1 To UBound(stu()For i = 1 To n sum = 0: sun = 0 For j = 1 To 5 sum = sum + stu(i).score(j) * kcxf(j).xuef sun = sun + kcxf(j).xuef Next j stu(i).average = sum / sun c(i) = stu(i).averageNext iCall paixu(c()For i = 1 To n For j = 1 To

21、n If stu(i).average = c(j) Then stu(i).rank = j End If Next jNext iFor i = 1 To n For j = i + 1 To n If stu(i).average = stu(j).average Then stu(i).rank = stu(j).rank End If Next jNext iOpen d:VB.txt For Input As #1 Line Input #1, str0Close #1Open d:成绩表.txt For Output As #1Print #1, str0 & Space(4)

22、& 平均成绩 & Space(4) & 名次For i = 1 To n Print #1, stu(i).num & Space(6 - Len(Trim(stu(i).num) & stu(i).name & Space(6 - Len(Trim(stu(i).name) & stu(i).luckyday & Space(5) & stu(i).birthday & Space(5); For j = 1 To 5 Print #1, stu(i).score(j) & Space(3 + Len(kcxf(j).kec); Next j Print #1, Space(3) & For

23、mat(stu(i).average, 0.00) & Space(6) & Format(stu(i).rank, 00)Next iClose #1End SubPrivate Sub fenduan8_Click()Dim fw(1 To 5) As fanwei, i%, j%, a(1 To 5) As Single, b(1 To 5) As IntegerFor i = 1 To 5 a(i) = 0Next iFor i = 1 To 20 For j = 1 To 5 a(j) = stu(i).score(j) + a(j) Next jNext iFor i = 1 To

24、 5 a(i) = a(i) / 20Next ifw(1).fanw = =90: fw(2).fanw = 80-89: fw(3).fanw = 70-79: fw(4).fanw = 60-69: fw(5).fanw = = 90 Then fw(1).kem(j) = fw(1).kem(j) + 1 ElseIf stu(i).score(j) = 80 Then fw(2).kem(j) = fw(2).kem(j) + 1 ElseIf stu(i).score(j) = 70 Then fw(3).kem(j) = fw(3).kem(j) + 1 ElseIf stu(i

25、).score(j) = 60 Then fw(4).kem(j) = fw(4).kem(j) + 1 Else fw(5).kem(j) = fw(5).kem(j) + 1 End If Next jNext iOpen d:平均分与分数段.txt For Output As #1For i = 1 To 5 Print #1, kcxf(i).kec & 的平均分为: & a(i)Next iPrint #1, Space(1) & 范围 & Space(4);For i = 1 To 4 Print #1, Space(1) & kcxf(i).kec & Space(4);Next

26、 iPrint #1, kcxf(5).kecFor i = 1 To 5 Print #1, fw(i).fanw; Print #1, Space(11 - Len(Trim(fw(i).fanw) & fw(i).kem(1); For j = 2 To 3 Print #1, Space(7) & fw(i).kem(j); Next j Print #1, Space(8) & fw(i).kem(4); Print #1, Space(9) & fw(i).kem(5)Next iClose #1End SubPrivate Sub Form_Load()Dim str1 As S

27、tring, a() As String, b() As String, c() As Single, str2 As String, i%, j%, sun!, sum!Open App.Path + VB.txt For Input As #1 Line Input #1, str1Do While Not EOF(1) Line Input #1, str1 Do While InStr(Trim(str1), ) 0 str1 = Replace(Trim(str1), , ) Loop a = Split(str1, ) n = n + 1 ReDim Preserve stu(1

28、To n) As student stu(n).num = a(0) stu(n).name = a(1) stu(n).luckyday = a(2) stu(n).birthday = a(3) For i = 1 To 5 stu(n).score(i) = a(3 + i) Next iLoopClose #1Open d:学分.txt For Input As #1Line Input #1, str2Do While Not EOF(1) Line Input #1, str2 Do While InStr(Trim(str2), ) 0 str2 = Replace(Trim(s

29、tr2), , ) Loop b = Split(str2, ) m = m + 1 kcxf(m).num = b(0) kcxf(m).kec = b(1) kcxf(m).xuef = b(2)LoopClose #1ReDim c(1 To UBound(stu()For i = 1 To n sum = 0: sun = 0 For j = 1 To 5 sum = sum + stu(i).score(j) * kcxf(j).xuef sun = sun + kcxf(j).xuef Next j stu(i).average = sum / sun c(i) = stu(i).

30、averageNext iCall paixu(c()For i = 1 To n For j = 1 To n If stu(i).average = c(j) Then stu(i).rank = j End If Next jNext iFor i = 1 To n For j = i + 1 To n If stu(i).average = stu(j).average Then stu(i).rank = stu(j).rank End If Next jNext iEnd SubPrivate Sub shanchu5_Click()Dim shanc As String * 4,

31、 i%, j%, k%, str1 As String, s%shanc = InputBox(请输入需要删除的人名, 查找)s = 0For i = 1 To n If stu(i).name = shanc Then Cls s = s + 1 For j = i To UBound(stu() - 1 stu(j).num = stu(j + 1).num stu(j).name = stu(j + 1).name stu(j).luckyday = stu(j + 1).luckyday stu(j).birthday = stu(j + 1).birthday For k = 1 T

32、o 5 stu(j).score(k) = stu(j + 1).score(k) Next k Next j End IfNext iIf s 0 Then n = n - 1 Open d:VB.txt For Input As #1 Line Input #1, str1 Close #1 Open d:VB.txt For Output As #1 Print #1, str1 For i = 1 To n Print #1, stu(i).num & Space(6 - Len(Trim(stu(i).num) & stu(i).name & Space(6 - Len(Trim(s

33、tu(i).name) & stu(i).luckyday & Space(6 - Len(Trim(stu(i).luckyday) & stu(i).birthday & Space(5); For j = 1 To 4 Print #1, stu(i).score(j) & Space(5); If j = 3 Then Print #1, Space(1); End If Next j Print #1, stu(i).score(5) Next i Close #1 Open d:VB.txt For Input As #1 Do While Not EOF(1) Line Inpu

34、t #1, str1 Print str1 Loop Close #1Else Print 没有找到 & shanc & !请重新输入End IfEnd SubPrivate Sub tianjia4_Click()Dim str1$str1 = InputBox(请输入你要添加的信息)Open d:vb.txt For Append As #1Print #1, str1PrintClose #1End SubPrivate Sub tongji2_Click()ClsDim a(9) As Integer, b() As IntegerDim i%, j%, k%For i = 1 To

35、9 a(i) = 0Next iFor i = 1 To n ReDim b(1 To Len(Trim(stu(i).luckyday) For j = 1 To Len(Trim(stu(i).luckyday) b(j) = Val(Mid(Trim(stu(i).luckyday), j, 1) Next j For j = 0 To 9 For k = 1 To UBound(b() If b(k) = j Then a(j) = a(j) + 1 End If Next k Next jNext iFor i = 0 To 9 Print 有幸运数字 & i & 的人数是 & a(

36、i)Next iEnd SubPrivate Sub xiugai6_Click()Dim gaibian As String * 4, k As Integer, str1 As Stringgaibian = InputBox(请输入需要改变幸运日的人的名字, 改变幸运日)For i = 1 To n If stu(i).name = gaibian Then Cls stu(i).luckyday = Val(InputBox(请输入改变后的幸运日, 改变幸运日) Exit For End IfNext iIf i n Then Print 未找到 & gaibian & ,请重新输入改变幸运日的人的名字Else Cls Open d:VB.txt For Input As #1 Line Input #1, str0 Close #1 Open d:VB.txt For Output As #1 Print #1, str0 For i = 1 To n Print #1, stu(i).num & Space(6 - Len(Trim(stu(i).num) & stu(i).name & Space(6 - Len(Trim(stu(i).name) & stu(i).luckyday & Space(6 - Len(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论