资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五节 模块化程序(1)了解自顶向下、逐步求精的程序设计方法安阳一中 李永恒教学目标n理解并掌握自顶向下,逐步求精的程序设计方法引言n在实际生活中,当遇到一个大型的、复杂的问题时,人们通常会把这个大问题分解为几个部分,分别加以解决。如果某些部分还比较复杂,就再进行细分,当各部分问题被一一解决后,大问题也就迎刃而解了。n当需要用计算机解决的问题比较大型,设计程序时,也可以采用这种方法。先从整体角度将程序分解为几个大的模块,再逐步进行细分,直至分解为若干个小的容易解决的模块。活动一 了解自顶向下、逐步求精的程序设计方法n提问:阅读教材95页活动一,要求编制一个程序帮助培训部的老师管理学生的成绩,并能够根据学生的成绩判断发给哪种证书,那么这个程序需要完哪些工作?1、分析问题与设计算法n要解决本问题,需要用到25个学生的姓名、三门课程的成绩并计算出他们的总分。n设使用以下数组n姓名:sname(25) 三门课程的成绩:score(25,3) 总分:sum(25)nsname(i)表示: nscore(i,j)表示: nsum(i)表示 分析问题与算法设计n(1)需要解决的问题是:根据培训班学生三门课程的成绩,统计学生的学习成绩和总分,并判断该学生能获得哪一种证书。可以将问题的解决分为三个环节n输入学生的成绩n计算学生的总分n输出学生的成绩表和证书类型。n(2)流程分析分析问题与算法设计(3)列出计算第i个学生的总分的计算公式 : Sum(i) = score(i, 1) * 0.2 + score(i, 2) * 0.5 + score(i, 3) * 0.3(4)列出判断获得证书类型的P1和P2的表达式 P1:(score(i, 1) = 85 And score(i, 2) = 85 And score(i, 3) = 85) P2:(Sum(i) 70 And score(i, 1) = 60 And score(i, 2) = 60 And score(i, 3) = 60)(5)根据李老师的分析,用自然语言整理出完整算法第1步:输入学生的成绩循环i从1到n第2步:计算学生总分循环i从1到n sum(i)=第3步:输出成绩表输出表头输出成绩表循环i从1到n,步长为1输出第i位学生的姓名、三门课程成绩、总分如果则 输出“优秀”否则 如果则 输出“合格”否则 输出“无”阅读程序代码,在下划线处完功能注释Private Sub Form_Click() Const n As Integer = 25 Dim sname(25) As String 学生的姓名 Dim score(25, 3) As Integer 学生的三门课程成绩Dim sum(25) as integer 学生的总分 Dim i As Integer Dim prompt As String 输入学生的成绩输入学生的成绩 For i = 1 To n prompt = 输入第 & i & 个学生姓名 sname(i) = InputBox(prompt) prompt = 输入 & sname(i) & 的软硬件基础成绩 score(i, 1) = Val(InputBox(prompt) prompt = 输入 & sname(i) & 的文字处理成绩 score(i, 2) = Val(InputBox(prompt) prompt = 输入 & sname(i) & 的网络技术应用成绩 score(i, 3) = Val(InputBox(prompt) Next i 计算学生的总分计算学生的总分 For i = 1 To n Sum(i) = score(i, 1) * 0.2 + score(i, 2) * 0.5 + score(i, 3) * 0.3 Next i输出学生的成绩表输出学生的成绩表 输出表头 Print 姓名 + vbTab + 成绩1 + vbTab + 成绩2 + vatab + 成绩3 + vbTab + 总分 + vbTab + 证书 For i = 1 To n 输出一位学生的姓名、成绩和总分 prompt = sname(i) & vbTab & score(i, 1) & vbTab & score(i, 2) & vbTab & score(i, 3) & Sum(i) & vbTab 输出学生的证书类型输出学生的证书类型 If (score(i, 1) = 85 And score(i, 2) = 85 And score(i, 3) = 85) Then Print prompt & 优秀 Else If (Sum(i) 70 And score(i, 1) = 60 And score(i, 2) = 60 And score(i, 3) = 60) Then Print prompt & 合格 Else Print prompt & 无 End If End If Next iEnd Sub学习指引n程序变量的初始化阶段;输入数值并相应地调整变量的处理阶段;计算并显示结果的终止阶段。n最顶层仅仅描述了程序的功能,它虽然是程序的一个完整表示,但很少提供足够的信息,不能直接用程序语句表示,因此需要进行细化处理。n对每一部分进行细化,遇到不能很清楚解决的步骤再向下一层延伸。依次进行第二层、第三层的细化,直到每一步都是一个基本操作为止。每次分步处理,都是算法在一个层次上的细化。体验活动n完成课本上空白的填写。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号