创建了 #2016级面向对象程序设计(C++)# 任务:
任务01_1 将字符串逆序存放 。问题描述: 用string类创建一个对象,给这个对象从键盘输入一个字符串,然后将字符串逆序存放,并输出。 程序要求: 用string类创建一个对象; 使用cin和cout完成数据输入和输出; 通过循环语句来完成string...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务10_1 矩阵的运算 。使用运算符重载完成矩阵的运算。 问题描述: 编写矩阵类MyMatrix,要求:实现构造函数,析构函数,拷贝构造函数以及 + - * =等操作,矩阵中元素既可以连续存放也可以非连续存放,二者选其一即可。 程序要求: MyMatrix...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务05_1 通讯录程序 。Record.cpp #include "Record.h" //构造函数 Record::Record(string aName , string aPhone, string aAddress ) { m_strName=aName; m_strPhon...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务06_1 统计箱子数量 。#include <iostream> using namespace std; class Box { public: Box(int aL,int aW,int aH); Box(); Box(const Box &r); ~Box(); ...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务06_3 改错题 。#include <iostream> using namespace std; class MyClass { public: MyClass(int a); ~MyClass(); void setB(int b); void displayData...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务04_1 直线相交问题 。#include <iostream> using namespace std; class Line { public: Line(double a = 0,double b = 0); void display(); ...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务06_3 改错题 。问题描述: 阅读下面类的定义,找出程序中的错误,说明错误的原因,并改正(不能修改的也可删除语句)。 程序如下: #include <iostream> using namespace std; class MyClass ...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务09_2 写出构造、析构顺序并解释派生类对象组成成员 。1、输出结果: 第一行:0 A |10 B | 第二行:0 A |11 B |33 C |11 D | 第三行:11 -B |11 -A | 第四行:11 -D |33 -C |11 -B |11 -A | 注意:以上的换行是通过main函数中cout<< ...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务12_01 应用抽象类求面积周长 。应用抽象类求圆和矩形的面积和周长。 问题描述: 编写形状类Shape是一个抽象类,里面含有输出面积和输出周长的纯虚函数,Circle类和Rectangle类以公有继承的方式继承抽象类,并且完成Shape类中纯虚函数的功能。 程序要求: Sh...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务08_1 日志打印器(Logger) 。#include
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务12_01 应用抽象类求面积周长 。#include
创建了 #2016级面向对象程序设计(C++)# 任务:
任务09_1 通过组合和继承实现一个轿车类 。设计一个程序实现一个轿车类Car,其中汽车类Vehicle是它的基类,发动机类Engine是汽车类的子对象成员。 问题描述: 写一个Engine类和Vehicle类并利用组合和继承实现Car类。 程序要求: Engine类公有成员包括:...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务05_1 通讯录程序 。请认真阅读任务要求完成任务。 问题描述: 编写一个通讯录应用程序,应至少具有添加记录、删除记录、浏览记录、查找记录四种功能,程序的项目文件结构如图所示,部分文件代码已已经在下面给出,只需实现Record.cpp、Node.cpp、List.cp...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务12_02 编写冒泡排序函数模板 。#include <iostream> using namespace std; template <typename T> inline void mySwap(T & a, T & b) { T temp = a; a = ...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务03_1 判断两圆是否相交。 。问题描述: 写一个圆类,通过全局函数funJudge来判断两个圆是否相交? 程序要求: 通过类Circle来存储圆的信息。 私有成员变量包括: 圆的X坐标:int m_iX; 圆的Y坐标...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务07_2 定义类A实现main函数中的调用方式。 。问题描述: 写一个A类,借助this指针实现main函数中调用方式。 程序要求: 私有成员包括: 数据成员m:int m_im; 数据成员n:int m_in; 公有成员包括: 含...
创建了 #2016级面向对象程序设计(C++)# 任务:
参考答案任务09_1 通过组合和继承实现一个轿车类 。#include <iostream> using namespace std; class Engine { public: Engine(int aED,int aEP); int m_iDisplacement; int m_iPower; }; ...
创建了 #2016级面向对象程序设计(C++)# 任务:
任务11_1 共用接口的队列和栈的实现 。编写一个程序,建立两种类型的表:队列和栈,利用纯虚函数的方法,使它们可以共用相同接口访问。 问题描述: 写一个抽象类List里面含有Node类的指针成员,和两个纯虚函数。Queue类和Stack类是List的子类,通过实现纯虚函数完成存储和删除功能...
嘿嘿嘿,日常忘记作业
//任务12-01 #include<iostream> #include<string> using namespace std; class Shape { public: Shape(double a = 0, double p = 0){ m_dArea=a; m_dPerimeter=p; } virtual void displayArea() = 0; virtual void displayPerimeter() = 0; private: double m_dArea; double m_dPerimeter; }; class Circle:public Shape { public: Circle(double r = 0) { m_dR=r; } virtual void displayArea() { cout<<"The Circle's Area is"<<3.14*m_dR*m_dR<<endl; } virtual void displayPerimeter() { cout<<"The Circle's Perimeter is "<<2*3.14*m_dR<<endl; } private: double m_dR; }; class Rectangle:public Shape { public: Rectangle(double l = 0, double w = 0) { m_dLength=l; m_dWidth=w; } virtual void displayArea() { cout<<"The Rectangle's Area is"<<m_dLength*m_dWidth<<endl; } virtual void displayPerimeter() { cout<<"The Rectangle's Perimeter is"<<2*m_dWidth+2*m_dLength<<endl; } private: double m_dLength; double m_dWidth; }; void displayAreaAndPerimeter(Shape &r) { r.displayArea(); r.displayPerimeter(); } int main(void){ Circle c1(9); Rectangle r1(2,4); displayAreaAndPerimeter(c1); displayAreaAndPerimeter(r1); return 0; }
//任务12-02 #include<iostream> #include<string> using namespace std; template <typename T> inline void mySwap(T & a,T & b) { T t; t=a; a=b; b=t; } template <typename T> void bubbleSort(T* const arr,int size) { int i,j=1,m=1; for(;m&&j<size;j++) { m=0; for(i=0;i<size-j;i++) { if(arr[i]>arr[i+1]) { mySwap<T>(arr[i],arr[i+1]); m=1; } } } } template <typename T > void printResult(T* const arr, int size) { int i=1; for(i=0;i<size;i++) { cout<<arr[i]; } cout<<endl; } int main(void){ int arri[10] = { 4, 2, 5, 7, 9, 1, 3, 8, 0, 6 }; bubbleSort<int>(arri, 10); printResult<int>(arri,10); double arrd[10] = {4.4,2.2,5.5,7.7,9.9,1.1,3.3,8.8,0,6.6}; bubbleSort<double>(arrd, 10); printResult<double>(arrd,10); char arrc[10] = "aefdighcb"; bubbleSort<char>(arrc, strlen(arrc)); printResult<char>(arrc, strlen(arrc)); return 0; }
老师昨晚忘记交了,不好意思
#include<iostream> #include<stdlib.h> using namespace std; class Engine{ public: Engine(int aED=0,int aEP=0){ m_iDisplacement=aED; m_iPower=aEP; }; int m_iDisplacement; int m_iPower; }; class Vehicle{ protected: Engine m_Engine; //组合 double m_dWeight; int m_iWheels; }; class Car:public Vehicle{ public: Car(int aED,int aEP,double aVWe,int aVWh,int aCP) { m_dWeight=aVWe; m_iWheels=aVWh; m_iPassengers=aCP; }; void PrintData(){ cout<<"马力:"<<m_iPower<<"匹"<<endl; cout<<"排量:"<<m_iDisplacement<<"L"<<endl; cout<<"车重:"<<m_dWeight<<"吨"<<endl; cout<<"车轮数:"<<m_iWheels<<"个"<<endl; cout<<"载客数:"<<m_iPassengers<<"人"<<endl; }; private: int m_iDisplacement; int m_iPower; int m_iPassengers; }; int main(void) { Car c1(2,140,1.5,4,6); c1.PrintData(); system("pause"); return 0; }
//1&2:分析输出结果: // 0 A | 10 B | // 在堆区定义一个B类的对象,B类的protectde中A类定义,故先调用A的构造函数,再调用B的构造函数。 // 0 A | 11 B | 33 C | 11 D | // 对D类定义一个对象objd,因为D类公有继承了类B,C,所以先调用A的构造函数,再调用B的构造函数, // 又有D中有对C的定义,故再调用C的构造函数,最后调用D的构造函数。 // 11 -B | 11 -A | // 将对象objd继承自基类B,C中的值赋值给B类之前的m_ia; // 释放内存空间,先调用B类的析构函数,再调用A类的析构函数。 // 11-D| 33-C| 11-B|11 –A| // 调用析构函数,调用顺序跟构造函数相反。 //3:对象objd的数据成员和访问权限: // 公有继承自基类B,C的数据成员;protected m_ib;D类中定义的public m_ic // public m_ia; // 派生类D自己的私有数据成员m_id
#include<iostream> #include<stdlib.h> #include<string> using namespace std; class zero { public: string a0,b0,c0,d0,e0,f0,g0; zero() { a0=".###."; b0="#...#"; c0="#...#"; d0="....."; e0="#...#"; f0="#...#"; g0=".###."; } }; class one { public: string a1,b1,c1,d1,e1,f1,g1; one() { a1="..."; b1=".#."; c1=".#."; d1=".#."; e1=".#."; f1=".#."; g1="..."; } }; class two { public: string a2,b2,c2,d2,e2,f2,g2; two() { a2=".###."; b2="....#"; c2="....#"; d2=".###."; e2="#...."; f2="#...."; g2=".###."; } }; class three { public: string a3,b3,c3,d3,e3,f3,g3; three() { a3=".###."; b3="....#"; c3="....#"; d3=".###."; e3="....#"; f3="....#"; g3=".###."; } }; class four { public: string a4,b4,c4,d4,e4,f4,g4; four() { a4="....."; b4="#...#"; c4="#...#"; d4=".###."; e4="....#"; f4="....#"; g4="....."; } }; class five { public: string a5,b5,c5,d5,e5,f5,g5; five() { a5=".###."; b5="#...."; c5="#...."; d5=".###."; e5="....#"; f5="....#"; g5=".###."; } }; class six { public: string a6,b6,c6,d6,e6,f6,g6; six() { a6=".###."; b6="#...."; c6="#...."; d6=".###."; e6="#...#"; f6="#...#"; g6=".###."; } }; class seven { public: string a7,b7,c7,d7,e7,f7,g7; seven() { a7=".###."; b7="....#"; c7="....#"; d7="....."; e7="....#"; f7="....#"; g7="....."; } }; class eight { public: string a8,b8,c8,d8,e8,f8,g8; eight() { a8="..###.."; b8=".#...#."; c8=".#...#."; d8="..###.."; e8=".#...#."; f8=".#...#."; g8="..###.."; } }; class nine { public: string a9,b9,c9,d9,e9,f9,g9; nine() { a9="..###.."; b9=".#...#."; c9=".#...#."; d9="..###.."; e9=".....#."; f9=".....#."; g9="..###.."; } }; class add { public: string aa,ba,ca,da,ea,fa,ga; add() { aa="....."; ba="..#.."; ca="..#.."; da=".###."; ea="..#.."; fa="..#.."; ga="....."; } }; class minus { public: string am,bm,cm,dm,em,fm,gm; minus() { am="....."; bm="....."; cm="....."; dm=".###."; em="....."; fm="....."; gm="....."; } }; class times { public: string at,bt,ct,dt,et,ft,gt; times() { at="....."; bt="....."; ct=".#.#."; dt="..#.."; et=".#.#."; ft="....."; gt="....."; } }; class Pic:public zero,public one,public two,public three,public four,public five,public six,public seven,public eight,public nine,public add,public minus,public times { public: void input()//输入式子 { cout<<"请输入算式:"; cin>>p1>>ch>>p2; } void output(char* S,int len)//输出结果和式子 { string a="",b="",c="",d="",e="",f="",g=""; int i=len; while(i>0) { switch (S[i-1]) { case 0: {a=a+a0;b=b+b0;c=c+c0;d=d+d0;e=e+e0;f=f+f0;g=g+g0;break;} case 1: {a=a+a1;b=b+b1;c=c+c1;d=d+d1;e=e+e1;f=f+f1;g=g+g1;break;} case 2: {a=a+a2;b=b+b2;c=c+c2;d=d+d2;e=e+e2;f=f+f2;g=g+g2;break;} case 3: {a=a+a3;b=b+b3;c=c+c3;d=d+d3;e=e+e3;f=f+f3;g=g+g3;break;} case 4: {a=a+a4;b=b+b4;c=c+c4;d=d+d4;e=e+e4;f=f+f4;g=g+g4;break;} case 5: {a=a+a5;b=b+b5;c=c+c5;d=d+d5;e=e+e5;f=f+f5;g=g+g5;break;} case 6: {a=a+a6;b=b+b6;c=c+c6;d=d+d6;e=e+e6;f=f+f6;g=g+g6;break;} case 7: {a=a+a7;b=b+b7;c=c+c7;d=d+d7;e=e+e7;f=f+f7;g=g+g7;break;} case 8: {a=a+a8;b=b+b8;c=c+c8;d=d+d8;e=e+e8;f=f+f8;g=g+g8;break;} case 9: {a=a+a9;b=b+b9;c=c+c9;d=d+d9;e=e+e9;f=f+f9;g=g+g9;break;} case '+': {a=a+aa;b=b+ba;c=c+ca;d=d+da;e=e+ea;f=f+fa;g=g+ga;break;} case '-': {a=a+am;b=b+bm;c=c+cm;d=d+dm;e=e+em;f=f+fm;g=g+gm;break;} case '*': {a=a+at;b=b+bt;c=c+ct;d=d+dt;e=e+et;f=f+ft;g=g+gt;break;} default: break; } i--; } cout<<"..."<<a<<endl; cout<<"..."<<b<<endl; cout<<"..."<<c<<endl; cout<<"..."<<d<<endl; cout<<"..."<<e<<endl; cout<<"..."<<f<<endl; cout<<"..."<<g<<endl; } void calculate()//计算,存入数组 { leny=0; switch (ch) { case '+': {p3=p1+p2;break;} case '-': {p3=p1-p2;break;} case '*': {p3=p1*p2;break;} default: break; } lenx=0; int q1=p1,q2=p2,q3=p3; if(q1<0)q1=q1*(-1); if(q2<0)q2=q2*(-1); if(q3<0)q3=q3*(-1); if(q2==0){x[lenx]=0;lenx++;} while(q2) { x[lenx]=q2%10; lenx++; q2=q2/10; } if(p2<0) { x[lenx]='-'; lenx++; } x[lenx]=ch; lenx++; if(q1==0){x[lenx]=0;lenx++;} while(q1) { x[lenx]=q1%10; lenx++; q1=q1/10; } if(p1<0) { x[lenx]='-'; lenx++; }if(q3==0){y[leny]=0;leny++;} while(q3) { y[leny]=q3%10; leny++; q3=q3/10; } if(p3<0) { y[leny]='-'; leny++; } } char x[23],y[11];//存储算式和结果 int lenx,leny; int p1,p2,p3;//两个操作数和结果 char ch;//运算符 }; int main(void) { Pic a; a.input(); a.calculate(); cout<<"输入的算式为:"<<endl; a.output(a.x,a.lenx); cout<<"输出的结果为:"<<endl; a.output(a.y,a.leny); system("pause"); return 0; }
/* 说明:字符串逆置 姓名:白新正 学号:2016011328 班级:1班 日期:2017/09/24 */ #include<iostream> #include<string> using namespace std; int main() { string str; cout<<"请输入字符串"<<endl; cin>>str; cout<<"您输入的字符串为"<<endl; cout<<str<<endl; int len=str.size(); for(int i=0;i<=len/2;i++) { int temp; temp=str[i]; str[i]=str[len-1-i]; str[len-1-i]=temp; } cout<<"逆置后的字符串为"<<endl; cout<<str<<endl; system("pause"); return 0; } /* 说明:角谷猜想 姓名:白新正 学号:2016011328 班级:1班 日期:2017/09/24 */ #include<iostream> using namespace std; int main(void) { //输入一个整数 int n; cout<<"请输入一个正整数"<<endl; cin>>n; //循环进行角谷猜想 while(n!=1) { if(n%2==0) { cout<<n<<"/2"<<"="<<n/2<<endl; n=n/2; } else n=n*3+1; } cout<<"输出数n为"<<n<<endl; system("pause"); return 0; } /* 说明:猴子吃桃 姓名:白新正 学号:2016011328 班级:1班 日期:2017/09/24 */ #include<iostream> using namespace std; int main(void) { //猴子吃桃的天数N int N; cout<<"请输入猴子吃桃的天数"<<endl; cin>>N; //迭代计算桃子总数 int i,si,s=1; for(i=N-1;i>=1;i--) { si=2*s+2; s=si; cout<<"第"<<i<<"天,桃子的个数为"<<s<<endl; } cout<<"共"<<N<<"天,第一天桃子的总数为"<<si<<endl; system("pause"); return 0; }
一.将字符串逆序存放 #include<iostream> #include<string> using namespace std; int main () { string s; cin >> s; int n=0,i=0,j,t; while(s[n]!=0) { n++; } for(j=n-1;i<j;i++) { t=s[i]; s[i]=s[j]; s[j]=t; j--; } cout << s; return 0; } 二.角谷猜想 #include<iostream> using namespace std; int main () { int n; cin >> n; cout <<"演算过程:" << endl; while(n!=1) { if(n%2==0) { cout << n << "/" << 2 << "=" << n/2 << endl; n=n/2; } else { cout << n << "*" << 3 << "+" << 1 << "=" << n*3+1 << endl; n=3*n+1; } } cout << "计算结果:" << n; return 0; } 三.猴子吃桃 #include<iostream> using namespace std; int main () { int n,s=1; cin >> n; while(n!=1) { s=s+1; s=2*s; n--; } cout << s; return 0; }
我是武永亮,跟我学C++,保证上清华。
课程任务
查看全部
课程学员
3-陈若云
7班-兰天旭
6-孟雪冰
2-杨丽颖
6-胡海锋
8-田实
7-魏谦强
5-李伟娟
3-丁泽仁