| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1687 人关注过本帖
标题:我的这个程序到底哪错了?
只看楼主 加入收藏
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
结帖率:40%
收藏
 问题点数:0 回复次数:7 
我的这个程序到底哪错了?
所用数据表.rar (69.5 KB)

在一本总名单中,是各科老师需要帮扶的学生名单以及期中单科的名次(qzdkmc字段表示,jsdf是需要计算的奖励的分数),qmdkmc是该科目在期末考试中的单科名次。在一级部月考2成绩中,是月考2(期末)的成绩,y,s,e,w,h,b,z,l,d分别代表语文,数学,英语,物理,化学,生物,政治,历史,地理的成绩,ydkmc是语文期末的单科名次,sdkmc是数学期末的单科名次,以此类推。编程看一下月考中教师帮扶的学生是否有进步?
要求:1、 转化上线每人次奖励2分(期中的分数线为755,期末的分数线为702.5,转化上线就是期中低于755.期末高于702.5)
      2、未上线但是单科名次提高50名以上的每人次奖励2分(也就是期中低于755.期末低于702.5,但是期末单科名次比期中单科名次高50以上)
      3、 原来上线,现在仍保持上线,每人次奖励1分(期中高于755,期末高于702.5)
      4、原先上线,现在没有上线,每人次得-1分(期中高于755,期末低于702.5)
我试了一下语文的:
close all
sele 1
use 一本总名单
sele 2
use 一级部月考2成绩
sele 1

scan for   km="语文"
   
    if   a.bj=b.bj and a.xm=b.xm
     repl a.qmdkmc with b.ydkmc
      if a.zcj<755 and b.zcj>702.5
        repl jsdf with 2
       endif
       if a.zcj<755 and b.zcj<702.5 and qmdkmc-qzdkmc>50
        repl jsdf with 2
       endif
        if a.zcj>755 and b.zcj>702.5
        repl jsdf with 1
       endif
       if a.zcj>755 and b.zcj<702.5
        repl jsdf with -1
       endif
     
    endif
 
ends
结果一本总名单中的qmdkmc的数值并没有任何变化?错哪了?谢谢?
搜索更多相关主题的帖子: 成绩 语文 if and with 
2018-01-08 17:12
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1526
专家分:2981
注 册:2012-2-29
收藏
得分:0 
回复 楼主 xiao2009xiao
是这样的吗?
图片附件: 游客没有浏览图片的权限,请 登录注册

一本总名单_新.rar (5.79 KB)


[此贴子已经被作者于2018-1-8 19:02编辑过]

2018-01-08 18:59
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
收藏
得分:0 
回复 2楼 schtg
恩,是这样的,是不是我 必须要把两个表relation起来,我写的程序是不是错在这里了?
2018-01-09 07:46
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
收藏
得分:0 
回复 2楼 schtg
你写的程序给我看看呗,谢谢!
2018-01-09 07:48
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1526
专家分:2981
注 册:2012-2-29
收藏
得分:0 
回复 4楼 xiao2009xiao
我就写了几句,测试了一下,仅供参考:

SELECT * FROM 一本总名单 INTO TABLE _A1
SELECT * FROM 一级部月考2成绩 INTO TABLE _A2

UPDATE _A1 SET _A1.qmdkmc = _A2.ydkmc from _A1,_A2 WHERE ALLTRIM(_A1.bj)==ALLTRIM(_A2.bj) and ALLTRIM(_A1.xm)=ALLTRIM(_A2.xm)
UPDATE _A1 SET jsdf=2 from _A1,_A2 WHERE ALLTRIM(_A1.bj)==ALLTRIM(_A2.bj) and ALLTRIM(_A1.xm)=ALLTRIM(_A2.xm) AND _A1.zcj<755 and _A2.zcj>702.5
2018-01-09 08:01
xiao2009xiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2017-10-25
收藏
得分:0 
回复 5楼 schtg
我还想问一下,如果要是求语文科目中某一个老师的总得分,怎么写语句?
2018-01-09 08:23
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1526
专家分:2981
注 册:2012-2-29
收藏
得分:0 
回复 6楼 xiao2009xiao
分类汇总即可
2018-01-09 13:59
zyxxzhyg
Rank: 3Rank: 3
来 自:江西
等 级:论坛游侠
威 望:5
帖 子:58
专家分:134
注 册:2014-6-26
收藏
得分:0 
回复 6楼 xiao2009xiao
你写的程序中,a表的指针是在移动(scan),B表的记录指针是不动的,你最少要先进行查找班级和姓名相同的考生再进行处理。
scan for   km="语文"
   
    if   a.bj=b.bj and a.xm=b.xm&&没有查找,只能是比较b表的第一条记录。
     repl a.qmdkmc with b.ydkmc
      if a.zcj<755 and b.zcj>702.5
        repl jsdf with 2
       endif
       if a.zcj<755 and b.zcj<702.5 and qmdkmc-qzdkmc>50
        repl jsdf with 2
       endif
        if a.zcj>755 and b.zcj>702.5
        repl jsdf with 1
       endif
       if a.zcj>755 and b.zcj<702.5
        repl jsdf with -1
       endif
     
    endif
 
ends
2018-01-09 14:00
快速回复:我的这个程序到底哪错了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016340 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved