子程序设计2
6 显示学生名次表rank 编制一个程序,要求接受键盘输入的一个班的学生成绩,并存放于一个50 字的grade 数组中,其中 grade+i保存学号为 I+1 的学生成绩
然后根据grade 中的学生成绩,把学生成绩依次填入50 字的 rank 数组中,其中 rank+i 的内容是学号为i+1 的学生的名次
再按学号顺序把名次从终端上显示出来
本题要做的主要工作和例2
2 的内容是完全一样的,只是增加了由用户键入学生成绩及输出学生名次两个部分的内容,因此这三个部分可以用子程序结构来完成
子程序结构划分的层次图如图2
17 所示,可以看出, main 为主要模块,其下一层的三个模块为程序的三大部分
现将各模块说明如下:1
模块名: main 为总模块输入:从键盘输入一个班的学生成绩输出:显示一个班的学生成绩功能:根据输入的学生成绩,计算并显示学生名次
算法如下:一个学生名次等于成绩高于该学生的人数+1
模块名: input 输入:以学号为序型键盘输入一个班的学生成绩
各个成绩之间用逗号隔开, 最后以回车符号结束
输出:把一个班的学生成绩存入grade 数组
功能:接受一个班的学生成绩
调用子模块 decibin 把键盘输入的一个十进制数转换为二进制数
调用子模块 crlf 完成回车,换行功能
模块名: rankp 输入:从 grade 数组取得一个班的学生成绩
输出:以学号为序计算出该班每个学生的名次存入rank 数组
功能:计算一个班的学生成绩
算法为: 一个学生的名次等于成绩高于该生的学生人数加 1
模块名; output 输入:把 rank 数组取得一个班的学生名次
输出:把一个班的学生名次以学号为序在总端上显示出来
功能:先是一个班的学生名次
调用子模块 decibin 把键盘输入的一个十进制数转换为二进制数
调用子模块 crlf 完