B2B网络软件

标题: 展示JavaScript各种语句标识符的实际应用 [打印本页]

作者: YYPOST群发软件    时间: 1 小时前
标题: 展示JavaScript各种语句标识符的实际应用
展示JavaScript各种语句标识符的实际应用
展示JavaScript各种语句标识符的实际应用 B2B网络软件

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

  4. // 定义printl函数用于日志输出
  5. function printl() {
  6.     var args = Array.prototype.slice.call(arguments);
  7.     var message = '';
  8.     for (var i = 0; i < args.length; i++) {
  9.         if (i > 0) {
  10.             message += ' ';
  11.         }
  12.         message += String(args[i]);
  13.     }
  14.     console.log(message);
  15. }

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

  22. // 2. function - 定义函数
  23. function calculateAverage(scores) {
  24.     if (scores.length === 0) return 0;
  25.     var sum = 0;
  26.     for (var i = 0; i < scores.length; i++) {
  27.         sum += scores[i];
  28.     }
  29.     return sum / scores.length;
  30. }

  31. function getLetterGrade(score) {
  32.     if (score >= 90) return "A";
  33.     else if (score >= 80) return "B";
  34.     else if (score >= 70) return "C";
  35.     else if (score >= 60) return "D";
  36.     else return "F";
  37. }

  38. // 3. if...else - 条件判断
  39. function evaluateStudentPerformance(student) {
  40.     printl("--- 学生评估 ---");
  41.    
  42.     if (student.average >= 90) {
  43.         printl("学生", student.name, "表现优秀!");
  44.     } else if (student.average >= 80) {
  45.         printl("学生", student.name, "表现良好");
  46.     } else if (student.average >= passingGrade) {
  47.         printl("学生", student.name, "达到及格线");
  48.     } else {
  49.         printl("学生", student.name, "需要额外帮助");
  50.     }
  51. }

  52. // 4. while - 循环处理
  53. function processStudentsWhile(students) {
  54.     printl("使用while循环处理学生:");
  55.    
  56.     var index = 0;
  57.     while (index < students.length) {
  58.         var student = students[index];
  59.         printl("处理学生:", student.name, "- 平均分:", student.average.toFixed(2));
  60.         index++;
  61.     }
  62. }

  63. // 5. do...while - 至少执行一次
  64. function validateInput(value) {
  65.     printl("验证输入值:", value);
  66.    
  67.     var isValid = false;
  68.     do {
  69.         if (typeof value === 'number' && value >= 0 && value <= 100) {
  70.             isValid = true;
  71.             printl("输入有效:", value);
  72.         } else {
  73.             printl("输入无效:", value, "- 必须是0-100之间的数字");
  74.             break; // 跳出do...while循环
  75.         }
  76.     } while (!isValid);
  77.    
  78.     return isValid;
  79. }

  80. // 6. for - 遍历数组
  81. function displayStudentGrades(students) {
  82.     printl("学生成绩列表:");
  83.    
  84.     for (var i = 0; i < students.length; i++) {
  85.         var student = students[i];
  86.         var letterGrade = getLetterGrade(student.average);
  87.         printl((i + 1) + ". " + student.name + " - 平均分: " +
  88.                student.average.toFixed(2) + " - 等级: " + letterGrade);
  89.     }
  90. }

  91. // 7. for...in - 遍历对象属性
  92. function showStudentDetails(student) {
  93.     printl("学生详细信息:");
  94.    
  95.     for (var key in student) {
  96.         if (student.hasOwnProperty(key)) {
  97.             printl(key + ": " + student[key]);
  98.         }
  99.     }
  100. }

  101. // 8. break - 提前退出循环
  102. function findTopStudent(students) {
  103.     printl("寻找最高分学生:");
  104.    
  105.     var topStudent = null;
  106.     var highestScore = -1;
  107.    
  108.     for (var i = 0; i < students.length; i++) {
  109.         if (students[i].average > highestScore) {
  110.             highestScore = students[i].average;
  111.             topStudent = students[i];
  112.         }
  113.         
  114.         // 如果找到满分学生,立即退出
  115.         if (highestScore === 100) {
  116.             printl("找到满分学生,停止搜索");
  117.             break;
  118.         }
  119.     }
  120.    
  121.     if (topStudent) {
  122.         printl("最高分学生:", topStudent.name, "- 分数:", highestScore);
  123.     }
  124.    
  125.     return topStudent;
  126. }

  127. // 9. continue - 跳过特定迭代
  128. function filterFailedStudents(students) {
  129.     printl("筛选不及格学生:");
  130.    
  131.     var failedStudents = [];
  132.    
  133.     for (var i = 0; i < students.length; i++) {
  134.         if (students[i].average >= passingGrade) {
  135.             continue; // 跳过及格的学生
  136.         }
  137.         
  138.         failedStudents.push(students[i]);
  139.         printl("不及格学生:", students[i].name, "- 分数:", students[i].average.toFixed(2));
  140.     }
  141.    
  142.     return failedStudents;
  143. }

  144. // 10. switch - 多分支选择
  145. function assignAwardBasedOnGrade(letterGrade) {
  146.     printl("根据等级分配奖项:");
  147.    
  148.     var award;
  149.     switch (letterGrade) {
  150.         case "A":
  151.             award = "校长特别奖";
  152.             break;
  153.         case "B":
  154.             award = "学术优秀奖";
  155.             break;
  156.         case "C":
  157.             award = "进步鼓励奖";
  158.             break;
  159.         case "D":
  160.             award = "学习努力奖";
  161.             break;
  162.         default:
  163.             award = "继续努力奖";
  164.     }
  165.    
  166.     printl("等级", letterGrade, "获得:", award);
  167.     return award;
  168. }

  169. // 11. try...catch - 错误处理
  170. function safeCalculateAverage(scores) {
  171.     printl("安全计算平均分:");
  172.    
  173.     try {
  174.         if (!Array.isArray(scores)) {
  175.             throw new Error("参数必须是数组");
  176.         }
  177.         
  178.         if (scores.length === 0) {
  179.             throw new Error("数组不能为空");
  180.         }
  181.         
  182.         for (var i = 0; i < scores.length; i++) {
  183.             if (typeof scores[i] !== 'number') {
  184.                 throw new Error("所有元素必须是数字");
  185.             }
  186.         }
  187.         
  188.         var average = calculateAverage(scores);
  189.         printl("计算成功,平均分:", average.toFixed(2));
  190.         return average;
  191.         
  192.     } catch (error) {
  193.         printl("计算出错:", error.message);
  194.         return null;
  195.     } finally {
  196.         printl("计算过程结束");
  197.     }
  198. }

  199. // 12. throw - 主动抛出错误
  200. function validateStudentData(student) {
  201.     printl("验证学生数据:");
  202.    
  203.     if (!student || typeof student !== 'object') {
  204.         throw new Error("学生数据必须是对象");
  205.     }
  206.    
  207.     if (!student.name || typeof student.name !== 'string') {
  208.         throw new Error("学生姓名必须是字符串");
  209.     }
  210.    
  211.     if (!Array.isArray(student.scores)) {
  212.         throw new Error("学生成绩必须是数组");
  213.     }
  214.    
  215.     for (var i = 0; i < student.scores.length; i++) {
  216.         if (student.scores[i] < 0 || student.scores[i] > 100) {
  217.             throw new Error("成绩必须在0-100之间");
  218.         }
  219.     }
  220.    
  221.     printl("学生数据验证通过");
  222.     return true;
  223. }

  224. // 综合示例:学生成绩管理系统
  225. function studentManagementSystem() {
  226.     printl("=== 学生成绩管理系统 ===");
  227.     printl("学校:", schoolName, "- 年份:", currentYear);
  228.    
  229.     // 创建学生数据
  230.     var students = [
  231.         {
  232.             name: "李明",
  233.             scores: [92, 88, 95, 90],
  234.             attendance: 98
  235.         },
  236.         {
  237.             name: "王芳",
  238.             scores: [78, 82, 75, 80],
  239.             attendance: 95
  240.         },
  241.         {
  242.             name: "张伟",
  243.             scores: [45, 52, 48, 55],
  244.             attendance: 85
  245.         },
  246.         {
  247.             name: "刘洋",
  248.             scores: [96, 94, 98, 92],
  249.             attendance: 100
  250.         }
  251.     ];
  252.    
  253.     // 为每个学生计算平均分
  254.     for (var i = 0; i < students.length; i++) {
  255.         students[i].average = calculateAverage(students[i].scores);
  256.         students[i].grade = getLetterGrade(students[i].average);
  257.     }
  258.    
  259.     // 显示所有学生信息
  260.     sleep.second(2);
  261.     displayStudentGrades(students);
  262.    
  263.     // 评估每个学生
  264.     sleep.second(2);
  265.     for (var j = 0; j < students.length; j++) {
  266.         evaluateStudentPerformance(students[j]);
  267.     }
  268.    
  269.     // 寻找最高分学生
  270.     sleep.second(2);
  271.     var topStudent = findTopStudent(students);
  272.    
  273.     // 筛选不及格学生
  274.     sleep.second(2);
  275.     var failedStudents = filterFailedStudents(students);
  276.    
  277.     // 为优秀学生分配奖项
  278.     sleep.second(2);
  279.     if (topStudent) {
  280.         assignAwardBasedOnGrade(topStudent.grade);
  281.     }
  282.    
  283.     // 错误处理示例
  284.     printl("--- 错误处理测试 ---");
  285.     sleep.second(2);
  286.    
  287.     // 测试有效数据
  288.     safeCalculateAverage([85, 90, 78, 92]);
  289.    
  290.     // 测试无效数据
  291.     safeCalculateAverage("not an array");
  292.     safeCalculateAverage([]);
  293.     safeCalculateAverage([85, "invalid", 90]);
  294.    
  295.     // 数据验证测试
  296.     try {
  297.         validateStudentData({
  298.             name: "测试学生",
  299.             scores: [85, 90, 78]
  300.         });
  301.     } catch (error) {
  302.         printl("验证失败:", error.message);
  303.     }
  304.    
  305.     // 统计信息
  306.     sleep.second(2);
  307.     printl("=== 系统统计 ===");
  308.    
  309.     var totalStudents = students.length;
  310.     var passedCount = totalStudents - failedStudents.length;
  311.     var overallAverage = calculateAverage(students.map(function(s) { return s.average; }));
  312.    
  313.     printl("总学生数:", totalStudents);
  314.     printl("及格人数:", passedCount);
  315.     printl("不及格人数:", failedStudents.length);
  316.     printl("全校平均分:", overallAverage.toFixed(2));
  317.    
  318.     // 使用while循环显示详细统计
  319.     printl("各等级分布:");
  320.    
  321.     var gradeCounts = {};
  322.     for (var k = 0; k < gradeScale.length; k++) {
  323.         gradeCounts[gradeScale[k]] = 0;
  324.     }
  325.    
  326.     for (var l = 0; l < students.length; l++) {
  327.         gradeCounts[students[l].grade]++;
  328.     }
  329.    
  330.     var m = 0;
  331.     while (m < gradeScale.length) {
  332.         var grade = gradeScale[m];
  333.         printl(grade + "级:", gradeCounts[grade], "人");
  334.         m++;
  335.     }
  336. }

  337. // 执行学生管理系统
  338. sleep.second(2);
  339. studentManagementSystem();
复制代码



展示JavaScript各种语句标识符的实际应用 B2B网络软件







欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2