mirror of
https://gitlab.com/game-loader/hugo.git
synced 2025-04-20 05:52:07 +08:00
add some change
This commit is contained in:
parent
b9fdd44cc1
commit
379950bba2
@ -463,7 +463,9 @@ int main() {
|
||||
## 第四次作业 {#第四次作业}
|
||||
|
||||
|
||||
### 设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,提供能计算矩形的面积的成员函数。 {#设计并测试一个名为rectangle的矩形类-其属性为矩形的左下角与右上角两个点的坐标-提供能计算矩形的面积的成员函数}
|
||||
### 1 {#1}
|
||||
|
||||
> 设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,提供能计算矩形的面积的成员函数。
|
||||
|
||||
设计一个结构体表示点坐标,设计矩形类的属性为两个坐标,成员函数为计算面积。并在main函数中简单测试,代码如下
|
||||
|
||||
@ -511,7 +513,9 @@ int main(int argc, char *argv[]) {
|
||||
{{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/1026iUdZ0b.png" >}}
|
||||
|
||||
|
||||
### 设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号、性别、出生日期、身份证号等。其中“出生日期”声明为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带默认形参值的成员函数、类的组合。 {#设计一个用于人事管理的-人员-类-由于考虑到通用性-这里只抽象出所有类型人员都具有的属性-编号-性别-出生日期-身份证号等-其中-出生日期-声明为一个-日期-类内嵌对象-用成员函数实现对人员信息的录入和显示-要求包括-构造函数和析构函数-拷贝构造函数-内联成员函数-带默认形参值的成员函数-类的组合}
|
||||
### 2 {#2}
|
||||
|
||||
> 设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号、性别、出生日期、身份证号等。其中“出生日期”声明为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带默认形参值的成员函数、类的组合。
|
||||
|
||||
```C++
|
||||
#include <cstdio>
|
||||
@ -572,7 +576,9 @@ inline void Person::display() {
|
||||
```
|
||||
|
||||
|
||||
### 定义一个Cat类,拥有静态数据成员HowManyCats,记录Cat的对象个体数目;静态成员函数GetHowMany(),存取HowManyCats。非静态数据成员CatID记录当前对象的编号,成员函数GetCatID()存取CatID。设计程序测试这个类,生成若干个Cat对象,输出每个对象的数据成员值,体会静态成员和非静态成员的用法。 {#定义一个cat类-拥有静态数据成员howmanycats-记录cat的对象个体数目-静态成员函数gethowmany-存取howmanycats-非静态数据成员catid记录当前对象的编号-成员函数getcatid存取catid-设计程序测试这个类-生成若干个cat对象-输出每个对象的数据成员值-体会静态成员和非静态成员的用法}
|
||||
### 3 {#3}
|
||||
|
||||
> 定义一个Cat类,拥有静态数据成员HowManyCats,记录Cat的对象个体数目;静态成员函数GetHowMany(),存取HowManyCats。非静态数据成员CatID记录当前对象的编号,成员函数GetCatID()存取CatID。设计程序测试这个类,生成若干个Cat对象,输出每个对象的数据成员值,体会静态成员和非静态成员的用法。
|
||||
|
||||
```C++
|
||||
#include <cstdio>
|
||||
@ -944,21 +950,23 @@ int main(int argc, char *argv[]) {
|
||||
> 1. 武士降生输出样例: 004 blue lion 5 born with strength 5,2 lion in red headquarter
|
||||
> 表示在4点整,编号为5的蓝魔lion武士降生,它降生时生命值为5,降生后蓝魔司令部里共有2个lion武士。(为简单起见,不考虑单词的复数形式)注意,每制造出一个新的武士,都要输出此时司令部里共有多少个该种武士。
|
||||
> 2. 司令部停止制造武士输出样例: 010 red headquarter stops making warriors
|
||||
> 表示在10点整,红方司令部停止制造武士输出事件时:首先按时间顺序输出;同一时间发生的事件,先输出红司令部的,再输出蓝司令部的。输入第一行是一个整数,代表测试数据组数。每组测试数据共两行。第一行:一个整数M。其含义为, 每个司令部一开始都有M个生命元( 1 <= M <= 10000)。第二行:五个整数,依次是 dragon 、ninja、iceman、lion、wolf 的初始生命值。它们都大于0小于等于10000。输出对每组测试数据,要求输出从0时0分开始,到双方司令部都停止制造武士为止的所有事件。对每组测试数据,首先输出"Case:n" n是测试数据的编号,从1开始 。接下来按恰当的顺序和格式输出所有事件。每个事件都以事件发生的时间开头,时间以小时为单位,有三位。样例输入
|
||||
> 1
|
||||
> 20
|
||||
> 3 4 5 6 7
|
||||
> 样例输出
|
||||
> Case:1
|
||||
> 000 red iceman 1 born with strength 5,1 iceman in red headquarter
|
||||
> 000 blue lion 1 born with strength 6,1 lion in blue headquarter
|
||||
> 001 red lion 2 born with strength 6,1 lion in red headquarter
|
||||
> 001 blue dragon 2 born with strength 3,1 dragon in blue headquarter
|
||||
> 002 red wolf 3 born with strength 7,1 wolf in red headquarter
|
||||
> 002 blue ninja 3 born with strength 4,1 ninja in blue headquarter
|
||||
> 003 red headquarter stops making warriors
|
||||
> 003 blue iceman 4 born with strength 5,1 iceman in blue headquarter
|
||||
> 004 blue headquarter stops making warriors
|
||||
> 表示在10点整,红方司令部停止制造武士
|
||||
>
|
||||
> 输出事件时:首先按时间顺序输出;同一时间发生的事件,先输出红司令部的,再输出蓝司令部的。输入第一行是一个整数,代表测试数据组数。每组测试数据共两行。第一行:一个整数M。其含义为, 每个司令部一开始都有M个生命元( 1 <= M <= 10000)。第二行:五个整数,依次是 dragon 、ninja、iceman、lion、wolf 的初始生命值。它们都大于0小于等于10000。输出对每组测试数据,要求输出从0时0分开始,到双方司令部都停止制造武士为止的所有事件。对每组测试数据,首先输出"Case:n" n是测试数据的编号,从1开始 。接下来按恰当的顺序和格式输出所有事件。每个事件都以事件发生的时间开头,时间以小时为单位,有三位。样例输入
|
||||
> 1
|
||||
> 20
|
||||
> 3 4 5 6 7
|
||||
> 样例输出
|
||||
> Case:1
|
||||
> 000 red iceman 1 born with strength 5,1 iceman in red headquarter
|
||||
> 000 blue lion 1 born with strength 6,1 lion in blue headquarter
|
||||
> 001 red lion 2 born with strength 6,1 lion in red headquarter
|
||||
> 001 blue dragon 2 born with strength 3,1 dragon in blue headquarter
|
||||
> 002 red wolf 3 born with strength 7,1 wolf in red headquarter
|
||||
> 002 blue ninja 3 born with strength 4,1 ninja in blue headquarter
|
||||
> 003 red headquarter stops making warriors
|
||||
> 003 blue iceman 4 born with strength 5,1 iceman in blue headquarter
|
||||
> 004 blue headquarter stops making warriors
|
||||
|
||||
这道题题面比较复杂。但是仔细分析后可知指挥部只有制造武士这一种行为,实际上比较简单。只需读取输入为每个武士赋予相应的属性即可。这里因为武士本身没有行为,可以使用结构体存储。司令部为一个类,其中包含了生命元数量,制造武士顺序,现在制造的武士的下标,司令部的颜色,武士的标号和所有武士的信息这几个成员变量。使用武士名作为key构造哈希表存储武士信息可以快速获得某种武士的数量。构造函数中初始化成员变量。成员函数为制作武士和判断两个函数。制造武士用于根据指定下标制造对应顺序的武士,判断则用于判断当前应制造的武士能否制造,不能则寻找下一个能制造的武士,如果已经不能制造则终止制造武士并将over置为true;
|
||||
代码如下
|
||||
|
Loading…
Reference in New Issue
Block a user