@Test void anpaiM_test1() { int m,mep; //用例1 输入vb1 ve1 ap1,输出 ap1 mep int [] vb1 = {60, 250}; int [] ve1 = {90, 280}; int [] ep1 = {1 , 1 }; int [] ap1 = new int[vb1.length]; //ap ~ anpai, ap[i]=0不安排, ap[i]=1安排 mep = 2;//安排上2个活动, ep ~ expected results luan(vb1,ve1,ep1);//打乱顺序 m = AP.anPaiMt_5C4(vb1, ve1, ap1); assertEquals(mep,m); }
时间: 2024-01-25 21:03:48 浏览: 142
这是一个JUnit测试用例,测试的是输入vb1、ve1、ep1,输出ap1的情况下,函数anPaiMt_5C4()的输出是否等于预期的mep。其中vb1、ve1、ep1和ap1分别是开始时间、结束时间、是否安排和实际安排的数组,mep是期望输出的安排数量。
这个测试用例中,首先打乱了vb1、ve1、ep1的顺序,然后调用anPaiMt_5C4()函数计算结果m,并将m与期望的结果mep进行比较,如果相等则测试通过,否则测试失败。
这个测试用例只覆盖了一个输入和输出的情况,需要编写更多的测试用例来覆盖更多的输入和输出组合。
相关问题
名表是指这样一种表,表中的每个元素由一个名字(称为关键词)加上与之一些信息构成。名表可以用一个一维数组来表示,每个元素由一个结构来表示,该结构员包含一个关键词和其他一些与该关键词相关的信息。下面是一个名表的定义: const int NAME LEN=20;const int TABLE LEN=100;struct TableItem{ char name[NAME_LEN]; /1 名表的元素类型// 关键词 ......//其他信息 };TableItem name_table[TABLE_LEN];//名表用STL的容器 mep 和find_if实现名表表示和查找功能.写两个以上文件 代码不要全部写在mian函数里
文件1:nameTable.h
```c++
#pragma once
#include <string>
#include <vector>
#include <algorithm>
const int NAME_LEN = 20;
const int TABLE_LEN = 100;
struct TableItem {
char name[NAME_LEN];
//其他信息
};
class NameTable {
public:
void addItem(std::string name, TableItem item);
TableItem getItem(std::string name);
int getSize();
std::vector<TableItem>::iterator findItem(std::string name);
private:
std::vector<TableItem> table;
};
void NameTable::addItem(std::string name, TableItem item) {
std::copy(name.begin(), name.end(), item.name);
table.push_back(item);
}
TableItem NameTable::getItem(std::string name) {
auto it = findItem(name);
if (it != table.end()) {
return *it;
}
else {
TableItem item;
item.name[0] = '\0';
return item;
}
}
int NameTable::getSize() {
return table.size();
}
std::vector<TableItem>::iterator NameTable::findItem(std::string name) {
return std::find_if(table.begin(), table.end(), [name](TableItem item) {
return name == std::string(item.name);
});
}
```
文件2:main.cpp
```c++
#include "nameTable.h"
#include <iostream>
int main() {
NameTable nt;
TableItem item1 = { "", /*其他信息*/ };
TableItem item2 = { "", /*其他信息*/ };
nt.addItem("name1", item1);
nt.addItem("name2", item2);
std::cout << nt.getSize() << std::endl;
std::cout << nt.getItem("name1").name << std::endl;
std::cout << nt.getItem("name2").name << std::endl;
return 0;
}
```
名表是指这样一种表:表中的每个元素由一个名字(称为关键词)加上与之一些信息构成。名表可以用一个一维数组来表示,每个元素由一个结构来表示,该结构员包含一个关键词和其他一些与该关键词相关的信息。下面是一个名表的定义: const int NAME LEN=20;const int TABLE LEN=100; struct TableItem{ char name[NAME_LEN]; /1 名表的元素类型// 关键词 ...。。.。 // 其他信息 ,TableItem name_table[TABLE_LEN];//名表用STL的容器 mep 和法 ind t实现 名表表示和查找功能写两个以上文件 代码不要全部写在mian函数里
首先,使用STL的容器map和unordered_map实现名表表示和查找功能的代码如下:
```c++
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
const int NAME_LEN = 20;
const int TABLE_LEN = 100;
struct TableItem {
string name; // 关键词
// 其他信息 ...
};
unordered_map<string, TableItem> name_table; // 声明一个名表
int main() {
// 向名表中添加元素
TableItem item1 = {"Tom"};
name_table["Tom"] = item1;
TableItem item2 = {"Jerry"};
name_table["Jerry"] = item2;
// 查找名表中的元素
string key = "Tom";
if (name_table.find(key) != name_table.end()) {
cout << "找到了关键词为" << key << "的元素" << endl;
TableItem item = name_table[key];
// 处理item中的其他信息 ...
} else {
cout << "没有找到关键词为" << key << "的元素" << endl;
}
return 0;
}
```
其次,使用哈希表实现名表表示和查找功能的代码如下:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
const int NAME_LEN = 20;
const int TABLE_LEN = 100;
struct TableItem {
string name; // 关键词
// 其他信息 ...
};
vector<TableItem> name_table[TABLE_LEN]; // 声明一个名表
// 哈希函数
int hash_func(string key) {
int sum = 0;
for (int i = 0; i < key.length(); i++) {
sum += key[i];
}
return sum % TABLE_LEN;
}
int main() {
// 向名表中添加元素
TableItem item1 = {"Tom"};
int index1 = hash_func(item1.name);
name_table[index1].push_back(item1);
TableItem item2 = {"Jerry"};
int index2 = hash_func(item2.name);
name_table[index2].push_back(item2);
// 查找名表中的元素
string key = "Tom";
int index = hash_func(key);
bool found = false;
for (int i = 0; i < name_table[index].size(); i++) {
if (name_table[index][i].name == key) {
found = true;
cout << "找到了关键词为" << key << "的元素" << endl;
TableItem item = name_table[index][i];
// 处理item中的其他信息 ...
break;
}
}
if (!found) {
cout << "没有找到关键词为" << key << "的元素" << endl;
}
return 0;
}
```
以上两种实现方式都可以实现名表的表示和查找功能。其中,使用STL的容器map和unordered_map可以简化代码,而哈希表的实现方式需要手动实现哈希函数和处理哈希冲突的方法。
阅读全文