人事档案文件管理课程设计_第1页
人事档案文件管理课程设计_第2页
人事档案文件管理课程设计_第3页
人事档案文件管理课程设计_第4页
人事档案文件管理课程设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编语语言程序序设计课课程设计计题目:人人事档案案文件管管理20133-111-266设计目的的汇编语言言课程设设计是对对所学课课程内容容全面、系统的的总结、巩固和和提高的的一项课课程实践践活动。根据汇汇编语言言的特点点,选择择相应的的题目,在在老师的的指导下下,由学学生独立立完成。课程设设计要求求同学们们熟悉汇汇编语言言的编程程,BIIOS中中断调用用、系统统功能调调用、磁磁盘数据据的查询询、存取取、图形形颜色的的显示与与调整等等相关知知识。通通过课程程设计,一一方面提提高运用用汇编语语言编程程解决实实际问题题的能力力,另一一方面使使同学们们更深入入的了解解计算机机系统内内部的有有关知识识,

2、为以以后的学学习和系系统开发发奠定良良好的基基础。二设计计内容在文档中中创建一一个peersoon.ttxt的的文本文文件,它它包含iid号、姓名、年龄、性别、电话、通信地地址等六六项内容容,先编编写一项项如下图图界面的的功能:实现如下下功能:i命令,实实现数据据输入,在在末尾添添加f命令,实实现数据据查找,按按名字进进行查找找d命令,实实现数据据的删除除,按名名字进行行查找删删除。o命令,实实现数据据的排序序,按名名字进行行排序l命令,实实现数据据的显示示,q命令,实实现退出出,并将将数据重重新写入入三程序序设计原原理 (11)本次次实验是是模块化化程序设设计思想想,通过过一个主主程序,调调

3、用其他他模块的的子程序序,:文件件打开,如如果能打打开文件件便读取取其中的的内容,否否则的话话,便创创建文件件,接着着执行以以后的代代码。:宏的的定义:实验中中做了一一个显示示字符串串的宏,方方便以后后显示各各种字符符串:背景景颜色的的实现:通过调调用innt 110h的的功能,实实现s草草绿色的的背景:插入入程序:通过查查寻是否否存在当当前输入入的idd,如果果不存在在,则继继续输入入,如果果存在则则停止输输入。输输入的时时候计算算输入的的字节,不不足的用用空格补补充,并并将输入入的内容容保存到到内存里里,当关关闭文件件时,保保存到文文件里,同同时设置置指针指指向数据据段的末末尾。程序的框框

4、图如下下: cmpp all,II jnzz errrorr calll iinpuutY/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结束:显示示程序,首首先判断断文件中中是不是是有内容容,通过过设置是是一个全全局coountt记录文文件的个个

5、数,如如果记录录为零,则则退出,返返回主菜菜单,否否则每次次从内存存中取660个字字节。 到另一一个缓存存显示,用用couunt计计数,显显示一次次,coountt-;:查找找模块 :首先先提示用用户输入入想要查查找的名名字,调调整指针针,然后后用字符符串cmmpsww比较名名字,直直到最后后一个名名字为止止,若找找到则显显示,不不存在,则则提示; 程序框框图:名字查找关键代码:lea si,stu add si,10 ;指向记录第一个人的姓名 mov bx,sinase10: lea di,_name ;存放待查人的姓名地址 mov cx,5 repe cmpsw输入要查找的名字si-数据段

6、第一个名字 di=输入的名字bp=0名字比较Si移到下一个名字找到名字Y si=指向学生信息头 NN 输出学生信息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?查找名字相同的记录 NN Y N YSiendaddrsi=endaddr

7、 N Y:排序序程序:若只有有一条记记录或者者没有直直接跳出出,否则则按照AAsciii码排排序,排排序用冒冒泡排序序算法:程序框框图:endaddr-倒数第二个名字si-第一个名字swapped=0这里采用冒泡算法,从第一个数开始对相邻的两个数进行比较,如果次序不对,进行交换。从图中可以看出,为了提高效率,设置了一个标志位,每次进入外循环,就将标志位值零,在内循环每做一次交换,就将该标志位值1,在每次内循环结束后,可测试标志位是否是0,如果是0.则结束排序,否则在进行一次外循环。这种算法效率较高一些。di-si的下一个名字Ax=di bx=sirepe cmpsbSi=di? Ydisi N

8、Swapped=1Si=axSi=endaddrSwapped=0?N NN YY结束ret:退出出程序:打开文文件,把把数据段段的内容容读入文文件,否否则创建建文件,同同是根据据couunt,写写入最后后一条记记录,在在末尾,关闭闭文件。四程序序分工苏林东:模块的的整合与与颜色的的调配,还还有文件件的建立立与相关关模块的的制作吴威:输输入模块块和删除除模块的的制作,关关闭文件件的制作作。曹锦峰:查询模模块和排排序模块块的制作作。五源程程序及运运行结果果:(1)源源程序:dataa seegmeent HHH DBB 0,0,: MMM DBB 0,0,: SSS1 DDB 00,0 mees

9、s11 dbbidd:,$ meess22 dbbnaame:,$ meess33 dbbolld:,$ meess44 dbbseex:,$ meess55 dbbadddreess:,$ meess66 dbbphhonee nuumbeer:,$ meess77 dbbennterr errrorr!,00dh,0ahh,$ meess88 dbbidd,88 duup( ),nnamee,55 duup( ),oold ,seex , aaddrresss ,5 ddup( ),ttelpphonne,13,10,$ meess99 dbbsttudeent infformmatiio

10、n in thee taablee iss:,13,10,$ meess110 ddbppleaase entter thee naame:,113,110,$ meess111 ddb 113,110,OK,youu arre qquitt,weelcoome thee neext!,$ meess113 ddbssorrry,ccreaate fille iis nnot succcesss!,113,110,$ meess114 ddbNNo RRecoordss!,113,110,$ meess115 ddbssorrry,tthe inpput is nott fooundd!,11

11、3,110,$ meess116 ddbDDo yyou wannt tto ddeleete thiis mmesssae(y/nn)?,133,100,$ meess117 ddbppleaase chooosee whhichh onne ddo yyou wannt tto ddeleete(1,22):,$ meess118 ddbDDeleete succcesss!,113,110,$ meess119 ddbssorrry,tthe id is samme ,pleeasee innputt aggainn!,133,100,$ meess220 ddbppleaase pre

12、ess to passte nexxt ppagee,113,110,$ meess221 ddbVVeryy goood,thee soort is successsfull!,133,100,$idpaar llabeel bbyteemaxxileen ddb 110acttileen ddb?id db 110 ddup(?) ;学号nameeparr laabell byyte maxxnleen ddb 110 acttnleen ddb? _naame db 110 ddup(?) ;姓名oldppar labbel bytte maxxoleen ddb 33 acttolee

13、n ddb? oldd dbb 3 dupp(?) ;年龄sexppar labbel bytte maxxsleen ddb 55 acttsleen ddb? sexx dbb 5 dupp(?) ;性别addrresssparr laabell byyte maxxaleen ddb 115 acttaleen ddb? ad db 115 ddup(?) ;地址phonnepaar llabeel bbytee maxxpleen ddb 115 acttpleen ddb? phoone db 115 ddup(?) ;电话号号码disppl mmacrro xx ;显示的的宏lea

14、 dx,xmov ah,09 iint 21hh eendmm sstu db 550 ddup(58 dupp ( ),13,10) ;内存空空间 ttempp dbb 600 duup ( ),$;临时存存储空间间 ccrlff dbb 133,100,$;换行回回车 mmenuu dbb* weelcoom *,13,10db* iiinpuut *,133,100db* fffindd *,133,100db* dddeleete *,133,100db* ossortt *,133,100db* lllistt *,133,100db* qqquitt *,133,100db*,13

15、3,100dbppleaase inpput thee chhoicce:,$ sstu11 dww?;作为存存放末尾尾的指针针 aaddrresss dbbf:peersoon.ttxt,0 ;路径 ccounnt1 db 00 ;临时统统计输入入的个数数 ccounnt ddb 00;统计输输入的个个数 ccounnt2 db 00;检查学学号时候候用的 ffcodde ddw?;文件代代号 eendaaddrr dww?;排序时时用到,及及存储末末尾指针针 eend11 dbb ; ccounnt3 db 00;显示的的时候用用,分页页 ddel dw 220 ddup(?) sswap

16、ppedd dbb 0 ;交换标标志位dataa ennds;代代码段codee seegmeentassuume cs:codde,dds:ddataa,ess:daata mmainn prroc farrmov ax,dattamov ds,axmov es,axstarrt:mov ax,06000h caall scrrenlea di,stuu caall opeen clldmov stuu1,ddimenuu1: diispll meenu ;显示菜菜单mov ah,01 innt 221hmov bl,al diispll crrlfmov al,bland al,5fhh

17、;把输入入的选择择都转化化为大写写inseert:cmp al,I jnnz llistt caall inpput jmmp mmenuu1listt:cmp al,L jnnz ddelee caall dissplaay diispll crrlf jmmp mmenuu1delee: cmp al,D jnnz ffindd caall dellet diispll crrlf jmmp mmenuu1findd:cmp al,F jnnz ssortt caall seaarchh diispll crrlf jmmp mmenuu1 sortt:cmp al,O jnnz qqui

18、tt caall nammesoort diispll crrlf diispll meess221 jmmp mmenuu1quitt:cmp al,Q jzz ovvererroor: diispll meess77 jmmp mmenuu1overr: calll cclosse disspl messs111mov ah,4chh innt 221h reet maain enddp;插插入模块块 inpuut pprocc neearmov di,stuu1inpuutlooop: ccldagaiin:mov bp,0 ddisppl mmesss1 ccalll innputti

19、d ;输入学学号cmp acttileen,00 jjz AA10cmp couunt11,500 jje AA10 ccalll chheckk ;检查学学号是否否重复cmp bp,0 jjnz agaain ccalll sttoriid ;保存到到stuu ddisppl mmesss2 ccalll innputtnamme ;输入名名字 ddisppl mmesss3 ccalll innputtoldd ;输入年年龄 ddisppl mmesss4 ccalll innputtsexx ;输入性性别 ddisppl mmesss5 ccalll innputtadddresss ;

20、输入地地址 ddisppl mmesss6 ccalll innputtphoone ;输入电电话add di,2 jjmp inpputllooppA10:mov ah,couunt11 ;记录数数mov couunt,ahmov stuu1,ddi retinpuut eendpp;输入学学号模块块inpuutidd prroc neaarmov ah,0ahhlea dx,idppar iint 21hh ddisppl ccrlffmov bh,0mov bl,acttileenmovccx,110sub cx,bxlooppn:mov idbx,200hinc bx lloopp l

21、ooopnn rretinpuutidd enndp;相同同学号检检查段checck pprocc neear mov bp,0mov ah,couunt11mov couunt22,ahhmov si,stuu1sub si,60mov enddadddr,ssi;指向最最后一条条记录的的学号lea si,stuumov bx,sinasee1:lea di,id;存放学学号的偏偏移地址址mov cx,5 rrepee cmmpsww jjcxzz naaseeex jjmp nasse2naseeex: ddisppl mmesss19mov bp,1 jjmp mm11nasee2:ad

22、d bx,60mov si,bxdec couunt22 jjnz nasse1mm1: rretchecck eendpp;保存存学号模模块storrid prooc nnearrmov di,stuu1inc couunt11 clddlea si,idmov cx,5 repp moovsww rettstorrid enddp;输入名名字inpuutnaame prooc nnearrmov ah,0ahhlea dx,nammepaar intt 211h disspl crllfmov bh,0mov bl,acttnleenmov cx,10sub cx,bxin200:mov

23、_naamebx,200h ;剩余的的充填空空格inc bx looop iin200 clddlea si,_naamemov cx,5 repp moovsww rettinpuutnaame enddp;输入年年龄inpuutolld pprocc neearmov ah,0ahhlea dx,olddparr intt 211h disspl crllfmov bh,0mov bl,acttoleenmov cx,3mov cx,bxlo200:mov olddbxx,220hinc bx looop llo200 clddlea si,olddmov cx,3 repp moovsb

24、b rett inpuutolld eendpp;输入性性别inpuutseex pprocc neearmov ah,0ahhlea dx,sexxparr intt 211h disspl crllfmov bh,0mov bl,acttsleenmov cx,5sub cx,bxis200:mov sexxbxx,220hinc bx lloopp iss20 ccldlea si,sexxmov cx,5 reep mmovssb rretinpuutseex eendpp;输入地地址inpuutadddreess prooc nnearrmov ah,0ahhlea dx,adddr

25、essspaar iint 21hh ddisppl ccrlffmov bh,0mov bl,acttaleenmov cx,15sub cx,bxia200:mov adbx,200hinc bx lloopp iaa20 ccldlea si,admov cx,15 rrep movvsb rretinpuutadddreess enddp;输入入电话inpuutphhonee prroc neaarmov ah,0ahhlea dx,phooneppar iint 21hh ddisppl ccrlffmov bh,0mov bl,acttpleenmov cx,15subccx,bb

26、xip200:mov phoonebx,200hinc bx looop ip220 clldlea si,phoonemov cx,15 reep mmovssb reetinpuutphhonee enndp;tiime时时间timee prroc neaar; ppushh axx; ;ppushh bxx; ppushh cxx; puush dx pushh dssmov ax,0pushh axx mov ax,datta mov ds,axAGAAIN11:mov ah,2chh ;读取系系统时间间 CHH:CL时:分 DHH:DL秒:百分秒秒intt 211hMOV BX ,O

27、FFFSEET HHHMOV AL,CHCALLL CC16_10 ;转换ALL中16进制制为100进制,并填入入相应位位置MOV BX ,OFFFSEET MMMMOV AL,CL ;分CALLL CC16_10MOV BX ,OFFFSEET SSS1MOV AL,DH ;秒CALLL CC16_10MOV AH,2 ;光标定定位MOV DH,0 ;首行MOV DL,70 ;700列MOV BH,0INTT 100HMOV CX,8MOV SI,OFFFSETT HHHNN11:MOV AH,0EHH ;电传方方式写字字符(一次1个)MOV AL,SIIMOV BL,0INTT 100HI

28、NC SILOOOP NNN1MOV AH,1INTT 166H;JNZZ DOOWN ;按任任一键结结束JMPP AGGAINN1;DOWWN:;popp dss;popp dxx;popp cxx;popp bxx;popp axx;RETTretttimee enndp;进制制转换C16_10 PROOC NNEARRPUSHH CXX ;将AL中的的16进制制转为110进制制MOV AH,0MOV CX,10DDDIV CLADD AX,30330HMOV BXX,AALINC BXMOV BXX,AAHPOP CX RRETC166_100 ENNDP;关闭闭文件closse ppr

29、occ neearmov ah,couunt11mov couunt,ahcmp couunt,0 jjbe exiit100mov ah,3dhhmov al,2lea dx,adddresss iint 21hh jjnc y2mov ah,3chhmov cx,00lea dx,adddresss iint 21hh jjc eexitt10y2:mov fcoode,axmov bx,fcoodelea si,stuuy1:lea di,temmpmov cx,30 rrep movvswlea dx,temmpmov cx,60mov ah,40hh iint 21hhsub cou

30、unt,1 jjnz y1lea dx,endd1mov cx,2mov ah,40hh iint 21hhmov bx,fcoodemov ah,3ehh iint 21hhexitt10: rretclosse eendpp;打开开文件openn prroc neaarlea dx,adddresssmov ah,3dhhmov al,02 innt 221h jcc p99 ;不存在在则创建建文件mov fcoode,ax ;保存文文件代号号 p11:mov ah,3fhhmov bx,fcoodemov cx,60 ;读取文文件的记记录数(一一条记录录)lea dx,temmp int

31、t 211h jc p9mov bl,temmpcmp bl, jz p6 ;读取结结束;lea si,temmpmov cx,30 repp moovswwinc couunt11 jmpp p11 pp9: ddisppl mmesss13 pp6:mov bx,fcoodemov ah,3ehh intt 211h rettopenn enndp ;删除模模块deleet pprocc neearmov si,stuu1mov enddadddr,ssi calll ssearrchcmp bp,1 jaee p33 rettp3: cmp bp,3 jaee p44mov di,del

32、lbpp jmpp l11p4: disspl messs177 calll iinpuutnuumcmp bx,bp jbee p55 disspl crllf disspl messs7 jmpp p44p5:mov di,dellbxxl1: ddisppl ccrlff ddisppl mmesss16mov ah,01hh iint 21hhcmp al,y jjz dd1cmp al,Y jjz dd1cmp al,n jjz eexitt7cmp al,N jjz eexitt7 ddisppl mmesss7 jjmp l1d1:mov si,diadd si,60d2:mov

33、 cx,30 reep mmovsswcmp si,enddadddr jnnbe p011 jmmp dd2p01:sub stuu1,660sub couunt11,1 diispll crrlf diispll meess118 diispll crrlfexitt7: rett deleet eendpp;查找模模块searrch prooc nnearrmov ah,couunt11mov couunt,ahmov bp,0 cldd disspl messs100 calll iinpuutnaame11 ;输入要要查找的的人名 calll nnameeseaarchhcmp bp

34、,0 jbee s22 jmpp exxit66s2: disspl messs155exitt6: rett searrch enddp;计计算要删删除的是是哪一个个inpuutnuum pprocc neearmov bx,0 it11:mov ah,1 intt 211hmov dl,alsub al,30hh jl exiit1 ;输入为为零cmp al,9D jg exiit1 cbwwxchgg axx,bxxmov cx,10ddmul cxxchgg axx,bxxadd bx,ax jmpp itt1exitt1:mov ax,bxmov bl,2mul blmov bx,a

35、x rettinpuutnuum eendpp;查查找姓名名的函数数模块输输入inpuutnaame11 prroc neaarmov ah,0ahhlea dx,nammepaar intt 211h disspl crllfmov bh,0mov bl,acttnleenmov cx,10sub cx,bxin211:mov _naamebx,200hinc bx looop iin211 rettinpuutnaame11 enndp;姓名名搜索nameeseaarchh prroc neaarlea si,stuuadd si,10 ;指向记记录第一一个人的的姓名mov bx,sina

36、see10:lea di,_naame ;存放待待查人的的姓名地地址mov cx,5 rrepee cmmpsww jjcxzz naaseeexitt jjmp nasse200naseeexiit:mov si,bxsub si,10add bp,2mov dellbpp,ssilea di,temmpmov cx,30 rrep movvsw ddisppl ttemppnasee20:add bx,60mov si,bxdec couunt jjnz nasse100 rretnameeseaarchh enndp;排序模模块nameesorrt pprocc neearcmp cou

37、unt11,1 jjbe exiit5mov di,stuu1sub di,1100 ;调整指指针mov enddadddr,ddi ;调整指指针指向向倒数第第二个名名字NS100:mov swaappeed,00lea si,stuuadd si,10NS200:mov cx,10mov di,siadd di,60 ;下一个个被比较较的名字字mov ax,dimov bx,si rrepee cmmpsbb jjbe NS330 ccalll NPPXCHHG ;小于等等于就不不用交换换NS300:mov si,axcmp si,enddadddr JJBE NS220cmp swaappeed,00 jjnz NS110exitt5: reet nameesorrt eendpp;交换换信息NPXCCHG prooc nnearrmov si,bxsub si,10mov cx,30lea di,temmp reep mmovsswmov cx,30mov di,bxsub di,10 reep mmovsswmov cx,30lea si,temmp reep mmovsswmov swaappeed,11 ;标志位位 reetNPXCCHG enddp;文件件的显示示disp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论