任务说明补齐 23 份;设计器支持窗体改名
- 其余 21 个实验的 task.md:控件名照示例代码,"在平台上怎么试"和评分步骤一致,列出书上的印刷错误和控件名不一致 - 窗体改名:属性窗口里选中窗体可以改名称,类名、构造函数、new X()、Program.cs 和两个文件名一起改;方法名和字符串不变 - 11 个主窗体不叫 Form1 的实验,任务说明提示先改窗体名再双击生成 Load 事件 - 测试:表头只认分隔行上面那一行,数据行里出现"名称"不再被当成表头 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
90b739a2c7
commit
d4b8bf9241
29 files changed
+1236
-31
No files matched your search
@@ -0,0 +1,45 @@
|
||||
## 任务目标
|
||||
|
||||
一个窗体里做两件事:上半部分是简易计算器,输入两个数、选运算符,点"="算出结果;下半部分点"显示",让两个中国人、两个美国人依次"说话",在文本框里输出各自说的语言。
|
||||
|
||||
练习重点:装箱与拆箱(object 和值类型互相转换)、类的继承、虚方法(virtual)和重写(override)、List 和 Dictionary。详细步骤见书 p13–16。
|
||||
|
||||
## 界面和控件名
|
||||
|
||||
| 控件 | 名称(Name) | 文字(Text)和用途 |
|
||||
|---|---|---|
|
||||
| 窗体 | `Form1` | C#入门基础 |
|
||||
| 分组框 | `groupBox1` | 简易计算器 |
|
||||
| 文本框 | `txtNum1` | 第一个数 |
|
||||
| 下拉框 | `cmboxType` | 运算符,Items 填 `+`、`-`、`*`、`/` 四项 |
|
||||
| 文本框 | `txtNum2` | 第二个数 |
|
||||
| 按钮 | `btnCalculate` | = |
|
||||
| 文本框 | `txtResult` | 计算结果,ReadOnly 设为 True |
|
||||
| 分组框 | `groupBox2` | 类的多态性 |
|
||||
| 文本框 | `txtDispaly` | 输出说话内容,Multiline 设为 True |
|
||||
| 按钮 | `btnDisplay` | 显示 |
|
||||
|
||||
> `txtDispaly` 是书上的拼法(不是 Display),代码和自动评分都用这个名字,照着写。书上的表格没写下拉框的 Items 和文本框的 Multiline,要自己在属性里设置。
|
||||
|
||||
## 实现步骤
|
||||
|
||||
1. 写一个方法 `public Object Result(Object a, Object b, String type)`:先把 a、b 拆箱成 float,用 switch 按 `+ - * /` 计算(其他情况结果为 0),最后把结果装箱成 Object 返回。
|
||||
2. **btnCalculate 的 Click**:两个文本框都不为空时,用 `float.Parse` 把文字转成数,调用 `Result(a, b, cmboxType.Text)`,返回值拆箱成 float,显示到 `txtResult`。
|
||||
3. 点"+ 新建类",新建 `People` 类,写一个虚方法 `public virtual void Speak(TextBox Txtbox, string name)`,把 name 追加到文本框的 Text 后面。
|
||||
4. 新建 `Chinese` 类继承 People,重写 Speak:调用 `base.Speak`,传入 `name + "说的是汉语!\r\n"`。
|
||||
5. 新建 `American` 类继承 People,同样重写,内容改成"说的是英语!"。
|
||||
6. **btnDisplay 的 Click**:
|
||||
- 建一个 `Dictionary<int, string>`,放入 1 张三、2 李四、3 Mary、4 Jimmy;
|
||||
- 建一个 `List<People>`,先加 2 个 `new Chinese()`,再加 2 个 `new American()`;
|
||||
- 遍历 List,对第 i 个对象调用 `Speak(this.txtDispaly, dicName[i + 1])`。
|
||||
|
||||
## 和书上不一样的地方
|
||||
|
||||
> 书上第 8 步写的是"双击'='按钮",其实应该双击"**显示**"按钮,生成 `btnDisplay_Click`。
|
||||
|
||||
> 书上排版把减号印成了长一点的"–",抄 `case "-"` 和下拉框的 Items 时要用键盘上的减号,否则选"-"时算不出来。
|
||||
|
||||
## 在平台上怎么试
|
||||
|
||||
1. 运行后输入 7 和 2,选"+",点"=",结果应为 9;改选"/"再点"=",结果应为 3.5。
|
||||
2. 点"显示",文本框里应依次出现"张三说的是汉语!""李四说的是汉语!""Mary说的是英语!""Jimmy说的是英语!"四行。
|
||||
Reference in new issue
Block a user