当前位置: 首页 > news >正文

专业点网站制作公司阿里云注册域名的步骤

专业点网站制作公司,阿里云注册域名的步骤,社交网站用户体验,留言板 wordpress1 项目内容及要求 本项目通过设计一个抽象向量类模板#xff0c;以及一个通用的向量类模板和一个字符串类作为其派生类#xff0c;以满足各种应用场景中的数据存储和处理需求。 项目内容#xff1a; 抽象向量类模板。派生向量类。派生字符串类。测试及异常处理。联合测试…1 项目内容及要求 本项目通过设计一个抽象向量类模板以及一个通用的向量类模板和一个字符串类作为其派生类以满足各种应用场景中的数据存储和处理需求。 项目内容 抽象向量类模板。派生向量类。派生字符串类。测试及异常处理。联合测试 2.1 抽象向量类模板 2.1.1 数据成员设计 int num;//向量的维度 T* p;//存储元素的数组 2.1.2 成员函数设计 VECTOR(int size 0, const T* x NULL)//构造函数 VECTOR(const VECTOR v)//拷贝构造函数 virtual ~VECTOR()//虚析构函数 VECTOR operator(const VECTOR v)//赋值运算符重载 T operator[](int index)//用于访问特定位置的元素 void resize(int size)//重设容器大小 virtual void Output(ostream out) const 0;//纯虚函数 virtual void Input(istream in) 0;//纯虚函数2.2 派生向量类模板 2.2.1 定义纯虚函数 void Output(ostream out) const {if (__super::num 0) out ( );else{out ( __super::p[0];for (int i 1; i __super::num; i){out , __super::p[i];}out ) endl;} }void Input(istream in) {char c;T x;__super::resize(0);in c;if (c ! () return;while (in x){__super::resize(__super::num 1);__super::p[__super::num - 1] x;in c;if (c )) break;} }2.2.2 成员函数设计 Vector(int size 0, const T* x NULL)//构造函数 Vector operator(const Vector v)//运算符重载 2.2.3 测试及异常处理 int TestVector() {int a[10] { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };double x[8];for (int i 0; i 8; i)x[i] sqrt(double(i));Vectorint vi1(10, a), vi2(5, a 5);Vectordouble vd1(8, x), vd2(3, x);cout 原始数据 endl;cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout 调整维数到5 endl;vi1.resize(5);vi2.resize(5);vd1.resize(5);vd2.resize(5);cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout \n将数据写入文件 vector.txt 中... endl;ofstream outfile(vector.txt);outfile vi1 \n vi2 vd1 \n vd2 endl;outfile.close();cout \n清除对象的数据(即调整维数到0)... endl;vi1.resize(0);vi2.resize(0);vd1.resize(0);vd2.resize(0);cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout \n从文件 vector.txt 中读取的数据 endl;ifstream infile(vector.txt);infile vi1 vi2 vd1 vd2;infile.close();cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout \nvi1 vi2 vi1 vi2 \nvd1 vd2 vd1 vd2 endl;cout \n异常处理测试 endl;Vectorint v;cout 请输入一个整数向量。如 (1, 3, 5, 7) endl;try{cin v;//如果格式错误则抛出异常}catch (const char* str){cout str endl;return 0;}return 0; }运行结果 2.3 派生字符串类 2.3.1 定义纯虚函数 void Output(ostream out) const {for (int i 0; i __super::num; i){out p[i];} }void Input(istream in) {string temp;in temp;*this temp.c_str(); }2.3.2 成员函数设计 String(const char* x )//构造函数 String operator(const String s)//运算符重载 2.3.3 测试及异常处理 int TestString() {String str1 Hello, str2 str1, str3;// 转换构造 拷贝构造 默认构造cout 原始数据双引号是另外添加的 endl;cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;str3 str2; // 赋值运算str1 C program.;str2 str3 , world!; // 拼接运算cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;cout \n将数据写入文件 string.txt 中... endl;ofstream outfile(string.txt);outfile str1 \n str2 \n str3 endl;outfile.close();cout \n清除对象的数据即调整长度到0... endl;str1.resize(0);str2.resize(0);str3.resize(0);cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;cout \n从文件 string.txt 中读取的数据 endl;ifstream infile(string.txt);infile str1 str2 str3;infile.close();cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;cout \n异常处理测试 endl;String str4 Hello;try{cout str4 endl;cout str4[10] endl;//越界访问抛出异常}catch (const char* str){cout str endl;return 0;}return 0; } 运行结果 3 联合测试 #include Vec.hint TestVector(), TestString(), Test();void menu() {cout \n1 --- testing Vector [v] \n2 --- testing String [s] \n3 --- testing Vector String [m] \n0 --- exit [q] endl; }int main() {char choice 0;do{menu();cin choice;switch (choice){case 1:case v:case V: TestVector(); break;case 2:case s:case S: TestString(); break;case 3:case m:case M: Test(); break;case 0:case q:case Q:case 27: choice 0; break;default: cout 选择错误重新选择 endl; break;}} while (choice);return 0; }int Test() {Vectorint v;String str;cout 请输入一个整数向量。如 (1, 3, 5, 7) endl;try{cin v;}catch (const char* str) { cout str endl;return 0;}cout v endl;cin.sync(); // 刷新输入流缓冲区目的是读取并丢弃向量后的换行符cout 请输入一个字符串。如 abc 12345 xyz endl;cin str;cout str endl;cout \n将数据写入文件 output.txt 中... endl;ofstream outfile(output.txt);outfile v endl str endl;outfile.close();cout \n清除对象的数据... endl;v.resize(0);str.resize(0);cout 向量 v endl 字符串\ str \ endl;cout \n从文件 output.txt 中读取的数据 endl;ifstream infile(output.txt);infile v;infile str;infile.close();cout 向量 v endl 字符串\ str \ endl;return 0; } 运行结果 4 完整代码 4.1 Vec.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include iostream #include fstream #include string using namespace std;template typename T class VECTOR { public:VECTOR(int size 0, const T* x NULL){num (size 0) ? size : 0;p NULL;if (num 0){p new T[num];for (int i 0; i num; i)p[i] (x NULL) ? 0 : x[i];}}VECTOR(const VECTOR v){num v.num;p NULL;if (num 0){p new T[num];for (int i 0; i num; i)p[i] v.p[i];}}virtual ~VECTOR(){if (p ! NULL) delete[] p;}VECTOR operator(const VECTOR v){if (num ! v.num){if (p ! NULL) delete[] p;p new T[num v.num];}for (int i 0; i num; i)p[i] v.p[i];return *this;}T operator[](int index){if (index num) throw 越界访问;else return p[index];}void resize(int size){if (size 0 || size num) return;else if (size 0){if (p ! NULL) delete[] p;num 0;p NULL;}else{T* temp p;p new T[size];for (int i 0; i size; i)p[i] (i num) ? temp[i] : 0;num size;delete[] temp;}}virtual void Output(ostream out) const 0;virtual void Input(istream in) 0;int num;//向量的维度T* p;//存储元素的数组 };template typename T ostream operator(ostream out, const VECTORT v) {v.Output(out);return out; }template typename T istream operator(istream in, VECTORT v) {v.Input(in);return in; }template typename T class Vector :public VECTORT { public:Vector(int size 0, const T* x NULL) :VECTORT(size, x) {}void Output(ostream out) const{if (__super::num 0) out ( );else{out ( __super::p[0];for (int i 1; i __super::num; i){out , __super::p[i];}out ) endl;}}void Input(istream in){char c;T x;__super::resize(0);in c;if (c ! () throw 格式错误;while (in x){__super::resize(__super::num 1);__super::p[__super::num - 1] x;in c;if (c )) break;}}Vector operator(const Vector v){Vector Add;if (__super::num v.__super::num){Add.resize(__super::num);for (int i 0; i __super::num; i){Add[i] __super::p[i] v.__super::p[i];}}return Add;}};class String : public VECTORchar { public:String(const char* x ) : VECTORchar(strlen(x), x) { }void Output(ostream out) const{for (int i 0; i __super::num; i){out p[i];}}void Input(istream in){string temp;in temp;*this temp.c_str();}String operator(const String s){int i, j;String add;add.__super::num __super::num s.__super::num;add.p new char[add.__super::num];for (i 0; i __super::num; i){add.p[i] p[i];}for (j 0; j s.__super::num; j){add.p[i j] s.p[j];}return add;}};4.2 Test.cpp #include Vec.hint TestVector(), TestString(), Test();void menu() {cout \n1 --- testing Vector [v] \n2 --- testing String [s] \n3 --- testing Vector String [m] \n0 --- exit [q] endl; }int main() {char choice 0;do{menu();cin choice;switch (choice){case 1:case v:case V: TestVector(); break;case 2:case s:case S: TestString(); break;case 3:case m:case M: Test(); break;case 0:case q:case Q:case 27: choice 0; break;default: cout 选择错误重新选择 endl; break;}} while (choice);return 0; }int Test() {Vectorint v;String str;cout 请输入一个整数向量。如 (1, 3, 5, 7) endl;try{cin v;}catch (const char* str) { cout str endl;return 0;}cout v endl;cin.sync(); // 刷新输入流缓冲区目的是读取并丢弃向量后的换行符cout 请输入一个字符串。如 abc 12345 xyz endl;cin str;cout str endl;cout \n将数据写入文件 output.txt 中... endl;ofstream outfile(output.txt);outfile v endl str endl;outfile.close();cout \n清除对象的数据... endl;v.resize(0);str.resize(0);cout 向量 v endl 字符串\ str \ endl;cout \n从文件 output.txt 中读取的数据 endl;ifstream infile(output.txt);infile v;infile str;infile.close();cout 向量 v endl 字符串\ str \ endl;return 0; }4.3 TestString.cpp #include Vec.hint TestString() {String str1 Hello, str2 str1, str3;// 转换构造 拷贝构造 默认构造cout 原始数据双引号是另外添加的 endl;cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;str3 str2; // 赋值运算str1 C program.;str2 str3 , world!; // 拼接运算cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;cout \n将数据写入文件 string.txt 中... endl;ofstream outfile(string.txt);outfile str1 \n str2 \n str3 endl;outfile.close();cout \n清除对象的数据即调整长度到0... endl;str1.resize(0);str2.resize(0);str3.resize(0);cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;cout \n从文件 string.txt 中读取的数据 endl;ifstream infile(string.txt);infile str1 str2 str3;infile.close();cout str1 \ str1 \\nstr2 \ str2 \\nstr3 \ str3 \ endl;cout \n异常处理测试 endl;String str4 Hello;try{cout str4 endl;cout str4[10] endl;//越界访问抛出异常}catch (const char* str){cout str endl;return 0;}return 0; }4.4 TestVector.cpp #include Vec.hint TestVector() {int a[10] { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };double x[8];for (int i 0; i 8; i)x[i] sqrt(double(i));Vectorint vi1(10, a), vi2(5, a 5);Vectordouble vd1(8, x), vd2(3, x);cout 原始数据 endl;cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout 调整维数到5 endl;vi1.resize(5);vi2.resize(5);vd1.resize(5);vd2.resize(5);cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout \n将数据写入文件 vector.txt 中... endl;ofstream outfile(vector.txt);outfile vi1 \n vi2 vd1 \n vd2 endl;outfile.close();cout \n清除对象的数据(即调整维数到0)... endl;vi1.resize(0);vi2.resize(0);vd1.resize(0);vd2.resize(0);cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout \n从文件 vector.txt 中读取的数据 endl;ifstream infile(vector.txt);infile vi1 vi2 vd1 vd2;infile.close();cout vi1 vi1 \nvi2 vi2 \nvd1 vd1 \nvd2 vd2 endl;cout \nvi1 vi2 vi1 vi2 \nvd1 vd2 vd1 vd2 endl;cout \n异常处理测试 endl;Vectorint v;cout 请输入一个整数向量。如 (1, 3, 5, 7) endl;try{cin v;//如果格式错误则抛出异常}catch (const char* str){cout str endl;return 0;}return 0; }注意 包含项目的文件夹中以下三个文本文档需要自行创建
http://www.hkea.cn/news/14426879/

相关文章:

  • 二维码网站建设源码微博 分享 wordpress
  • 苏州自助建站模板网站建设 技术方案模板
  • 怎么在网站首页做飘窗wordpress链接检查
  • 青岛网站设计制作本人做静态网站开发
  • php实现网站消息推送wordpress 权限 分类
  • 沈阳建站模板系统包括wordpress下载面板样式
  • 建设主管部门官方网站徐州做网站设计
  • 网站关键词的使用wordpress登录密码记录在哪里
  • 制作网站找哪家好WordPress 网格布局
  • 已有域名怎么做网站wordpress怎么做小说站
  • 网站经常被挂马安县建设局网站
  • 企业网站怎么做连接现在没人做网站了
  • 合肥建站企业在百度上如何上传自己的网站
  • 太原建设网站百度指数平台
  • 上海网站建设空间网站制作招聘
  • 我的网站怎么不能搜索买空间域名做网站
  • 大学生网站建设实践报告营销网站建设合同
  • 中信建设官方网站asp网站发送邮件
  • app和网站的成本区别方又圆网站建设
  • 遵义公司做网站找哪个公司好wordpress蜘蛛
  • 安徽房和城乡建设部网站html制作表格
  • c2c网站特点济南网站优化分析
  • c语言怎么做网站关于wordpress自动更新
  • 做的网站不能放视频软件使用微信推广的各种方法
  • seo建设网站手机与pc的网站开发
  • apache新建网站wordpress 熊掌号代码
  • 绍兴网站网站建设青海网页设计与网站建设
  • 自己的网站怎么做砍价网站建设中 网页代码
  • 建立网站怎么赚钱wordpress 肖
  • 北京网站开发公司一网天行网站建设与网页设计 视频教程