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

网站 工作室做网站就业要会什么问题

网站 工作室,做网站就业要会什么问题,比亚迪新能源汽车秦,wordpress搜索不能用1 项目内容及要求 本项目通过设计一个抽象向量类模板#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.yutouwan.com/news/386058/

相关文章:

  • 手机版网站制作模板微商城怎么注册怎么弄
  • 西安网站建设怎么接单旅游网网站建设目的
  • 山东省两学一做网站兰州移动端网站建设
  • 网站建设推广报价seo推广技巧
  • 哈尔滨手机网站建设价格低seo如何使用wordpress优化
  • pc网站建设怎么做apicloud影视源码
  • 装修设计效果图网站建立网站大约多少钱
  • 合肥手机网站制作百度统计会对原网站产生影响吗
  • 谁可以教我做网站网站开发 外包 哪家
  • 聊城网站制作工作室注册公司需要啥资料
  • 邯郸做网站电话广州互联网企业100强
  • 南坪网站建设哪里好惠州网站建设 翻译
  • 如何编写一份网站开发需求文档大连网站建设蛇皮果
  • 抓取网站访客qq号码重庆有哪些建设公司
  • 网站主体注销长春网站建设 4435
  • 安徽省六安市建设局网站网站建设适合的企业
  • 深圳网站优化搜索成都公司网站开发
  • 专业微网站建设公司首选公司河间申梦网站建设制作
  • 织梦软件怎么使用域名做网站网页设计心得体会300
  • 网站建设需要哪些资质公司邮箱价格
  • 浙江做网站的公司有哪些有没有做网站源代码 修改的
  • 学校网站网页制作足球推介网
  • 微网站平台怎样做网站宁海网站建设
  • 单位做网站怎么做大型广告公司有哪些
  • 建设网站需要哪些职位网络规划设计师和信息系统项目管理师哪个好考
  • python怎么做专门的手机网站淘宝网站怎么做视频
  • 海外红酒网站建设汶上网站制作
  • 上海城市建设官方网站小说网站开发思路
  • 平台网站建设外包费用国外idc网站
  • 做网站的新闻科技有限公司英文