汇编:学生成绩管理系统
一.说明:
1. 这是一个学生成绩管理系统,其中
“i”表示插入,“l”表示浏览,
“q”表示查询,
“e”表示退出,
“d”表示删除,
“m”表示修改,
“c”表示统计各分数段人数,
“p”表示打印.
(以上功能程序主界面都有提示信息)
运行本程序会自动在C盘下创建score.txt文件(用户数据库文本)。
此文本路径可在程序中fpath db 'c:\score.txt'中查找修改。
如果出现未知错误时:本程序有一隐含功能:在主界面按“n”(new)可以初始化(清空)数据库。
2. 默认参数:
学号(ID):默认4位,位数支持更改。(纯数字)姓名(NAME):以内20位,范围支持更改。(纯字母或空格,且第一位不能为空格)
性别(SEX):1位,位数不能更改! (只能为1或0) 1:男 0:女
分数(SCORE):位数支持更改,请慎改!( 0 ~ 100 支持一位小数)
二.汇编代码:
;学生成绩管理系统
DATA SEGMENT
TIPS0 DB 'Tips:',0DH,0AH,'$' ;插入提示信息
TIPS1 DB ' SEX: 1:male 0:female',0DH,0AH,'$'
TIPS3 DB 'Please input ID:$' ;查询提示信息
TIPS4 DB ' Please enter "r" to return$'
TIPS5 DB ' Please enter "r" to return,"c" to continue$'
ID DB ' ID: $'
NAM DB ' NAME: $'
SEX DB ' SEX: $'
SCORE DB 'SCORE: $'
FID DW ? ;文件号
SEXM DB 'male $'
SEXF DB 'female $'
COUNT_A DB ' 9 0 ~ 100: $' ;统计提示信息
COUNT_B DB ' 8 0 ~ 8 9: $'
COUNT_C DB ' 7 0 ~ 7 9: $'
COUNT_D DB ' 6 0 ~ 6 9: $'
COUNT_E DB ' 0 0 ~ 5 9: $'
AB DB 5 DUP('0') ;统计结果
mess1 DB ' * The Student Grade Management System *',0ah,0dh,'$'
mess2 DB ' * this is main menu *', 0ah,0dh,'$'
mess3 DB ' * insert (i) *',0ah,0dh,'$'
mess4 DB ' * modify (m) *',0ah,0dh,'$'
mess5 DB ' * delete (d) *',0ah,0dh,'$'
mess6 DB ' * query (q) *',0ah,0dh,'$'
mess7 DB ' * count (c) *',0ah,0dh,'$'
mess8 DB ' * print (p) *',0ah,0dh,'$'
mess9 DB ' * exit (e) *',0ah,0dh,'$'
mess10 DB ' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * $'
mess13 DB ' * list (l) *',0ah,0dh,'$'
mess14 DB ' * please chose(l/i/m/d/q/c/p/e): *',0ah,0dh,'$'
ID_LENGTH EQU 4 ;配置信息
NAM_LENGTH EQU 20
SEX_LENGTH EQU 1 ;性别请勿更改位数
SCORE_LENGTH EQU 5
STU_LENGTH DW ? ;每条学生信息总长度
STU_LENGTH_ADD1 DW ?
NAM_SEX_SCORE_LENGTH DW ?
DEL DB 30 DUP (' ') ;清空信息用
DEL_DONE DB ' Delete success !$'
ERR DB ' Data error,Please input again!$' ;错误提示信息
NOSTU DB ' Sorry,there is no this studnet!$'
ERR_NO DB ' No student information!$'
ERR_SAME DB ' There is the same ID,please input again!$'
NEWF DB 0DH,0AH,0DH,0AH,' Warning: this operation will empty all your data!',0DH,0AH,0DH,0AH,' Will you continue? (y:empty,other key:return):$'
FPATH DB 'c:\score.txt',0 ;数据库文本
STR DB 50 ;缓冲区str
DB ?
DB 50 DUP (?)
STR0 DB 50 DUP (?) ;缓冲区str0
ENTER DB ' $' ;空格
TMP DW 0 ;是否为空标志信息
SC DB 0 ;分数保护处用
BYE DB ' Thanks for use our progra