面向对象程序设计C++学习心得(1)
2021/6/3 12:23:29
本文主要是介绍面向对象程序设计C++学习心得(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面向对象程序设计——C++
- 编程专栏
- C++风格简单题
- 百钱问题(1元兑换成1,2,5,分的种类)
- 引用的例子——排序(从小到大)
- 类和对象题
- 简单的成员函数题
- 对象数组题
- 继承与派生类题
- 面积题
- 学生和教师
- 虚函数题
编程专栏
C++风格简单题
百钱问题(1元兑换成1,2,5,分的种类)
#include <iostream> using namespace std; int main() { int i, j, sum = 0; for (i = 0; i <= 20; i++) { for (j = 0; j <= 50; j++) { if (100 - 5 * i - 2 * j >= 0) { sum++; cout << "1分:" << (100 - 5 * i - 2 * j) << "\t2分:"; cout << j << "\t5分:" << i << endl; } } } cout << "sum is "<< sum << endl; return 0; }
引用的例子——排序(从小到大)
#include<iostream> using namespace std; int main() { void change(int &, int &); int a, b; cin >> a >> b; if (a > b) change(a, b); cout << a <<" "<< b << endl; return 0; } void change(int &a1, int &b1) { int t; t = a1; a1 = b1; b1 = t; }
类和对象题
简单的成员函数题
用类外定义类内成员函数,实现年月日显示。
#include<iostream> using namespace std; class Date { public : void print(); void setday(int d); void setmonth(int m); void setyear(int y); private: int day, month, year; }; void Date::print() { cout << "日期为" << year << "年"; cout << month << "月" << day<<"日"<< endl; } void Date::setday(int d) { day = d; } void Date::setmonth(int m) { month = m; } void Date::setyear(int y) { year = y; } int main() { Date thisday; thisday.setday(3); thisday.setmonth(6); thisday.setyear(2021); thisday.print(); return 0; }
对象数组题
构建一个类book,其中含有两个私有数据成员qu和price,将qu初始化为1~5,将price初始化为qu的10倍,建立一个有5个元素的数组元素,显示每个对象数组元素的qu*price值。
#include <iostream> using namespace std; class book { private: int qu, price; public: book(int a, int b) { qu = a; price = b; } void show_money() { cout << qu * price << endl; } }; int main() { book ob[5] = { book(1,10), book(2,20), book(3,30), book(4,40), book(5,50) }; for (int i = 0; i < 5; i++) ob[i].show_money() ; return 0; }
继承与派生类题
面积题
建立基类area_cl的两个派生类rectangle与iosceles 让每一个派生类都包含一个函数area ()分别用来返回与三角形的面积。用构造函数对height与width进行初始化。
写出主程序,矩形高10.0 宽5.0,三角形宽长6.0 高4.0;
通过基类访问虚函数的方法即运行时的多态分别求面积
#include<iostream> using namespace std; class area_c1{ protected: double height; double width; public : area_c1(double r, double s) { area_c1::height = r; area_c1::width = s; } virtual double area() = 0; }; class rectangle :public area_c1{ public : rectangle(double r, double s):area_c1(r, s) {} double area(){ return height * width; } }; class isosceles : public area_c1 { public : isosceles (double r, double s) :area_c1(r, s) {} double area(){ return height * width/2; } }; int main() { area_c1 *ob; rectangle ob1(10.0, 5.0); isosceles ob2(4.0, 6.0); ob = &ob1; cout<< "矩形面积" << ob->area() << endl; ob = &ob2; cout << "三角形面积" << ob->area() << endl; }
学生和教师
编写一个学生和教师数据输入和显示数据程序,学生数据有编号,姓名,班号,成绩,教师有编号,姓名,职称,和部门。要求将编号,姓名输入和显示设计成一个类person ,并作为学生数据操作类 student 和教师数据操作类teacher的基类。
#include <iostream> using namespace std; class person { private: int no; char name[10]; public : void shuru() { cout << "编号"; cin >> no; cout << "姓名"; cin >> name; } void print() { cout << "编号" << no << endl; cout << "姓名" << name << endl; } }; class student : public person { private: int banhao; int score; public: void shuru() { person::shuru(); cout << "班号"; cin >> banhao; cout << "分数"; cin >> score; } void print() { person::print(); cout << "班号" << banhao << endl; cout << "分数" << score <<endl; } }; class teacher :public person { private: char zhicheng[10]; char apart[10]; public : void shuru() { person::shuru(); cout << "职称"; cin >> zhicheng; cout << "部门"; cin >> apart; } void print() { person::print(); cout << "职称" << zhicheng<< endl; cout << "部门" << apart << endl; } }; int main() { student s1; teacher t1; cout << "输入学生数据" << endl; s1.shuru(); cout << "\n输入老师数据" << endl; t1.shuru(); cout << "\n显示学生数据" << endl; s1.print(); cout << "\n显示老师数据" << endl; t1.print(); return 0; }
虚函数题
写一个程序,定义抽象基类Container,由它派生出三个派生类:Spere(球体),Cylinder(圆柱体),Cude (正方体),用虚函数分别计算几种图形的表面积和体积。
#include <iostream> using namespace std; class Container { protected : double radiux; double height; public : Container(double ra) { Container::radiux = ra; } double print_ra() { return radiux; } double print_he() { return height; } virtual double s_area() = 0; virtual double volume() = 0; }; class sphere :public Container{ public: sphere(double ra) : Container(ra) { } double s_area() { return 4 * 3.14*radiux* radiux; } double volume() { return 3.14*radiux* radiux*radiux*4/3; } }; class cylinder :public Container { public: cylinder(double ra,double he) : Container(ra) { height = he; } double s_area() { return 2 * 3.14*radiux* (radiux+height); } double volume() { return 3.14*radiux* radiux*height; } }; class cube :public Container { public: cube(double ra) : Container(ra) { } double s_area() { return 6*radiux* radiux; } double volume() { return radiux* radiux*radiux; } }; int main() { Container *ptr; sphere obj1(8); cylinder obj2(3,5); cube obj3(5); ptr = &obj1; cout << "球的半径为" << ptr->print_ra ()<< endl; cout << "球的表面积为" << ptr->s_area ()<< endl; cout << "球的体积为" << ptr->volume ()<< endl; ptr = &obj2; cout << "圆柱的半径为" << ptr->print_ra() << endl; cout << "圆柱的高为" << ptr->print_he ()<< endl; cout << "圆柱的表面积为" << ptr->s_area() << endl; cout << "圆柱的体积为" << ptr->volume() << endl; ptr = &obj3; cout << "正方体的半径为" << ptr->print_ra() << endl; cout << "正方体的表面积为" << ptr->s_area() << endl; cout << "正方体的体积为" << ptr->volume() << endl; return 0; }
这篇关于面向对象程序设计C++学习心得(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享