实验二 类和对象(二)

实验二 类和对象(二)

一、请定义一个矩形类(Rectangle),私有数据成员为矩形的长度(len)和宽度(wid),缺省构造函数置len和wid为0,有参构造函数置len和wid为对应形参的值,另外还包括求矩形周长、求矩形面积、修改矩形长度和宽度为对应形参的值、输出矩形尺寸等公有成员函数。要求输出矩形尺寸的格式为“length:长度,width:宽度”。编写主函数对定义的类进行测试。
二、
1、定义一个学生类,
其数据成员为:姓名、学号、总学分、平均成绩;
其成员函数有:(1)构造函数:能对学生类的姓名和学号进行初始化,同时应默认将学生类中的学分和平均成绩初始化为0。(2)Show函数:显示该学生总学分和平均成绩。
2、定义一个班级类:
其数据成员为:学生总数,学生信息;
其成员函数有:
(1)构造函数;
(2)显示所有学生信息;
(3)根据学生查找指定学生信息;
(4)增加学生信息;
(5)为学生添加成绩和学分,并适时修改平均成绩。
3、定义一个班级类对象和若干个学生类对象,进行初始化操作、把学生对象添加进班级,并尝试为学生添加成绩和学分信息。

完整代码
矩形类:

#include <iostream> 
using namespace std;

class Rectangle
{
	public:
	Rectangle()
	{
		len=0;
		wid=0;
	}
	Rectangle(int le,int wi);
	void circumference();
	void area();
	void change(int le,int wi);
	void putout();
	private:
	int len;
	int wid;
};


Rectangle::Rectangle(int le,int wi)
{
	len=le;
	wid=wi;
}

void Rectangle::circumference()
{
	cout<<"矩形周长:"<<(len*2+wid*2)<<endl;
}

void Rectangle::area()
{
	cout<<"矩形面积:"<<(len*wid)<<endl;
}

void Rectangle::change(int le,int wi)
{
	len=le;
	wid=wi;
}

void Rectangle::putout()
{
	cout<<"length:"<<len<<" ,"<<"width:"<<wid<<endl;
}


int main()
{
	Rectangle rec;
	int putin;
	int le,wi;
	while(1)
	{
		rec.putout();
	    cout<<"请输入对应数字序号:"<<endl<<"1.求矩形周长"<<endl<<"2.求矩形面积"<<endl<<"3.修改矩形长度和宽度"<<endl<<"4.输出矩形尺寸"<<endl;
    	cin>>putin;
    	if(putin==1)
    	{
	    	rec.circumference();
	    }
	    else if(putin==2)
	    {
    		rec.area();
    	}
    	else if(putin==3)
    	{
	    	cout<<"length=";
        	cin>>le;
        	cout<<"width=";
        	cin>>wi;
			rec.change(le,wi);
	    }
	    else if(putin==4)
	    {
    		rec.putout();
    	}
    	else
    	{
	    	cout<<"格式有误,请重新输入!"<<endl; 
	    }
	    cout<<endl;
	}
}

学生班级类:

#include <iostream>
#include <string>
using namespace std;

class Student
{
	public:
	Student()
	{
		name="未命名";
		number="00000000";
		score_number=0;
		for(int i=0;i<10;i++)
		{
			credit[i]=0;
			score[i]=0;
		}
	}
	void show();
	void addstudent();
	void fillmessage();
	string picknum();
	private:
	string name;
	string number;
	int score_number;
	float credit[10];
	float score[10];
};

class Class
{
	public:
	Class()
	{
		student_number=0;
	}
	void showStudentMessage();
	void Find();
	void addStudent();
	void fillMessage();
	private:
	int student_number;
	Student stu[20];
};
string Student::picknum()
{
   return number;
}

void Student::show()
{
	float add_credit=0;
	float add_score=0;
	for(int i=0;i<10;i++)
	{
		add_credit=add_credit+credit[i];
		add_score=add_score+score[i];
	}
	cout<<"姓名:"<<name<<" ,学号:"<<number;
	cout<<" ,总学分:"<<add_credit<<" ,平均成绩:"<<add_score/score_number<<endl;
}

void Student::addstudent()
{
	cout<<"姓名:";
	cin>>name;
	cout<<"学号:";
	cin>>number;
}

void Student::fillmessage()
{
	cout<<"学分:";
	cin>>credit[score_number];
	cout<<"成绩:";
	cin>>score[score_number];
	score_number++;
}

void Class::showStudentMessage()
{
	for(int i=0;i<student_number;i++)
	{
		stu[i].show();
	}
}

void Class::Find()
{
	string num;
	int i=0;
	cout<<"请输入要查找的学生学号:";
	cin>>num;
	for(i=0;i<student_number;i++)
	{
		if(num==stu[i].picknum())
		{
			stu[i].show();
			break;
		}
	}
	if(i==student_number)
	{
		cout<<"无此学生信息!"<<endl;
	}
}

void Class::addStudent()
{
	stu[student_number].addstudent();
	student_number++;
}

void Class::fillMessage()
{
	string num;
	int i=0;
	cout<<"请输入指定学号:";
	cin>>num;
	for(i=0;i<student_number;i++)
	{
		if((num==stu[i].picknum()))
		{
			stu[i].fillmessage();
			break;
		}
	}
	if(i==student_number)
	{
		cout<<"无此学生信息!"<<endl;
	}
}

int main()
{
	int choose;
	Class cla;
	while(1)
	{
		cout<<"请输入序号进行选择:"<<endl;
		cout<<"1.显示所有学生信息"<<endl<<"2.查找指定学生信息"<<endl<<"3.增加学生信息"<<endl<<"4.添加成绩和学分"<<endl; 
		cin>>choose;
		if(choose==1)
		{
			cla.showStudentMessage();
		}
		else if(choose==2)
		{
			cla.Find();
		}
		else if(choose==3)
		{
			cla.addStudent();
		}
		else if(choose==4)
		{
			cla.fillMessage();
		}
		else
		{
			cout<<"格式有误,请重新输入!"<<endl;
		}
		cout<<endl;
	}
	return 0;
}

仅作留档。

发布了30 篇原创文章 · 获赞 12 · 访问量 890

猜你喜欢

转载自blog.csdn.net/weixin_43893854/article/details/104321805
今日推荐