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

小说章节收费网站建设界面设计属于什么专业

小说章节收费网站建设,界面设计属于什么专业,网站定位方案,网站电脑端和手机端目录 一、题目 二、代码 三、算法分析 #xff08;一#xff09;数学表达式 #xff08;二#xff09; 代码实现 一#xff09;运算符重载函数 二#xff09;优化函数#xff08;实现有理数约分#xff09; 一、题目 通过运算符重载为类的成员函数来实现两个有…目录 一、题目 二、代码 三、算法分析 一数学表达式 二 代码实现 一运算符重载函数 二优化函数实现有理数约分 一、题目 通过运算符重载为类的成员函数来实现两个有理数对象的加减乘除运算 有理数是一个可以化为分数的数如2/3533/920,都是有理数而根号2、Π等就为无理数。 在C中并没有预先定义有理数需要时可以声明一个有理数类将有理数的分子和分母分别存放在nume和deno变量中对有理数的各种操作都可以用重载运算符来实现。可以写一个优化函数optimize它的作用时使有理数约去公分母也就是说使保存的有理数分子和分母之间没有公约数除1以外。在创建有理数对象时才能执行它在执行各种运算之后也能执行它从而保证所存储的有理数都是最优的。 二、代码 #includeiostream using namespace std; #includecmathclass Rational //定义有理数类 {public:Rational(int x0,int y1); //类的构造函数void print(); //打印出有理数Rational operator(Rational a); //类的运算符重载函数成员函数实现有理数加法private:int nume; //分子int deno; //分母void optimize(); //优化函数实现对有理数的约分 }; void Rational::optimize() //优化函数实现对有理数的约分 {int gcd,i; //gcd存放分子和分母较大的一个i记录更新的公约数if(nume0) //①如果分子为0则分母置1返回约分结束{deno1;return;}//②分子不为0继续约分操作gcd(abs(nume)abs(deno)?abs(nume):abs(deno)); //gcd为分子和分母中较大的一个if(gcd0) //若为0则无需约分返回结束约分操作return ;for(igcd;i1;i--) //for循环从gcd开始逐次-1判断是否为公约数找到一个即返回最大公约数{if((nume%i0)(deno%i)0) //判断是否为公约数break;}nume/i; //根据找到的最大公约数更新分子和分母deno/i;if(nume0deno0) //若分子分母同为负数则结果为正所以均改为正{nume-nume;deno-deno;}else if(nume0||deno0) //若分子分母中有一个为负则结果为负分子调整为负分母调整为正{nume-abs(nume);denoabs(deno);} } Rational::Rational(int x,int y) //构造函数的定义同时调用优化函数对有理数继续约分 {numex;denoy;optimize(); } void Rational::print() //打印有理数 {coutnume;if(nume!NULL) //①分子不为0cout/denoendl;else //②分子为0coutendl; } //函数返回的不是引用类型因为不可以作为左值 Rational Rational::operator(Rational a) //运算符重载函数实现类用户自定义的数据类型的加法运算 {Rational r; //定义一个临时变量自动调用类的构造函数占有栈区程序结束后系统自动调用析构函数释放内存r.denoa.deno*deno;r.numea.nume*denoa.deno*nume;r.optimize(); //运算完也需要约分return r; } int main() {Rational r1(3,14),r2(4,14),r3;r1.print();r2.print();r3r1r2;r3.print();return 0; }三、算法分析 有理数相加 一数学表达式 当两个有理数 和相加时可得到这样的算式                                                      分子分母分开存放                                                   分子a*db*c                                                   分母b*d 运算完毕后需要对词有理数继续优化 此操作可通过重载运算符“”实现。 二 代码实现 一运算符重载函数 代码 Rational Rational::operator(Rational a)    //运算符重载函数实现类用户自定义的数据类型的加法运算 {     Rational r;                       //定义一个临时变量自动调用类的构造函数占有栈区程序结束后系统自动调用析构函数释放内存     r.denoa.deno*deno;     r.numea.nume*denoa.deno*nume;     r.optimize();                     //运算完也需要约分     return r; } 分析 重载了运算符后在进行有理数运算时只需像基本类型的运算一样书写即可这样给用户带来了很大的方便并且很直观。 r3r1r2 执行时C可以解释为 r3r1.operator(r2)        由此可以看出C系统在处理算术表达式“r1r2”时把对表达式的处理自动转化为对成员运算符重载函数operator的调用r1.operator(r2)通过“”运算符左边的对象去调用operator“”右边的对象作为函数调用的实参。        这样双目运算符左边的对象就由系统通过this指针隐含地传递给operator函数。因此如果将双目运算符函数重载为类的成员函数其参数表只需写一个形参就可以了。        但必须要求运算表达式第一个参数运算符左边的操作数是一个类对象。而且与运算符函数的返回类型相同。这是因为必须通过类的对象去调用该类的成员函数而且只要运算符重载函数返回值与改对象同类型运算才有意义。 二优化函数实现有理数约分 代码 void Rational::optimize()        //优化函数实现对有理数的约分 {     int gcd,i;                   //gcd存放分子和分母较大的一个i记录更新的公约数     if(nume0)                  //①如果分子为0则分母置1返回约分结束     {         deno1;         return;     }                                  //②分子不为0继续约分操作     gcd(abs(nume)abs(deno)?abs(nume):abs(deno));  //gcd为分子和分母中较大的一个     if(gcd0)                                      //若为0则无需约分返回结束约分操作         return ;     for(igcd;i1;i--)                 //for循环从gcd开始逐次-1判断是否为公约数找到一个即返回最大公约数     {         if((nume%i0)(deno%i)0)   //判断是否为公约数         break;     }     nume/i;                //根据找到的最大公约数更新分子和分母     deno/i;     if(nume0deno0)      //若分子分母同为负数则结果为正所以均改为正     {         nume-nume;         deno-deno;     }     else if(nume0||deno0)  //若分子分母中有一个为负则结果为负分子调整为负分母调整为正     {         nume-abs(nume);         denoabs(deno);     } } 分析 寻找最大公约数的步骤 ①初始最大公约数gcd  gcd(abs(nume)abs(deno)?abs(nume):abs(deno));  //gcd为分子和分母中较大的一个 ②    判断是否为公约数 for(igcd;i1;i--)                 //for循环从gcd开始逐次-1判断是否为公约数找到一个即返回最大公约数     {         if((nume%i0)(deno%i)0)   //判断是否为公约数         break;     }
http://www.hkea.cn/news/14524196/

相关文章:

  • 网站建设专业用语网站建设类的公司名怎么起
  • 小说网站制作什么网站做旅行计划
  • 旅游网站建设普通论文wordpress 过滤插件
  • 免费行情网站在线资源下载站 wordpress
  • 网站建设seo优化培训防伪码网站怎么做
  • 手机网站自助展厅设计ppt优秀案例分析
  • 综合类门户网站有哪些python怎么做视频网站
  • 南宁网站建设公司招聘如何查看网站的访问量
  • 短视频网站平台怎么做wordpress 无法登录界面
  • 合川网站优化淄博网站建设 熊掌号
  • 张家港做网站多少钱wordpress导航图片
  • 在线建站模板wordpress 插件扫描
  • 企业网站的设计思路wordpress删除历史文档
  • 昆明网站建设时间手工小制作 小学生
  • 哪个浏览器可以看禁止访问的网站兰州新区规划建设管理局网站
  • 做网站钱世界青田网app
  • 关于建设网站的需求分析wordpress获取自定义文章分类名
  • 猪八戒建站服务外贸网店怎么开店
  • 怎么做新浪网站google谷歌搜索引擎
  • 3免费做网站云表无代码开发平台
  • 网站建设公司哪个好点快看点自媒体注册入口
  • 门户网站建设摘要网站首页建设公司
  • 外贸做的社交网站重庆机械加工网
  • 滕州手机网站建设余姚做网站哪家好
  • 石家庄网站建设方案推广你会回来感谢我的正能量视频
  • 电线电缆做销售哪个网站好小说网站用什么虚拟主机
  • 有做lol直播网站有哪些公路投资建设有限公司网站
  • 电商网站开源授权二次开发做网站的英文
  • 昌邑网站制作做网站 分辨率应该是多少
  • 网站建设做微营销wordpress制作vr全景