作业13

头函数:menu.h

#pragma once

#if!(menu_H)

#define menu_h

#include <iostream>

using namespace std;

class calc

{

private:

  int a, b, p, m;

public:

  calc() {};

  void input();

  void input1();

  void input2();

  void input3();

  void input4();

  void input5();

  double input6();

  int jia();

  int jian();

  int mul();

  int div();

  void display1();

  void display2();

  void display_mul();

  void display_div();

  int display_pow(int);

};

//菜单

void menu()

{

  cout << "\n*********************************\n" << endl;

  cout << "---1. 加---";

  cout << endl;

  cout << "---2. 减---";

  cout << endl;

  cout << "---3. 乘---";

  cout << endl;

  cout << "---4. 除---";

  cout << endl;

  cout << "---5. 平方---";

  cout << endl;

  cout << "---6. 平方根---";

  cout << endl;

  cout << "---0. 退出---";

  cout << endl;

  cout << "\n*********************************\n" << endl;

}

//退出菜单

void menu_bye()

{

  cout << "\n*********************************\n" << endl;

  cout << endl;

  cout << "欢迎使用本系统";

  cout << endl;

  cout << " 再见";

  cout << endl;

  cout << "\n*********************************\n" << endl;

}

#endif

源程序

#include <cmath>

#include "menu.h"

//以下对函数定义

int calc::jia()

{

  return a + b;

}

int calc::jian()

{

  return a - b;

}

int calc::mul()

{

  return a * b;

}

int calc::div()

{

  if (b == 0)

  {

    cout << "除数不能为零!请重新输入..." << endl;

    cout << "请输入两个整数:";

    cin >> a >> b;

    eturn 1;

  }

  else

    return a / b;

}

void calc::input()

{

  cout << "请输入两个整数:";

  cin >> a >> b;

}

void calc::input1()

{

  input();

  jia();

}

void calc::input2()

{

  input();

  jian();

}

void calc::input3()

{

  nput();

  mul();

}

void calc::input4()

{

  input();

  div();

}

double calc::input6()

{

  cout << "输入一个整数,求平方根:";

  cin >> m;

  double q = sqrt(m);

  return q;

}

void calc::display1()

{

  cout << "两数之和=" << jia() << endl;

}

void calc::display2()

{

  cout << "两数之差=" << jian() << endl;

}

void calc::display_mul()

{

  cout << "两数之积=" << mul() << endl;

}

void calc::display_div()

{

  cout << "两数之商=" << div() << endl;

}

int calc::display_pow(int q)

{

  return q * q;

}

//主函数

int main()

{

  calc add;

  calc sub;

  calc mul;

  calc div;

  calc pow;

  calc sqrt;

  int c;

  menu();

  while (1)

  {

    cout << "请选择:";

    cin >> c;

    switch (c)

    {

      case 1:

      add.input1();

      add.display1();

      break;

 

      case 2:

      add.input2();

      add.display2();

      break;

 

      case 3:

      add.input3();

      add.display_mul();

      break;

 

      case 4:

      add.input4();

      add.display_div();

      break;

 

      case 5:

      int p;

      cout << "请输入一个正整数:";

      cin >> p;

      cout << "该数的平方是:" << pow.display_pow(p) << endl;

      break;

 

      case 6:

      cout << "该数的平方根是:" << sqrt.input6() << endl;

      break;

 

      case 0:

      system("cls");

      menu_bye();

      exit(1);

      break;

 

      default:

      cout << "输入错误!" << endl;

      break;

    }

  }

  return 1;

}

作业14

#include<iomanip>

#include<iostream>

const int MAXSIZE=10;

using namespace std;

int*InitArray()

{

  int i;

  int*p=new int[10];

  for(i=0;i<10;i++)

  p[i]=-1;//给数据中的每个元素初始化为-1

  return p;

}

//逆序输出

void reverse(int b[])

{

  for(int i=0;i<MAXSIZE/2;i++)

  {

    int temp;

    temp=b[i];

    b[i]=b[MAXSIZE-1-i];

    b[MAXSIZE-1-i]=temp;

  }

}

//在数组中查找值为k的元素

int search(int A[],int n,int k)

{

  int i=0;

  while(i<n)

  {

    if(A[i]!=k)

    i++;

    else

    break;

  }

  return i;

}

int main()

{

  int a[10]={34,5,8,12,35,69,40,33,19,28};

  int *b=InitArray();

  int i;

  for(i=0;i<10;i++)

    b[i]=a[i];//数组赋值

    cout<<"数组中的数为:"<<endl;

  for(i=0;i<10;i++)

    cout<<setw(4)<<a[i];

  cout<<endl;

  cout<<"逆序输出数组:"<<endl;

  reverse(b);

  for(i=0;i<MAXSIZE;i++)

   cout<<setw(4)<<b[i];

  cout<<endl;

  int x;

  cout<<"\n在数组中查找一个数,若找到显示其位置,没找到则显示-1"<<endl;

  cout<<"请输入要查找的数:";

  cin>>x;

  int pos=search(a,10,x);

  if(pos<10)

    cout<<"这个数的位置是:"<<pos+1<<endl;

  return 1;

}

作业15

#include <iostream>

#include <cmath>

using namespace std;

class CShape//图形类,基类

{

protected:

  double acreage;//面积

public:

  CShape(){};

  virtual ~CShape(){}

  virtual double CalAcr()//计算面积

  {

    return 0;

  };

  virtual void setAcreage(double acre) {};

  virtual void PrintInfo() {};

};

class CRectangle:public CShape//长方形作为子类

{

  double width, high;

public:

  CRectangle(double w, double h)

  {

    width = w;

    high = h;

  }

  CRectangle()
  {

    width = 0;

    high = 0;

  }

  ~CRectangle()

  {

    cout<<"矩形析构函数"<<endl;

  }

  double CalAcr();//都是虚函数

  void PrintInfo();

  void setAcreage(double);

};

class CCircle :public CShape//圆作为子类

{

  double radius;

public:

  CCircle(double r)

  {

    radius = r;

  }

  CCircle()

  {

    radius = 0;

  }

  ~CCircle(){}

  double CalAcr();

  void PrintInfo();

  void setAcreage(double)

};

class CTriangle :public CShape//三角形作为子类

{

  double a, b, c;

public:

  CTriangle(double a, double b, double c)

  {

    this->a=a;

    this->b=b;

    this->c=c;

  }

  CTriangle()

  {

    a = 0;

    b = 0;

    c = 0;

  }

  ~CTriangle(){}

  double CalAcr();

  void PrintInfo();

  void setAcreage(double);

};

double CRectangle::CalAcr()

{

  return width*high;

}

void CRectangle::PrintInfo()

{

  cout << "矩形.\t 宽度=" << this->width << ",高度 =" << this->high << ", 面积" << this->acreage << endl;

}

void CRectangle::setAcreage(double acre)

{

  acreage=acre;

}

double CCircle::CalAcr()

{

  return 3.14*radius*radius;

}

void CCircle::PrintInfo()

{

  cout << "圆.\t 半径=" << this->radius << ",面积" << this->acreage << endl;

}

void CCircle::setAcreage(double acre)

{

  acreage=acre;

}

double CTriangle::CalAcr()

{

  double p=(a+b+c)/2.0;

  return sqrt(p*(p-a)*(p-b)*(p-c));

}

void CTriangle::PrintInfo()

{

  cout << "三角形.\t三条边分别是: " <<this->a << "," <<this->b << "," <<this->c << ",面积=" <<this->acreage <<endl;

}

void CTriangle::setAcreage(double acre)

{

  acreage =acre;

}

CShape* pShapes[100];

int main()

{

  int i,n;

  double temp1,temp2,temp3;

  CRectangle* pr;

  CCircle* pc;

  CTriangle* pt;

  cout<<"请输入图形个数:";

  cin >> n;

  for (i=0;i<n;++i)

  {

    char c;

    cin>>c;

    switch (c)

    {

      case'R':case'r':

        cin>>temp1>>temp2;

        pr=new CRectangle(temp1,temp2);

        pr->setAcreage(pr->CalAcr());

        pShapes[i]=pr;

        break;

 

      case'C':case'c':

        cin>>temp1;

        pc=new CCircle(temp1);

        pc->setAcreage(pc->CalAcr());

        pShapes[i]=pc;

        break;

 

      case'T':case't':cin>>temp1>>temp2>>temp3;

        pt=new CTriangle(temp1,temp2,temp3);

        pt->setAcreage(pt->CalAcr());

        pShapes[i]=pt;

        break;

    }

  }

  if (n == 1)

    cout<<"共有 "<<n<<"种图形,它是"<<endl;

  else

    cout <<"共有 "<<n<<"种图形,分别是"<<endl;

  for (i = 0; i < n; ++i)

  {

    pShapes[i]->PrintInfo();

    delete pShapes[i];

  }

  system("pause");

  return 0;

}

 posted on 2021-06-27 16:07  HuJiao粉  阅读(45)  评论(0)    收藏  举报