




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB上机实习报告班 级 应化11201学 号 201201883序 号 15 姓 名 黄志军 指导老师 陈老师 崔老师 完成日期 2013.12.25目录一 系统题目.3二 摘要3三 系统设计51 菜单结构图2 重要的输入界面说明四. 系统使用说明.9五. 测试数据.9六. 本次实习报告的收获.12七. 附录:程序代码.13一 系统题目 计算机上机实习二 摘要一、用记事本新建一个文本文件,将本班的M名学生的有关信息及本学期的N门考试课的成绩(要求用假想分数,并要求将自己的每门课的分数定在96分以上,放在第一行;别人课程的分数任意拟定)输入到这个文件中,建议按如下形式存放(注:20M50、5N8,下文以M=11,N=5为例):编号姓名幸运日出生日 英语 VB 数学 体育 专业7我自己 81982.12.19 99 100 98 98 10010张某 61983.08.06 77 76 80 89 855李某 11985.11.16 89 88 99 97 953王某 61987.06.04 56 76 43 54 772赵某51988.01.05 82 87 85 79 891刘某31988.01.12 65 68 67 69 704孙某21988.01.15 45 56 66 65 686陈某71988.10.17 77 76 88 90 879周某51988.01.20 66 56 57 58 5911马某21988.03.22 90 89 90 96 988 钱某 3 1988.07.19 87 59 89 99 100二、将本学期的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 可以删除某个不受欢迎的人的信息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 分别统计全班每门课的平均分,并计算各分数段(60分以下;6069;7079;8089;90分以上)的学生人数。用VB创建一个新的数据文件,在该文件中存放数据的格式如下:范围. 英语 VB . .=90 3 5 . .80-89 10 12 . . . . . . . . . . .9 打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。10 打印所有存在不及格课程学生的名单(含学号、不及格课程名称、课程的学分及成绩)。11 打印优等生名单(学号、门课成绩、平均分名次) 优等生条件:a) 平均分 90分b) 名次在本班位于前三名c) 平均分85分,并且有二门课的成绩都 95分选做内容:打印每门课成绩分布图说 明:所有输出结果应写入用VB创建的文件中,格式要整齐,并有适当的文字说明。实习报告要求:应包括分析设计与说明、部分过程(函数)的源程序清单、程序调试过程中遇到的问题及解决方法,有待改善或改进的意见,对本次实习的意见与建议、收获等。其中原始数据及程序运行的结果应作为附录附于实习报告之后。.三系统设计1.菜单结构图总菜单文件编辑查找打印统计文件原始数据退出学生信息课程信息编辑添加学生信息修改幸运数字删除某人信息查找按姓名查找按编号查找幸运日相同出生日相同统计统计每门课的平均分各个分数段的学生人数每个幸运数字的人数按平均分排名N门课的加权平均分打印学生成绩条不及格学生名单优秀学生名单2重要的输入界面说明添加学生信息时弹出的对话框 按姓名查找时的对话框 删除学生信息时的对话框 添加学生信息时的对话框 查找幸运日相同的人的对话框 查找出生日相同的人的对话框修改幸运日时的对话框四 系统使用说明:本程序可以进行对文本文件的数据读取和处理,实现对学生的加权平均分和名次,每门课程平均分,平均分各分数段人数,每门课程分数段人数,打印每名学生的成绩条,打印挂科名单和优等生名单,并且可以打印每门课程各分数段的分布段。由于程序对读取的文件有要求,我在设计程序时加入了相应的识别和提示功能,使某些功能只能在满足了部分条件后才能使用,以避免错误发生。1 课程信息五 测试数据2学生信息3 N门课的加权平均分4 按编号查找时的结果5 按姓名查找时的结果6不及格学生名单7不同分数段学生人数8每门课平均分10幸运日相同的人9每个幸运数字的人数11学生成绩条12优等生名单六 本次实习的收获1. 通过本次的上机实习,我逐渐熟悉了程序开发环境,原本在课堂上不懂的程序代码,现在感觉并不是什么天书了,可以自己编辑一些简单的程序,感觉挺有趣的。2. 学会了常用控件的编辑和编辑菜单和多窗体的编程,并理解数组和过程及函数的类型定义,以及过程和函数的调用方法,初步认识了文件的读取和存放。3. 编程不仅需要自己的思维和方法,还应该有足够的细心和耐心,否则,这么长的英文代码让你不断的调试和检查早就让你头晕目眩了。同时,不懂就要问,这样才能不断的进步。认真思考也是非常的重要,只有经过自己思考的东西和知识才会变成自己的。4. 编程不仅要知道自己的方法,还应看懂别人的程序,体验别人的思维方法。这样不仅可以在别人遇到问题时给予帮助,还可以通过对比融会贯通并得出最简洁的程序编写方法。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 IntegerEnd TypeType kcxx 定义课程信息类型 bh As Integer kcm As String xf As SingleEnd TypePublic xs() As xsxx 定义学生数组Public kc() As kcxx 定义课程数组Public N%, M%, zxf! 定义学生总人数N,课程总门数M,总学分Public Function gfkg(ByVal s1 As String) 定义了一个规范空格间隔的函数 Dim x% x = InStr(s1, ) 查找是否有2个空格存在 Do While x 0 s1 = Replace(s1, , ) 用一个空格去替换2个空格 x = InStr(s1, ) Loop gfkg = s1End FunctionPrivate Sub kcxx_Click() 课程信息 Cls M = 0: zxf = 0 Dim str1$, str2$, i%, s% Open E:vb课vb正式2课程信息.txt For Input As #1 Line Input #1, str1 跳过表头 Do While Not EOF(1) Line Input #1, str2 Print str2 str2 = gfkg(str2) a = Split(str2, ) 分开各个信息项 M = M + 1 ReDim Preserve kc(M) 逐个扩充数组并赋值 With kc(M) .bh = a(0) .kcm = a(1) .xf = a(2) End With Loop For i = 1 To M zxf = zxf + kc(i).xf Next i Print 总学分=; zxf Close #1End SubPrivate Sub xsxx_Click() 学生信息 Form1.Cls N = 0: M = 5 Dim str1$, str2$, i%, s% Open E:vb课vb正式2学生信息.txt For Input As #2 Line Input #2, str1 跳过表头 Do While Not EOF(2) Line Input #2, str2 Print str2 str2 = gfkg(str2) a = Split(str2, ) 分开各个信息项 N = N + 1 ReDim Preserve xs(N) 逐个扩充数组并赋值 With xs(N) .bh = a(0) .xm = a(1) .xyr = a(2) .csr = a(3) s = 0 求每个学生总成绩 For i = 1 To M .cj(i) = a(i + 3) s = s + .cj(i) Next i .zf = s .pj = s / M 求每个学生平均分 End With Print 该学生总分为: & xs(N).zf, 平均分为: & xs(N).pj Loop Close #2End SubPrivate Sub tc_Click() 结束 EndEnd SubPrivate Sub tjxsxx_Click() 添加学生信息 Form1.Cls Dim xs1$ xs1 = InputBox(请输入学生信息) Open E:vb课vb正式2学生信息.txt For Append As #3 Print #3, Print #3, xs1, Close #3End SubPrivate Sub xgsz_Click() 修改某个同学的幸运日 Form1.Cls Dim v$, x!, xyr%, str$ xm = InputBox(请输入姓名!) For i = 1 To N If xs(i).xm xm Then Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); xs(i).xyr; Space(2); xs(i).csr; Space(2); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) Else x = x + 1 str = InputBox(你想将他的幸运日改为:) Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); str; Space(2); xs(i).csr; Space(2); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) End If Next i If x = 0 Then MsgBox (查无此人!)End SubPrivate Sub sc_Click() 删除某个学生的信息 Dim str3$, i% Cls Open e:vb课vb正式2学生信息.txt For Output As #5 str3 = InputBox(请输入要删除的学生编号:) For i = 1 To N If xs(i).bh str3 Then Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); xs(i).xyr; Space(2); xs(i).csr; Space(2); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) End If Next i Close #5End SubPrivate Sub axmcz_Click() Cls Dim v$, x! v = InputBox(请输入姓名) 按姓名查找感兴趣的同学 For i = 1 To N If xs(i).xm = v Then x = x + 1 Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); xs(i).xyr; Space(4); xs(i).csr; Space(5); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) End If Next i If x = 0 Then MsgBox (姓名无效,请重新输入!)End SubPrivate Sub abhcz_Click() Cls Dim v%, x! v = Val(InputBox(请输入编号) 按编号查找感兴趣的学生 For i = 1 To N If xs(i).bh = v Then x = x + 1 Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); xs(i).xyr; Space(2); xs(i).csr; Space(2); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) End If Next i If x = 0 Then MsgBox (编号无效,请重新输入!)End SubPrivate Sub csrxt_Click() 出生日相同的学生 Cls Print 出生日相同的人有: Dim cs$, x! cs = InputBox(请输入出生日) For i = 1 To N If xs(i).csr = cs Then x = x + 1 Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); xs(i).xyr; Space(2); xs(i).csr; Space(2); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) End If Next i If x = 0 Then MsgBox (没有出生日相同的人!)End SubPrivate Sub xyrxt_Click() 幸运数相同的同学 Cls Print 幸运日相同的人有: Dim v%, x! v = Val(InputBox(请输入幸运日) For i = 1 To N If xs(i).xyr = v Then x = x + 1 Print 编号 姓名 幸运日 出生日 英语 vb 数学 体育 专业 Print xs(i).bh; Space(2); xs(i).xm; Space(2); xs(i).xyr; Space(2); xs(i).csr; Space(2); xs(i).cj(1); Space(2); xs(i).cj(2); Space(2); xs(i).cj(3); Space(2); xs(i).cj(4); Space(2); xs(i).cj(5) End If Next i If x = 0 Then MsgBox (没有幸运日相同的人!)End SubPrivate Sub mmkdpjf_Click() 每门课程的平均分 Cls Dim a!, b!, c!, d!, e!, a1!, b1!, c1!, d1!, e1! a = 0: b = 0: c = 0: d = 0: e = 0 For i = 1 To N a = a + xs(i).cj(1) b = b + xs(i).cj(2) c = c + xs(i).cj(3) d = d + xs(i).cj(4) e = e + xs(i).cj(5) Next i a1 = a / N: b1 = b / N: c1 = c / N: d1 = d / N: e1 = e / N: Print 英语的平均分为:; a1 Print vb的平均分为:; b1 Print 数学的平均分为:; c1 Print 体育的平均分为:; d1 Print 专业的平均分为:; e1End SubPrivate Sub gfsdrs_Click() 各课程各分数段人数 Cls Dim d%, s%(1 To 5), j% s(1) = 0: s(2) = 0: s(3) = 0: s(4) = 0: s(5) = 0 For j = 1 To 5 For i = 1 To N d = xs(i).cj(j) 10 Select Case d Case 0 To 5 s(1) = s(1) + 1 Case 6 s(2) = s(2) + 1 Case 7 s(3) = s(3) + 1 Case 8 s(4) = s(4) + 1 Case 9 s(5) = s(5) + 1 End Select Next i Print kc(j).kcm Print 60分以下的人数; Space(3); s(1) Print 60-69的人数; Space(3); s(2) Print 70-79的人数; Space(3); s(3) Print 80-89的人数; Space(3); s(4) Print 90分以上的人数; Space(3); s(5) Next jEnd SubPrivate Sub mgxyrrs_Click() 拥有各个幸运数的人数 Cls Dim i%, r%, t% For t = 0 To 9 i = 0 For r = 1 To N If xs(r).xyr = t Then i = i + 1 Else i = i End If Next r Print 拥有幸运日 & t & 的人有: & i & 个 Next tEnd SubPrivate Sub jqpjf_Click() 求每位同学的加权平均分 Cls Dim i% For i = 1 To N xs(i).jqpj = (xs(i).cj(1) * kc(1).xf + xs(i).cj(2) * kc(2).xf + xs(i).cj(3) * kc(3).xf + xs(i).cj(4) * kc(4).xf + xs(i).cj(5) * kc(5).xf) / (kc(1).xf + kc(2).xf + kc(3).xf + kc(4).xf + kc(5).xf) Prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行专家组考试题库及答案
- 银行邮政笔试题目及答案
- 银行行长考试题目及答案
- 医院管理专业试题及答案
- 学前教育专业知识试题及答案
- 机械专业基础试题及答案
- 大专护理专业试题及答案
- 大专药学专业试题及答案
- 湖南省岳阳市颐华高级中学(平江)2025-2026学年高二上学期入学考试生物试题(解析版)
- 湖北省汉川市金益高级中学2025-2026学年高二上学期9月起点考试化学试卷(含答案)
- 业务连续性培训课件
- 医院门诊急救体系构建
- 2025年箱变考试题库
- 2025年G2电站锅炉司炉理论考试试题(1000题)含答案
- 病原微生物感染
- 第3课 学习有方法 第2课时(课件)2025-2026学年道德与法治三年级上册统编版
- 2025年幼儿园膳食工作计划
- 2025年中国电信校招试题及答案
- 《建筑工程资料管理》高职土建类相关专业全套教学课件
- 【物理】2025届安徽省普通高中高三下学期高考全真模拟训练(三)试题(解析版)
- 消防队伍管酒治酒课件
评论
0/150
提交评论