void course::get()//获得课程信息 { system("cls"); long k = 1, kk; cout << "*************请输入要查询的课程编号**************" << endl; cin >> kk; if (ishave(kk)) { for (size_t i = 0; i < c.size(); i++) if (c[i].number == kk) { cout << endl << "课程编号:" << c[i].number << " 课程名称:" << c[i].name << " 课程学分:" \ << c[i].credit << " 授课老师:" << c[i].teachername << endl; break; } } else { cout << "*************没有该课程******************" << endl; } cprintorget(); }
时间: 2023-07-19 09:58:37 浏览: 40
这段代码是一个 C++ 中的类 `course` 的成员函数 `get()`,用于获取课程信息。在函数中,首先清空屏幕,然后要求用户输入要查询的课程编号 `kk`。如果该编号存在(即 `ishave(kk)` 返回 `true`),则遍历存储课程信息的向量 `c`,找到对应编号的课程,输出该课程的编号、名称、学分和授课老师。如果该编号不存在,则输出提示信息“没有该课程”。
在函数的最后一行,调用了一个未定义的函数 `cprintorget()`,我不确定这个函数的作用。如果您能提供更多的代码或上下文信息,我可以更准确地回答您的问题。
相关问题
#include <iostream> using namespace std; void main() { int a,b,c,*pmax,*pmin; /*pmax,pmin为整型指针变量*/ cout<<"input three numbers:\n"; /*输入提示*/ cin>>a>>b>>c; /*输入三个数字*/ if(a>b) // { pmax=&a; // pmin=&b;} // else { pmax=&b; // pmin=&a;} // if(c>*pmax) pmax=&c; /*判断并赋值*/ if(c<*pmin) pmin=&c; /*判断并赋值*/ cout<<"max="<<*pmax<<'\n'<<"min="<<*pmin<<'\n'; /*输出结果*/ }
这是一个使用指针变量来查找三个数中的最大值和最小值的程序。程序中定义了整型变量a、b、c和整型指针变量pmax、pmin,用于存储输入的三个数和最大值、最小值的位置。通过比较三个数的大小,将最大值和最小值的指针分别指向对应的变量,最后输出最大值和最小值。需要注意的是,程序中main函数的返回类型应该为int,而不是void。正确的写法为:
```
#include <iostream>
using namespace std;
int main() {
int a,b,c,*pmax,*pmin; /*pmax,pmin为整型指针变量*/
cout<<"input three numbers:\n"; /*输入提示*/
cin>>a>>b>>c; /*输入三个数字*/
if(a>b) {
pmax=&a; // pmin=&b;
} else {
pmax=&b; // pmin=&a;
}
if(c>*pmax) pmax=&c; /*判断并赋值*/
if(c<*pmin) pmin=&c; /*判断并赋值*/
cout<<"max="<<*pmax<<'\n'<<"min="<<*pmin<<'\n'; /*输出结果*/
return 0;
}
```
class InformationUI { /*视角0第一视角1第三视角*/ int viewAngleEnum; /*球标图*/ int bubble; /*是否英制螺牙*/ int isEnglishSystem; /*是否添加研磨符号*/ int isLap; /*球标图大小*/ double bubbleSize; /*图纸路径*/ std::string drawSheetPath; /*客户标准*/ std::string customer; /*投影视图0主视图1右视图2前视图3左视图4后视图5正三轴*/ int view[6]; /*公共属性and属性值*/ std::map<std::string, std::string> commonAttrAndVal; /*被选中零件标记*/ std::string selLable; /*临时部件*/ static std::string tempPartName; }; 如何将这个类进行序列化和反序列化c++
对于这个类,可以使用C++标准库中的序列化工具来进行序列化和反序列化。下面是一个示例代码:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <map>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
class InformationUI {
public:
/*视角0第一视角1第三视角*/
int viewAngleEnum;
/*球标图*/
int bubble;
/*是否英制螺牙*/
int isEnglishSystem;
/*是否添加研磨符号*/
int isLap;
/*球标图大小*/
double bubbleSize;
/*图纸路径*/
std::string drawSheetPath;
/*客户标准*/
std::string customer;
/*投影视图0主视图1右视图2前视图3左视图4后视图5正三轴*/
int view[6];
/*公共属性and属性值*/
std::map<std::string, std::string> commonAttrAndVal;
/*被选中零件标记*/
std::string selLable;
/*临时部件*/
static std::string tempPartName;
// 序列化函数
friend class boost::serialization::access;
template <class Archive>
void serialize(Archive& ar, const unsigned int version) {
ar & viewAngleEnum;
ar & bubble;
ar & isEnglishSystem;
ar & isLap;
ar & bubbleSize;
ar & drawSheetPath;
ar & customer;
ar & view;
ar & commonAttrAndVal;
ar & selLable;
ar & tempPartName;
}
};
std::string serialize(const InformationUI& infoUI) {
std::ostringstream os;
boost::archive::text_oarchive oa(os);
oa << infoUI;
return os.str();
}
InformationUI deserialize(const std::string& str) {
std::istringstream is(str);
boost::archive::text_iarchive ia(is);
InformationUI infoUI;
ia >> infoUI;
return infoUI;
}
int main() {
InformationUI infoUI;
infoUI.viewAngleEnum = 1;
infoUI.bubble = 2;
infoUI.isEnglishSystem = 0;
infoUI.isLap = 1;
infoUI.bubbleSize = 3.14;
infoUI.drawSheetPath = "/path/to/drawsheet";
infoUI.customer = "customer1";
infoUI.view[0] = 0;
infoUI.view[1] = 1;
infoUI.view[2] = 2;
infoUI.view[3] = 3;
infoUI.view[4] = 4;
infoUI.view[5] = 5;
infoUI.commonAttrAndVal["attr1"] = "val1";
infoUI.commonAttrAndVal["attr2"] = "val2";
infoUI.selLable = "selected";
InformationUI::tempPartName = "tempPart";
std::string serialized = serialize(infoUI);
std::cout << "Serialized: " << serialized << std::endl;
InformationUI deserialized = deserialize(serialized);
std::cout << "Deserialized:" << std::endl;
std::cout << "viewAngleEnum: " << deserialized.viewAngleEnum << std::endl;
std::cout << "bubble: " << deserialized.bubble << std::endl;
std::cout << "isEnglishSystem: " << deserialized.isEnglishSystem << std::endl;
std::cout << "isLap: " << deserialized.isLap << std::endl;
std::cout << "bubbleSize: " << deserialized.bubbleSize << std::endl;
std::cout << "drawSheetPath: " << deserialized.drawSheetPath << std::endl;
std::cout << "customer: " << deserialized.customer << std::endl;
std::cout << "view: ";
for (int i = 0; i < 6; ++i) {
std::cout << deserialized.view[i] << " ";
}
std::cout << std::endl;
std::cout << "commonAttrAndVal: ";
for (const auto& it : deserialized.commonAttrAndVal) {
std::cout << it.first << "=" << it.second << " ";
}
std::cout << std::endl;
std::cout << "selLable: " << deserialized.selLable << std::endl;
std::cout << "tempPartName: " << InformationUI::tempPartName << std::endl;
return 0;
}
这里使用了boost库中的archive来进行序列化和反序列化。在序列化函数中,首先将对象os进行输出流处理,然后再将其序列化为字符串返回。在反序列化函数中,将输入流is绑定到输入字符串str上,然后将其反序列化为对象返回。在main函数中,我们创建了一个InformationUI对象,并对其成员变量进行初始化。然后使用serialize函数将其序列化为字符串,再使用deserialize函数将其反序列化为对象,并输出其成员变量的值。