| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2469 人关注过本帖
标题:我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么 ...
取消只看楼主 加入收藏
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
结帖率:66.67%
收藏
 问题点数:0 回复次数:15 
我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么改?
我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”,怎么改?
SELECT fb
a=messagebox("真的要分班吗?",4+32+256,"系统提示")
IF a=6
set filter to xz=alltrim() and zymc=ALLTRIM()
locate for xz=alltrim() and zymc=ALLTRIM()

GO top
do while not eof()
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM(STR(n))
      SKIP
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM(STR(m))
      SKIP
   endfor
ENDDO
   MESSAGEBOX("分班已完成!",64,"系统信息")
   thisform.Release
ELSE
thisform.release

ENDIF
搜索更多相关主题的帖子: 系统 replace 
2012-05-28 10:05
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
谢谢!受益匪浅!!!

2012-05-29 08:52
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我想按照50人一个班分,怎么办?不足50人单独分班。

2012-05-29 08:56
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我的思路
STORE 0 to abc   
COUNT for xz=ALLTRIM() and zymc=ALLTRIM() to abc    *首先统计满足的学制、专业人数,例如三年会计电算化多少人
DO case
   CASE abc<=50     *如果人数小于等于50人
       replace bj with ALLTRIM()+ALLTRIM()   
   CASE abc>50     *如果人数大于50人,按50人一个班进行分班,这一步我不太会,请教大家一下!!!
  do while .T.
   for n=1 to 10
      replace bj with ALLTRIM()+ALLTRIM()+ALLTRIM(STR(n))
      SKIP
      if eof()
        exit
      endif
   endfor
    for m=10 to 1 step -1
      replace bj with ALLTRIM()+ALLTRIM()+ALLTRIM(STR(m))
      SKIP
      if eof()
        exit
      endif
   endfor
ENDDO
ENDCASE

2012-05-29 09:04
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
5楼的朋友,我试着还是不行

2012-05-29 09:38
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我的想法是首先计算出满足的学制和专业人数赋值给a,再定义一个变量pic让它等于a%50,若小于等于50人分一个班,大于50人再进行下面分班,思路有就是代码不太对,请大家帮忙看看!!!
STORE 0 to a
COUNT for xz=ALLTRIM() and zymc=ALLTRIM() to a
pic=a%50         
IF pic<=1
replace bj with ALLTRIM()+"班"
ELSE   pic>1
do while .T.
   for n=1 to pic
      replace bj with ALLTRIM()+alltrim()+"年"+ALLTRIM(STR(n))+"班"
      SKIP
      if eof()
        return
      endif
   ENDFOR
    for m=pic to 1 step -1
      replace bj with ALLTRIM()+alltrim()+"年"+ALLTRIM(STR(m))+"班"
      SKIP
      if eof()
        return
      endif
   ENDFOR
ENDDO
ENDIF

2012-05-29 10:06
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
13楼的朋友有点问题我上传一个附件,大家看一下
图片附件: 游客没有浏览图片的权限,请 登录注册

2012-05-29 16:03
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
生成的班级第五十个是空的,每个班都一样

2012-05-29 16:04
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
我做的数据库,请大家帮忙改正

[ 本帖最后由 lifeng123 于 2012-6-1 09:58 编辑 ]

2012-05-29 16:15
lifeng123
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-6-9
收藏
得分:0 
能计算出满足的学制和专业人数,正如13楼的朋友所说count for指针会到文件尾,这时候如何给它赋值?
set filter to xz=alltrim() and zymc=ALLTRIM()
locate for xz=alltrim() and zymc=ALLTRIM()
STORE 0 to a
COUNT for xz=ALLTRIM() and zymc=ALLTRIM() to a
a=a%50
IF a<=1
   IF xz=ALLTRIM() and zymc=ALLTRIM()
      replace bj with ALLTRIM()+"班"
   endif
ELSE   a>1
   IF xz=ALLTRIM() and zymc=ALLTRIM()
    do while .T.
        for n=1 to a
          replace bj with ALLTRIM()+alltrim()+"年"+ALLTRIM(STR(n))+"班"
          SKIP
          if eof()
          return
          endif
       ENDFOR
      for m=a to 1 step -1
          replace bj with ALLTRIM()+alltrim()+"年"+ALLTRIM(STR(m))+"班"
          SKIP
         if eof()
         return
        endif
    ENDFOR
  ENDDO
  ENDIF
ENDIF

2012-05-29 16:52
快速回复:我简单的做了一个分班系统,每次运行都提示程序错误,“已到文件尾”, ...
数据加载中...
 
   



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

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