长方柱类【C++ 类定义】
编写基于对象的程序,求长方柱(Bulk)的体积。数据成员包括长(length)、宽(width)、高(heigth)、体积,要求用成员函数实现下面的功能:
(1)由键盘输入长方柱的长、宽、高;
(2)计算长方柱的体积(volume)和表面积(areas);
(3)输出这长方柱的体积和表面积。
#include <iostream>
using namespace std;
class Bulk
{
public:
void set_value();
double get_volume();
double get_area();
private:
double lengh;
double width;
double height;
};
//下面定义成员函数
void Bulk::set_value()
{
cin>>lengh>>width>>height;
}
//用main()函数测试,完成输入输出
double Bulk::get_volume()
{
return lengh*width*height;
}
double Bulk::get_area()
{
return 2*(lengh*width+lengh*height+width*height);
}
int main()
{
Bulk b1;
b1.set_value();
cout<<b1.get_volume()<<endl;
cout<<b1.get_area()<<endl;
return 0;
}
大斐波那契数列
斐波那契数列,又称黄金比例数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F[0]=1,F[1]=1,F[n]=F[n-1]+F[n-2](n>=2,n∈N*)。总之斐波纳契数列有很多应用,现在你能用类的方法实现吗?
#include <iostream>
using namespace std;
class ff
{
public:
void count();
void output()
{
for(int i=0; i<51; i++)
cout<<f[i]<<endl;
}
private:
long long f[100000];
};
void ff::count()
{
int i;
f[0]=f[1]=1;
for(i=2; i<51; i++)
f[i]=f[i-1]+f[i-2];
}
int main()
{
ff a;
();
();
return 0;
}
删除线性表节点(线性表)
已知长度为n的线性表A采用链式存储结构,请写一时间复杂度为0(n)、空间复杂度为0(1)的算法,该算法删除线性表中所有值为item的数据元素。(O(1)表示算法的辅助空间为常量)。
#include <iostream>
using namespace std;
struct node
{
int data;
node *next;
};
node *createlist(node *head,int n)
{
node *previous; //前驱结点
node *current; //当前结点
if(n<1)
{
return NULL; //建立空链表
}
previous=head=new node; //建立首结点
cin>>head->data; //输入数据
while(--n)
{
current=new node; //建立新结点
cin>>current->data; //输入数据
previous->next=current; //新节点挂在表尾
previous=current;
}
previous->next=NULL; //置表尾结束标志
return head; //返回首结点指针
}
node *listdel(node *head,int item)
{
node *temp;
/* 从头找到第一个不等于item的结点 */
while(head!=NULL&&head->data==item)
{
temp = head;
head=head->next;
delete temp; //删除该节点
}
if(head==NULL)
return NULL;
node *previous=head; //前驱结点
node *current = head->next; //当前结点
while(current!=NULL)
{
/* 删除连续相同的结点*/
while(current!=NULL&¤t->data==item)
{
current=current->next;
}
previous->next=current; //重新连接结点
if(current==NULL)
break;
previous=current;
current=current->next; //当前结点后移
}
return head;
}
void output(node *head)
{
node *current=head;
while(current!=NULL)
{
cout<<current->data<<" "; //输出结点数据
current=current->next; //结点指针后移
}
}
int main()
{
node *head=NULL;
int n,item;
cin>>n;
head=createlist(head,n);
cin>>item;
head=listdel(head,item);
output(head);
return 0;
}
处理成绩(c++类训练)
小平帮老师处理期末成绩时遇到了问题。他需要计算每个同学的平均成绩,并判断他们是否通过了期末考试不及格成绩(<60),若都通过才能pass,若没通过要说明是哪几科未通过。因此他需要两个函数,一个求平均成绩(不考虑小数),另一个判断是否通过考试,通过输出pass,否则输出未通过的科目。请你们帮帮他!
期末包括Chinese,Math,English三门课程。
#include <iostream>
using namespace std;
int main()
{
int n,Chinese,Math,English;
cin>>n>>Chinese>>Math>>English;
cout << "student:" <<n<<endl;
int avg=(Chinese+Math+English)/3;
cout<<avg<<endl;
if(avg>=60)
cout<<"pass";
else
{
if(Chinese<60)
cout<<"Chinese"<<endl;
if(Math<60)
cout<<"Math"<<endl;
if(English<60)
cout<<"English"<<endl;
}
return 0;
}
C++类实现最大数的输出
输入n个数,找出最大的数并输出。
#include <iostream>
using namespace std;
class Q
{
public:
//此处声明需要的成员函数
void set_value();
int get_Max();
private:
int n;
int a[100];
};
//下面定义成员函数
//用main()函数测试,完成输入输出
void Q::set_value()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
}
int Q::get_Max()
{
int Max=a[0];
for(int i=0;i<n;i++)
if(Max<a[i])
Max=a[i];
return Max;
}
int main()
{
Q b1;
b1.set_value();
cout<<b1.get_Max()<<endl;
return 0;
}
类的应用
设计一个栈类完成压栈和出栈操作。
•栈有下面这样的特点:
1) 用数组描述的顺序栈,只有一个对数据进行存入和取出的端口;
2) 后进者先出,即最后被存入的数据将首先被取出。取出也只可以从顶端进行,即后进先出。
提交压栈,出栈函数即可
#include<iostream>
using namespace std;
class stack
{
float data[6];
int top;
public:
stack(void);
void push(float a);
float pop(void);
};
stack::stack(void)
{
top=0;
cout<<"stack initialized" ;
}
// 此处为进栈、出栈函数
void stack::push(float a)
{
data[top++]=a;
}
float stack::pop(void)
{
return data[--top];
}
int main()
{
stack s1;
int i;
for(i=1; i<=6; i++)
(2*i);
for(i=1; i<=6; i++)
cout<<()<<" ";
}
A类设计--正方形
设计一个基于对象的程序,计算正方形的周长和面积并输出。
#include <>
#include <iostream>
using namespace std;
class Square
{
private:
int SideLength;
int Perimeter ;
int Area;
public:
Square(int len);
void calcPerimeter();
void calcArea();
void showPeriArea();
};
Square::Square(int len)
{
SideLength=len;
}
void Square::calcPerimeter()
{
Perimeter=4*SideLength;
}
void Square::calcArea()
{
Area=SideLength*SideLength;
}
void Square::showPeriArea()
{
cout<<Perimeter<<" "<<Area;
}
int main()
{
int len;
cin>>len;
Square sq(len); //边长
(); //计算周长
(); //计算面积
(); //输出周长和面积
return 0;
}
编程题:类---矩形类
类---矩形类Rectangle
设计一个面向对象的程序,计算矩形的周长和面积并输出。
矩形类中有两个数据成员,width成员表示矩形的宽,length成员表示矩形的长;
矩形类中有成员函数getArea来获取矩形的面积,成员getPerimeter来获取矩形的周长,还有适当的构造函数。
请在下面的程序段基础上完成设计,只提交begin到end部分的代码:
#include <iostream>
using namespace std;
class Rectangle
{
public:
Rectangle(int w,int l);
int getArea();
int getPerimeter();
private:
int width;
int length;
};
Rectangle::Rectangle(int w,int l)
{
width=w;
length=l;
}
int Rectangle::getArea()
{
return length*width;
}
int Rectangle::getPerimeter()
{
return 2*(length+width);
}
int main()
{
int width,length;
cin>>width>>length;
Rectangle r(width,length);
cout<<"Area="<<()<<endl;
cout<<"Perimeter="<<()<<endl;
return 0;
}
xiaoping学构造函数
xiaoping刚接触类的构造和析构函数,对于构造函数的编写比较困惑。zhuangzhuang给小平布置了一道题目,xiaoping苦思两天也无法解答,请你帮帮xiaoping吧。
#include <iostream>
using namespace std;
class XiaoPing
{
private:
int state; //用来记录是否有参数
int data;
public:
XiaoPing();
XiaoPing(int data);
~XiaoPing();
};
XiaoPing::XiaoPing()
{
state=0;
cout<<"create an object with no parameter"<<endl;
}
XiaoPing::XiaoPing(int data)
{
state=1;
this->data=data;
cout<<"create an object with a parameter:"<<data<<endl;
}
XiaoPing::~XiaoPing()
{
if(state)
cout<<"destory an object with a parameter:"<<data<<endl;
else
cout<<"destory an object with no parameter"<<endl;
}
int main()
{
int data;
XiaoPing zeropara1;
cin>>data;
XiaoPing onepara1(data);
XiaoPing zeropara2;
cin>>data;
XiaoPing onepara2(data);
return 0;
}
对象数组输入与输出
Description
建立一个对象数组,内放n(n<10)个学生的数据(学号、成绩),用指针指向数组首元素,输出第奇数(1,3,5,7)个学生的数据
#include <iostream>
#include <iomanip>
using namespace std;
class Student
{
private:
int num;
double grades;
public:
void input();
void display();
} ;
void Student::input()
{
cin>>num>>grades;
}
void Student::display()
{
cout<<num<<" "<<grades<<endl;
}
int main()
{
const int NUM=10;
Student stud[NUM];
int n,i;
cin>>n;
for(i=0; i<n; i++)
stud[i].input();
cout<<setiosflags(ios::fixed);
cout<<setprecision(2);
Student *p=stud;
for(i=0; i<n; p+=2,i+=2)
p->display();
return 0;
}
矩形类定义【C++】
定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数、输入坐标的函数,以及计算并输出矩形面积的函数。要求使用提示中给出的测试函数并不得改动
#include <iostream>
using namespace std;
class Rectangle
{
private:
double a,b,c,d;
public:
Rectangle(){}
Rectangle(double a,double b,double c,double d);
Rectangle(Rectangle &p);
void input();
void output();
};
void Rectangle::input()
{
cin>>a>>b>>c>>d;
}
void Rectangle::output()
{
cout<<(c-a)*(d-b)<<endl;
}
Rectangle::Rectangle(double a,double b,double c,double d)
{
this->a=a;
this->b=b;
this->c=c;
this->d=d;
}
Rectangle::Rectangle(Rectangle &p)
{
a=;
b=;
c=;
d=;
}
int main()
{
Rectangle p1;
();
();
Rectangle p2(p1);
();
Rectangle p3(1,1,6,3);
();
return 0;
}
统计程序设计基础课程学生的平均成绩
程序设计基础课程的学生成绩出来了,老师需要统计出学生个数和平均成绩。学生信息的输入如下:
学号(num) 学生姓名(name) 成绩(score)
101 张三 100
102 李四 89
103 王五 59
在下面的程序段基础上完成整个设计,统计学生个数和计算学生的平均成绩。
注意:
(1)程序中与成绩相关的数据都用整型数据,得到的平均成绩也用整数表示
(2)要求用静态数据成员和静态成员函数
(3)只提交begin到end部分的代码
#include <iostream>
using namespace std;
class student
{
private:
int num; //学号
char name[20]; //姓名
int score; //成绩
static int count; //记录对象个数
static int sum; //记录总成绩
public:
student(); //构造函数
void input() //学生信息输入
{
cin>>num>>name>>score;
}
int getsum(); //计算总成绩
static int average(); //获取成绩平均值
static int getcount(); //获取对象个数
};
//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************
student::student(){}
int student::count=0;
int student::sum=0;
int student::getsum()
{
sum+=score;
count++;
return sum;
}
int student::average()
{
if(count==0)
return 0;
else
return sum/count;
}
int student::getcount()
{
return count;
}
//********************* end ********************
int main()
{
int n;
cin>>n;
student *p=new student[n];
while(n--)
{
p->input();
p->getsum();
p++;
}
cout<<"student count="<<student::getcount()<<endl;
cout<<"average score="<<student::average()<<endl;
return 0;
}
输出日期时间--友元函数
设计一个日期类和时间类,编写display函数用于显示日期和时间。要求:display函数作为类外的普通函数,分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。
#include <iostream>
using namespace std;
class Time;
class Date
{
private:
int year,month,day;
public:
Date(int year,int month,int day);
friend void display(const Date &,const Time &);
};
Date::Date(int year,int month,int day)
{
this->year=year;
this->month=month;
this->day=day;
}
class Time
{
private:
int hour,minute,second;
public:
Time(int hour,int minute,int second);
friend void display(const Date &,const Time &);
};
Time::Time(int hour,int minute,int second){
this->hour=hour;
this->minute=minute;
this->second=second;
}
void display(const Date &date,const Time &time)
{
cout<<<<"/"<<<<"/"<<<<endl;
cout<<<<":"<<<<":"<<<<endl;
}
int main()
{
void display(const Date &,const Time &);
int year,month,day;
cin>>year>>month>>day;
Date d1(year,month,day);
int hour,minute,second;
cin>>hour>>minute>>second;
Time t1(hour,minute,second);
display(d1,t1);
return 0;
}