只有本站会员才能查看附件,请 登录
课务分工.txt(部分)
001 曹文亮 一年级(2)班美术,四年级(3)班品社,计4节
002 曹小虎 五年级(2)班科学,五年级(2)班数学,五年级(2)班信息,计8节
003 曹艳 四年级(4)班科学,四年级(4)班数学,四年级(4)班体育,四年级(4)班信息,计10节
004 陈杰 四年级(1)班英语,四年级(1)班劳动,四年级(1)班英阅,四年级(2)班英语,四年级(2)班劳动,四年级(2)班英阅,四年级(4)班英语,四年级(4)班劳动,四年级(4)班英阅,计15节
005 陈金玉 四年级(6)班班会,四年级(6)班语文,四年级(6)班美术,四年级(6)班信息,四年级(6)班语阅,计11节
006 陈留英 六年级(1)班语文,六年级(1)班音乐,六年级(1)班语阅,计8节
007 陈苏艳 四年级(3)班班会,四年级(3)班英语,四年级(3)班英阅,四年级(5)班英语,四年级(5)班劳动,四年级(5)班英阅,四年级(6)班英语,四年级(6)班劳动,四年级(6)班英阅,计15节
008 陈天明 三年级(1)班音乐,三年级(2)班音乐,三年级(6)班音乐,四年级(1)班音乐,四年级(3)班音乐,五年级(1)班音乐,五年级(2)班音乐,五年级(3)班音乐,计16节
009 陈文生 一年级(2)班语文,一年级(2)班综合,一年级(2)班语阅,一年级(2)班自习1,计10节
010 陈羊成 三年级(6)班体育,四年级(5)班体育,四年级(6)班体育,五年级(5)班体育,五年级(6)班体育,计15节
程序代码(有点问题)
* 生成 jsrkb.dbf 完整代码
* 作者:AI助手
* 日期:2023-10-15
CLEAR ALL
CLOSE DATABASES ALL
SET SAFETY OFF
SET TALK OFF
SET CPCOMPILE TO 936 && 设置中文编码支持
* 创建临时表存储原始分工数据
CREATE CURSOR temp_data (;
teacher_id C(3),;
teacher_name C(20),;
class_subj C(100);
)
* 导入课务分工.txt数据
APPEND FROM 课务分工.txt TYPE DELIMITED WITH TAB
* 创建目标表结构
CREATE TABLE jsrkb.dbf ;
(;
N N(3), && 序号;
B C(20), && 班级;
班会 C(10),;
道法 C(10),;
品社 C(10),;
科学 C(10),;
语文 C(10),;
数学 C(10),;
英语 C(10),;
体育 C(10),;
音乐 C(10),;
美术 C(10),;
劳动 C(10),;
信息 C(10),;
综合 C(10),;
语阅 C(10),;
英阅 C(10),;
自习1 C(10),;
自习2 C(10);
)
* 解析数据主程序
LOCAL lcClass, lcSubject, lcTeacher
LOCAL ARRAY laClasses[1], laSubjects[18]
DIMENSION laSubjects[18]
* 定义学科映射表
laSubjects[1] = "班会"
laSubjects[2] = "道法"
laSubjects[3] = "品社"
laSubjects[4] = "科学"
laSubjects[5] = "语文"
laSubjects[6] = "数学"
laSubjects[7] = "英语"
laSubjects[8] = "体育"
laSubjects[9] = "音乐"
laSubjects[10] = "美术"
laSubjects[11] = "劳动"
laSubjects[12] = "信息"
laSubjects[13] = "综合"
laSubjects[14] = "语阅"
laSubjects[15] = "英阅"
laSubjects[16] = "自习1"
laSubjects[17] = "自习2"
* 获取所有班级列表
SELECT DISTINCT LEFT(class_subj, AT("班", class_subj)) AS classname FROM temp_data INTO ARRAY laClasses
* 主处理循环
FOR i = 1 TO ALEN(laClasses)
lcClass = ALLTRIM(laClasses[i])
* 插入新记录
INSERT INTO jsrkb (N, B) VALUES (i, lcClass)
* 处理每个学科
FOR j = 1 TO ALEN(laSubjects)
lcSubject = laSubjects[j]
* 查找第一个匹配的教师
SELECT TOP 1 teacher_name FROM temp_data ;
WHERE class_subj LIKE lcClass + "%" + lcSubject + "%" ;
INTO CURSOR cur_temp
IF _TALLY > 0
lcTeacher = cur_temp.teacher_name
REPLACE IN jsrkb (lcSubject) WITH lcTeacher
ENDIF
USE IN cur_temp
ENDFOR
ENDFOR
* 清理临时数据
USE IN temp_data
ERASE temp_data.dbf
* 最终整理
USE jsrkb
BROWSE TITLE "教师任课表生成结果"
RETURN
[此贴子已经被作者于2025-4-9 09:01编辑过]