C++复习

点击打开链接  习题答案

1. 定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。用复数类定义复数对象c1、c2、c3c4,用带参数构造函数将c1初始化为c1=20+40i ,用默认构造函数将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。并重载+号运算符,实现c4=c1+c2,用公有成员函数Dispaly()显示c1、c2、c3 的内容。

#include<iostream>

using namespace std;

class Complex

{

private:

int real;

int image;

public:

Complex(){}

Complex(int x,int y)

{

real=x;

image=y;

}

Complex(Complex&c)

{

real=c.real;

image=c.image;

}

~Complex(){};

void display()

 {

  cout<<real<<'+'<<image<<'i'<<endl;

 }

};

void main()

{

 Complex c1(20,40);

Complex c2(0,0);

Complex c3(c1);

c1.display();

c2.display();

c3.display();

 system("pause");

}

 

 

2.编程实现一个TIME类,要求:

(1) 有带默认参数的构造函数和析构函数;

(2) 能按例如“2358:55”的形式输出时间;

(3) 能设置时间,在设置前能对设置的时间数据做合法判断。

   (4)能够实现加一秒的功能。

#include<iostream>

#include<cstdlib>

#include<Windows.h>

using namespace std;

class Time

{

private:

int hour;

int minute;

int second;

public:

Time() { cout << "众筹开始" << endl; }

~Time() { cout << "众筹结束" << endl; }

void Display(void) {

cout << hour << ":" << minute << ":" << second << endl;

}

void setTime(int x, int y, int z) {

if (x>23 && x<0 && y>59 && y<0 && z>59 && z<0)

{

cout << "error" << endl;

exit(1);

}

hour = x;

minute = y;

second = z;

}

void jia1miao(void) {

if (second<59)

second += 1;

else if (minute<59)

{

minute += 1;

second = 0;

}

else if (hour<23)

{

hour += 1;

minute = 0;

second = 0;

}

else

{

hour = 0;

     minute = 0;

     second = 0;

}

this->Display();

}

};

int main(void)

{

Time T;

T.setTime(15, 33, 55);

while (1)

{

T.jia1miao();

Sleep(1000);

system("cls");

}

system("pause");

return 0;

}

 

1、定义抽象基类Shape,由它派生出三个派生类:Circle(圆形)、Rectangle( 长方形)和Triangle(三角形),定义虚函数分别计算各种图形的面积

 

#include <iostream>

using namespace std;

class Shape

{ public:

    virtual double area() const =0;

};

class Circle:public Shape

{ public:

Circle(double r):radius(r){}

    virtual double area() const {return 3.14159*radius*radius;}; 

  protected:

    double radius;  

};

class Rectangle:public Shape

{ public:

 Rectangle(double w,double h):width(w),height(h){}

virtual double area() const {return width*height;}

 protected:

  double width,height; 

};

class Triangle:public Shape

{ public:

    Triangle(double w,double h):width(w),height(h){}

    virtual double area() const {return 0.5*width*height;}

  protected:

    double width,height; 

};

int main()

{

Circle circle(12.6); 

Rectangle rectangle(4.5,8.4);  

Triangle triangle(4.5,8.4); 

  Shape *pt[3]={&circle,,&rectangle,&triangle}; 

  double areas=0.0;  

  for(int i=0;i<3;i++)

    { areas=areas+pt[i]->area();}

  cout<<"totol of all areas="<<areas<<endl; 

return 0;

}

 

 

2、 实现一个计算器控制台程序,主程序提示用户输入两个运算数和运算符,由运算类完成相应的计算并输出结果

# include <iostream>

using namespace std;

class Operation

{

     private:

           double m_numberA;

           double m_numberB;         

     public:

          virtual double GetResult()

          {

              double result = 0; 

              return result;

          }

         double getA(){ return m_numberA; }

         double getB(){ return m_numberB; }

         void setA(double numberA){ m_numberA=numberA; }

         void setB(double numberB){ m_numberB=numberB; }

} ;

class OperationAdd : public  Operation

{

     public :

     double GetResult()

     {

           double result = 0; 

           result = getA()+ getB();

           return result;

     }

} ;

class OperationSub : public  Operation

{

     public :

     double GetResult()

     {

           double result = 0; 

           result = getA()- getB();

           return result;

     }

} ;

class OperationFactory

{   public:

          static Operation*  createOperate(char operate){

               switch(operate)

               {

               case ’+’:

                   { return new OperationAdd();  }

               case ’-’:

                   { return new  OperationSub(); }

               case ’*’:

                   { return new OperationMul(); }

               case ’/’:

                  {  return new OperationDiv();  }

              }

         }

} ;

void main()

{

   Operation *oper;

   OperationFactory  operfactory;

   oper=operfactory.createOperate(’+’);

   oper->setA(1);

   oper->setB(2);

   double result = oper->GetResult();

   cout<<result;

}

 


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
苏州大学C复习题主要涵盖了计算机科学与技术、软件工程、物联网工程和信息安全等方面的知识点。这些知识点包括数据结构与算法、操作系统、数据库、网络原理、编程语言等。 复习时,可以从以下几个方面入手进行准备: 首先,要熟悉各门课程的基本概念和理论知识。例如,数据结构与算法的常见数据结构包括链表、栈、队列、树等,需要了解它们的定义、特点和基本操作。操作系统主要涉及进程管理、内存管理、文件系统等概念和原理,需要掌握它们的工作原理和常用的管理方法。数据库方面需要了解关系数据库的基本概念、SQL语言的使用和数据库设计等知识点。网络原理包括IP地址、路由、传输协议等内容,需要掌握网络的基本结构和工作原理。编程语言方面,C语言和Java语言是常见的学习对象,需要了解它们的基本语法和常用的编程技巧。 其次,要进行实践训练。可以通过做题、编程练习和实验等方式来巩固理论知识。做题可以选择一些练习题或往年考试题进行练习,掌握解题思路和方法。编程练习可以选择一些常见的算法题或实际问题,通过编写代码来加深对知识的理解和掌握。实验方面,可以选择一些自己感兴趣的项目或课程实验,通过动手实践来增加实际操作经验。 最后,要进行综合复习和总结。可以通过整理知识点的思维导图或笔记,加深对知识的整体把握和理解。在复习过程中,要及时总结和回顾之前学过的知识,加深印象。可以组织小组讨论或参加学习交流活动,与他人分享和交流学习心得和问题,相互帮助和提高。 综上所述,复习苏州大学C复习题需要全面准备各门课程的知识点,进行实践训练并进行综合复习和总结。通过系统学习和练习,相信能够顺利应对复习题和考试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值