实验二 数组、指针与c++标准库
task5
Info.hpp代码如下
#include<iostream>
#include<string>
using namespace std;
class Info{
public:
Info(string nickname1,string contact1,string city1,int n1);
void print();
private:
string nickname,contact,city;
int n;
};
Info::Info(string nickname1,string contact1,string city1,int n1)
{
nickname=nickname1;
contact=contact1;
city=city1;
n=n1;
}
void Info::print()
{
cout<<"昵称:"<<nickname<<endl;
cout<<"联系方式:"<<contact<<endl;
cout<<"所在城市:"<<city<<endl;
cout<<"预定人数:"<<n<<endl;
}
task5.cpp 代码如下
#include<iostream>
#include"Info.hpp"
#include<vector>
using namespace std;
int main(){
const int capacity=100;
cout<<"录入信息:"<<endl;
cout<<endl;
cout<<"称呼/昵称,联系方式(邮箱/手机号),所在城市,预定参加人数"<<endl;
vector<Info>audience_info_list;
string s1,s2,s3;
int m,n1,n2=0;
int i=0;
while(cin>>s1&&cin>>s2&&cin>>s3&&cin>>m)
{
n1=capacity-m-n2;
if(n1<0)
{
cout<<"对不起,只剩"<<capacity-n2<<"个座位。"<<endl;
cout<<"1.输入u,更新(update)预定信息"<<endl;
cout<<"2.输入q,退出预定"<<endl;
char p;
cout<<"你的选择:";
cin>>p;
if(p=='u')
{
continue; //执行下次输入的循环
}
if(p=='q')
{
break;
}
}
audience_info_list.push_back(Info(s1,s2,s3,m));
//先判断加上本次预约人数后会不会超出总人数,若不超出再将预约信息存储到数组末尾
n2=n2+m; //计算此时预约人数
i++; //存储有几组预约信息
}
cout<<endl;
cout<<"截止目前,一共有"<<n2<<"位听众预定参加,预定听众信息如下:"<<endl;
for(int j=0;j<i;j++)
{
audience_info_list[j].print(); //将数组输出
}
return 0;
}
运行结果如下


task6
TextCoder.hpp代码如下
#include<iostream>
#include<string>
using namespace std;
class TextCoder{
public:
TextCoder(string text1);
string encoder();
string decoder();
private:
string text;
};
TextCoder::TextCoder(string text1)
{
text=text1;
}
string TextCoder::decoder() //解密函数
{
for(int i=0;i<text.size();i++)
{
if((text[i]>='f'&&text[i]<='z')||(text[i]>='F'&&text[i]<='Z'))
text[i]=text[i]-5;
else
{
if((text[i]>='a'&&text[i]<='e')||(text[i]>='A'&&text[i]<='E'))
text[i]=text[i]+21;
}
}
return text;
}
string TextCoder::encoder() //加密函数
{
for(int i=0;i<text.size();i++)
{
if((text[i]>='a'&&text[i]<='u')||(text[i]>='A'&&text[i]<='U'))
text[i]=text[i]+5;
else {
if((text[i]>='v'&&text[i]<='z')||(text[i]>='V'&&text[i]<='Z'))
text[i]=text[i]-21;
}
}
return text;
}
task6.cpp代码如下
#include"textcoder.hpp"
#include<iostream>
#include<string>
int main(){
using namespace std;
string text,encoded_text,decoded_text;
cout<<"输入英文文本:";
while(getline(cin,text))
{
encoded_text=TextCoder(text).encoder(); //这里使用的是临时无名对象
cout<<"加密后英文文本:"<<encoded_text<<endl;
decoded_text=TextCoder(encoded_text).decoder(); //这里使用的是临时无名对象
cout<<"解密后英文文本:"<<decoded_text<<endl;
cout<<"\n输入英文文本:";
}
}
运行结果如下


浙公网安备 33010602011771号