大一下 c + + 上机实验总结(三)

本文总结了大一学生的C++上机实验内容,包括定义三角形类、计数器类、阶乘类等,涉及类的设计、构造函数、成员函数的实现与调用等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大一下c + +上机实验总目录:大一下c + +上机实验总结目录


1、定义三角形类,完成:为三边置值、取三边的值并输出、求三角形周长、求三角形面积、输出三角形周长和面积。要求使用构造函数为三边赋值。提示:可以定义一个无参的构造函数,在此构造函数中通过键盘输入的方法输入三边的值。


#include<iostream.h>
#include<math.h>
class triangle
{private:
   int a;
   int b;
   int c;
 public:
   triangle(){cin>>a>>b>>c;}
   int length();
   float area();
   void print();
};
int triangle::length()
 {return a+b+c;}
float triangle::area()
 {float d;
  d=(a+b+c)/2.0;

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

}
void triangle::print(){cout<<length()<<endl<<area()<<endl;}

void main()
{triangle  s;
 s.print();

}

2、定义计数器类Counter。要求具有以下成员:计数器值;可进行增值和减值记数;可提供记数值。要求使用有参构造函数为计数器赋初值。编写主函数对这个类进行测试。

#include<iostream>
using namespace std;
class Counter {
public:
 Counter(int init_count); 
 void Increase(); 
 void Decrease(); 
 int getCurrentCount(); 
private:
 int count;
};
Counter::Counter(int init_count) 
 { count=init_count;}
void Counter::Increase() 
{
 ++count;
 }

 void Counter::Decrease() 
 {
 --count;
 }

int Counter::getCurrentCount() 
{
 return count;
 }
int main()
{int num;
 cout<<"请输入计数器初值:"<<endl;
 cin>>num;
 Counter a(num);
 a.Increase();
 a.Decrease();
 a.Decrease();
 cout<<"当前计数器的值:"<<a.getCurrentCount()<<endl;
 return 0;
}

3、定义一个阶乘类Cfactorial实现阶乘的计算和显示。
参考程序:c

#include<iostream>
using namespace std;
class Cfactorial {
public:
 Cfactorial(int init_count) ; 
void Count(); 
long int Get();
private:
 long int number;
};
Cfactorial::Cfactorial(int init_count) 
 { number=init_count;}
void Cfactorial::Count() 
{int i;
 long int n=1;
 for(i=1;i<=number;i++)
	 n=n*i;
 number=n;
 }
long int Cfactorial::Get()
{return number;}
int main()
{Cfactorial a(5);
 a.Count();
 cout<<"阶乘的值:"<<a.Get()<<endl;
 return 0;
}

4、设计一个时间类,其中数据成员:年 月 日;成员函数有三个:
(1)设置年月日的具体值;
(2)判断该年是否为闰年;
(3)将年月日输出。编写主函数,实现并测试这个类。

#include<iostream>
using namespace std;
class Tdate
{
 public:
     Tdate(int x,int y,int z);
	 void Set(int m, int d, int y)  ;
     int IsLeapYear() ;
     void Print()  ;
     private:
          int month;    int  day;  int  year;
};
Tdate::Tdate(int x,int y,int z)
{month=x;
 day=y;
 year=z;
}
void Tdate::Set(int m,int d,int y){
	month=m;
	day=d;
	year=y;
}
int Tdate::IsLeapYear(){
      return(year%4==0&&year%100!=0)||(year%400==0);
 }
void Tdate::Print(){
	cout<<month<<"/"<<day<<"/"<<year<<endl;  
}
int main()
{
 int x,y,z;
 cout<<"请输入年月日的值:\n";
 cin>>x>>y>>z;
 Tdate a(x,y,z);
 //a.Set(y,z,x);
 cout<<"输入的日期为:";
 a.Print();
 if(a.IsLeapYear()==1)
     cout<<x<<"是闰年"<<endl;
 else
     cout<<x<<"不是闰年"<<endl;
 return 0;
}

5、定义一个dog类,包含age、weight属性,以及对这些属性的操作方法。实现并测试这个类。

#include<iostream>
using namespace std;
class Dog
{int age;
 int weight;
public:
	void set(int x,int y);	
	int get_age();
	int get_weight();
};
void Dog::set(int x,int y)
  {age=x;
   weight=y;
  }
int Dog::get_age(){return age;}
int Dog::get_weight(){return weight;}
int main()
{Dog a;
 a.set(3,50);//或使用构造函数初始化
 cout<<"age="<<a.get_age()<<endl;
 cout<<"weight="<<a.get_weight()<<endl;
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值