使用控件 :rich-text控件
原理: 利用rich-text支持Html富文本。用一个两行两列的表格来显示分数,第一列的两行合并显示带分数,第二列的第一行显示分子,第二列的第二行显示分母,将表格的边框不显示,仅显示第一行第二列单元格做扮的下边框线。这渣胡链样就如孙实现了分数的显示形式。
实现效果如下图所示:
您可以在微信中搜索小程序“茄子计算器”查看效果。
学生的数量我们并不知道有多少,有可能是1个学生,但也有可能是100000个学生但是我们能确定的是学生的学号,因为每个学生的学号都是不一样的(除非出现意外情况)
那族迹歼么我们可以以学生的学号来排序,比如000是小明,那么我们把000放在list的第一位,把小明这个人的名字放在学生名的list的第一位,那么他的所有的成绩分数什么的都会在每个list的第一位
现在我们可以开始做第一步,寻找学生。 寻找学生我们需要一个parameter,一般来说会给学号或者是兆冲名字,那么我们可以用linear search从list的头开始寻找到尾。如果没有到达list的尾部而且还寻找到了学生,那么return 他在这个list的位置,如果到达了list的底部,return一个message告诉对方系统里没有这州凯个学生
计算学生总成绩:我们已经知道了这个学生名字或者学号在各个list的位置了,那么这个学生所对应的成绩分数都在各个list的相同的位置,那么我们只用上个方法return的数字去寻找各个考试的分数,然后根据百分比相乘后加起来,这就是这个学生的总成绩
排名:这个要根据什么来排,如果你是根据总成绩来排的话,你需要去比较所有的分数。这个就需要sorting search,至于方法有很多,应该有六种,具体的我记不清楚,不过你可以去网上找找
用字母代表成绩:这个也很简单,既然你都知道分数了,那么就设置一个区域,比如90-100是优秀,那么把所有在90-100的分数全部变成A然后存入list里面就行了(记得要按照顺序!!)
班级平均分:emmmm这个是咋算来着的。。。。应该是把所有学生在某一次作业或者考试的成绩全部加起来后除以全部人数吧。。那么你自己按照一个顺序,把所有的分数加起来除以所有的人数后再存入list里面就行了
基本原理和这租判个通讯录数据处理程序相似,提问者稍加修改就可以使用。clear
set safe off
use txl
text
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※ 1.输入 2.修改升哗 3.插入 4.删除 ※
※ 5.按姓名升序显示 6.按邮政编码升序显示 ※
※ 7.按姓名查询 8.退出 ※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
endtext
input "请按数字键选择" to aa
do case
case aa=1
go bott
accept "请输入姓名:" to xm
accept "请输入性别:" to xb
accept "请输入电话号码:" to dhhm
accept "请输入家庭住址:" to jtzz
accept "请输入工作单位:" to gzdw
accept "请输入邮政编码:" to yzbm
repl 姓名 with xm,性别 with xb, 电话号码 with dhhm,家庭住址 with jtzz,工作单位 with gzdw,邮政编码 with yzbm
case aa=2
input"请输入您要修改的记录的编号:" to c
go c
? "请修改第"+str(c,1)+"个人的数据!"
disp
accept "请输入姓名:" to xm
accept "请输入性别:" to xb
accept "请输入电话号码:" to dhhm
accept "请输入家庭住址:" to jtzz
accept "请输入工作单位:" to gzdw
accept "请输入邮政编码:" to yzbm
repl 姓名 with xm,性别 with xb, 电话号码 with dhhm,家庭住址 with jtzz,工作单位 with gzdw,邮政编码 with yzbm
case aa=3
append blank
accept "请输入姓名:" to xm
accept "请输入性别:" to xb
accept "请输入电话号码:" to dhhm
accept "请输入家庭住址:" to jtzz
accept "请输入工作单位:" to gzdw
accept "请输入邮政编码:" to yzbm
repl 姓名 with xm,性别 with xb, 电话号码 with dhhm,家庭住址 with jtzz,工作单位 with gzdw,邮政编码 with yzbm
case aa=4
input "请输入您想要删除的记录号" to d
go d
delete
accept "确认删除请按小写字母y,否则取消删除)" to e
if e="y"
pack
else
recall
endif
case aa=5
index on 姓名 to xm
list
case aa=6
index on 邮政编码 to yzbm
list
case aa=7
accept "请输入您要查询的姓名" to f
list for 姓名=f
case aa=8
wait "系统即将关闭" window timeout 3
exit
othe
messagebox("请重新选择",0+64,"出错了")
endc
set safe on
*这个程序能完成任务,不过界面不好。可以这样修改:
*新建一个表单(主表单,表单1),增加8个按钮,每个按钮的名称caption同上面程序中的菜单;再增加一个按钮,caption为“退出”,保存表单1。
*新建一个数据处理表单(表单2)弊笑改,向表单添加标签,caption为“姓名”,再增加一个文本控件text1,用来处理“姓名”数据;继续向表单添加标签,caption为“性别”,增加一个文本控件text2,用来处理“性别”数据;.........向表单添加标签,caption为“邮政编码”,再增加一个文本控件text6,用来处理“邮政编码”数据。把标签和文本控件适当整理齐整。增加一个按钮,caption 为“保存”,再增加一个按钮,caption为“退出”,
双击表单空白处,出现load事件,输入
thisform.text1.value=xm
thisform.text2.value=xb
thisform.text3.value=dhhm
thisform.text4.value=jtzz
thisform.text5.value=gzdw
thisform.text6.value=yzbm
输入完毕,关闭load事件,这是给表单2的几个控件赋初值。
双击“退出”按钮,输入
thisform.release
关闭事件,双击“保存”按钮,输入
repl 姓名 with thisform.text1.value,
性别 with thisform.text2.value,
电话号码 with thisform.text2.value,
家庭住址 with thisform.text2.value,
工作单位 with thisform.text2.value,
邮政编码 with thisform.text2.value
保存表单2。
打开表单1,双击表单的空白处,出现load事件,输入:
set safe off
use txl
public xm,xb,dhhm,jtzz,gzdw,yzbm
双击“输入”按钮,输入
go bott
*下面给表单2赋初值
xm=姓名
xb=性别
dhhm=电话号码
jtzz=家庭住址
gzdw=工作单位
yzdm=邮政编码
do form 表单2
双击“修改”按钮,输入
input"请输入您要修改的记录的编号:" to c
go c
*下面给表单2赋初值
xm=姓名
xb=性别
dhhm=电话号码
jtzz=家庭住址
gzdw=工作单位
yzdm=邮政编码
do form 表单2
双击“插入”按钮,输入
appe blank
*下面给表单2赋初值
xm=姓名
xb=性别
dhhm=电话号码
jtzz=家庭住址
gzdw=工作单位
yzdm=邮政编码
do form 表单2
双击“删除”按钮,输入
input "请输入您想要删除的记录号" to d
go d
delete
accept "确认删除请按小写字母y,否则取消删除)" to e
if e="y"
pack
else
recall
endif
双击“按姓名升序显示”按钮,输入
index on 姓名 to xm
brow
双击“按邮政编码升序显示”按钮,输入
index on 邮政编码 to yzbm
brow
双击“按姓名查询”按钮,输入
accept "请输入您要查询的姓名" to f
brow for 姓名=f
双击“退出”按钮,输入
close data
set safe on
thisform.release
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)