DM8: 达梦数据库生成100以内2位数加减法
DM8:达梦数据库生成100以内2位数加减法
1 创建 存储题目 的资源表:
CREATE TABLE SYSDBA.MATH100(ID INT,C1 VARCHAR2(32),C2 VARCHAR2(32),C3 VARCHAR2(32));
2 创建存储过程:
L1 :题目行数 * 3列 ,
N1 :参与运算的 加数 / 减数 最大值
CREATE PROCEDURE MATH_IN_100(L1 INT,N1 INT) AS
DECLARE
--循环次数
L INT :=L1;
--加数/减数 最大值
N INT = N1;
--计数器
I1 INT :=1;
I2 INT :=1;
I3 INT :=1;
--可变数字
NUM INT :=0;
NUM1 INT := 0;
NUM2 INT := 0;
NUM3 INT := 0;
BEGIN
DELETE FROM SYSDBA.MATH100;
WHILE (I1<=L) LOOP
NUM1 := ((ROUND( RAND() * N)));
NUM2 := ((ROUND( RAND() * N)));
NUM3 := ((ROUND( RAND() * N)));
NUM := NUM1 + NUM2 - NUM3;
IF(NUM1>9&&NUM2>9&&NUM3>9&&NUM1<N&&NUM2<N&&(NUM1+NUM2)<=100&&NUM>0) THEN
INSERT INTO MATH100 (C1,ID)VALUES(NUM1 || '+' || NUM2 || '-' || NUM3 || '='||'___',I1);
I1 :=I1+1;
END IF;
END LOOP;
WHILE (I2<=L) LOOP
NUM1 := ((ROUND( RAND() * N)));
NUM2 := ((ROUND( RAND() * N)));
NUM3 := ((ROUND( RAND() * N)));
NUM := NUM1 + NUM2 - NUM3;
IF(NUM1>9&&NUM2>9&&NUM3>9&&NUM1<N&&NUM2<N&&(NUM1+NUM2)<=100&&NUM>0) THEN
UPDATE MATH100 SET C2 = (NUM1 || '+' || NUM2 || '-' || NUM3 || '='||'___') WHERE ID=I2;
I2 :=I2+1;
END IF;
END LOOP;
WHILE (I3<=L) LOOP
NUM1 := ((ROUND( RAND() * N)));
NUM2 := ((ROUND( RAND() * N)));
NUM3 := ((ROUND( RAND() * N)));
NUM := NUM1 + NUM2 - NUM3;
IF(NUM1>9&&NUM2>9&&NUM3>9&&NUM1<N&&NUM2<N&&(NUM1+NUM2)<=100&&NUM>0) THEN
UPDATE MATH100 SET C3 = (NUM1 || '+' || NUM2 || '-' || NUM3 || '='||'___')WHERE ID=I3;
I3 :=I3+1;
END IF;
END LOOP;
COMMIT;
END;
3 调用存储过程:
L1 :题目行数 * 3列 ,
N1 :参与运算的 加数 / 减数 最大值
CALL SYSDBA.MATH_IN_100(L1 INT,N1 INT);
CALL SYSDBA.MATH_IN_100(10,100);
4 在管理工具查询SYSDBA.MATH100 表,
SELECT C1,C2,C3 FROM "SYSDBA"."MATH100";
结果集:
5 在结果集右键 导出所有(w) 到excel
6 打开excel,每列展开,选择打印预览,缩放比例调整为 200%,打印即可