当前位置:文档之家› 信息检索系统

信息检索系统

计算机科学与技术学部计算机原理与汇编语言课程设计信息检索程序设计目录 (1)正文 (2)一、课题分析 (2)二、设计方案 (4)1、功能描述 (4)1.1本设计的程序大致结构如下 (4)1.2程序中用到的dos及bios中断调用如下表 (5)2、流程图设计 (6)3、子程序模块设计 (7)3.1 PUT宏 (7)3.2 SHOW子程序 (7)4、代码清单 (9)5、程序调试结果及分析 (12)5.1主界面 (12)5.2 信息 (12)5.3输入错误键面 (13)5.4 退出键面 (13)三、设计总结 (14)1、小组团体设计情况 (14)2、课程设计总结 (14)参考文献 (15)一、课题分析1、该题目为信息检索程序。

2、在计算机领域,去实现一个信息检索系统,可以说有数不清的方式。

几乎各种编程语言均可满足要求,在实际中去用汇编语言实现这样一个检索系统是不现实的,因为有很多更好的方式,但是用汇编语言去实现这样一个功能却是对自己学习程度一个很好的检测。

信息检索程序,能较好的实现信息的检索和查询。

程序使用汇编程序设计的循环和分支基本结构以及子程序的调用共同实现信息的查找显示效果。

能够通过对接受编号进行线性计算找到对应表格中将要显示信息字符串的起始地址,然后调用字符输出子函数执行,选择相应数据段中的字符显示在屏幕的指定位置,以达到信息检索的目的。

每输入一个编号,就把该编号对应的程序指定长度的信息输出显示,即通过直接识别接收信息编号间接实现对信息的查询和检索。

把所有要查询的信息编号统存储于一个有序的表格中,每个表项链接着每个信息编号的相关信息。

每个子信息间具有从属性的检索作用,实现信息的检索操作。

信息检索就是为了满足用户的查询需求,通常的信息检索系统拥有一个很庞大的数据库区存放这些查询信息,而汇编语言就把这些信息都放在了数据段中,然后其他的查询操作全部放在代码段中,在代码段中设置好不同的数据信息显示对于不同的按键,即可通过按键查询到放在数据段中的信息,实现信息检索基本的功能。

通过对编号的识别和处理来实现信息的输出显示,程序开始设置一个起始地址,标识首个信息内容的起始地址。

每当输入一个信息编号则可以得到编号对应具体信息的起始偏移地址,然后调用字符串输出函数将该信息输出。

信息检索的过程呈现着树状的查询形式。

3、由课程设计要求,完成一个歌曲检索程序。

设数据区已经编好5首歌曲(英文歌曲,歌词不少于50词),编号1-5,它们的段地址和偏移地址存放在数据段的跳转表SINGLIST中。

从键盘接收1-5之间的一个编号,然后再屏幕上显示出相应编号的歌曲名称及歌词。

请给出清楚的提示语句,如:Please input a number(1~5):。

屏幕显示数据为:编号歌曲名歌词。

(1)、输入的形式和输入值的范围:输入的形式有中文的、数字的、和字符的输入的,本设计需要输入的是数字,超过范围会显示错误信息。

用户根据提示信息做相应的操作,按小写的字符‘q’为退出程序。

(2)、输出的形式:输出的数据就是在数据段中的定义5个数据变量,并且都是以字符串形式输出。

(3)、程序所要到达到的功能:完成一个歌曲检索,请给出清楚的提示语句,如:Please input a number(1~5):。

屏幕显示数据为:编号歌曲名歌词。

(4)从键盘接收1-5之间的一个编号,然后再屏幕上显示出相应编号的歌曲名称及歌词。

请给出提示语句,如:Please input a number(1~5):。

屏幕显示数据为:编号歌曲名歌词,并且5首歌曲(英文歌曲,歌词不少于50词)之间显示不同颜色的字符。

按小写的字符‘q’为退出程序。

(5)、测试数据:(在程序中已给出)。

二、设计方案1、功能描述1.1本设计的程序大致结构如下数据段数据段主要是对一些数据变量进行定义和赋值,包括MESS,主界面字符串;MAXS ,输入错误显示信息;MSG1~MSG5,5首歌曲(英文歌曲,歌词不少于50词),编号01-05的信息;MSSG,退出界面信息。

堆栈段代码段包括了对数据的显示、对输入一个字符的操作、对多重分支的一些操作。

设计程序执行过程分析汇编语言程序格式如下:数据段:Data segment数据变量定义Data ends堆栈段:Stack segmentStack ends代码段:Code segmentCode ends1.2程序中用到的dos及bios中断调用如下表(1)显示字符串:入口参数:DX寄存器中存放待显示字符串的首地址调用方式:将待显示字符串的首地址存入DXMOV AH,09HINT 21H(2)返回DOS入口参数:无调用方式:MOV AH,4CHINT 21H出口参数:无(4)在屏幕指定位置显示字符串入口参数:AH=0AH,BH=页号,DH、DL中存放起始行号、列号,CX中存放字符串的长度,ES:BP=字符串的首地址。

AL设定显示方式,其值可选择0、1、2、3.(如果为0或1,需要指定显示字符串的属性,如果为1或2,需要指出每个字符的属性。

)(5)键盘输入的字符:入口参数:无调用方式:MOV AH,01HINT 21H出口参数:AL中存放输入字符的ASCII码。

2、流程图设计系统的主要功能如图1-1所示,它是通过几个判断来实现相应的功能来完成本系统。

开始输入一个字符AL=q1<=AL<=5输出相应的信息输出提示信息 结束3、子程序模块设计3.1 PUT宏PUT MACRO X,YLOCAL NEXTMOV AL,03HMOV AH,00HINT 10HMOV DX,SEG XMOV ES,DXMOV BP,OFFSET XMOV AL,'$'MOV SI,-1NEXT:INC SICMP AL,X[SI]JNZ NEXTMOV CX,SIMOV DX,0MOV BL,YMOV AL,1MOV AH,13HINT 10HENDMPUT宏通在屏幕指定位置显示字符串。

3.2 SHOW子程序SHOW PROC NEARMASTER:MOV AH,01H ;输入一个字符INT 21HCMP AL,'1' ;多重分支JZ PRINT1CMP AL,'2' ;为‘2’则跳转PRINT2 JZ PRINT2CMP AL,'3' ;为‘3’则跳转PRINT3 JZ PRINT3CMP AL,'4' ;为‘4’则跳转PRINT4 JZ PRINT4CMP AL,'5' ;为‘5’则跳转PRINT5 JZ PRINT5CMP AL,'q' ;为‘q’则退出JZ EXITCMP AL,'5' ;大于5则跳转到MAXJA MAXMAX:PUT MAXS,0BH ;显示输入错误信息JMP MASTER ;跳转到MASTER PRINT1:PUT MSG1,0AH ;显示歌曲1的信息JMP MASTER ;跳转到MASTER PRINT2:PUT MSG2,0BH ;显示歌曲2的信息JMP MASTER ;跳转到MASTER PRINT3:PUT MSG3 ,0EH ;显示歌曲3的信息JMP MASTER ;跳转到MASTER PRINT4:PUT MSG4,0CH ;显示歌曲4的信息JMP MASTER ;跳转到MASTER PRINT5:PUT MSG5,0DH ;显示歌曲5的信息JMP MASTER ;跳转到MASTER EXIT: ;退出PUT MSSG,0EHRETSHOW ENDP4、代码清单PUT MACRO X,YLOCAL NEXTMOV AL,03HMOV AH,00HINT 10HMOV DX,SEG XMOV ES,DXMOV BP,OFFSET XMOV AL,'$'MOV SI,-1NEXT:INC SICMP AL,X[SI]JNZ NEXTMOV CX,SIMOV DX,0MOV BL,YMOV AL,1MOV AH,13HINT 10HENDMDATAS SEGMENT;此处输入数据段代码MESS DB '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',13,10,13,10,'* welcome to enter my information index system !!! *',13,10, 13,10,'* input a number(1~5),show the song; click q,exit syst *',13,10,13,10,'* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',13,10,13,10,'Please input a number(1~5):$'MAXS DB ' Input error number! please input again: ',0DH,0AH,0DH,0AH,'Please input a number(1~5)$' ;输入错误显示信息MSG1 DB ' 01 Bye Bye - Mariah Carey',0DH,0AH,0DH,0AH,' This is for my peoples',0DH,0AH,' Who just lost somebody',0DH,0AH,' Your best friend, your baby',0DH,0AH,' Your man or your lady',0DH,0AH,' Put your hand way up high',0DH,0AH,' We will never say bye',0DH,0AH,' No, no, no',0DH,0AH,' Mamas, daddys, sisters, brothers',0DH,0AH,0DH,0AH,'Please input a number(1~5)$' MSG2 DB ' 02 take me to your heart - Michael learns torock',0DH,0AH,0DH,0AH,' hiding from the rain and snow ',0DH,0AH,' trying to forget but i wont not let go',0DH,0AH,' looking at a crowded street ',0DH,0AH,' listening to my own heart beat ',0DH,0AH,' so many people ',0DH,0AH,' We will never say bye',0DH,0AH,' all around the world ',0DH,0AH,0DH,0AH,'Please input a number(1~5)$'MSG3 DB ' 03 Yesterday Once More - Carpenters',0DH,0AH,0DH,0AH,' When I was young',0DH,0AH,' I would listen to the radio',0DH,0AH,' Waiting for my favorite songs',0DH,0AH,' When they played I would sing along',0DH,0AH,' It made me smile.',0DH,0AH,' Those were such happy times',0DH,0AH,' And not so long ago',0DH,0AH,0DH,0AH,'Please input a number(1~5)$'MSG4 DB ' 04 Drenched - Wanting Qu',0DH,0AH,0DH,0AH,' When minutes become hours',0DH,0AH,' When days become years',0DH,0AH,' And I do not know where you are',0DH,0AH,' Color seems so dull without you',0DH,0AH,' Have we lost our minds?',0DH,0AH,' What have we done?',0DH,0AH,' But it all does not seem to matter',0DH,0AH,' When days become years',0DH,0AH,0DH,0AH,'Please input a number(1~5)$'MSG5 DB ' 05 the Day You Went away - M2m',0DH,0AH,0DH,0AH,' Well I wonder could it be',0DH,0AH,' When I was dreaming about you baby',0DH,0AH,' You were dreaming of me',0DH,0AH,' Call me crazy',0DH,0AH,' Call me blind',0DH,0AH,' To still be suffering is stupid after all of this time',0DH,0AH,' Did I lose my love to someone better',0DH,0AH,0DH,0AH,'Please input a number(1~5)$'MSSG DB ' Thank You! Bye-Bye$'DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AX;此处输入代码段代码PUT MESS,0CH ;输出主界面字符串CALL SHOWMOV AH,4CHINT 21HSHOW PROC NEARMASTER:MOV AH,01H ;输入一个字符INT 21HCMP AL,'1' ;多重分支JZ PRINT1CMP AL,'2' ;为‘2’则跳转PRINT2 JZ PRINT2CMP AL,'3' ;为‘3’则跳转PRINT3 JZ PRINT3CMP AL,'4' ;为‘4’则跳转PRINT4 JZ PRINT4CMP AL,'5' ;为‘5’则跳转PRINT5 JZ PRINT5CMP AL,'q' ;为‘q’则退出JZ EXITCMP AL,'5' ;大于5则跳转到MAXJA MAXMAX:PUT MAXS,0BH ;显示输入错误信息JMP MASTER ;跳转到MASTER PRINT1:PUT MSG1,0AH ;显示歌曲1的信息JMP MASTER ;跳转到MASTER PRINT2:PUT MSG2,0BH ;显示歌曲2的信息JMP MASTER ;跳转到MASTER PRINT3:PUT MSG3 ,0EH ;显示歌曲3的信息JMP MASTER ;跳转到MASTER PRINT4:PUT MSG4,0CH ;显示歌曲4的信息JMP MASTER ;跳转到MASTER PRINT5:PUT MSG5,0DH ;显示歌曲5的信息JMP MASTER ;跳转到MASTER EXIT: ;退出PUT MSSG,0EHRETSHOW ENDPCODES ENDSEND START5、程序调试结果及分析5.1主界面图5-1 主界面图主界面用来向用户主要介绍本系统的功能的一些基本设置和使用方法。

相关主题