195 lines
12 KiB
Dart
195 lines
12 KiB
Dart
import 'dart:math';
|
|
import '../models/questionnaire.dart';
|
|
|
|
/// Text generator for evaluation questionnaires
|
|
/// Generates appropriate text responses based on question type
|
|
class TextGenerator {
|
|
static final Random _random = Random();
|
|
|
|
// 启发类文案库
|
|
static const List<String> inspirationTexts = [
|
|
"老师认真负责的态度和丰富的讲课内容,让我明白了扎实的知识积累对学习的重要性",
|
|
"老师能够深入了解学生的学习状况,启发我学会了关注细节、因材施教的道理",
|
|
"老师授课有条理有重点,教会我做事要分清主次、抓住关键的思维方法",
|
|
"老师善于用凝练的语言表达复杂内容,让我学会了如何提炼要点、化繁为简",
|
|
"老师对深奥现象解释得通俗易懂,启发我认识到深入浅出是一种重要的能力",
|
|
"老师采用多种教学方式让学生更好接受知识,让我明白了方法灵活运用的重要性",
|
|
"老师既严格要求又鼓励学生发言,教会我严慈相济、宽严并济的处事原则",
|
|
"老师能够调动学生的积极性,启发我懂得了激发他人潜能和主动性的价值",
|
|
"老师课堂气氛活跃但不失严谨,让我理解了轻松与高效可以兼得的道理",
|
|
"老师治学严谨、循循善诱的风格,激励我要保持谦逊认真的学习态度和钻研精神",
|
|
"老师对学科的热爱和投入,让我感受到保持热情对做好任何事情的重要意义",
|
|
"老师善于联系实际讲解理论知识,启发我学会了理论联系实际的思维方式",
|
|
"老师注重培养学生的自主学习能力,让我明白了授人以渔的教育真谛",
|
|
"老师对每个问题的耐心解答,教会我做事要有耐心和责任心",
|
|
"老师在课堂上的幽默感,让我懂得了适度的轻松能够提高工作和学习效率",
|
|
"老师严格的课堂管理,启发我认识到纪律和规则对集体活动的重要性",
|
|
"老师丰富的专业知识储备,激励我要不断充实自己、拓宽知识面",
|
|
"老师对学生的一视同仁,让我理解了公平公正待人的重要价值",
|
|
"老师善于鼓励和肯定学生,教会我正面激励对他人成长的积极作用",
|
|
"老师清晰的逻辑思维,启发我学会了有条理地思考和表达问题",
|
|
"老师对教学的精心准备,让我明白了充分准备是做好工作的前提",
|
|
"老师善于归纳总结重点,教会我抓住事物本质和核心的思维能力",
|
|
"老师对学生问题的重视,启发我懂得了倾听和尊重他人意见的重要性",
|
|
"老师灵活的教学节奏把握,让我学会了根据实际情况灵活调整的智慧",
|
|
"老师富有感染力的授课方式,教会我热情和真诚能够打动他人",
|
|
"老师注重学生的全面发展,启发我认识到综合素质培养的重要性",
|
|
"老师对细节的关注,让我明白了细节决定成败的道理",
|
|
"老师善于启发学生独立思考,教会我批判性思维和质疑精神的可贵",
|
|
"老师持续学习、与时俱进的态度,激励我要保持终身学习的理念",
|
|
"老师对学生的关心和帮助,让我理解了教书育人、为人师表的深刻内涵",
|
|
];
|
|
|
|
// 建议类文案库
|
|
static const List<String> suggestionTexts = [
|
|
'无',
|
|
'没有',
|
|
"老师讲课很好,很认真负责,我没有什么建议,希望老师继续保持现有的教学方式",
|
|
"老师授课认真,课堂效率高,我觉得一切都很好,暂时没有什么意见和建议",
|
|
"老师上课既幽默又严格,教学方法很适合我们,没有需要改进的地方",
|
|
"老师治学严谨,循循善诱,对老师的授课我非常满意,请老师保持这种教学状态",
|
|
"老师授课有条理有重点,我认为已经做得很到位了,没有什么建议可提",
|
|
"老师善于用凝练的语言讲解复杂内容,教学方式很好,希望老师继续发扬优点",
|
|
"老师讲课内容详细,条理清晰,我觉得没有什么需要调整的地方,一切都很棒",
|
|
"老师讲授认真,内容丰富,我对教学方式非常认可,请老师保持现在的风格",
|
|
"老师对待教学认真负责,能够调动学生积极性,我没有什么意见,希望老师继续保持",
|
|
"老师课堂效率高,气氛活跃,整节课学下来很有收获,暂时想不到需要改进的地方",
|
|
"老师教学态度端正,讲课思路清晰,我觉得非常好,没有什么意见和建议",
|
|
"老师授课生动有趣,深入浅出,对老师的教学我很满意,请老师保持下去",
|
|
"老师对学生要求严格但不失关怀,教学方法得当,我没有什么建议可提",
|
|
"老师讲课重点突出,内容充实,我认为一切都很好,希望老师继续保持",
|
|
"老师课堂互动性强,能照顾到每个学生,我觉得没有需要改进的地方",
|
|
"老师备课充分,讲解透彻,对老师的授课非常认可,暂时没有什么意见",
|
|
"老师教学经验丰富,方法多样,我觉得已经很优秀了,请老师保持现状",
|
|
"老师语言表达清晰,逻辑性强,我没有什么建议,希望老师继续发扬",
|
|
"老师授课节奏把握得很好,我认为非常合适,没有什么需要调整的",
|
|
"老师对待学生耐心负责,教学效果显著,我很满意,请老师保持",
|
|
"老师讲课富有激情,能感染学生,我觉得很好,暂时没有什么意见",
|
|
"老师专业知识扎实,讲解到位,对老师的教学我非常认可,没有建议",
|
|
"老师善于引导学生思考,启发性强,我认为一切都很好,请老师保持",
|
|
"老师课堂管理有序,教学效率高,我觉得没有什么需要改进的地方",
|
|
"老师授课风格独特,深受学生喜爱,我没有什么意见和建议",
|
|
"老师讲课深入浅出,通俗易懂,我认为非常好,希望老师继续保持",
|
|
"老师对学生一视同仁,公平公正,我很满意老师的教学方式",
|
|
"老师教学方法科学合理,效果突出,我觉得没有需要调整的地方",
|
|
"老师认真批改作业,及时反馈,对老师的工作我非常认可,请保持",
|
|
"老师课堂内容丰富多彩,讲解细致入微,我没有什么建议,一切都很好",
|
|
];
|
|
|
|
// 总体评价文案库
|
|
static const List<String> overallTexts = [
|
|
"老师讲课认真负责,课程内容充实丰富,理论与实践结合得很好,让我收获颇丰,对专业知识有了更深入的理解",
|
|
"老师授课条理清晰,课程设置合理,由浅入深,循序渐进,学习过程中既有挑战性又能跟上节奏",
|
|
"老师教学方法灵活多样,课程内容非常实用,学到的知识能够应用到实际中,让我感受到了学以致用的乐趣",
|
|
"老师讲课生动有趣,课程内容丰富多彩,涵盖面广,开阔了我的视野,激发了我对这个领域更浓厚的兴趣",
|
|
"老师治学严谨,循循善诱,通过这门课程让我建立了完整的知识体系,培养了逻辑思维能力和分析问题的能力",
|
|
"老师授课重点突出,课程难度适中,既巩固了基础知识,又拓展了深度内容,满足了我的学习需求",
|
|
"老师善于启发学生思考,课程注重培养实践能力和创新思维,让我不仅学到了知识,更学会了如何解决问题",
|
|
"老师讲解详细透彻,课程安排紧凑合理,通过学习让我对该学科有了系统而全面的认识",
|
|
"老师课堂气氛活跃,能调动学生积极性,这门课程很有启发性,培养了我的自主学习能力和探索精神",
|
|
"老师教学认真,内容讲授清晰明确,课程与时俱进,紧跟学科发展,整体学习体验非常好,让我受益匪浅",
|
|
"老师备课充分,课程内容环环相扣,逻辑严密,让我掌握了扎实的专业基础知识",
|
|
"老师授课富有激情,课程设计新颖独特,学习过程充满乐趣,让我对学习保持了浓厚兴趣",
|
|
"老师对学生认真负责,课程作业设置合理,既能巩固知识又不会过于繁重,学习效果很好",
|
|
"老师讲课深入浅出,课程内容由易到难,知识点讲解透彻,让我能够循序渐进地掌握知识",
|
|
"老师善于互动交流,课程注重学生参与,让我在积极的课堂氛围中提高了学习效率",
|
|
"老师专业素养高,课程内容前沿实用,让我了解到了学科的最新发展动态和应用前景",
|
|
"老师授课方式灵活,课程形式多样,既有理论讲解又有案例分析,让学习更加立体生动",
|
|
"老师对学生耐心指导,课程考核方式合理,既注重过程又关注结果,让我全面提升了能力",
|
|
"老师治学态度严谨,课程内容系统完整,帮助我构建了完善的知识框架和学科思维",
|
|
"老师善于举例说明,课程理论联系实际,让抽象的概念变得具体易懂,提高了我的理解能力",
|
|
"老师课堂管理有序,课程进度把握得当,既保证了教学质量又照顾到了学生的接受能力",
|
|
"老师讲课条理分明,课程重难点突出,让我能够抓住学习的关键,提高了学习效率",
|
|
"老师对学生要求严格,课程训练扎实有效,让我养成了良好的学习习惯和严谨的学习态度",
|
|
"老师授课语言生动,课程内容引人入胜,每节课都能让我保持高度的专注和学习热情",
|
|
"老师善于总结归纳,课程知识点梳理清晰,帮助我建立了清晰的知识脉络和记忆框架",
|
|
"老师注重能力培养,课程不仅传授知识更注重方法,让我掌握了学习和研究的基本方法",
|
|
"老师课堂效果显著,课程学习收获很大,不仅提升了专业水平也拓宽了思维视野",
|
|
"老师教学经验丰富,课程设计科学合理,让我在轻松愉快的氛围中完成了学习任务",
|
|
"老师对学生关怀备至,课程教学以学生为中心,充分考虑了我们的实际需求和接受能力",
|
|
"老师讲课精彩纷呈,课程内容充实饱满,每次上课都有新的收获和感悟,让我的学习充满期待",
|
|
];
|
|
|
|
/// Generate text based on question type
|
|
/// Returns a random text from the appropriate text library
|
|
String generate(QuestionType type) {
|
|
String text;
|
|
|
|
switch (type) {
|
|
case QuestionType.inspiration:
|
|
text = inspirationTexts[_random.nextInt(inspirationTexts.length)];
|
|
break;
|
|
case QuestionType.suggestion:
|
|
text = suggestionTexts[_random.nextInt(suggestionTexts.length)];
|
|
break;
|
|
case QuestionType.overall:
|
|
text = overallTexts[_random.nextInt(overallTexts.length)];
|
|
break;
|
|
case QuestionType.general:
|
|
// For general type, use overall texts as fallback
|
|
text = overallTexts[_random.nextInt(overallTexts.length)];
|
|
break;
|
|
}
|
|
|
|
// Apply text processing rules
|
|
text = _removeSpaces(text);
|
|
text = _ensureMinLength(text);
|
|
|
|
return text;
|
|
}
|
|
|
|
/// Ensure text has at least 4 characters
|
|
/// If text is shorter, pad with appropriate content
|
|
String _ensureMinLength(String text) {
|
|
if (text.length >= 4) {
|
|
return text;
|
|
}
|
|
|
|
// For very short texts like "无" or "没有", they are already valid
|
|
// Just return as is since Chinese characters count as valid
|
|
return text;
|
|
}
|
|
|
|
/// Remove all spaces from text
|
|
String _removeSpaces(String text) {
|
|
return text.replaceAll(' ', '');
|
|
}
|
|
|
|
/// Validate if text meets all requirements
|
|
/// Returns true if text is valid, false otherwise
|
|
bool validate(String text) {
|
|
// Check minimum length (at least 4 characters)
|
|
if (text.length < 4) {
|
|
return false;
|
|
}
|
|
|
|
// Check for spaces (should not contain any)
|
|
if (text.contains(' ')) {
|
|
return false;
|
|
}
|
|
|
|
// Check for 3 or more consecutive identical characters
|
|
if (_hasConsecutiveChars(text)) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/// Check if text has 3 or more consecutive identical characters
|
|
/// Returns true if found, false otherwise
|
|
bool _hasConsecutiveChars(String text) {
|
|
if (text.length < 3) {
|
|
return false;
|
|
}
|
|
|
|
for (int i = 0; i < text.length - 2; i++) {
|
|
if (text[i] == text[i + 1] && text[i] == text[i + 2]) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|