1. (10分) C+±3-1 计算器类
题目描述
下面是一个计算器类的定义,请完成该类成员函数的实现,并编写main()。
class Counter
{
public:
Counter(int num);
void increament(); //给原值增1
void decrement(); //给原值减1
int getValue(); //取得计数器值
void print(); //显示计数
private:
int value;
};
输入描述
一个整数,用于创建Counter对象
输出描述
调用成员函数进行相关操作后的计算器值
输入样例
5
输出样例
计数器的值为:7
计数器的值为:6
代码:
#include <iostream>
using namespace std;
class Counter
{
public:
Counter(int num);
void increament(); //给原值增1
void decrement(); //给原值减1
int getValue(); //取得计数器值
void print(); //显示计数
private:
int value;
};
Counter::Counter(int num)
{
value=num;
}
void Counter::increament()
{
value++;
}
void Counter::print(){cout<<"计数器的值为:";
}
void Counter::decrement(){
value--;
}
int Counter::getValue(){
print();
return value;
}
int main()
{
int a;
cin>>a;
Counter A(a);
A.increament() ;
A.increament() ;
cout<<A.getValue()<<endl;
A.decrement() ;
cout<<A.getValue()<<endl;
return 0;
}
2. (15分) C+±3-2 Date类
题目描述
根据注释语句的提示,实现类Date的成员函数,并编写main()
class Date
{
public:
void setYear(int y); //设置年的值
void setMonth(int m); //设置月的值
void setDay(int d); //设置日的值
bool isLeapYear(); //判断是否是闰年
void printDate(); //显示日期
private:
int year,month,day;
};
输入描述
三个整数:年、月、日
输出描述
年月日及该年是否是闰年
输入样例
以下为两组测试数据
2017 9 20
2012 9 20
输出样例
以下为两组测试数据对应的结果
日期为:2017年9月20日
该年为非闰年!
日期为:2012年9月20日
该年为闰年!
代码:
#include <iostream>
using namespace std;
class Date
{
public:
void setYear(int y); //设置年的值
void setMonth(int m); //设置月的值
void setDay(int d); //设置日的值
bool isLeapYear(); //判断是否是闰年
void printDate(); //显示日期
private:
int year,month,day;
};
void Date::setDay(int d){day=d;
}
void Date::setMonth(int m){
month=m;
}
void Date::setYear(int y){
year=y;
}
bool Date::isLeapYear(){
if(year%4==0&&year%100!=0||year%400==0)
return true;
return false;
}
void Date::printDate(){
cout<<"日期为:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
int main()
{
Date A;
int y,m,d;
cin>>y>>m>>d;
A.setDay(d);
A.setMonth(m);
A.setYear(y);
A.printDate();
if(A.isLeapYear()) cout<<"该年为闰年!"<<endl;
else cout<<"该年为非闰年!"<<endl;
return 0;
}
3. (15分) C+±3-3 Cylinder类
题目描述
编程:建立Cylinder类,有三个double型私有数据成员:半径、高和体积,构造函数传递两个值:半径和高,计算体积。成员函数showVolume()用来显示每个对象的体积。
要求:半径、高从键盘输入。
PI的值取:3.1415926
输入描述
两个实型数据:半径和高
输出描述
一个数据:圆柱体的体积
输入样例
2 3
输出样例
体积为:37.6991
代码:
#include <iostream>
using namespace std;
const double PI=3.1415926;
class C{
public:
C(double h,double r);
void show();
private:
double high,round,v;
};
C::C(double r,double h):high(h),round(r)
{
}
void C::show() {
cout<<"体积为:"<<PI*round*round*high<<endl;
}
int main()
{
double r,h;
cin>>r>>h;
C A(r,h);
A.show();
return 0;
}
4. (20分) C+±3-4 Book类
题目描述
构建一个Book类,有4个私有数据成员:书名、作者、qu和price(均为int型),将qu初始化为1~5,将price被始化为qu的10倍。建立一个有5个元素的对象数组,顺序显示每个对象数组中元素的信息;定义对象指针,通过指针访问对象数组,逆序显示对象数组中元素的信息。要求:书名、作者、qu的信息从键盘输入
输入描述
5个对象数组元素的值
输出描述
顺序显示对象数组中各对象的值
逆序显示对象数组中各对象的值
输入样例
C语言程序设计 苏小红 2
C++程序设计 刘丽华 3
Python机器学习 范淼 4
数据结构与算法 徐凤生 3
大话数据结构 程杰 2
输出样例
顺序显示的结果为:
书名:C语言程序设计 作者:苏小红 quprice:40
书名:C++程序设计 作者:刘丽华 quprice:90
书名:Python机器学习 作者:范淼 quprice:160
书名:数据结构与算法 作者:徐凤生 quprice:90
书名:大话数据结构 作者:程杰 qu*price:40
使用指针,逆序显示的结果为:
书名:大话数据结构 作者:程杰 quprice:40
书名:数据结构与算法 作者:徐凤生 quprice:90
书名:Python机器学习 作者:范淼 quprice:160
书名:C++程序设计 作者:刘丽华 quprice:90
书名:C语言程序设计 作者:苏小红 qu*price:40
代码
#include <iostream>
#include <string>
using namespace std;
class Book{
public:
Book(){
};
void set(string bn,string n,int q);
string getn(){return name;
}
string getbn()
{
return bookname;
}
int total(){
price=qu*10;
return qu*price;
}
private:
int qu,price;
string name,bookname;
};
void Book::set(string bn,string n,int q)
{
name=n;
bookname=bn;
qu=q;
}
int main()
{ int q;
string n;
string bn;
Book s[5];
int i;
for(i=0;i<5;i++)
{
cin>>bn>>n>>q;
s[i].set(bn,n,q);
}
Book *p;
p=&s[0];
cout<<"顺序显示的结果为:"<<endl;
for(;p<=&s[4];p++){
cout<<"书名:"<<p->getbn()<<" 作者:"<<p->getn()<<" qu*price:"<<p->total()<<endl;
}
cout<<endl<<"使用指针,逆序显示的结果为:"<<endl;
p--;
for(;p>=&s[0];p--)
cout<<"书名:"<<p->getbn()<<" 作者:"<<p->getn()<<" qu*price:"<<p->total()<<endl;
p++;
delete p;
return 0;
}
5. (20分) C+±3-5 Stock类
题目描述
编程:构建一个类Stock,含有字符数组stockcode[]及int型quan、double型成员price.
构造函数含有三个参数:字符数组na[]及q、p。当定义Stock的类对象时,将对象的第1个字符串参数赋给数据成员stockcode,第2和第3个参数分别赋给quan、double。未设置第2和第3个参数时,quan的值为1000,price的值为9.98。成员函数print()无形参,要求使用this指针显示对象数据成员的内容。main()中定义二个对象,
对象s1的三个参数分别为: "600001”, 3000, 5.67,都由键盘输入
对象s2的第1个数据成员值为:"600002”, 由键盘输入,其余使用默认值。
输入描述
两行数据
第一行为第一个对象的数据成员值,分别为:"600001”, 3000, 5.67
第二行为第二个对象的第1个数据成员值,为:"600002”
输出描述
两行
第一行为对象1的数据成员值
第二行为对象2的数据成员值
输入样例
600001 3000 5.67
600002
输出样例
stockcode:600001 quan:3000 price:5.67
stockcode:600002 quan:1000 price:9.98
代码:
#include <iostream>
#include <string>
using namespace std;
class Stock{
public:
Stock(string a,int quan,double price);
void print();
private:
int quan;
double price;
string str;
};
void Stock::print(){
cout<<"stockcode:"<<this->str<< "quan:"<<this->quan<<" price:"<<this->price<<endl;
}
Stock::Stock(string a,int q=1000,double p=9.98)
{
str=a;
quan=q;
price=p;
}
int main()
{
int a;
double b;
string c,d;
cin>>c>>a>>b>>d;
Stock A(c,a,b),B(d);
A.print() ;
B.print();
return 0;
}
6. (20分) C+±3-6 Student类
题目描述
声明一个Student类,在该类的结构如下:
数据成员:
-stuNo:string
-name:string
-score:int // 成绩
-sum:int // 静态数据成员,统计总分
-count:int //静态数据成员,统计学生人数
成员函数
+setData(no:string,na:string,sco:int):void //设置数据成员的值
+<>getSum():int //返回学生成绩之和
+<>getCount():int //返回学生总人数
+<>calAverage():double //计算平均分
+show():void //输出学生学号、姓名、成绩
+<>showStaticData():void //输出学生的总人数、总分
在main()函数中,输入某班若干位同学(人数不超过30)的信息,并求出全班学生的总人数、总分及平均分。
本题每组测试用例的对象数是不固定的,以组合键Ctrl+Z或人数>30结束输入,例如:
while((cin>>stuNo>>name>>score)&&Student::getCount()<30) {
stu[Student::getCount()].setData(stuNo,name,score);
}
输入描述
若干个学生的信息,每位学生信息一行
输出描述
创建对象前的学生人数和总分信息
每位学生的信息
学生总人数、总分
学生平均分
输入样例
2001 张翼德 87
2002 赵子龙 76
2003 黄汉升 85
2004 关云长 89
2005 马孟起 68
输出样例
创建对象前,学生总人数、总分为:
现在有0人,总分为:0
学生成绩信息:
学号:2001 姓名:张翼德 成绩:87
学号:2002 姓名:赵子龙 成绩:76
学号:2003 姓名:黄汉升 成绩:85
学号:2004 姓名:关云长 成绩:89
学号:2005 姓名:马孟起 成绩:68
现在有5人,总分为:405
学生的平均分为:81
用户代码
#include <iostream>
#include <string>
using namespace std;
class Student{
public:
void setData(string numx,string namex,int scorex);
void jia();
static int getsum(){
return sum;
}
static int getcnt(){
return cnt;
}
static double getave()
{
return sum*1.0/cnt;
}
void show(){
cout<<"学号:"<<num<<" 姓名:"<<name<<" 成绩:"<<score<<endl;
}
private:
string num;
string name;
int score;
static int sum,cnt;
};
int Student::sum=0;
int Student::cnt =0;
void Student::setData(string numx,string namex,int scorex)
{
num=numx;
name=namex;
score=scorex;
}
void Student::jia(){
sum+=score;
cnt++;
}
int main()
{
string numx,namex;
int scorex;
Student stu[30];
while((cin>>numx>>namex>>scorex)&&Student::getcnt()<30) {
stu[Student::getcnt()].setData(numx,namex,scorex);
stu[Student::getcnt()].jia();
}int i=0;
cout<<"创建对象前,学生总人数、总分为:"<<endl;
cout<<"现在有0人,总分为:0"<<endl;
cout<<"学生成绩信息:"<<endl;
for(i=0;i<Student::getcnt() ;i++)
stu[i].show() ;
i--;
cout<<"现在有"<<stu[i].getcnt() <<"人,总分为:"<<stu[i].getsum()<<endl ;
cout<<"学生的平均分为:"<<stu[i].getave()<<endl;
return 0;
}
来源:CSDN
作者:越过极限
链接:https://blog.csdn.net/qq_43608850/article/details/104317585