注册 登录
编程论坛 VFP论坛

求助:由DeepSeek生成的代码无法运行

王咸美 发布于 5 天前 07:53, 76 次点击
由“课务分工.txt"表生成各班教师任课表(jsrkb.dbf),deepSeek生成的代码无法运行,请高手赐教,万分感谢!!!
只有本站会员才能查看附件,请 登录

课务分工.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编辑过]

0 回复
1