学生成绩管理系统——汇编程序设计
代码已开源:https://github.com/Kwongrf/Assemble-Student-grade-management-system.git题目要求
一个学生的信息包括姓名、班级、学号、成绩,其中成绩需要精确到1位小数。实现以下功能:
(1) 可以录入学生成绩(十进制形式);
(2) 可以按要求(如学号或成绩)进行排序显示;
(3) 可以统计平均成绩;
(4)可以统计不及格成绩、60-70、70-80、80-90、90-100各分数段的人数。
主要数据结构:
姓名、班级、学号、成绩各用一个数组来保存,学生数小于等于100,相同下标的代表同一个学生的信息。
姓名要求长度小于等于10个字符,班级和学号都是讲用户输入的ASCII码转十进制储存在一个字中。
成绩处理稍微特殊一点,由于有一位小数,我在存的时候是把这个数扩大10倍再存的。及时没有小数也会乘以10,在输出的时候只要看最后一位是不是0就可以判断是不是整数了,小数就多输出一个小数点。在排序做比较和计算平均数,统计各分数段的时候这样也很方便,只需要在输出的时候除10并保留一位小数就行了。
SORTED数组中保存的是排序后的下标,在排序之后学生信息的顺序还是录入时候的数据,这样避免了大量的数据移动。只是在写程序的时候容易犯错。
NAME_ARR DB 100 DUP (10 DUP (?))
CLASS_ARR DW 100 DUP (?)
ID_ARR DW 100