YYPOST群发软件 发表于 2026-5-12 06:58:57

展示JavaScript各种语句标识符的实际应用

展示JavaScript各种语句标识符的实际应用


// JavaScript 语句标识符 - 学生成绩管理系统
// AIWROK软件 - 展示JavaScript各种语句标识符的实际应用
// 🍎交流QQ群711841924群一,苹果内测群,528816639

// 定义printl函数用于日志输出
function printl() {
    var args = Array.prototype.slice.call(arguments);
    var message = '';
    for (var i = 0; i < args.length; i++) {
      if (i > 0) {
            message += ' ';
      }
      message += String(args);
    }
    console.log(message);
}

// 1. var - 声明变量
var schoolName = "希望中学";
var maxStudents = 100;
var currentYear = 2026;
var passingGrade = 60;
var gradeScale = ["A", "B", "C", "D", "F"];

// 2. function - 定义函数
function calculateAverage(scores) {
    if (scores.length === 0) return 0;
    var sum = 0;
    for (var i = 0; i < scores.length; i++) {
      sum += scores;
    }
    return sum / scores.length;
}

function getLetterGrade(score) {
    if (score >= 90) return "A";
    else if (score >= 80) return "B";
    else if (score >= 70) return "C";
    else if (score >= 60) return "D";
    else return "F";
}

// 3. if...else - 条件判断
function evaluateStudentPerformance(student) {
    printl("--- 学生评估 ---");
   
    if (student.average >= 90) {
      printl("学生", student.name, "表现优秀!");
    } else if (student.average >= 80) {
      printl("学生", student.name, "表现良好");
    } else if (student.average >= passingGrade) {
      printl("学生", student.name, "达到及格线");
    } else {
      printl("学生", student.name, "需要额外帮助");
    }
}

// 4. while - 循环处理
function processStudentsWhile(students) {
    printl("使用while循环处理学生:");
   
    var index = 0;
    while (index < students.length) {
      var student = students;
      printl("处理学生:", student.name, "- 平均分:", student.average.toFixed(2));
      index++;
    }
}

// 5. do...while - 至少执行一次
function validateInput(value) {
    printl("验证输入值:", value);
   
    var isValid = false;
    do {
      if (typeof value === 'number' && value >= 0 && value <= 100) {
            isValid = true;
            printl("输入有效:", value);
      } else {
            printl("输入无效:", value, "- 必须是0-100之间的数字");
            break; // 跳出do...while循环
      }
    } while (!isValid);
   
    return isValid;
}

// 6. for - 遍历数组
function displayStudentGrades(students) {
    printl("学生成绩列表:");
   
    for (var i = 0; i < students.length; i++) {
      var student = students;
      var letterGrade = getLetterGrade(student.average);
      printl((i + 1) + ". " + student.name + " - 平均分: " +
               student.average.toFixed(2) + " - 等级: " + letterGrade);
    }
}

// 7. for...in - 遍历对象属性
function showStudentDetails(student) {
    printl("学生详细信息:");
   
    for (var key in student) {
      if (student.hasOwnProperty(key)) {
            printl(key + ": " + student);
      }
    }
}

// 8. break - 提前退出循环
function findTopStudent(students) {
    printl("寻找最高分学生:");
   
    var topStudent = null;
    var highestScore = -1;
   
    for (var i = 0; i < students.length; i++) {
      if (students.average > highestScore) {
            highestScore = students.average;
            topStudent = students;
      }
      
      // 如果找到满分学生,立即退出
      if (highestScore === 100) {
            printl("找到满分学生,停止搜索");
            break;
      }
    }
   
    if (topStudent) {
      printl("最高分学生:", topStudent.name, "- 分数:", highestScore);
    }
   
    return topStudent;
}

// 9. continue - 跳过特定迭代
function filterFailedStudents(students) {
    printl("筛选不及格学生:");
   
    var failedStudents = [];
   
    for (var i = 0; i < students.length; i++) {
      if (students.average >= passingGrade) {
            continue; // 跳过及格的学生
      }
      
      failedStudents.push(students);
      printl("不及格学生:", students.name, "- 分数:", students.average.toFixed(2));
    }
   
    return failedStudents;
}

// 10. switch - 多分支选择
function assignAwardBasedOnGrade(letterGrade) {
    printl("根据等级分配奖项:");
   
    var award;
    switch (letterGrade) {
      case "A":
            award = "校长特别奖";
            break;
      case "B":
            award = "学术优秀奖";
            break;
      case "C":
            award = "进步鼓励奖";
            break;
      case "D":
            award = "学习努力奖";
            break;
      default:
            award = "继续努力奖";
    }
   
    printl("等级", letterGrade, "获得:", award);
    return award;
}

// 11. try...catch - 错误处理
function safeCalculateAverage(scores) {
    printl("安全计算平均分:");
   
    try {
      if (!Array.isArray(scores)) {
            throw new Error("参数必须是数组");
      }
      
      if (scores.length === 0) {
            throw new Error("数组不能为空");
      }
      
      for (var i = 0; i < scores.length; i++) {
            if (typeof scores !== 'number') {
                throw new Error("所有元素必须是数字");
            }
      }
      
      var average = calculateAverage(scores);
      printl("计算成功,平均分:", average.toFixed(2));
      return average;
      
    } catch (error) {
      printl("计算出错:", error.message);
      return null;
    } finally {
      printl("计算过程结束");
    }
}

// 12. throw - 主动抛出错误
function validateStudentData(student) {
    printl("验证学生数据:");
   
    if (!student || typeof student !== 'object') {
      throw new Error("学生数据必须是对象");
    }
   
    if (!student.name || typeof student.name !== 'string') {
      throw new Error("学生姓名必须是字符串");
    }
   
    if (!Array.isArray(student.scores)) {
      throw new Error("学生成绩必须是数组");
    }
   
    for (var i = 0; i < student.scores.length; i++) {
      if (student.scores < 0 || student.scores > 100) {
            throw new Error("成绩必须在0-100之间");
      }
    }
   
    printl("学生数据验证通过");
    return true;
}

// 综合示例:学生成绩管理系统
function studentManagementSystem() {
    printl("=== 学生成绩管理系统 ===");
    printl("学校:", schoolName, "- 年份:", currentYear);
   
    // 创建学生数据
    var students = [
      {
            name: "李明",
            scores: ,
            attendance: 98
      },
      {
            name: "王芳",
            scores: ,
            attendance: 95
      },
      {
            name: "张伟",
            scores: ,
            attendance: 85
      },
      {
            name: "刘洋",
            scores: ,
            attendance: 100
      }
    ];
   
    // 为每个学生计算平均分
    for (var i = 0; i < students.length; i++) {
      students.average = calculateAverage(students.scores);
      students.grade = getLetterGrade(students.average);
    }
   
    // 显示所有学生信息
    sleep.second(2);
    displayStudentGrades(students);
   
    // 评估每个学生
    sleep.second(2);
    for (var j = 0; j < students.length; j++) {
      evaluateStudentPerformance(students);
    }
   
    // 寻找最高分学生
    sleep.second(2);
    var topStudent = findTopStudent(students);
   
    // 筛选不及格学生
    sleep.second(2);
    var failedStudents = filterFailedStudents(students);
   
    // 为优秀学生分配奖项
    sleep.second(2);
    if (topStudent) {
      assignAwardBasedOnGrade(topStudent.grade);
    }
   
    // 错误处理示例
    printl("--- 错误处理测试 ---");
    sleep.second(2);
   
    // 测试有效数据
    safeCalculateAverage();
   
    // 测试无效数据
    safeCalculateAverage("not an array");
    safeCalculateAverage([]);
    safeCalculateAverage();
   
    // 数据验证测试
    try {
      validateStudentData({
            name: "测试学生",
            scores:
      });
    } catch (error) {
      printl("验证失败:", error.message);
    }
   
    // 统计信息
    sleep.second(2);
    printl("=== 系统统计 ===");
   
    var totalStudents = students.length;
    var passedCount = totalStudents - failedStudents.length;
    var overallAverage = calculateAverage(students.map(function(s) { return s.average; }));
   
    printl("总学生数:", totalStudents);
    printl("及格人数:", passedCount);
    printl("不及格人数:", failedStudents.length);
    printl("全校平均分:", overallAverage.toFixed(2));
   
    // 使用while循环显示详细统计
    printl("各等级分布:");
   
    var gradeCounts = {};
    for (var k = 0; k < gradeScale.length; k++) {
      gradeCounts] = 0;
    }
   
    for (var l = 0; l < students.length; l++) {
      gradeCounts.grade]++;
    }
   
    var m = 0;
    while (m < gradeScale.length) {
      var grade = gradeScale;
      printl(grade + "级:", gradeCounts, "人");
      m++;
    }
}

// 执行学生管理系统
sleep.second(2);
studentManagementSystem();





页: [1]
查看完整版本: 展示JavaScript各种语句标识符的实际应用