《第五节模块化程序设计1.ppt》由会员分享,可在线阅读,更多相关《第五节模块化程序设计1.ppt(11页珍藏版)》请在三一文库上搜索。
1、第五节 模块化程序(1) 了解自顶向下、逐步求精的程序设计方法,安阳一中 李永恒,教学目标,理解并掌握自顶向下,逐步求精的程序设计方法,引言,在实际生活中,当遇到一个大型的、复杂的问题时,人们通常会把这个大问题分解为几个部分,分别加以解决。如果某些部分还比较复杂,就再进行细分,当各部分问题被一一解决后,大问题也就迎刃而解了。 当需要用计算机解决的问题比较大型,设计程序时,也可以采用这种方法。先从整体角度将程序分解为几个大的模块,再逐步进行细分,直至分解为若干个小的容易解决的模块。,活动一 了解自顶向下、逐步求精的程序设计方法,提问:阅读教材95页活动一,要求编制一个程序帮助培训部的老师管理学生
2、的成绩,并能够根据学生的成绩判断发给哪种证书,那么这个程序需要完哪些工作?,1、分析问题与设计算法,要解决本问题,需要用到25个学生的姓名、三门课程的成绩并计算出他们的总分。 设使用以下数组 姓名:sname(25) 三门课程的成绩:score(25,3) 总分:sum(25) sname(i)表示: score(i,j)表示: sum(i)表示,分析问题与算法设计,(1)需要解决的问题是:根据培训班学生三门课程的成绩,统计学生的学习成绩和总分,并判断该学生能获得哪一种证书。可以将问题的解决分为三个环节 输入学生的成绩 计算学生的总分 输出学生的成绩表和证书类型。 (2)流程分析,分析问题与算
3、法设计,(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
4、从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 Inte
5、ger 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)
6、 = 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
7、) & 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 i End Sub,学习指引,程序变量的初始化阶段;输入数值并相应地调整变量的处理阶段;计算并显示结果的终止阶段。 最顶层仅仅描述了程序的功能,它虽然是程序的一个完整表示,但很少提供足够的信息,不能直接用程序语句表示,因此需要进行细化处理。 对每一部分进行细化,遇到不能很清楚解决的步骤再向下一层延伸。依次进行第二层、第三层的细化,直到每一步都是一个基本操作为止。每次分步处理,都是算法在一个层次上的细化。,体验活动,完成课本上空白的填写。,
链接地址:https://www.31doc.com/p-2526868.html