汇编语言实验六 学生成绩管理系统设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---------------------------------------------------------------最新资料推荐------------------------------------------------------ 汇编语言实验六学生成绩管理系统设计实验
实验六学生成绩管理系统设计实验(综合性实验)一、实验要求和目的 1.熟悉汇编语言程序结构; 2.熟悉INT 21H 的文件操作功能调用; 3.熟悉INT 21H 的1、 9 号功能和INT 10H 常用功能的使用方法; 4.掌握多子程序复杂问题程序设计方法; 5.了解多模块程序设计方法(不作要求)。
二、软硬件环境 1、硬件环境:
计算机系统windows; 2、软件环境:
装有MASM、 DEBUG、 LINK、等应用程序。
三、实验涉及的主要知识单元对于一个复杂的程序,往往是分成若干个子程序设计的,然后用将它们组成一个完整的程序。
子程序通过调用和返回,参数传递方法实现互相联系。
四、实验内容与步骤 1、实验内容设计一个学生成绩管理系统,要求完成文件建立、学生成绩录入、显示指定学号的学生记录、删除一个学生的记录、修改学生记录、返回等工作。
学生成绩包括学号(XH)、姓名(XM)、数学(SX)、语文(YW)、外语(WY)字段。
至少包括30 名学生信息,每名学生学号字段为4个字符,姓名字段为15 个字符(最大),每门成绩字段为3 个字符(最大)。
2、实验步骤(1)编写主程序main.asm,实现如图所示菜单;(2)编写文件创建子程序create,实现在指定盘指定文件
1/ 7
夹d:\chengji\2009\下建立一个指定名称的文件2009doc.dat,界面如图所示;(3)编写成绩录入子程序append,实现在指定文件尾部插入一个学生的成绩记录,界面如图所示;(4)编写显示子程序display,实现按指定学号显示一个学生的记录,,界面如图所示;(5)编写修改子程序modify,实现按指定学号修改一个学生的记录字段(不需修改直接回车),界面如图所示;(6)编写删除子程序,实现按指定学号、姓名删除一个学生的记录,界面如图所示;(7)编译、链接、调试,产生可执行文件main.exe。
五、实验要求与提示 1、实验要求(1)画出各程序流程图;(2)列出程序清单,加上适量注释;(3)回答思考问题;(4)记录实验结果; (5) 完成实验报告(实验材料上的内容简写,自己的工作要详尽)。
2、实验提示考虑用INT 10H 的06H 号实现清屏的功能,用02H 号实现置光标位置的功能?六、思考与练习以及测评标准1.有兴趣的同学可以考虑用多模块程序设计方法实现; 2.文件在使用之前为何要打开?使用后为何要关闭?怎样计算文件的长度和移动文件的读写指针?打开获得句柄,使用后用 i nt 21h 七、程序流程图开始插入显示修改删除YYNNNN打开保存NNNYYYY 退出输入命令结束YN查找末尾插入输入学号查找输出输入学号查找修改输入学号查找删除输入文件名打开文件载入输入文件名新建文件输出八、实验结果九、程序代码datasegmentformsdb101*64dup(‘$’)filenamedb14,0,14dup(0)fo
---------------------------------------------------------------最新资料推荐------------------------------------------------------
rmsbdb14,’$$$$$$$$$$$$$$$’,22,’$$$$$$$$$$$$$$$$$$$$$$$’
,6,’$$$$$$$’,6,’$$$$$$$’,6,’$$$$$$$’screen0db’
1.Appendarecord’,0dh,0ah,’
2.Displayarecord’,0dh,0ah,’
3.Modifyarecord’,0dh,0ah,’
4.Deletearecord’,0dh,0ah,’
5.Openafile’,0dh,0ah,’
6.Saveintoafile’,0dh,0ah,’
7.ReturnDOS’,0dh,0ah,’
Ple aseinput1‐6:’,’$’f1str1db
‘ PleaseinputXH:$’f1str2db
‘ PleaseinputXM:$’f1str3db
‘ PleaseinputSX:$’f1str4db
‘ PleaseinputYW:$’f1str5db
‘ PleaseinputWY:$’f2str1db ‘ XueHao:
$’f2str2db ‘ XingMing: $’f2str3db
‘ ShuXue: $’f2str4db ‘ Yuwen: $’f2str5db ‘ WaiYu: $’f3str1db
‘ XueHaodoesnotexist.Nothinghasbeenchanged.$’f4s
tr1db ‘ PleaseinputXingMing:$’f4str2db
‘ PleaseinputXueHao: $’f5str1db
3/ 7
‘ Pleaseinputfilename:$’f5str2 db’ Sorry!Filedoesnotexist.$’f5str3 db’ Loading...$’f5str4 db’ Completed.$’f5str5
db’ Failed.$’f6str1 db’ Savesucceed!$’f6str2 db’ Savefailed.$’fstr1db
‘ Finish!$’fstr2db
‘ Pressanykeytoreturn!$’tempiodb0statedb’0’for
menddw0XHtemp
db0eh,’0’,’$$$$$$$$$$$$$$’XHtempbdb0eh,’0’,’$$$$$$$$ $$$$$$’cxtemp1dw100cxtemp2dw14ditempdw0sitempdw0handledw0d ataendsstacksegmentstacksdb64dup(0)stackendscodesegmentassu
meds:data,ss:stack,cs:codestart:movax,datamovds,axmoves,axm
ovax,stackmovss,axcallinitialwin:callprts0callinputmoval,te mpiomovstate,alM1:cmpal,’1’jnzM2jmpf1jmpwinM2:cmpal,’2’
jnzM3jmpf2jmpwinM3:cmpal,’3’jnzM4jmpf3jmpwinM4:cmpal,’4
’jnzM5jmpf4jmpwinM5:cmpal,’5’jnzM6jmpf5jmpwinM6:cmpal,’
6’jnzM7jmpf6jmpwinM7:cmpal,’7’jnzwinjmpquit;;;;;;;;;;;;; ;;;;;;
quit:movah,4chint21h;;;;;;;;;;;;;;;;;;;initial:leaax,formsm
ovsi,axmovcx,101linit:moval,14movds:[si],almoval,22movds:[s
i+16],almoval,6movds:[si+40],almoval,6movds:[si+48],almoval
,6movds:[si+56],aladdsi,64looplinitretf1: