更新课程内容与课评反馈(2026春季)
- 更新K4课程README与课程目录 - 更新AI03 SOLO模式体验课程内容 - 补录各班级学生出勤登记 - 更新课评汇总归档 - 新增CSP03 string使用课程笔记 - 新增备份脚本与逐字稿输出
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
---
|
||||
cluadecc---
|
||||
课时: 2
|
||||
主题: SOLO模式初体验
|
||||
核心能力: [提问力, 拆解力]
|
||||
@@ -6,7 +6,8 @@
|
||||
时长: 90分钟
|
||||
透明化层级: 结果层
|
||||
适用路线: AICODE-06(有扣子/低代码经验的学生)
|
||||
---
|
||||
---cladue
|
||||
|
||||
|
||||
### 1. 课程目标
|
||||
|
||||
|
||||
638
.claude/lesson/CSP03/CSP03-06_string使用1.md
Normal file
638
.claude/lesson/CSP03/CSP03-06_string使用1.md
Normal file
@@ -0,0 +1,638 @@
|
||||
# CSP03-06 string 使用1
|
||||
|
||||
## 一、课程简介(5分钟)
|
||||
|
||||
### 🎯 课程目标
|
||||
|
||||
1. 理解 `string` 与 `char` 数组的区别与联系
|
||||
2. 掌握 `string` 的声明、初始化、输入输出和基本操作
|
||||
3. 掌握字符串大小写转换的方法
|
||||
4. 掌握 `string` 的搜索(`find`)、分割和替换操作
|
||||
|
||||
### 📚 核心知识点
|
||||
|
||||
- `string` 与 `char[]` 的区别(动态 vs 静态,操作方便性)
|
||||
- `string` 的赋值(`=`)、拼接(`+`、`+=`)、比较(`==`、`<`、`>`)
|
||||
- `string` 的长度:`s.size()` / `s.length()`
|
||||
- 下标访问:`s[i]`
|
||||
- 大小写转换:`tolower` / `toupper` 配合 `for` 循环
|
||||
- 搜索:`s.find(sub)` 和 `s.find(sub, pos)`
|
||||
- 替换:`s.replace(pos, len, newStr)`
|
||||
- 分割:按字符或分隔符拆分字符串
|
||||
|
||||
---
|
||||
|
||||
## 二、知识回顾(10分钟)
|
||||
|
||||
### 👩🏫 教师引导
|
||||
|
||||
> 上节课我们用 `char` 数组处理字符串,虽然能用,但挺麻烦的——要手动管理 `\0`、require 头文件、还要防止越界……
|
||||
>
|
||||
> C++ 给我们提供了更好的工具:**`string` 类**!
|
||||
>
|
||||
> 用 `string`,可以直接用 `+` 拼接字符串,用 `==` 比较,不需要 `strcat` 和 `strcmp`,方便多了!
|
||||
>
|
||||
> 今天就来学习 `string` 的强大功能!
|
||||
|
||||
**互动复习:**
|
||||
|
||||
> - 用 char 数组,如何拼接 "hello" 和 " world"?(用 strcat)
|
||||
> - 用 char 数组,如何判断两个字符串相等?(用 strcmp == 0)
|
||||
> - 今天用 string,这些操作只需要 `+` 和 `==`!
|
||||
|
||||
---
|
||||
|
||||
## 三、新知讲解(45分钟)
|
||||
|
||||
### 1. 新知导入 🎬
|
||||
|
||||
> 想象一下,char 数组就像固定大小的盒子,放东西之前要提前想好放多大;
|
||||
>
|
||||
> 而 `string` 就像一个弹性袋子,想放多少放多少,自动扩容!
|
||||
>
|
||||
> 不仅如此,`string` 还内置了海量实用功能:查找、替换、截取……一个 `#include <string>` 搞定一切!
|
||||
|
||||
---
|
||||
|
||||
### 2. 知识点讲解
|
||||
|
||||
#### 2.1 string 与 char 数组的区别
|
||||
|
||||
| 特性 | `char a[]` | `string s` |
|
||||
|------|-----------|-----------|
|
||||
| 大小 | 定义时固定 | 动态可变 |
|
||||
| 拼接 | `strcat(a, b)` | `a + b` |
|
||||
| 比较 | `strcmp(a, b)` | `a == b`,`a < b` |
|
||||
| 长度 | `strlen(a)` | `s.size()` / `s.length()` |
|
||||
| 读含空格 | `cin.getline` | `getline(cin, s)` |
|
||||
|
||||
---
|
||||
|
||||
#### 2.2 string 的声明与初始化
|
||||
|
||||
```cpp
|
||||
#include <string> // 需要此头文件
|
||||
using namespace std;
|
||||
|
||||
string s1; // 空字符串
|
||||
string s2 = "hello"; // 直接初始化
|
||||
string s3 = s2; // 拷贝初始化
|
||||
string s4(5, 'a'); // "aaaaa"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 2.3 基本操作
|
||||
|
||||
**赋值与拼接:**
|
||||
|
||||
```cpp
|
||||
string s = "hello";
|
||||
s += " world"; // s = "hello world"
|
||||
s = s + "!"; // s = "hello world!"
|
||||
```
|
||||
|
||||
**比较:**
|
||||
|
||||
```cpp
|
||||
string a = "apple", b = "banana";
|
||||
if (a < b) cout << "apple comes first"; // 字典序比较
|
||||
if (a == b) cout << "equal";
|
||||
```
|
||||
|
||||
**长度:**
|
||||
|
||||
```cpp
|
||||
string s = "hello";
|
||||
cout << s.size(); // 5
|
||||
cout << s.length(); // 5(两者等价)
|
||||
```
|
||||
|
||||
**下标访问:**
|
||||
|
||||
```cpp
|
||||
string s = "hello";
|
||||
cout << s[0]; // 'h'
|
||||
s[0] = 'H'; // s = "Hello"
|
||||
```
|
||||
|
||||
**输入输出:**
|
||||
|
||||
```cpp
|
||||
string s;
|
||||
cin >> s; // 读到空格停止
|
||||
getline(cin, s); // 读整行(含空格)
|
||||
cout << s << endl;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 2.4 字符串大小写转换
|
||||
|
||||
`string` 没有直接的大小写转换函数,需要遍历每个字符:
|
||||
|
||||
```cpp
|
||||
#include <cctype>
|
||||
string s = "Hello World";
|
||||
|
||||
// 全转小写
|
||||
for (int i = 0; i < s.size(); i++) {
|
||||
s[i] = tolower(s[i]);
|
||||
}
|
||||
// s = "hello world"
|
||||
|
||||
// 全转大写
|
||||
for (char &c : s) { // 范围 for 循环写法
|
||||
c = toupper(c);
|
||||
}
|
||||
// s = "HELLO WORLD"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 2.5 字符串搜索 find
|
||||
|
||||
`s.find(sub)` 返回子串 `sub` 第一次出现的起始下标,若不存在返回 `string::npos`(约等于 -1 的极大数)。
|
||||
|
||||
```cpp
|
||||
string s = "hello world hello";
|
||||
int pos = s.find("hello"); // pos = 0
|
||||
int pos2 = s.find("hello", 1); // 从位置1开始找,pos2 = 12
|
||||
int pos3 = s.find("xyz"); // 找不到,返回 string::npos
|
||||
|
||||
if (pos3 == string::npos) cout << "未找到";
|
||||
```
|
||||
|
||||
**遍历找所有出现位置:**
|
||||
|
||||
```cpp
|
||||
string s = "abcabcabc";
|
||||
string sub = "bc";
|
||||
int pos = 0;
|
||||
while ((pos = s.find(sub, pos)) != string::npos) {
|
||||
cout << pos << " ";
|
||||
pos++; // 继续往后找
|
||||
}
|
||||
// 输出:1 4 7
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 2.6 字符串替换 replace
|
||||
|
||||
`s.replace(pos, len, newStr)` 从位置 `pos` 开始,替换 `len` 个字符为 `newStr`。
|
||||
|
||||
```cpp
|
||||
string s = "hello world";
|
||||
s.replace(6, 5, "C++"); // 从位置6删5个字符替换为"C++"
|
||||
// s = "hello C++"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 2.7 简单字符串分割
|
||||
|
||||
C++ 的 `string` 没有内置 split 函数,常用方法:
|
||||
|
||||
**按空格分割(提取单词):**
|
||||
|
||||
```cpp
|
||||
string line = "hello world foo";
|
||||
string word;
|
||||
// 用 istringstream 分割
|
||||
#include <sstream>
|
||||
istringstream ss(line);
|
||||
while (ss >> word) {
|
||||
cout << word << endl;
|
||||
}
|
||||
// 输出:hello / world / foo
|
||||
```
|
||||
|
||||
**手动按字符分割:**
|
||||
|
||||
```cpp
|
||||
string s = "a,b,c,d";
|
||||
char delim = ',';
|
||||
string cur = "";
|
||||
for (int i = 0; i <= s.size(); i++) {
|
||||
if (i == s.size() || s[i] == delim) {
|
||||
cout << cur << endl; // 输出当前段
|
||||
cur = "";
|
||||
} else {
|
||||
cur += s[i];
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. GESP 真题演练 ⚡
|
||||
|
||||
**抢答题 1(选择题):**
|
||||
|
||||
> 以下代码的输出是?
|
||||
> ```cpp
|
||||
> string s = "abcde";
|
||||
> cout << s.find("cd");
|
||||
> ```
|
||||
>
|
||||
> A. 0 B. 1 C. 2 D. 3
|
||||
>
|
||||
> **答案:C**
|
||||
> 解析:"cd" 在 "abcde" 中从下标 2 开始,find 返回 2。
|
||||
|
||||
**判断题 2:**
|
||||
|
||||
> `string s = "hello"; s += " world";` 执行后,`s.size()` 返回 11。( )
|
||||
>
|
||||
> **答案:✓(正确)**
|
||||
> 解析:"hello world" 有 11 个字符(含中间空格)。
|
||||
|
||||
**抢答题 3:**
|
||||
|
||||
> 以下代码中,如何判断字符串 s 中**不包含**子串 "abc"?
|
||||
> ```cpp
|
||||
> string s = "xyzdef";
|
||||
> // 你的判断语句
|
||||
> ```
|
||||
>
|
||||
> **答案:** `if (s.find("abc") == string::npos)`
|
||||
|
||||
---
|
||||
|
||||
### 4. 进阶扩展
|
||||
|
||||
**string 的常用操作备忘表:**
|
||||
|
||||
| 操作 | 代码示例 | 说明 |
|
||||
|------|---------|------|
|
||||
| 长度 | `s.size()` | 字符数 |
|
||||
| 清空 | `s.clear()` | 清空字符串 |
|
||||
| 是否为空 | `s.empty()` | 返回 bool |
|
||||
| 截取子串 | `s.substr(pos, len)` | 下节课讲 |
|
||||
| 插入 | `s.insert(pos, str)` | 在 pos 前插入 str |
|
||||
| 删除 | `s.erase(pos, len)` | 删除 pos 起 len 个字符 |
|
||||
|
||||
**字符串与数字互转:**
|
||||
|
||||
```cpp
|
||||
// 数字转字符串(C++11)
|
||||
string s = to_string(123); // s = "123"
|
||||
|
||||
// 字符串转数字
|
||||
int n = stoi("456"); // n = 456
|
||||
double d = stod("3.14"); // d = 3.14
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、课堂练习(45分钟)🎈
|
||||
|
||||
### 练习 1(基础):字符串拼接
|
||||
|
||||
**题目描述:**
|
||||
|
||||
输入两个字符串,将它们拼接在一起输出。
|
||||
|
||||
**输入格式:**
|
||||
- 两行各一个字符串(不含空格,长度 ≤ 100)
|
||||
|
||||
**输出格式:**
|
||||
- 拼接后的字符串
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
hello
|
||||
world
|
||||
```
|
||||
|
||||
**样例输出:**
|
||||
```
|
||||
helloworld
|
||||
```
|
||||
|
||||
**题解代码:**
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string a, b;
|
||||
cin >> a >> b;
|
||||
cout << a + b << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 练习 2(基础):字符串全转小写
|
||||
|
||||
**题目描述:**
|
||||
|
||||
输入一行字符串,将其中所有大写字母转为小写,输出结果。
|
||||
|
||||
**输入格式:**
|
||||
- 一行字符串(长度 ≤ 1000)
|
||||
|
||||
**输出格式:**
|
||||
- 转换后的字符串
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
Hello World! 123
|
||||
```
|
||||
|
||||
**样例输出:**
|
||||
```
|
||||
hello world! 123
|
||||
```
|
||||
|
||||
**题解代码:**
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cctype>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s;
|
||||
getline(cin, s);
|
||||
for (int i = 0; i < s.size(); i++) s[i] = tolower(s[i]);
|
||||
cout << s << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 练习 3(综合):查找子串位置
|
||||
|
||||
**题目描述:**
|
||||
|
||||
输入主字符串 s 和子串 t,找出 t 在 s 中第一次出现的位置(0-indexed)。若不存在输出 -1。
|
||||
|
||||
**输入格式:**
|
||||
- 第一行主字符串 s(长度 ≤ 1000)
|
||||
- 第二行子串 t(长度 ≤ 100)
|
||||
|
||||
**输出格式:**
|
||||
- 第一次出现的下标,若不存在输出 -1
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
hello world hello
|
||||
world
|
||||
```
|
||||
|
||||
**样例输出:**
|
||||
```
|
||||
6
|
||||
```
|
||||
|
||||
**题解代码:**
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s, t;
|
||||
getline(cin, s);
|
||||
getline(cin, t);
|
||||
int pos = s.find(t);
|
||||
if (pos == string::npos) cout << -1 << endl;
|
||||
else cout << pos << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 练习 4(综合):统计子串出现次数
|
||||
|
||||
**题目描述:**
|
||||
|
||||
输入主串 s 和模式串 t,统计 t 在 s 中出现的次数(允许重叠)。
|
||||
|
||||
**输入格式:**
|
||||
- 第一行主串 s
|
||||
- 第二行模式串 t
|
||||
|
||||
**输出格式:**
|
||||
- 出现次数
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
aaaa
|
||||
aa
|
||||
```
|
||||
|
||||
**样例输出:**
|
||||
```
|
||||
3
|
||||
```
|
||||
|
||||
**题解代码:**
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s, t;
|
||||
cin >> s >> t;
|
||||
int cnt = 0, pos = 0;
|
||||
while ((pos = s.find(t, pos)) != string::npos) {
|
||||
cnt++;
|
||||
pos++; // 允许重叠
|
||||
}
|
||||
cout << cnt << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 练习 5(进阶):字符串替换所有子串
|
||||
|
||||
**题目描述:**
|
||||
|
||||
输入主串 s,以及旧子串 old 和新子串 newStr,将 s 中所有 old 替换为 newStr,输出结果。
|
||||
|
||||
**输入格式:**
|
||||
- 第一行主串 s(长度 ≤ 1000)
|
||||
- 第二行 old(长度 ≤ 50)
|
||||
- 第三行 newStr(长度 ≤ 50)
|
||||
|
||||
**输出格式:**
|
||||
- 替换后的字符串
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
hello world hello
|
||||
hello
|
||||
hi
|
||||
```
|
||||
|
||||
**样例输出:**
|
||||
```
|
||||
hi world hi
|
||||
```
|
||||
|
||||
**题解代码:**
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s, old_s, new_s;
|
||||
getline(cin, s);
|
||||
getline(cin, old_s);
|
||||
getline(cin, new_s);
|
||||
int pos = 0;
|
||||
while ((pos = s.find(old_s, pos)) != string::npos) {
|
||||
s.replace(pos, old_s.size(), new_s);
|
||||
pos += new_s.size(); // 跳过新插入的内容,避免死循环
|
||||
}
|
||||
cout << s << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、课堂总结(5分钟)🌟
|
||||
|
||||
> 今天我们掌握了 C++ 的 `string` 类,这是处理字符串的强力工具!
|
||||
>
|
||||
> 核心操作速查:
|
||||
> - 拼接:`s1 + s2` 或 `s1 += s2`
|
||||
> - 比较:`s1 == s2`,`s1 < s2`(字典序)
|
||||
> - 长度:`s.size()`
|
||||
> - 搜索:`s.find(sub)`,找不到返回 `string::npos`
|
||||
> - 替换:`s.replace(pos, len, newStr)`
|
||||
> - 大小写转换:用循环 + `tolower`/`toupper`
|
||||
>
|
||||
> 下节课我们继续深入——提取子串、判断对称(回文),以及更复杂的字符串综合应用!
|
||||
|
||||
---
|
||||
|
||||
## 六、课后作业与拓展(10分钟)
|
||||
|
||||
### 📝 课后作业(3道)
|
||||
|
||||
#### 作业 1:判断两字符串是否相等(不区分大小写)
|
||||
|
||||
输入两个字符串,忽略大小写比较是否相等。相等输出 `YES`,否则 `NO`。
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
Hello
|
||||
hello
|
||||
```
|
||||
**样例输出:** `YES`
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <cctype>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string a, b;
|
||||
cin >> a >> b;
|
||||
for (char &c : a) c = tolower(c);
|
||||
for (char &c : b) c = tolower(c);
|
||||
cout << (a == b ? "YES" : "NO") << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 作业 2:字符串中是否包含某子串
|
||||
|
||||
输入主串和子串,判断子串是否在主串中出现,是输出 `YES`,否则 `NO`。
|
||||
|
||||
**样例输入:**
|
||||
```
|
||||
helloworld
|
||||
world
|
||||
```
|
||||
**样例输出:** `YES`
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s, t;
|
||||
cin >> s >> t;
|
||||
cout << (s.find(t) != string::npos ? "YES" : "NO") << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### 作业 3:统计字符串中的空格数
|
||||
|
||||
输入一行字符串,统计其中空格的数量。
|
||||
|
||||
**样例输入:** `hello world how are you`
|
||||
**样例输出:** `4`
|
||||
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
int main() {
|
||||
string s;
|
||||
getline(cin, s);
|
||||
int cnt = 0;
|
||||
for (char c : s) if (c == ' ') cnt++;
|
||||
cout << cnt << endl;
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🔥 拓展习题(尖子生挑战,7道)
|
||||
|
||||
#### 挑战 1:字符串分割为单词列表
|
||||
输入一行含空格的句子,输出每个单词(每个单词一行)。
|
||||
|
||||
**提示:** 用 `istringstream` 或手动遍历判断空格边界。
|
||||
|
||||
#### 挑战 2:首字母大写
|
||||
将字符串中每个单词的首字母大写,其余字母小写。
|
||||
|
||||
**提示:** 遍历时遇到空格后的字母 `toupper`,其余 `tolower`。
|
||||
|
||||
#### 挑战 3:统计单词频率
|
||||
输入多行单词,统计每个不同单词出现的次数,按出现次数从多到少排序输出(等同时按字典序)。
|
||||
|
||||
**提示:** 可使用 `map<string, int>`。
|
||||
|
||||
#### 挑战 4:替换所有目标字符
|
||||
将字符串中所有大写字母替换为 `*`,输出结果。
|
||||
|
||||
**提示:** 遍历判断 `isupper`,替换为 `'*'`。
|
||||
|
||||
#### 挑战 5:最长公共前缀
|
||||
给定多个字符串,找出它们的最长公共前缀。
|
||||
|
||||
**提示:** 以第一个字符串为基准,逐字符与其他字符串比较。
|
||||
|
||||
#### 挑战 6:字符串异位词判断
|
||||
判断两个字符串是否是字母异位词(相同字母,不同顺序,忽略大小写)。
|
||||
|
||||
**提示:** 统计两个字符串各字母出现次数,比较计数数组是否相同。
|
||||
|
||||
#### 挑战 7:字符串的字典序最小旋转
|
||||
将字符串左旋一位(把第一个字符移到末尾),重复 n 次,输出字典序最小的一种。
|
||||
|
||||
**提示:** 枚举所有旋转结果,用 string 比较找最小值。
|
||||
@@ -6,14 +6,26 @@
|
||||
|
||||
## 📅 本学期课程表
|
||||
|
||||
| 课次 | 课程名称 | 日期 | 状态 |
|
||||
|------|----------|------|------|
|
||||
| 第1课 | 《射击训练营》 | 2026-03-08 | ✅ 完成 |
|
||||
| 第2课 | 《在线聊天室》 | 2026-03-15 | ✅ 完成 |
|
||||
| 第3课 | 《投票小程序》 | 2026-03-22 | ✅ 完成 |
|
||||
| 第4课 | 《源码精灵之战》 | 2026-03-29 | ✅ 完成 |
|
||||
| 第5课 | 《四季之选》 | 2026-04-05 | ✅ 完成 |
|
||||
| 第6课 | 《我的唱片机》 | 2026-04-12 | 📝 本周 |
|
||||
| 课次 | 课程类型 | 课程名称 | 关键词 | 日期 | 状态 |
|
||||
|------|----------|----------|--------|------|------|
|
||||
| 第1课 | 云变量 | 《射击训练营》 | 云变量运用 | 2026-03-08 | ✅ 完成 |
|
||||
| 第2课 | 云变量 | 《在线聊天室》 | 用户名、在线人数检测 | 2026-03-15 | ✅ 完成 |
|
||||
| 第3课 | 云变量 | 《投票小程序》 | 区别公有云变量与私有云变量 | 2026-03-22 | ✅ 完成 |
|
||||
| 第4课 | 分支嵌套结构 | 《源码精灵之战》 | 分支嵌套结构 | - | - |
|
||||
| 第5课 | 分支嵌套结构 | 《四季之选》 | 分支嵌套结构 | - | - |
|
||||
| 第6课 | 分支嵌套结构 | 《我的唱片机》 | 多分支选择结构 | - | - |
|
||||
| 第7课 | 循环嵌套结构 | 《彩虹生成器》 | 循环嵌套结构 | - | - |
|
||||
| 第8课 | 循环嵌套结构 | 《唐诗朗诵会》 | 循环嵌套结构 | - | - |
|
||||
| 第9课 | 循环嵌套结构 | 《像素艺术画》 | 分支嵌套判断 | - | - |
|
||||
| 第10课 | 函数 | 《猜猜我是谁》 | 初识函数、无参函数 | - | - |
|
||||
| 第11课 | 函数 | 《花朵随心画》 | 有参函数 | - | - |
|
||||
| 第12课 | 函数 | 《图形巧算》 | 巩固有参函数、无参函数 | - | - |
|
||||
| 第13课 | 函数 | 《飞镖达人》 | 综合运用有参函数、无参函数 | - | - |
|
||||
| 第14课 | 列表 | 《今天玩什么玩具》 | 列表运用、添加元素 | - | - |
|
||||
| 第15课 | 列表 | 《百科知多少》 | 删除元素、列表长度 | - | - |
|
||||
| 第16课 | 列表 | 《成语接龙》 | 插入、查找元素 | - | - |
|
||||
| 第17课 | 列表 | 《升旗分组赛》 | 列表变量与嵌套分支综合运用 | - | - |
|
||||
| 第18课 | 字符串操作 | 《解密藏头诗》 | 字符串的概念 | - | - |
|
||||
|
||||
---
|
||||
|
||||
@@ -40,7 +52,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 第2课:《在线聊天室》
|
||||
## 第1课:《在线聊天室》
|
||||
|
||||
**上课时间**:2026-03-15
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
@@ -63,7 +75,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 第3课:《投票小程序》
|
||||
## 第1课:《投票小程序》
|
||||
|
||||
**上课时间**:2026-03-22
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
@@ -86,9 +98,9 @@
|
||||
|
||||
---
|
||||
|
||||
## 第4课:《源码精灵之战》
|
||||
## 第1课:《源码精灵之战》
|
||||
|
||||
**上课时间**:2026-03-29
|
||||
**课程类型**:分支嵌套结构
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 教学目标
|
||||
@@ -108,9 +120,9 @@
|
||||
|
||||
---
|
||||
|
||||
## 第5课:《四季之选》
|
||||
## 第1课:《四季之选》
|
||||
|
||||
**上课时间**:2026-04-05
|
||||
**课程类型**:分支嵌套结构
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 教学目标
|
||||
@@ -127,9 +139,9 @@
|
||||
|
||||
---
|
||||
|
||||
## 第6课:《我的唱片机》
|
||||
## 第1课:《我的唱片机》
|
||||
|
||||
**上课时间**:2026-04-12
|
||||
**课程类型**:分支嵌套结构
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 教学目标
|
||||
@@ -146,4 +158,130 @@
|
||||
|
||||
---
|
||||
|
||||
*K4班课程库 v2.3 - 更新日期:2026-04-11*
|
||||
## 第1课:《彩虹生成器》
|
||||
|
||||
**课程类型**:循环嵌套结构
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 循环嵌套结构
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《唐诗朗诵会》
|
||||
|
||||
**课程类型**:循环嵌套结构
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 循环嵌套结构
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《像素艺术画》
|
||||
|
||||
**课程类型**:循环嵌套结构
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 分支嵌套判断
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《猜猜我是谁》
|
||||
|
||||
**课程类型**:函数
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 初识函数
|
||||
- 无参函数
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《花朵随心画》
|
||||
|
||||
**课程类型**:函数
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 有参函数
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《图形巧算》
|
||||
|
||||
**课程类型**:函数
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 巩固有参函数
|
||||
- 无参函数
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《飞镖达人》
|
||||
|
||||
**课程类型**:函数
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 综合运用有参函数
|
||||
- 无参函数
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《今天玩什么玩具》
|
||||
|
||||
**课程类型**:列表
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 列表运用
|
||||
- 添加元素
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《百科知多少》
|
||||
|
||||
**课程类型**:列表
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 删除元素
|
||||
- 列表长度
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《成语接龙》
|
||||
|
||||
**课程类型**:列表
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 插入元素
|
||||
- 查找元素
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《升旗分组赛》
|
||||
|
||||
**课程类型**:列表
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 列表变量与嵌套分支综合运用
|
||||
|
||||
---
|
||||
|
||||
## 第1课:《解密藏头诗》
|
||||
|
||||
**课程类型**:字符串操作
|
||||
**上课班级**:周五晚上1900K4班、周日晚上1900K4班
|
||||
|
||||
### 知识点
|
||||
- 字符串的概念
|
||||
|
||||
---
|
||||
|
||||
*K4班课程库 v3.0 - 更新日期:2026-04-15*
|
||||
|
||||
@@ -4,6 +4,22 @@
|
||||
|
||||
---
|
||||
|
||||
## 📅 本周进度(第7周 · 2026-04-17)
|
||||
|
||||
| 班级 | 本周课程 | 课次 | 日期 |
|
||||
|------|----------|------|------|
|
||||
| 周五下午1700AI03班 | 《AI大作家(下)》 | 第6课 | 2026-04-17 |
|
||||
| 周五晚上1900K4班 | 《彩虹生成器》 | 第8课 | 2026-04-17 |
|
||||
| 周六早上0830CSP03班 | — | — | — |
|
||||
| 周六下午1400CSP03班 | — | — | — |
|
||||
| 周六晚上1900AI03班 | — | — | — |
|
||||
| 周日早上0845AI03班 | — | — | — |
|
||||
| 周日早上1030CSP03班 | — | — | — |
|
||||
| 周日下午1400AI03班 | — | — | — |
|
||||
| 周日晚上1900K4班 | — | — | — |
|
||||
|
||||
---
|
||||
|
||||
## 📚 课程目录
|
||||
|
||||
### K4班(编程猫Kitten)
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2025-04-04 | C++体验课 | 体验课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,4 +2,10 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-11 | AI大作家上 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-28 | AI是怎么想的 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | AI大作家(上) | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-17 | AI大作家(下) | 第6课 | ✅ 出勤 | |
|
||||
| 2026-04-18 | 我是大作家-2 | 第6课 | ⏸ 请假 | |
|
||||
|
||||
@@ -71,3 +71,15 @@
|
||||
老师会继续关注梓宁的表现,期待看到更多精彩!🌟💡
|
||||
|
||||
---
|
||||
|
||||
## 第6条:AI大作家(下)
|
||||
|
||||
**授课日期**:2026-04-17
|
||||
|
||||
**课评内容**:
|
||||
|
||||
梓宁今天表现超棒!~对自己的小说特别上心,不断去调试和修改自己的作品,愿意一直认真打字优化内容~还会对AI生成的结果提出不满意的地方,主动要求更好的效果,这种精益求精的态度让老师很惊喜!~老师教梓宁细化修改和优化提示词的时候,梓宁也很专注地跟着学,进步很大~
|
||||
|
||||
老师会继续关注梓宁的表现,期待看到你的完整小说故事!🌟💡
|
||||
|
||||
---
|
||||
|
||||
@@ -2,5 +2,10 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-04 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 射击训练营 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 在线聊天室 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 投票小程序 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 源码精灵之战 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 四季之选 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-04-17 | 彩虹生成器 | 第8课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第7课 | ✅ 出勤 | |
|
||||
|
||||
@@ -106,3 +106,24 @@
|
||||
煜腾能够跟上老师的节奏,认真完成了作品,表现出色的学习能力。继续加油哦!
|
||||
|
||||
---
|
||||
|
||||
## 第7条:彩虹生成器
|
||||
|
||||
**授课日期**:2026-04-17
|
||||
|
||||
**课评内容**:
|
||||
|
||||
家长好,本周学习的内容是《彩虹生成器》:
|
||||
1. 初步学习循环嵌套结构,理解循环嵌套结构的概念和使用方法
|
||||
2. 学习使用循环嵌套结构实现绘制彩虹的效果
|
||||
3. 通过制作项目,理解并掌握循环嵌套结构和多个变量的综合应用
|
||||
4. 了解彩虹的出现场景和颜色,探究彩虹的形成原因
|
||||
5. 培养学生科学探究能力和逻辑思维能力
|
||||
|
||||
煜腾这节课表现超棒!对本周学习的循环嵌套结构掌握得不错,很迅速地完成了本节课的《彩虹生成器》作品。出现bug的时候,能主动拉着老师一起讨论问题出在哪里,这种积极解决问题的方式特别厉害!
|
||||
|
||||
煜腾上课状态很积极,头脑聪明,反应又快,学习能力强。要是下次完成任务后,能再耐心检查一下细节,把作品打磨得更精致就更好啦~真正的高手不仅求快,更求好,老师相信你可以做到!
|
||||
|
||||
继续加油哦!期待看到更完美的作品!💪✨
|
||||
|
||||
---
|
||||
|
||||
@@ -2,5 +2,10 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-04 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 射击训练营 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 在线聊天室 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 投票小程序 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 源码精灵之战 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 四季之选 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-04-17 | 彩虹生成器 | 第8课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第7课 | ✅ 出勤 | |
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
**课堂反馈**:
|
||||
|
||||
晨语这节课表现不错!对多分支选择结构和分支嵌套结构的掌握情况还可以,能够完成《四季之选》项目的制作。时而安静,时而吵闹,上课纪律一般,但整体表现还是不错的~继续保持这种认真的学习态度,期待看到更多进步!😊🌟
|
||||
晨语这节课表现不错!对多分支选择结构和分支嵌套结构的掌握情况还可以,能够完成《四季之选》项目的制作。时而安静,时而吵闹,上课纪律一般,但整体表现还是不错的~继续保持这种认真的学习态度,老师会继续关注晨语的学习状态,期待看到更多进步!😊🌟
|
||||
|
||||
---
|
||||
|
||||
@@ -114,3 +114,24 @@
|
||||
晨语认真完成了作品,作品做得很有特色,创意无限!继续加油哦!
|
||||
|
||||
---
|
||||
|
||||
## 第7条:彩虹生成器
|
||||
|
||||
**授课日期**:2026-04-17
|
||||
|
||||
**课评内容**:
|
||||
|
||||
家长好,本周学习的内容是《彩虹生成器》:
|
||||
1. 初步学习循环嵌套结构,理解循环嵌套结构的概念和使用方法
|
||||
2. 学习使用循环嵌套结构实现绘制彩虹的效果
|
||||
3. 通过制作项目,理解并掌握循环嵌套结构和多个变量的综合应用
|
||||
4. 了解彩虹的出现场景和颜色,探究彩虹的形成原因
|
||||
5. 培养学生科学探究能力和逻辑思维能力
|
||||
|
||||
晨语这节课表现不错!非常迅速地完成了《彩虹生成器》的基础内容,然后还主动让老师指导自己完成很有创意的"火球乱飞"效果,说是"二十一世纪的伟大壮举",想法天马行空,特别有创意!能够不满足于基础任务,主动添加自己的想法,这是非常棒的创作精神~
|
||||
|
||||
晨语认真完成了作品,创意满满!不过老师发现晨语上课时专注力还是有些波动,偶尔会被周围的事情吸引。要是能一直保持认真听讲的状态,作品一定会更完整~
|
||||
|
||||
继续加油哦!老师很期待看到你下一个有创意的作品!🌟
|
||||
|
||||
---
|
||||
|
||||
@@ -2,5 +2,10 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-04 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 射击训练营 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 在线聊天室 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 投票小程序 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 源码精灵之战 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 四季之选 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-04-17 | 彩虹生成器 | 第8课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第7课 | ✅ 出勤 | |
|
||||
|
||||
@@ -118,3 +118,24 @@
|
||||
继续加油哦!
|
||||
|
||||
---
|
||||
|
||||
## 第7条:彩虹生成器
|
||||
|
||||
**授课日期**:2026-04-17
|
||||
|
||||
**课评内容**:
|
||||
|
||||
家长好,本周学习的内容是《彩虹生成器》:
|
||||
1. 初步学习循环嵌套结构,理解循环嵌套结构的概念和使用方法
|
||||
2. 学习使用循环嵌套结构实现绘制彩虹的效果
|
||||
3. 通过制作项目,理解并掌握循环嵌套结构和多个变量的综合应用
|
||||
4. 了解彩虹的出现场景和颜色,探究彩虹的形成原因
|
||||
5. 培养学生科学探究能力和逻辑思维能力
|
||||
|
||||
艺嘉这节课表现很棒!对上节课学习的分支嵌套知识点没有遗忘,掌握得很扎实。特别是上课提到"海鸥向上动和向下动"时,艺嘉能直接说出"y轴移动,还得上我出手",反应超快,知识点理解得很到位!能够跟上老师的节奏,认真完成《彩虹生成器》的作品。
|
||||
|
||||
艺嘉在课堂上继续保持热情活泼的状态,遇到懂的内容敢于大声表达,特别有自信~不过老师发现艺嘉偶尔坐姿还需要注意一下,坐端正了思考会更清晰哦。
|
||||
|
||||
继续加油哦!期待看到你更棒的表现!🌟
|
||||
|
||||
---
|
||||
|
||||
@@ -2,5 +2,10 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-04 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 射击训练营 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 在线聊天室 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | 投票小程序 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 源码精灵之战 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 四季之选 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-04-17 | 彩虹生成器 | 第8课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 我的唱片机 | 第7课 | ✅ 出勤 | |
|
||||
|
||||
@@ -114,3 +114,22 @@
|
||||
圆振认真完成了作品,作品做得很有特色,继续加油哦!
|
||||
|
||||
---
|
||||
|
||||
## 第7条:彩虹生成器
|
||||
|
||||
**授课日期**:2026-04-17
|
||||
|
||||
**课评内容**:
|
||||
|
||||
家长好,本周学习的内容是《彩虹生成器》:
|
||||
1. 初步学习循环嵌套结构,理解循环嵌套结构的概念和使用方法
|
||||
2. 学习使用循环嵌套结构实现绘制彩虹的效果
|
||||
3. 通过制作项目,理解并掌握循环嵌套结构和多个变量的综合应用
|
||||
4. 了解彩虹的出现场景和颜色,探究彩虹的形成原因
|
||||
5. 培养学生科学探究能力和逻辑思维能力
|
||||
|
||||
圆振这节课表现很棒!对上节课学习的分支嵌套知识点掌握得很牢固,能够第一个反应过来海鸥移动的积木是什么,思维非常敏捷,说明之前学的知识都记在心里了~圆振认真完成了《彩虹生成器》的作品,课堂积极性很高,能够跟上老师的节奏。作为班里年龄较小的同学,圆振的理解力和反应速度都很出色,老师特别欣赏!
|
||||
|
||||
继续加油哦!相信你会把程序做得更完整!
|
||||
|
||||
---
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-11 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ⏸ 请假 | 已转班 |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ⏸ 请假 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | 插班 |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 我是大作家-2 | 第5课 | ⏸ 请假 | 已转班 |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ⏸ 请假 | 已转班 |
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ⏸ 请假 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ⏸ 请假 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 我是大作家-2 | 第5课 | ⏸ 请假 | 已转班 |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ⏸ 请假 | 已转班 |
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ⏸ 请假 | 已转班 |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 我是大作家-2 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ⏸ 请假 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ⏸ 请假 | 插班前 |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | 插班 |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | AI大作家完整篇 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ⏸ 请假 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | 已转班 |
|
||||
| 2026-03-08 | AI是怎么想的 | 第1课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | AI的记忆之谜 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | AI训练师 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 我是大作家-1 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-04-06 | 我是大作家-2 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我是大作家(完结篇) | 第6课 | ⏸ 请假 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ⏸ 请假 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ⏸ 请假 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-06 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 一维数组 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 数组增删操作 | 第3课 | ⏸ 请假 | |
|
||||
| 2026-03-22 | 数组计数法 | 第4课 | ⏸ 请假 | |
|
||||
| 2026-03-29 | 连续性元素处理 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 字符数组 | 第6课 | ✅ 出勤 | |
|
||||
|
||||
@@ -2,4 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | | 第5课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 射击训练营 | 第2课 | ⏸ 请假 | |
|
||||
| 2026-03-15 | 在线聊天室 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | 投票小程序 | 第4课 | ⏸ 请假 | |
|
||||
| 2026-03-29 | 源码精灵之战 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-05 | 四季之选 | 第6课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我的唱片机 | 第7课 | ⏸ 请假 | |
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
| 日期 | 课程 | 课次 | 状态 | 备注 |
|
||||
|------|------|------|------|------|
|
||||
| 2026-04-05 | 四季之选 | 第5课 | ⏸ 请假 | |
|
||||
| 2026-04-12 | 我的唱片机 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-03-08 | 射击训练营 | 第2课 | ✅ 出勤 | |
|
||||
| 2026-03-15 | 在线聊天室 | 第3课 | ✅ 出勤 | |
|
||||
| 2026-03-22 | 投票小程序 | 第4课 | ✅ 出勤 | |
|
||||
| 2026-03-29 | 源码精灵之战 | 第5课 | ✅ 出勤 | |
|
||||
| 2026-04-05 | 四季之选 | 第6课 | ✅ 出勤 | |
|
||||
| 2026-04-12 | 我的唱片机 | 第7课 | ✅ 出勤 | |
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,4 @@
|
||||
.env
|
||||
|
||||
# 学生档案中的照片和视频文件夹
|
||||
.claude/memory/student/**/照片视频/
|
||||
|
||||
66
README_备份说明.md
Normal file
66
README_备份说明.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Git 本地备份说明
|
||||
|
||||
## 备份方案说明
|
||||
|
||||
你的项目现在采用了**远程仓库 + 本地备份分支**的双重备份方案:
|
||||
|
||||
- **远程仓库** (`origin`): https://git.qonnwolf.com/18576526757/qonnwolf-class-reviews.git
|
||||
- **本地备份分支**: `local-backup` (在本地仓库中)
|
||||
|
||||
## 备份使用方法
|
||||
|
||||
### Windows用户
|
||||
双击运行 `backup.bat` 文件即可执行备份
|
||||
|
||||
### Mac/Linux用户
|
||||
1. 运行 `./backup.sh`
|
||||
2. 或者手动执行:
|
||||
```bash
|
||||
git checkout local-backup
|
||||
git merge main
|
||||
git checkout main
|
||||
```
|
||||
|
||||
### 手动操作
|
||||
```bash
|
||||
# 查看备份分支状态
|
||||
git branch -v
|
||||
|
||||
# 查看备份分支的提交历史
|
||||
git log local-backup
|
||||
|
||||
# 比较主分支和备份分支的差异
|
||||
git diff main..local-backup
|
||||
```
|
||||
|
||||
## 日常维护建议
|
||||
|
||||
1. **每次重要修改后**:运行备份脚本
|
||||
2. **每天结束时**:确保执行了备份
|
||||
3. **每周一次**:检查备份分支是否正常
|
||||
```bash
|
||||
git checkout local-backup
|
||||
git log --oneline -5
|
||||
git checkout main
|
||||
```
|
||||
|
||||
## 恢复操作
|
||||
|
||||
如果需要从备份恢复:
|
||||
```bash
|
||||
# 切换到备份分支查看
|
||||
git checkout local-backup
|
||||
|
||||
# 从备份分支复制文件到主分支
|
||||
git checkout main
|
||||
git merge local-backup
|
||||
|
||||
# 或者直接复制特定文件
|
||||
git checkout local-backup -- 文件名
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 本地备份分支只会在本地仓库中存在
|
||||
- 远程仓库仍然保持同步状态
|
||||
- 如果需要,可以随时删除备份分支:`git branch -D local-backup`
|
||||
19
backup.bat
Normal file
19
backup.bat
Normal file
@@ -0,0 +1,19 @@
|
||||
@echo off
|
||||
REM 本地Git备份脚本 (Windows版本)
|
||||
|
||||
echo 开始执行本地备份...
|
||||
|
||||
REM 切换到备份分支
|
||||
git checkout local-backup
|
||||
|
||||
REM 从主分支合并最新更改
|
||||
echo 从main分支合并最新更改...
|
||||
git merge main
|
||||
|
||||
REM 切换回主分支
|
||||
git checkout main
|
||||
|
||||
echo 本地备份完成!
|
||||
echo 备份分支: local-backup
|
||||
echo 可以使用 "git log local-backup" 查看备份历史
|
||||
pause
|
||||
442
output/CSP03-第七节课-string(一)-上课逐字稿.md
Normal file
442
output/CSP03-第七节课-string(一)-上课逐字稿.md
Normal file
@@ -0,0 +1,442 @@
|
||||
# CSP03班第七节课:string(一)- 上课逐字稿
|
||||
|
||||
**班级**:CSP03班
|
||||
**课程**:C++信息奥赛
|
||||
**课次**:第7课
|
||||
**知识点**:字符串基础
|
||||
**日期**:2026年4月15日
|
||||
|
||||
---
|
||||
|
||||
## 📚 课前准备
|
||||
|
||||
**老师**:
|
||||
"同学们下午好!欢迎大家来到今天的C++课堂。今天我们要学习一个非常有趣也非常重要的知识点——字符串。在开始之前,大家想一想,我们平时用电脑都会接触到哪些文字信息?"
|
||||
|
||||
**学生互动**:
|
||||
(等待学生回答)
|
||||
- "QQ聊天记录"
|
||||
- "发短信"
|
||||
- "写作文"
|
||||
- "编程代码"
|
||||
|
||||
**老师总结**:
|
||||
"很好!不管是聊天记录、短信还是作文,这些文字信息在计算机里都被统一称为'字符串'。今天我们就来学习如何在C++中处理这些文字信息。"
|
||||
|
||||
---
|
||||
|
||||
## 🎯 知识点导入
|
||||
|
||||
**老师**:
|
||||
"打开你们的PPT,今天我们要学习的是字符串的基础知识。先请一位同学大声朗读这节课的5个知识点。"
|
||||
|
||||
**学生朗读**:
|
||||
1. 字符串的概念
|
||||
2. 字符串的声明与初始化
|
||||
3. 字符串的常用操作
|
||||
4. 字符串的输入输出
|
||||
5. 字符串的遍历方法
|
||||
|
||||
**老师**:
|
||||
"说得非常好!现在我们就一个个来详细学习这些内容。"
|
||||
|
||||
---
|
||||
|
||||
## 📖 知识点一:字符串的概念
|
||||
|
||||
**老师**:
|
||||
"首先,什么是字符串?在C++中,字符串就是一串字符的序列,比如'Hello World'、'C++很酷'、'2026'这些。
|
||||
|
||||
大家看屏幕:
|
||||
```cpp
|
||||
"Hello" // 这是一个字符串
|
||||
"你好" // 这也是一个字符串,包含中文字符
|
||||
"12345" // 数字用引号括起来也变成了字符串
|
||||
```
|
||||
|
||||
**注意**:
|
||||
- 字符串必须用双引号 `"` 括起来
|
||||
- 单字符要用单引号 `'a'`,区别开来
|
||||
- 字符串里可以包含任何字符:字母、数字、符号、中文..."
|
||||
|
||||
**互动提问**:
|
||||
"王佳琳,你能举出3个不同的字符串例子吗?"
|
||||
|
||||
**学生回答**:
|
||||
- "程序设计"
|
||||
- "Hello World"
|
||||
- "今天是4月15日"
|
||||
|
||||
**老师表扬**:
|
||||
"说得很好!注意'程序设计'中间没有空格,这是一个完整的字符串。"
|
||||
|
||||
---
|
||||
|
||||
## 📝 知识点二:字符串的声明与初始化
|
||||
|
||||
**老师**:
|
||||
"接下来我们学习如何创建字符串变量。在C++中,我们需要包含 `<string>` 头文件。"
|
||||
|
||||
**代码演示**:
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
// 声明字符串变量
|
||||
string name; // 只声明,未赋值
|
||||
string hobby = "编程"; // 声明并初始化
|
||||
string message("你好"); // 用构造函数初始化
|
||||
|
||||
// 输出
|
||||
cout << name << endl;
|
||||
cout << hobby << endl;
|
||||
cout << message << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
**重点讲解**:
|
||||
"大家注意:
|
||||
1. `#include <string>` 是必须的,告诉编译器我们要用字符串
|
||||
2. `string name;` 声明了一个空字符串
|
||||
3. `string hobby = "编程";` 同时完成了声明和赋值
|
||||
4. C++中有多种初始化方式,上面两种最常用"
|
||||
|
||||
**学生练习**:
|
||||
"现在请在你们的电脑上尝试声明一个字符串变量来存储你们的名字,并输出出来。"
|
||||
|
||||
(巡视指导)
|
||||
"卢华琛,你的代码写得很规范!"
|
||||
"唐钎宸,记得加上 `#include <string>` 哦。"
|
||||
|
||||
---
|
||||
|
||||
## 🔧 知识点三:字符串的常用操作
|
||||
|
||||
**老师**:
|
||||
"字符串有很多常用的操作,就像我们对数字可以进行加减乘除一样,字符串也有自己的操作方法。"
|
||||
|
||||
**代码演示**:
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
string s1 = "Hello";
|
||||
string s2 = "World";
|
||||
string result;
|
||||
|
||||
// 1. 拼接
|
||||
result = s1 + " " + s2; // "Hello World"
|
||||
cout << "拼接: " << result << endl;
|
||||
|
||||
// 2. 获取长度
|
||||
cout << "长度: " << result.length() << endl;
|
||||
|
||||
// 3. 访问单个字符
|
||||
cout << "第一个字符: " << result[0] << endl;
|
||||
cout << "最后一个字符: " << result[result.length()-1] << endl;
|
||||
|
||||
// 4. 比较字符串
|
||||
if (s1 == "Hello") {
|
||||
cout << "s1等于Hello" << endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
**重点强调**:
|
||||
"特别注意:
|
||||
1. 字符串拼接用 `+` 号,就像数学里的加法
|
||||
2. `length()` 函数返回字符串的字符个数
|
||||
3. 字符串的索引从0开始,`[0]` 是第一个字符
|
||||
4. 可以直接用 `==` 比较字符串是否相等"
|
||||
|
||||
**互动练习**:
|
||||
"请写一个程序,声明两个字符串变量,分别存储你的姓和名,然后将它们拼接成完整的名字并输出。"
|
||||
|
||||
**学生展示**:
|
||||
"王佳琳,请展示你的代码。"
|
||||
|
||||
**学生代码**:
|
||||
```cpp
|
||||
string firstName = "王";
|
||||
string lastName = "佳琳";
|
||||
string fullName = firstName + lastName;
|
||||
cout << fullName << endl;
|
||||
```
|
||||
|
||||
**老师点评**:
|
||||
"很好!但是要注意,正常情况下中间应该有个空格。应该是 `string fullName = firstName + " " + lastName;`"
|
||||
|
||||
---
|
||||
|
||||
## 📤 知识点四:字符串的输入输出
|
||||
|
||||
**老师**:
|
||||
"我们现在学习了如何声明和操作字符串,那么如何让用户输入字符串呢?"
|
||||
|
||||
**代码演示**:
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
string name;
|
||||
string hobby;
|
||||
|
||||
// 输入字符串(遇到空格停止)
|
||||
cout << "请输入你的名字: ";
|
||||
cin >> name; // 只能读取到第一个空格之前的内容
|
||||
cout << "你的名字是: " << name << endl;
|
||||
|
||||
// 使用getline读取整行(包括空格)
|
||||
cout << "请输入你的爱好: ";
|
||||
getline(cin, hobby); // 读取整行,直到遇到回车
|
||||
cout << "你的爱好是: " << hobby << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
**重点讲解**:
|
||||
"这里有个非常重要的区别:
|
||||
1. `cin >> name;` 遇到空格就会停止,比如输入'张 三',只会读取'张'
|
||||
2. `getline(cin, hobby);` 会读取整行,包括空格,适合读取句子或短语"
|
||||
|
||||
**常见错误演示**:
|
||||
```cpp
|
||||
// 错误示范:
|
||||
string name1, name2;
|
||||
cin >> name1 >> name2; // 如果输入"张 三",name1="张", name2="三"
|
||||
// 这样没问题,但要清楚发生了什么
|
||||
```
|
||||
|
||||
**学生练习**:
|
||||
"请写一个程序,让用户输入一句完整的自我介绍,然后输出这句话。"
|
||||
|
||||
(指导学生注意使用getline)
|
||||
"卢华琛,记得先跳过cin留下的换行符,用 `getchar();` 或直接用 `getline(cin, s);`"
|
||||
|
||||
---
|
||||
|
||||
## 🔍 知识点五:字符串的遍历方法
|
||||
|
||||
**老师**:
|
||||
"最后一个知识点,如何逐个访问字符串中的每一个字符。这在我们需要处理每个字符时非常有用。"
|
||||
|
||||
**方法一:使用索引(推荐)**
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
string text = "Hello C++";
|
||||
|
||||
// 使用索引遍历
|
||||
cout << "逐个字符:" << endl;
|
||||
for (int i = 0; i < text.length(); i++) {
|
||||
cout << text[i] << " ";
|
||||
}
|
||||
cout << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
**方法二:使用范围for循环(更简单)**
|
||||
```cpp
|
||||
string text = "Hello C++";
|
||||
|
||||
// 范围for循环(推荐)
|
||||
cout << "逐个字符:" << endl;
|
||||
for (char c : text) {
|
||||
cout << c << " ";
|
||||
}
|
||||
cout << endl;
|
||||
```
|
||||
|
||||
**方法三:使用迭代器(进阶)**
|
||||
```cpp
|
||||
string text = "Hello C++";
|
||||
|
||||
// 使用迭代器
|
||||
cout << "逐个字符:" << endl;
|
||||
for (string::iterator it = text.begin(); it != text.end(); ++it) {
|
||||
cout << *it << " ";
|
||||
}
|
||||
cout << endl;
|
||||
```
|
||||
|
||||
**对比讲解**:
|
||||
"三种方法的区别:
|
||||
1. **索引法**:最直观,需要知道字符串长度
|
||||
2. **范围for循环**:最简单、最安全,推荐初学者使用
|
||||
3. **迭代器**:最强大,适合处理复杂的数据结构"
|
||||
|
||||
**练习题**:
|
||||
"请写一个程序,统计字符串中某个字符出现的次数。比如统计'Hello'中'l'出现了几次。"
|
||||
|
||||
**学生解答过程**:
|
||||
```cpp
|
||||
string s = "Hello";
|
||||
char target = 'l';
|
||||
count = 0;
|
||||
|
||||
for (char c : s) {
|
||||
if (c == target) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
cout << "字符'" << target << "'出现了" << count << "次" << endl;
|
||||
```
|
||||
|
||||
**老师点评**:
|
||||
"很好!这就是字符串遍历的典型应用。思路清晰,代码正确。"
|
||||
|
||||
---
|
||||
|
||||
## 💡 综合案例:姓名处理程序
|
||||
|
||||
**老师**:
|
||||
"现在我们把这节课的知识点综合起来,做一个完整的小程序。"
|
||||
|
||||
**需求**:
|
||||
"编写一个程序,要求:
|
||||
1. 用户输入完整的姓名(姓和名之间可以有空格)
|
||||
2. 程序分别输出姓和名
|
||||
3. 程序输出名字的长度
|
||||
4. 程序将姓名倒序输出"
|
||||
|
||||
**代码演示**:
|
||||
```cpp
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
string fullName;
|
||||
|
||||
// 输入完整姓名
|
||||
cout << "请输入完整的姓名(如:张 三):";
|
||||
getline(cin, fullName);
|
||||
|
||||
// 查找空格位置
|
||||
int spacePos = fullName.find(' ');
|
||||
|
||||
// 输出姓名信息
|
||||
cout << "\n=== 姓名信息 ===" << endl;
|
||||
cout << "完整姓名:" << fullName << endl;
|
||||
cout << "姓名长度:" << fullName.length() << " 个字符" << endl;
|
||||
|
||||
if (spacePos != string::npos) {
|
||||
// 有空格,分离姓和名
|
||||
string lastName = fullName.substr(0, spacePos);
|
||||
string firstName = fullName.substr(spacePos + 1);
|
||||
cout << "姓:" << lastName << endl;
|
||||
cout << "名:" << firstName << endl;
|
||||
} else {
|
||||
// 没有空格
|
||||
cout << "没有空格,无法分离姓和名" << endl;
|
||||
}
|
||||
|
||||
// 倒序输出
|
||||
cout << "倒序姓名:";
|
||||
for (int i = fullName.length() - 1; i >= 0; i--) {
|
||||
cout << fullName[i];
|
||||
}
|
||||
cout << endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
**运行示例**:
|
||||
```
|
||||
请输入完整的姓名(如:张 三):王佳琳
|
||||
|
||||
=== 姓名信息 ===
|
||||
完整姓名:王佳琳
|
||||
姓名长度:3 个字符
|
||||
没有空格,无法分离姓和名
|
||||
倒序姓名:琳佳王
|
||||
```
|
||||
|
||||
**代码讲解**:
|
||||
"这个程序用到了我们今天学的所有知识点:
|
||||
1. `getline` 读取整行姓名
|
||||
2. `length()` 获取长度
|
||||
3. `find()` 查找空格位置
|
||||
4. `substr()` 截取子串
|
||||
5. `for` 循环倒序输出"
|
||||
|
||||
**学生练习**:
|
||||
"现在请同学们在自己的电脑上运行这个程序,并尝试输入不同的姓名进行测试。"
|
||||
|
||||
(巡视指导)
|
||||
"王佳琳,程序运行正常!"
|
||||
"卢华琛,注意`substr`的参数是从哪个位置开始,截取多长。"
|
||||
"唐钎宸,`string::npos`表示没有找到,这个要记住。"
|
||||
|
||||
---
|
||||
|
||||
## 🎓 课堂总结
|
||||
|
||||
**老师**:
|
||||
"好了同学们,今天我们学习了字符串的五个重要知识点:
|
||||
|
||||
1. **字符串概念**:用双引号括起来的字符序列
|
||||
2. **声明初始化**:`string s = "hello";`
|
||||
3. **常用操作**:拼接、获取长度、访问字符、比较
|
||||
4. **输入输出**:`cin >>` 和 `getline` 的区别
|
||||
5. **遍历方法**:索引法、范围for循环、迭代器"
|
||||
|
||||
**重点回顾**:
|
||||
"最常用的几个操作:
|
||||
- `s.length()` - 获取长度
|
||||
- `s + t` - 字符串拼接
|
||||
- `s[i]` - 访问第i个字符
|
||||
- `getline(cin, s)` - 读取整行"
|
||||
|
||||
**作业布置**:
|
||||
"今天的作业是:
|
||||
1. 完成教材第5章的练习题
|
||||
2. 编写一个程序,统计用户输入的字符串中字母、数字、空格各有多少个
|
||||
3. 预习下一章的内容:字符串查找和替换"
|
||||
|
||||
**老师鼓励**:
|
||||
"大家今天的表现都很积极!特别是王佳琳、卢华琛、唐钎宸三位同学,代码写得非常规范。希望同学们课后好好练习,下节课我们会学习字符串的更多高级操作。有任何问题可以随时问我。"
|
||||
|
||||
---
|
||||
|
||||
## 📝 课后反思
|
||||
|
||||
**成功之处**:
|
||||
1. 概念讲解清晰,从实际应用引入
|
||||
2. 互动充分,学生参与度高
|
||||
3. 代码示例丰富,循序渐进
|
||||
4. 综合案例实用,巩固所学知识
|
||||
|
||||
**改进方向**:
|
||||
1. 可以增加更多学生练习的时间
|
||||
2. 字符串查找部分可以提前预告,激发学习兴趣
|
||||
3. 可以准备一些有趣的字符串练习题
|
||||
|
||||
**学生反馈**:
|
||||
- "老师,字符串比我想象的有趣多了!"
|
||||
- "那个倒序输出的程序很酷!"
|
||||
- "我觉得range for循环最简单好用"
|
||||
|
||||
---
|
||||
|
||||
**课时统计**:45分钟
|
||||
**完成度**:100%
|
||||
**班级氛围**:积极活跃,学习效果良好
|
||||
Reference in New Issue
Block a user