C++输入方式

C++的输入:

可分为两种方式:(通过例题来说明)
第一种:
定义一个日期类Date,类中包括year、month和day3个数据成员,包括3个成员函数,分别是void SetDate(int,int,int)用以设置日期,void Display()用于显示日期,显示格式为“年/月/日”如2022/3/25,bool IsLeap()用于判断是否为闰年,是闰年返回true,否则返回false。利用Date类,实现计算给定日期是在本年中是第几天
#include <iostream>
using namespace std;
class Date {
	private:
		int year;
		int month;
		int day;
		char ch;
	public:
		void SetDate(int,int,int);
bool IsLeap();
};

void Date::SetDate(int x,int y,int z) {
	year=x,month=y,day=z;
}
bool Date::IsLeap() {
	if((year%400==0) || ((year%4==0) && (year%100 !=0)))
		return true;
	else
		return false;
}

int main() {
	Date dat;
	
	int x;
	int y;
	int z;
	char ch;
	int sum=0;
	int a1[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
	int a2[12]= {31,29,31,30,31,30,31,31,30,31,30,31};
	while(cin>>x>>ch>>y>>ch>>z){
		dat.SetDate(x,y,z);
	sum=z; 
	if(dat.IsLeap()==true) {
			for(int i=0; i<y-1; i++) {
				sum+=a2[i];
			}
			cout<<sum<<endl;
		} 
	else{

			for(int j=0; j<y-1; j++) {
				sum+=a1[j];
			}
		cout<<sum<<endl;		}

}
	return 0;
}


其中:
void Date::SetDate(int x,int y,int z) {
	year=x,month=y,day=z;
}

通过在在中函数中输入,在通过形参的方式传输给类的成员。

第二种:
定义一个Student类,类中包含一次考试的学生的3个学科的成绩,包含4个成员函数,分别是void input()用于输入学生考试成绩,void Display()用于显示成绩,int Sum()用于计算3个学科的总分,double Average()用于计算3个学科平均分。
#include <iostream>
#include <iomanip>
using namespace std;
class Student {
	public:
		void  Set();    //用于接收姓名,学号和三门课程成绩
		int Sum();
		void Display();
		double Averate();
	private:
		string name;   //学生姓名
		int rollno;     //学生学号
		int sub_marks[3];   //3门课程成绩
};
void Sort(Student *stud,int n);
void  Student::Set() {
	cin>>name>>rollno>>sub_marks[0]>>sub_marks[1]>>sub_marks[2];
}
int Student::Sum() {
	int sum=0;
	for(int i=0; i<3; i++) {
		sum+=sub_marks[i];
	}
	return sum;
}
void Student::Display() {
	cout<<"姓名:"<<name<<' '<<"学号:"<<rollno<<' '<<"平均分:"<< fixed << setprecision(2) <<Averate()<<' '<<"总分:"<<Sum()<<endl;
}
double Student::Averate() {
	double add=Sum();
	return add/3;
}
int main() {
	int n;
	cin>>n;
	Student *stu;
	stu = new Student[n];
	for(int i=0; i<n; i++) {
		stu[i].Set();
	}
	Sort(stu,n);
	for(int i=0; i<n; i++) {
		stu[i].Display();
	}
	delete []stu;
	return 0;
}
void Sort(Student *stud,int n) {
	Student t;
	for(int i=0; i<n-1; i++) {
		for(int j=i+1; j<n; j++) {
			if(stud[i].Sum()<stud[j].Sum()) {
				t=stud[i],stud[i]=stud[j],stud[j]=t;
			}
		}
	}
}


其中:
void  Student::Set() {
	cin>>name>>rollno>>sub_marks[0]>>sub_marks[1]>>sub_marks[2];
}

通过调用类的函数,直接进行输出。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值