当前位置:文档之家› 微机原理与技术基础大作业北邮

微机原理与技术基础大作业北邮

微机原理与接口技术实验
学院:
班级:
学号:
班内序号:
姓名:
1.实验任务
一个学生的信息包括姓名、班级、学号(班内序号)、成绩。

试编写程序实现以下功能:
(1)能录入学生成绩(十进制形式);提示:输入形如:tom 205 16 95回车,每名学生用一行;选择一个特殊符表示输入结束
(2)能按要求(如班内序号或成绩)进行排序显示;
(3)能统计平均成绩;
(4)能按分数段统计人数,不及格、60~70、70~80、80~90、90~100各分数段的人数。

提示:要有必要的提示信息。

应该按至上而下规划程序结构,划分各个子程序的功能和调用关系。

要求
写出实验报告,报告中包括算法思想、流程图,并附上源程序文件
提交方式
采用电子文档:以附件的形式发到以下邮箱,附件命名规则为:班号-姓名-学号.docx、班号-姓名-学号.asm,例:205-张三
最后截止日4月28日23点前
2.算法思想
首先输入学生人数,输入数据位1~99,输入超出该范围时调用ERROR函数,提示错误,回车后退出DOS界面。

程序利用INPUT函数,对学生信息的输入进行提示,由于后面要对成绩进行一系列处理,为简便起见,将班级、学号、姓名分为一次输入,成绩单独输入。

子程序STORE_STUDENT_NUM用于储存输入学生总人数,在下面的操作中会用于执行次数的相关操作。

这个函数的算法思想如下:用NUMBER(三字节变量)储存输入学生总数,若输入为一位数,将输入的字符(ASCII码)存在NUMBER[0]中,如果输入学生人数为两位数,则将十位数(ASCII码)存到NUMBER[1]中,个位数存在NUMBER[0]中,再利用二进制转十进制操作,将学生总数存在NUMBER[2]中。

子程序STORE_STUDENT_INFORMATION用于存储学生班级、学号、姓名信息。

算法思想:INFORMATION,用20字节单元表示学生信息,0-19中:0对应最大字符,1对应实际输入,2-18对应输入信息,19对应'$'每个存储单元的最后一个字节置为’$’以便输出。

子程序STORE_STUDENT_GRADE用于存储学生分数。

算法思想:GRADE[0-4]中存放了输入的成绩,GRADE[5]中存放了小数点之前的数字信息,GRADE[6]中存放了小数点之后的数字信息。

子程序SORT使用冒泡排序按照成绩从高到低的顺序对学生信息进行排列。

算法思想:利用冒泡排序,每次从两个相邻学生信息中找出成绩较高的一个,若其位置靠后,则将其与其之前的一项相交换,每趟都比较信息数目与当前趟次数,直到所有的成绩信息排序完成。

子程序FIND_RESULT,对分数所属分数段进行判定,并统计每个分数段人数。

算法思想:遍历整个存储信息表,判断分数所属分数段,并在此过程中记录总成绩,计算平均成绩。

子程序DISPLAY用于将排序好的学生信息按排序输出。

算法思想:遍历排序完成后的存储信息表,并逐个输出。

子程序SHOW用于将分数输出。

算法思想:判断分数位数,分别将每一位输出。

相关主题