焉知愚之乐
saojipo.com

帮网友写的一个易语言冒泡算法

一个网友的作业,有点意思,用自定义数据类型方式加入学生信息,然后用冒泡算法排序学生信息,自定义数据类型很简单,就三个数组,但是在编辑框排序这个就很有意思了,用易语言自带的数组排序只能排序一个数组,三个数组的变动索引必须一致才能达到目的,思考了很久,只能自己写个冒泡算法对一个数组进行比对,其他数组跟着修改索引就好了,不知道是不是最简单的方法,贴出来记录一下吧。

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
student成绩信息0 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
初始化 ()
子程序名返回值类型公开备 注
初始化  
变量名类 型静态数组备 注
i整数型  
name文本型 0
age整数型 0
score小数型 0
j整数型  
name = { “张一山”, “张二川”, “张三丰”, “张四季”, “张五岳”, “张六顺”, “张七夕”, “张八戒”, “张九玲”, “张十美” }
age = { 15, 17, 16, 14, 18, 16, 19, 18, 17, 16 }
score = { 80, 60, 76, 89.5, 90, 90, 50, 80, 99, 78.5 }
重定义数组 (student, 假, 取数组成员数 (name))
编辑框1.加入文本 ( #title )
计次循环首 (取数组成员数 (name), j)
student [j].name = name [j]
student [j].age = age [j]
student [j].score = score [j]
计次循环尾 ()
计次循环首 (取数组成员数 (student), i)
如果 (寻找文本 (到文本 (student [i].score), “.”, , ) = -1) ' 如果成绩存在小数点,那么调整加入文本格式让文本对齐
编辑框1.加入文本 (“| ” + student [i].name + “ | ”到文本 (student [i].age)“ | ”到文本 (student [i].score)“ | ”#换行符“ —————————-”#换行符 )
编辑框1.加入文本 (“| ” + student [i].name + “ | ”到文本 (student [i].age)“ | ”到文本 (student [i].score)“ | ”#换行符“ —————————-”#换行符 )

计次循环尾 ()
子程序名返回值类型公开备 注
_按钮2_被单击  
编辑框1.内容 = “”
编辑框1.加入文本 ( #title )
冒泡排序 ()
子程序名返回值类型公开备 注
冒泡排序  
变量名类 型静态数组备 注
i整数型  
j整数型  
age整数型  
name文本型  
score小数型  
计次循环首 (取数组成员数 (student), i)
变量循环首 (取数组成员数 (student) - 1, i, -1, j)
如果真 (按钮2.标题 = “按年龄排序” student [j + 1].age < student [j].age 按钮2.标题 = “按成绩排序” student [j + 1].score < student [j].score) ' 如果前一个数比后一个数大就交换两个数组成员的值,自定义数据内其他数组索引也跟随改变
age = student [j].age
name = student [j].name
score = student [j].score
student [j].age = student [j + 1].age
student [j].name = student [j + 1].name
student [j].score = student [j + 1].score
student [j + 1].age = age
student [j + 1].name = name
student [j + 1].score = score

变量循环尾 ()
如果 (寻找文本 (到文本 (student [i].score), “.”, , ) = -1)
编辑框1.加入文本 (“| ” + student [i].name + “ | ”到文本 (student [i].age)“ | ”到文本 (student [i].score)“ | ”#换行符“ —————————-”#换行符 )
编辑框1.加入文本 (“| ” + student [i].name + “ | ”到文本 (student [i].age)“ | ”到文本 (student [i].score)“ | ”#换行符“ —————————-”#换行符 )

计次循环尾 ()
如果 (按钮2.标题 = “按成绩排序”)
按钮2.标题 = “按年龄排序”
按钮2.标题 = “按成绩排序”

数据类型名公开备 注
成绩信息 
成员名类 型传址数组备 注
name文本型  
age整数型  
score小数型  

赞(0)

评论 抢沙发

评论前必须登录!