微原课设冒泡排序.doc
文本预览下载声明
课程设计任务书
学生姓名: 专业班级:
指导教师: 工作单位:
题 目: 冒泡排序
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
键盘输入一组十进制数,用冒泡排序由小到大排序后输出显示
时间安排:
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
显示全部