汇编人事档案管理程序设计报告69609.docx
《汇编人事档案管理程序设计报告69609.docx》由会员分享,可在线阅读,更多相关《汇编人事档案管理程序设计报告69609.docx(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言言程序设计计课程设设计题目:人事事档案文件件管理2013-11-226一 设计目的汇编语言课课程设计是是对所学课课程内容全全面、系统统的总结、巩巩固和提高高的一项课课程实践活活动。根据据汇编语言言的特点,选选择相应的的题目,在在老师的指指导下,由由学生独立立完成。课课程设计要要求同学们们熟悉汇编编语言的编编程,BIIOS中断断调用、系系统功能调调用、磁盘盘数据的查查询、存取取、图形颜颜色的显示示与调整等等相关知识识。通过课课程设计,一一方面提高高运用汇编编语言编程程解决实际际问题的能能力,另一一方面使同同学们更深深入的了解解计算机系系统内部的的有关知识识,为以后后的学习和和系统开发发奠
2、定良好好的基础。二设计内内容在文档中创创建一个ppersoon.txxt的文本本文件,它它包含idd号、姓名名、年龄、性性别、电话话、通信地地址等六项项内容,先先编写一项项如下图界界面的功能能:实现如下功功能:(1) i命令,实实现数据输输入,在末末尾添加(2) f命令,实实现数据查查找,按名名字进行查查找(3) d命令,实实现数据的的删除,按按名字进行行查找删除除。(4) o命令,实实现数据的的排序,按按名字进行行排序(5) l命令,实实现数据的的显示,(6) q命令,实实现退出,并并将数据重重新写入三程序设设计原理 (1)本本次实验是是模块化程程序设计思思想,通过过一个主程程序,调用用其他
3、模块块的子程序序,:文件打打开,如果果能打开文文件便读取取其中的内内容,否则则的话,便便创建文件件,接着执执行以后的的代码。:宏的定定义:实验验中做了一一个显示字字符串的宏宏,方便以以后显示各各种字符串串:背景颜颜色的实现现:通过调调用intt 10hh的功能,实实现s草绿绿色的背景景:插入程程序:通过过查寻是否否存在当前前输入的iid,如果果不存在,则则继续输入入,如果存存在则停止止输入。输输入的时候候计算输入入的字节,不不足的用空空格补充,并并将输入的的内容保存存到内存里里,当关闭闭文件时,保保存到文件件里,同时时设置指针针指向数据据段的末尾尾。程序的框图图如下: cmp al,I jnz
4、 erroor calll inpputY/N输入id输入 输入id进行检查,调用check函数,设置flag=bp,初始值设置bp=0,如果存在bp=0,否则bp=1; CheckY调用storid保存到stu中,BP=0?NY保存到数据段Y调用inputname输入名字调用inputsex输入性别输入年龄调用inputold调用inputaddress输入地址调用inputphone,如果输入结束,通过回车键进入主页面。输入电话Ret结束:显示程程序,首先先判断文件件中是不是是有内容,通通过设置是是一个全局局counnt记录文文件的个数数,如果记记录为零,则则退出,返返回主菜单单,否则每每
5、次从内存存中取600个字节。 到另一一个缓存显显示,用ccountt计数,显显示一次,ccountt-;:查找模模块 :首首先提示用用户输入想想要查找的的名字,调调整指针,然然后用字符符串cmppsw比较较名字,直直到最后一一个名字为为止,若找找到则显示示,不存在在,则提示示; 程序框框图:名字查找关键代码:lea si,stu add si,10 ;指向记录第一个人的姓名 mov bx,sinase10: lea di,_name ;存放待查人的姓名地址 mov cx,5 repe cmpsw输入要查找的名字si-数据段第一个名字 di=输入的名字bp=0名字比较Si移到下一个名字找到名字Y
6、 si=指向学生信息头 N 输出学生信息Count-1COUNT=0? NRET结束Y:删除程程序:通过过名字进行行查找,如如果不存在在就报错,如如果存在多多条记录进进行提示,选选择删除那那条记录:Bp作为一个标志:BpBp1;有一条记录Bp3;有多调记录程序框图:名字删除rep movswRET结束sub stu1,60 sub count1,1Si=di下一个di=delbpdi=delbx删除第bx个记录Bx=bx*2BP3?Bp1?查找名字相同的记录 N YY NN YSiendaddrsi=endaddr N YY:排序程程序:若只只有一条记记录或者没没有直接跳跳出,否则则按照Ass
7、cii码码排序,排排序用冒泡泡排序算法法:程序框框图:endaddr-倒数第二个名字si-第一个名字swapped=0这里采用冒泡算法,从第一个数开始对相邻的两个数进行比较,如果次序不对,进行交换。从图中可以看出,为了提高效率,设置了一个标志位,每次进入外循环,就将标志位值零,在内循环每做一次交换,就将该标志位值1,在每次内循环结束后,可测试标志位是否是0,如果是0.则结束排序,否则在进行一次外循环。这种算法效率较高一些。di-si的下一个名字Ax=di bx=sirepe cmpsbSi=di? Ydisi NSwapped=1Si=axSi=endaddrSwapped=0?N N YY结
8、束ret:退出程程序:打开开文件,把把数据段的的内容读入入文件,否否则创建文文件,同是是根据coount,写写入最后一一条记录,在在末尾,关闭文文件。四程序分分工苏林东:模模块的整合合与颜色的的调配,还还有文件的的建立与相相关模块的的制作吴威:输入入模块和删删除模块的的制作,关关闭文件的的制作。曹锦峰:查查询模块和和排序模块块的制作。五源程序序及运行结结果:(1)源程程序:data segmment HH DB 0,0,: MM DB 0,0,: SS11 DB 0,0 messs1 ddbidd:,$ messs2 ddbnaame:,$ messs3 ddbolld:,$ messs4 d
9、dbseex:,$ messs5 ddbadddresss:,$ messs6 ddbphhone numbber:,$ messs7 ddbennter erroor!,0ddh,0aah,$ messs8 ddbidd,8 dup( ),namme,55 dupp( ),oldd ,sexx , adddresss ,5 duup( ),tellphonne,113,100,$ messs9 ddbsttudennt innformmatioon inn thee tabble iis:,13,110,$ messs10 dbplleasee entter tthe nname:,133,
10、10,$ messs11 db 133,10,OK,you are quitt,wellcomee thee nexxt!,$ messs13 dbsoorry,creaate ffile is nnot ssucceess!,133,10,$ messs14 dbNoo Reccordss!,13,10,$ messs15 dbsoorry,the inpuut iss nott fouund!,113,100,$ messs16 dbDoo youu wannt too dellete thiss messsae(y/n)?,113,100,$ messs17 dbplleasee cho
11、oose whicch onne doo youu wannt too dellete(1,2.):,$ messs18 dbDeeletee succcesss!,13,110,$ messs19 dbsoorry,the id iis saame ,pleaase iinputt agaain!,133,10,$ messs20 dbplleasee preess tto paaste nextt pagge,113,100,$ messs21 ddbVeery ggood,the sortt is suceessfuul!,13,10,$idparr labbel bbytemaxiil
12、en db 100actiilen db?id ddb 100 dupp(?) ;学号nameppar llabell bytte mmaxnllen ddb 100 aactnllen ddb? _namee db 100 dupp(?) ;姓名oldpaar laabel bytee mmaxollen ddb 3 aactollen ddb? oold ddb 3 dup(?) ;年龄sexpaar laabel bytee mmaxsllen ddb 5 aactsllen ddb? ssex ddb 5 dup(?) ;性别addreesspaar laabel bytee mmax
13、allen ddb 155 aactallen ddb? aad dbb 15 dup(?) ;地址phoneepar labeel byyte mmaxpllen ddb 155 aactpllen ddb? pphonee db 155 dupp(?) ;电话号码码displl maccro xx ;显示的宏宏lea ddx,xmov aah,099 intt 21hh enddm sttu dbb 50 dup(558 duup ( ),133,10) ;内存空间间 teemp ddb 600 dupp ( ),$;临时存储储空间 crrlf ddb 133,10,$;换行回车车 mee
14、nu ddb* welccom *,13,110db* i-innput *,13,110db* f-fiind *,13,110db* d-deeletee *,13,110db* o-soort *,13,110db* l-liist *,13,110db* q-quuit *,13,110db*,13,110dbplleasee inpput tthe cchoicce:,$ sttu1 ddw?;作为存放放末尾的指指针 adddresss dbbf:persson.ttxt,0 ;路径 coount11 db 0 ;临时统计计输入的个个数 coount db 0;统计输入入的个数 co
15、ount22 db 0;检查学号时候用用的 fccode dw?;文件代号号 enndadddr dww?;排序时用用到,及存存储末尾指指针 ennd1 ddb ; coount33 db 0;显示的时时候用,分分页 deel dww 20 dup(?) swwappeed dbb 0 ;交换标志志位data endss;-代码段段-code segmmentassumme css:codde,dss:datta,ess:datta maain pproc farmov aax,daatamov dds,axxmov ees,axxstartt:mov aax,06600h calll scr
16、renlea ddi,sttu calll opeen clddmov sstu1,dimenu11: disppl meenu ;显示菜单单mov aah,011 int 21hmov bbl,all disppl crrlfmov aal,blland aal,5ffh ;把输入的的选择都转转化为大写写inserrt:cmp aal,II jnz listt calll inpput jmp menuu1list:cmp aal,LL jnz delee calll dissplayy disppl crrlf jmp menuu1dele: cmp aal,DD jnz findd ca
17、lll dellet disppl crrlf jmp menuu1find:cmp aal,FF jnz sortt calll seaarch disppl crrlf jmp menuu1 sort:cmp aal,OO jnz quitt calll nammesorrt disppl crrlf disppl meess211 jmp menuu1quit:cmp aal,QQ jz oovererrorr: disppl meess7 jmp menuu1over: ccall closse ddispll messs11mov aah,4cch int 21h ret maiin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 人事档案 管理 程序设计 报告 69609
限制150内