微机原理与技术基础大作业北邮
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术实验
学院:
班级:
学号:
班内序号:
姓名:
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用于将分数输出。算法思想:判断分数位数,分别将每一位输出。