首页 > 其他分享 >实验三

实验三

时间:2022-10-20 21:34:23浏览次数:30  
标签:num0 string text 实验 && contact0 city0

实验任务五

     info.hpp

#pragma once
#include<bits/stdc++.h>
using namespace std;
class Info{
	public:
	Info(string nick0,string contact0,string city0,int num0);
	void print()const;
	private:
	 string nickname,contact,city;
	 int n;

};
Info::Info(string nick0,string contact0,string city0,int num0):nickname{nick0},contact{contact0},city{city0},n{num0}{};
void Info::print() const { cout << left << endl
        << setw(17) << "称呼:" << setw(17) << nickname
        << setw(17) << "\n联系方式:" << setw(17) << contact
        << setw(17) << "\n所在城市:" << setw(17) << city
        << setw(17) << "\n预定人数:" << setw(17) << n << endl;
		}

  

      task5.cpp

#include"info.hpp"
#include<bits/stdc++.h>
using namespace std;

int main(){
	string nick0,contact0,city0;
	const int capacity = 50;
	char a;
	int num=0,num0,num1;
	cout << "录入信息:\n称呼/昵称   联系方式(邮箱/手机号)    所在城市    预定参加人数\n";
	vector<Info> audience_info_list;
    
	while(cin>>nick0>>contact0>>city0>>num0){
	
		Info x(nick0,contact0,city0,num0);
		audience_info_list.push_back(x);
		num+=num0;
		if(num<capacity)
		cout<<"还有"<<capacity-num<<"个位置\n";
		if(num>capacity){
			cout<<"参加人数已达上限,请输入q退出预定,或输入u更新预定信息:";
			cin>>a;
			if(a=='q')	break;
			else if(a=='u'){
			 num-=num0;
			 top:
			 cout<<"仅剩"<<capacity-num<<"个位置\n";
			 cout<<"请更新信息:\n\n称呼/昵称   联系方式(邮箱/手机号)    所在城市    预定参加人数\n"<<endl;
			cin>>nick0>>contact0>>city0>>num1;
			Info x1(nick0,contact0,city0,num1);
			audience_info_list.pop_back();
			audience_info_list.push_back(x1);
			num+=num1;
			if(num>capacity){
			  cout<<"对不起,位置不足,请重新录入信息"<<endl;
			  num-=num1;
			  goto top;
			}
			cout<<"信息更新完毕,系统可继续录入信息。"<<endl;
			cout<<"还有"<<capacity-num<<"个位置\n";
			cout<<"录入信息:\n\n称呼/昵称   联系方式(邮箱/手机号)    所在城市    预定参加人数\n";
			}		
	}
	      else if(num==capacity){cout<<"还有0个位置"<<endl;break; }
}    
     cout<<"截至目前,共有"<<num<<"位听众预定参加。预定听众信息如下:"<<endl;
         for(auto &item:audience_info_list){
		item.print();
	}
}

  

实验任务六

     textcoder.hpp

  

#pragma once
#include<bits/stdc++.h>
using namespace std;
class TextCoder{
	public:
		TextCoder(string text1):text{text1}{};
		string get_ciphertext();
		string get_deciphertext();
	private:
		void encoder(string &text);
		void decoder(string &text);
		string text;
};
string TextCoder::get_ciphertext(){
	encoder(text);
	return text;
}
string TextCoder::get_deciphertext(){
	decoder(text);
	return text;
}
void TextCoder::encoder(string &text){
	for(int i=0;i<text.length();i++){
	if((text[i]>='a'&&text[i]<='u')||(text[i]>='A'&&text[i]<='U')){
	   text[i] = text[i] + 5;//每个英文字母用其后的第5个英文字母替换
    }
	else if((text[i]>'u'&&text[i]<='z')||(text[i]>'U'&&text[i]<='z')){
	 text[i] = text[i] - 21;
	}  
	}
}
void TextCoder::decoder(string &text){
	for(int i=0;i<text.length();i++){
	if((text[i]>='a'&&text[i]<'f')||(text[i]>='A'&&text[i]<'F')){
	 text[i] = text[i] + 21;  //每个英文字母用其前的第5个英文字母替换
	}
	else if((text[i]>='f'&&text[i]<='z')||(text[i]>='F'&&text[i]<='Z')){
	   text[i] = text[i] - 5;
	}
}
}

  task6.cpp

#include"textcoder.hpp"
#include<iostream>
#include<string>

void test() {
    using namespace std;

    string text, encoded_text, decoded_text;

    cout << "输入英文文本: ";
    while (getline(cin, text)){
        encoded_text = TextCoder(text).get_ciphertext();  // 这里使用的是临时无名对象
        cout << "加密后英文文本:\t" << encoded_text << endl;

        decoded_text = TextCoder(encoded_text).get_deciphertext(); // 这里使用的是临时无名对象
        cout << "解密后英文文本:\t" << decoded_text << endl;
        cout << "\n输入英文文本: ";
    }
}

int main(){  
    test(); 
}

  

 

textcoder.hpp中,void成员函数对text作形参使用引用类型 属于改bug能改出来 ,一个注意点

标签:num0,string,text,实验,&&,contact0,city0
From: https://www.cnblogs.com/nitendoblog/p/16811378.html

相关文章

  • 实验5:开源控制器实践——POX
    基础要求只需要提交h1pingh2、h2和h3的tcpdump抓包结果截图,外加L2_learning模块代码流程图,其余文字请勿赘述;h1pingh2h1pingh3结论:无论h1pingh2还是h1ping......
  • 实验3 数组、指针与现代C++标准库
    实验任务五:Info.hpp:#pragmaonce#include<iostream>#include<string>#include<iomanip>usingnamespacestd;classInfo{private:stringnickname,cont......
  • Python第七章实验报告
    一、实验题目Python第七章实例和实战作业二、实验目的和要求1.熟悉Pycharm的运行环境2.学习并掌握Python的面向对象程序设计三、主要仪器设备联想小新air15硬件:AMD......
  • 实验2
    1:生成随机数并赋给number2:生成学号随机数第i行有2(n-i)+1个数 ......
  • 第三次实验
    task5:#include<iostream>#include<vector>#include<string>#include"5.1.h"usingnamespacestd;intmain(){cout<<"录入信息:"<<endl;cout<<"昵称"<<"......
  • 实验3 数组、指针与现代C++标准库
    实验5#pragmaonce#include<iostream>#include<string>#include<iomanip>usingnamespacestd;classinfo{public:info(stringnickname0,stringcontact......
  • 实验3
    实验任务51#pragmaonce23#include<iostream>4#include<iomanip>5#include<string>67usingstd::cout;8usingstd::endl;9usingstd::cin;1......
  • 实验五:开源控制器实践——POX
    (一)基本要求1、POX的forwarding.hubh1pingh2h1pingh3h2pingh3结论:将数据包广播转发2、POX的forwarding.l2_learningh1pingh2h1pingh3h2pingh3......
  • 实验三
    Info.hpp#include<iostream>#include<string>usingnamespacestd;classInfo{public:Info(stringname="",stringcon="",stringci="",intnu=0):ni......
  • 实验5:开源控制器实践——POX
    (一)基本要求:1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,控制器使用部署于本地的POX(默认监听6633端口)1)生成拓扑:sudomn--topo=single,3--mac--controller=remote,ip......