Skip to content

动手实践

恭喜你!🎉 你已经学习完了 TypeScript 的基础知识。现在是时候把这些知识串联起来,做一个真正的小项目了。我们要做一个学生成绩管理系统(Student Grade Management System),用来管理 5 位学生的成绩。

💡 项目需求

这个系统需要实现以下功能:

  • 计算最高分(Highest Score)
  • 计算最低分(Lowest Score)
  • 计算平均分(Average Score)
  • 统计及格人数(Pass Count,60分及以上)

📝 完整代码

创建一个新文件 gradeManager.ts,把下面的代码复制进去:

typescript
// 定义学生信息的类型
type Student = {
  name: string;        // 学生姓名
  score: number;       // 成绩
};

// 学生数据
const students: Student[] = [
  { name: "张三", score: 85 },
  { name: "李四", score: 92 },
  { name: "王五", score: 58 },
  { name: "赵六", score: 76 },
  { name: "孙七", score: 88 }
];

// 计算最高分
function getHighestScore(students: Student[]): number {
  let highest = students[0].score;
  for (let i = 1; i < students.length; i++) {
    if (students[i].score > highest) {
      highest = students[i].score;
    }
  }
  return highest;
}

// 计算最低分
function getLowestScore(students: Student[]): number {
  let lowest = students[0].score;
  for (let i = 1; i < students.length; i++) {
    if (students[i].score < lowest) {
      lowest = students[i].score;
    }
  }
  return lowest;
}

// 计算平均分
function getAverageScore(students: Student[]): number {
  let total = 0;
  for (let i = 0; i < students.length; i++) {
    total += students[i].score;
  }
  return total / students.length;
}

// 统计及格人数
function getPassCount(students: Student[]): number {
  let count = 0;
  for (let i = 0; i < students.length; i++) {
    if (students[i].score >= 60) {
      count++;
    }
  }
  return count;
}

// 输出统计结果
console.log("=== 学生成绩统计系统 ===");
console.log(`总人数: ${students.length}`);
console.log(`最高分: ${getHighestScore(students)}`);
console.log(`最低分: ${getLowestScore(students)}`);
console.log(`平均分: ${getAverageScore(students).toFixed(2)}`);
console.log(`及格人数: ${getPassCount(students)}`);

🚀 如何运行代码

第一步:编译 TypeScript

打开终端(Terminal),进入你的项目文件夹,运行:

bash
tsc gradeManager.ts

提示

如果提示 tsc 命令找不到,需要先全局安装 TypeScript:

bash
npm install -g typescript

编译成功后,会生成一个 gradeManager.js 文件。

第二步:运行 JavaScript 文件

在终端继续输入:

bash
node gradeManager.js

第三步:查看运行结果

你会看到类似这样的输出:

=== 学生成绩统计系统 ===
总人数: 5
最高分: 92
最低分: 58
平均分: 79.80
及格人数: 4

💪 练习题

练习 1:添加新功能

为系统添加一个新功能:找出成绩最高的学生姓名。

点击查看答案
typescript
function getTopStudent(students: Student[]): string {
  let topStudent = students[0];
  for (let i = 1; i < students.length; i++) {
    if (students[i].score > topStudent.score) {
      topStudent = students[i];
    }
  }
  return topStudent.name;
}

// 在输出部分添加
console.log(`最高分学生: ${getTopStudent(students)}`);

练习 2:修改及格线

把及格分数线从 60 分改为 70 分,重新运行程序,看看及格人数有什么变化?

点击查看答案
typescript
function getPassCount(students: Student[]): number {
  let count = 0;
  for (let i = 0; i < students.length; i++) {
    if (students[i].score >= 70) {  // 修改这里
      count++;
    }
  }
  return count;
}

运行结果:及格人数会变成 3(只有 85、92、76、88 这四位超过 70 分,王五的 58 分不及格)

📌 小结

  • 你已经完成了第一个完整的 TypeScript 项目
  • 学会了如何编译和运行 TypeScript 代码
  • 掌握了类型定义、函数、循环等知识的综合运用