作业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
浙公网安备 33010602011771号