| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3687 人关注过本帖
标题:奇偶数判定代码
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
考室1
第1列, 第2列, 第3列, 第4列, 第5列, 第6列, 第7列, 第8列
A级X班,B级Y班,A级X班,B级Y班,A级X班,B级Y班,A级X班,B级Y班,
A级Y班,B级X班,A级Y班,B级X班,A级Y班,B级X班,A级Y班,B级X班,
A级W班,B级Y班,A级W班,B级Y班,A级W班,B级Y班,A级W班,B级Y班,

....
列以列之间,级不能相同
行与行之间,班不能相同,6行?
是这样要求把?
2015-10-20 16:27
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
是的。一般8列8行,
2015-10-20 20:59
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
列不同基本能解决,现在关键是同列同班不能相连
2015-10-20 21:02
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
每一列是一个年级,但同年级同班不能相连
2015-10-20 21:05
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
我早上想了1下,你这个不是简单的奇偶数问题,8*8矩阵,
涉及到以下问题:
1、只有1个年级时,2,4,6,8列空,可以是多班级
2、只有1个班级时,2,4,6,8行空
....
2015-10-21 10:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
个人理解就是:每一考生的前后(行)是同级生而非同班生(或空)、左右(列)是非同级生(或空)。
2015-10-21 13:54
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
是否可以从打印报表设置去考虑?
2015-10-21 16:04
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
回复 27楼 TZTJ
先整理好一个表直接列印是不是较容易些?
模拟数据试试,不知是不是这意思。
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
n级 = 6
n班 = 10
n行 = 8
n列 = 8
    * 模拟数据
CREATE CURSOR 学生表 (级 I, 班 I, 名 C(20))
FOR i = 1 TO n级
    FOR j = 1 TO n班
        FOR k = 1 TO IIF(MOD(i, 2)==0, 60, 50)
        *FOR k = 1 TO IIF(MOD(j, 2)==0, 60, 50)
            INSERT INTO 学生表 VALUES (i, j, PADL(i,2," ")+"年级"+PADL(j,2," ")+"班"+PADL(k,8,"x"))
        ENDFOR
    ENDFOR
ENDFOR

cCmd = "CREATE CURSOR 考场表 (考场 I"
FOR i = 1 TO n列
    cCmd = cCmd + ",列"+TRANSFORM(i)+" C(20)"
ENDFOR
cCmd = cCmd + ")"
EXECSCRIPT(cCmd)

n场i = 1
n列i = 1
n行i = 0
FOR i = 1 TO n级
    建考场表(i, @n场i, @n列i, @n行i)
    n列i = IIF(n列i==1, 2, 1)
ENDFOR
SELECT 考场表
GO TOP 
BROWSE

FUNCTION 建考场表(n级i, n场i, n列i, n行i)
    LOCAL i, n列k, n行k
    SELECT * FROM 学生表 WHERE==n级i INTO CURSOR 级表
    SELECT 级表
    INDEX on RAND(班+RECNO()) TAG 班序    && 乱序
    GO TOP IN "级表"
    
    n列k = n列i
    n行k = n行i
    
    DO WHILE !EOF("级表")
        IF n列k > n列
            n行k = n行k + n行
            IF (n行k+1) <= RECCOUNT("考场表")
                n列k = n列i
            ELSE
                n场i = n场i + 1    && 新场
                IF n列i = 2
                    n行i = n行k
                ENDIF
                n列i = 1
                n列k = n列i
            ENDIF
        ENDIF
            * 写一列
        i = 1
        DO WHILE !EOF("级表") AND (i <= n行)
            IF (n行k+i) <= RECCOUNT("考场表")
                GO (n行k+i) IN "考场表"
            ELSE
                APPEND BLANK IN "考场表"
                REPLACE 考场 WITH n场i IN "考场表"
            ENDIF

            REPLACE ("列"+TRANSFORM(n列k)) WITH 级表.名 IN "考场表"
            i = i + 1
            SKIP IN "级表"
        ENDDO
    
        n列k = n列k + 2    
    ENDDO
ENDFUNC
2015-10-21 21:42
TZTJ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:737
专家分:115
注 册:2008-1-15
收藏
得分:0 
首先感谢吹水佬,就是我想要的效果。我先慢慢研究,有问题再请教。
2015-10-22 10:08
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
看了吹水的代码,感觉吹水的功力达到黄药师的功力。。。。
2015-10-22 13:35
快速回复:奇偶数判定代码
数据加载中...
 
   



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

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