 | |  |  | 展示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[i]);
- }
- 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[i];
- }
- 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[index];
- 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[i];
- 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[key]);
- }
- }
- }
- // 8. break - 提前退出循环
- function findTopStudent(students) {
- printl("寻找最高分学生:");
-
- var topStudent = null;
- var highestScore = -1;
-
- for (var i = 0; i < students.length; i++) {
- if (students[i].average > highestScore) {
- highestScore = students[i].average;
- topStudent = students[i];
- }
-
- // 如果找到满分学生,立即退出
- 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[i].average >= passingGrade) {
- continue; // 跳过及格的学生
- }
-
- failedStudents.push(students[i]);
- printl("不及格学生:", students[i].name, "- 分数:", students[i].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[i] !== '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[i] < 0 || student.scores[i] > 100) {
- throw new Error("成绩必须在0-100之间");
- }
- }
-
- printl("学生数据验证通过");
- return true;
- }
- // 综合示例:学生成绩管理系统
- function studentManagementSystem() {
- printl("=== 学生成绩管理系统 ===");
- printl("学校:", schoolName, "- 年份:", currentYear);
-
- // 创建学生数据
- var students = [
- {
- name: "李明",
- scores: [92, 88, 95, 90],
- attendance: 98
- },
- {
- name: "王芳",
- scores: [78, 82, 75, 80],
- attendance: 95
- },
- {
- name: "张伟",
- scores: [45, 52, 48, 55],
- attendance: 85
- },
- {
- name: "刘洋",
- scores: [96, 94, 98, 92],
- attendance: 100
- }
- ];
-
- // 为每个学生计算平均分
- for (var i = 0; i < students.length; i++) {
- students[i].average = calculateAverage(students[i].scores);
- students[i].grade = getLetterGrade(students[i].average);
- }
-
- // 显示所有学生信息
- sleep.second(2);
- displayStudentGrades(students);
-
- // 评估每个学生
- sleep.second(2);
- for (var j = 0; j < students.length; j++) {
- evaluateStudentPerformance(students[j]);
- }
-
- // 寻找最高分学生
- 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([85, 90, 78, 92]);
-
- // 测试无效数据
- safeCalculateAverage("not an array");
- safeCalculateAverage([]);
- safeCalculateAverage([85, "invalid", 90]);
-
- // 数据验证测试
- try {
- validateStudentData({
- name: "测试学生",
- scores: [85, 90, 78]
- });
- } 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[gradeScale[k]] = 0;
- }
-
- for (var l = 0; l < students.length; l++) {
- gradeCounts[students[l].grade]++;
- }
-
- var m = 0;
- while (m < gradeScale.length) {
- var grade = gradeScale[m];
- printl(grade + "级:", gradeCounts[grade], "人");
- m++;
- }
- }
- // 执行学生管理系统
- sleep.second(2);
- studentManagementSystem();
复制代码
| |  | |  |
|