文档详情

微原课设冒泡排序.doc

发布:2017-03-28约7.15千字共12页下载文档
文本预览下载声明
课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 冒泡排序 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 键盘输入一组十进制数,用冒泡排序由小到大排序后输出显示 时间安排: 1.9 课设题目,设计内容; 1.9—1.10 查资料,算法、方案设计。 1.1—1.13 (硬)软件设计 1.14—1.15 调试程序 1.16—1.17 写课设报告 1.18 答辩 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 1 课程设计题目及要求 题目:冒泡排序 题目要求:键盘输入一组十进制数,用冒泡排序由小到大排序后输出显示 程序设计要求: 1)遵循模块化、结构化的程序设计方法。 2)要求程序必须正确。 3)程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。 4)要求程序结构合理,语句使用得当。 5)适当追求编程技巧和程序运行效率。 2 课题分析及设计思路 冒泡排序: 依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序data segment num dw 50 dup(?) count dw 10 flag1 db 0 ;符号标志 flag2 db 0 ;首位0标志 mess1   DB INPUT 10 NUMBERS,0AH,0DH,$    mess2  DB ERRORS,0AH,0DH,$ mess3   DB SOURCE:,0AH,0DH,$ mess4 DB RESULT:,0AH,0DH,$ data ends prognam segment main proc far assume cs:prognam,ds:data start: push ds ;把原数据存放到段寄存器 sub ax,ax push ax mov ax,data mov ds,ax redo:call input ;输入原始数据 cmp ax,-1d  ;判断是否出错 je redo ;出错,退出 lea dx,mess3 mov ah,09 ;9号调用,显示字符串,请求输出数据 int 21h call output ;输出原始数据 call bubblesort  ;对原始数据进行冒泡排序 lea dx,mess4 mov ah,09 ;9
显示全部
相似文档