• C++


    输出大写英文字母

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     string str, input;
     8     getline(cin, input);
     9 
    10     for(unsigned i(0); i < input.length(); i++)
    11     {
    12         if(input[i] <= 'Z' && input[i] >= 'A')
    13         {
    14             bool flag(true);
    15 
    16             for(unsigned j(0); j < str.length(); j++)
    17             {
    18                 if(input[i] == str[j])
    19                 {
    20                     flag = false;
    21                     break;
    22                 }
    23             }
    24 
    25             if(flag)
    26                 str.append(&input[i], 1);
    27         }
    28     }
    29 
    30     if(str == "") cout << "Not Found";
    31     else cout << str;
    32 
    33     return 0;
    34 }

    2017Final 圆周率山

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 #define Pi "314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196"
     5 
     6 int main()
     7 {
     8     string str(Pi);
     9     int heigh(0), postion(0), width(1);
    10     cin >> heigh;
    11     string *p = new string[heigh];
    12 
    13     for(int i(0); i < heigh; i++)
    14     {
    15         (*(p + i)).append(str.substr(postion, width));
    16         postion += +width, width += 2;
    17 
    18         for(int j(heigh - 1 - i); j > 0; j--) cout << " ";
    19 
    20         cout << *(p + i) << endl;
    21     }
    22 
    23     return 0;
    24 }

    宿舍谁最高?

     1 #include<iostream>
     2 #include<string>
     3 #include<iomanip>
     4 using namespace std;
     5 class Student
     6 {
     7 public:
     8     int id;
     9     string name;
    10     int h = 0;
    11     int w;
    12 };
    13 
    14 Student s[1000000];
    15 int main()
    16 {
    17     int n, p = 0;
    18     cin >> n;
    19     for (int i = 0; i < 1000000; i++)
    20         s[i].id = i;
    21 
    22     Student stu;
    23     bool isendl = false;
    24     for (int i = 0; i < n; i++)
    25     {
    26         cin >> stu.id >> stu.name >> stu.h >> stu.w;
    27         if (stu.h > s[stu.id].h)
    28         {
    29             s[stu.id].name = stu.name;
    30             s[stu.id].h = stu.h;
    31             s[stu.id].w = stu.w;
    32             p++;
    33         }
    34     }
    35     for (int i = 0; i < 1000000; i++)
    36     {
    37         if (s[i].h == 0)
    38             continue;
    39         if (isendl) {
    40             cout << endl;
    41         }
    42         isendl = true;
    43        cout<<fixed<<setw(6)<<setfill('0')<<s[i].id;
    44         cout << ' ' << s[i].name << ' ' << s[i].h << ' ' << s[i].w;
    45     }
    46 }

    立方体类的实现

     1 #include<iostream>
     2 using namespace std;
     3 class Box
     4 {
     5 public:
     6     void seta(float ab)
     7     {a=ab;}
     8     void getvolume()
     9     {volume=a*a*a;}
    10     void getarea()
    11     {area=a*a*6;}
    12     void disp()
    13     {cout<<volume<<" "<<area<<endl;}
    14 private:
    15     float a,volume,area;};
    16 int  main( ){
    17     float ab;
    18     cin>>ab;
    19     Box  obj;
    20     obj.seta( ab );
    21     obj.getvolume( );
    22     obj.getarea( );
    23     obj.disp( );
    24     return 0;
    25 }

    鸿鸿哥的苹果树

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     int height[10],h,number(0);
     6     for(int i(0);i<10;i++)
     7     {
     8         cin>>height[i];
     9     }
    10     cin>>h;
    11     for(int i(0);i<10;i++)
    12     {
    13         if(height[i]<=h+30)
    14           number++;
    15     }
    16     cout<<number;
    17     return 0;
    18 }

    学生CPP成绩计算

     1 #include<iostream>
     2 #include<string>
     3 #include<iomanip>
     4 using namespace std;
     5 class Person
     6 {
     7 protected:
     8     string name;
     9     int age;
    10 public:
    11     Person(){};
    12     Person(string p_name,int p_age):name(p_name),age(p_age){};
    13     void disply(){cout<<name<<":"<<age<<endl;};
    14 };
    15 class student:protected Person
    16 {
    17     int ID;
    18     float cpp_score,cpp_count,cpp_grade;
    19 public:
    20     student(){};
    21     student(string,int,int,float,float);
    22     void print();
    23 };
    24 student::student(string n,int id,int a,float s,float c):Person(n,a),ID(id),cpp_score(s),cpp_count(c),cpp_grade(s*0.9+c*2){}
    25 void student::print()
    26 {    
    27     cout<<ID<<' '<<name<<' '<<fixed<<setprecision(1)<<cpp_grade<<endl;
    28 }
    29 int main()
    30 {
    31     string name;
    32     int id,age;
    33     float score,count;
    34     while(cin>>name)
    35     {
    36         if(name=="0") break;
    37         cin>>id>>age>>score>>count;
    38         student stu(name,id,age,score,count);
    39         stu.print();
    40     }
    41     return 0;
    42 }

    点到原点的距离(继承)

     1 #include<iostream>
     2 #include<cmath>
     3 using namespace std;
     4 class Point_1D
     5 {
     6 protected:
     7     float x;
     8 public:
     9     Point_1D(float p=0.0):x(p){};
    10     float distance(){return abs(x);};
    11     void getdistance(){
    12         cout<<"Distance from Point "<<x<<" to original point is "<<distance()<<endl;
    13         }
    14 };
    15 class Point_2D:protected Point_1D
    16 {
    17 protected:
    18     float y;
    19 public:
    20     Point_2D(float xx,float yy):Point_1D(xx),y(yy){};
    21     float distance(){return sqrt(x*x+y*y);};
    22     void getdistance(){
    23         cout<<"Distance from Point("<<x<<","<<y<<") to original point is "<<distance()<<endl;
    24         }
    25 };
    26 class Point_3D:protected Point_2D
    27 {
    28 protected:
    29     float z;
    30 public:
    31     Point_3D(float xx,float yy,float zz):Point_2D(xx,yy),z(zz){};
    32     float distance(){return sqrt(x*x+y*y+z*z);};
    33     void getdistance(){
    34         cout<<"Distance from Point("<<x<<","<<y<<","<<z<<") to original point is "<<distance()<<endl;
    35         }
    36 };
    37 int main()
    38 {    
    39     int flag;
    40     while(cin>>flag)
    41     {
    42         if(flag==0) break;
    43         float a,b,c;
    44         switch(flag)
    45         {    
    46         case 1:
    47             {
    48                 cin>>a;
    49                 Point_1D P(a);
    50                 P.getdistance();
    51                 break;
    52             }
    53         case 2:
    54             {
    55                 cin>>a>>b;
    56                 Point_2D P(a,b);
    57                 P.getdistance();
    58                 break;}
    59         case 3:
    60             {    
    61                 cin>>a>>b>>c;
    62                 Point_3D P(a,b,c);
    63                 P.getdistance();
    64                 break;
    65             }
    66         }
    67     }
    68     return 0;
    69 }

    车辆选择(继承)

     1 #include<iostream>
     2 #include<string>
     3 #include<iomanip>
     4 using namespace std;
     5 enum type{Vehicle,Car,Truck};
     6 class vehicle
     7 {
     8 protected:
     9     int wheels;
    10     double weight;
    11 public:
    12     vehicle(){};
    13     vehicle(int wh,double we):wheels(wh),weight(we){};
    14     int get_wheels(){return wheels;};
    15     double get_weight(){return weight;};
    16     double wheel_load(){return weight/wheels;}
    17     void print(){};
    18 };
    19 class car:protected vehicle
    20 {    
    21     int passenger_load;
    22 public:
    23     car(){};
    24     car(int wh,double we,int pa):vehicle(wh,we),passenger_load(pa){};
    25     int get_passengers(){return passenger_load;};
    26     int get_wheels(){return vehicle::get_wheels();};
    27     double get_weight(){return vehicle::get_weight();};
    28     void print(){};
    29 };
    30 class truck:protected vehicle
    31 {    
    32     int passenger_load;
    33     double payload;
    34 public:
    35     truck(){};
    36     truck(int wh,double we,int pass,double pay):vehicle(wh,we),passenger_load(pass),payload(pay){};
    37     int get_passengers(){return passenger_load;};
    38     double efficiency(){return payload/(payload+weight);};
    39     int get_wheels(){return vehicle::get_wheels();};
    40     double get_weight(){return vehicle::get_weight();};
    41     void print(){};
    42 };
    43 int main()
    44 {
    45     int n(1);
    46     string ty;
    47     while(cin>>ty)
    48     {
    49         if(ty=="-1") break;
    50         enum type k(Vehicle);
    51         string r;
    52         if(ty=="vehicle") k=Vehicle;
    53         if(ty=="car") k=Car;
    54         if(ty=="truck") k=Truck;
    55         if(n==1) r="st";
    56         if(n==2) r="nd";
    57         if(n==3) r="rd";
    58         if(n>3) r="th";
    59         switch(k)
    60         {
    61         case Vehicle:{
    62                         int id,wheels;double weight;
    63                         cin>>id>>wheels>>weight;
    64                         vehicle V(wheels,weight);
    65                         cout<<"The "<<n<<r<<" object is Vehicle No. "<<id<<": weight "<<V.get_weight()<<" Kg and wheels "<<V.get_wheels()<<endl;
    66                         n++;
    67                         break;
    68                      }
    69         case Car:{
    70                     int id,wheels,passenger;double weight;
    71                     cin>>id>>wheels>>weight>>passenger;
    72                     car C(wheels,weight,passenger);
    73                     cout<<"The "<<n<<r<<" object is Car No. "<<id<<": passenger_load "<<C.get_passengers()<<" weight "<<C.get_weight()<<" Kg and wheels "<<C.get_wheels()<<endl;
    74                     n++;
    75                     break;
    76                  }
    77         case Truck:{
    78                     int id,wheels,passenger;double weight,load;
    79                    cin>>id>>wheels>>weight>>passenger>>load;
    80                    truck T(wheels,weight,passenger,load);
    81                    cout<<"The "<<n<<r<<" object is Truck No. "<<id<<": passenger_load "<<T.get_passengers()<<" weight "<<T.get_weight()<<" Kg wheels "<<T.get_wheels()<<" and efficiency "<<fixed<<setprecision(2)<<T.efficiency()<<setprecision(0)<<endl;
    82                    n++;
    83                    break;
    84                    }
    85         }
    86     }
    87     return 0;
    88 }

    时间换算

     1 #include<iostream>
     2 #include<cmath>
     3 using namespace std;
     4 
     5 class Time
     6 {
     7 private:
     8     int hour,minute,second;
     9 public:
    10     friend Time operator + (Time &T1,Time &T2);
    11     friend Time operator - (Time &T1,Time &T2);
    12     friend istream& operator >> (istream &input,Time &T);
    13     friend ostream& operator << (ostream &output,Time &T);
    14     Time(){};
    15     Time(int h,int m,int s):hour(h),minute(m),second(s){};
    16     bool getEnd(void);
    17 };
    18 
    19 Time operator + (Time &T1,Time &T2)
    20 {
    21     Time T(0,0,0);
    22     if(T2.hour<=0&&T2.minute<=0&&T2.second<=0) 
    23     {
    24         Time T2_tmp(0,0,0);
    25         T2_tmp.hour=abs(T2.hour),T2_tmp.minute=abs(T2.minute),T2_tmp.second=abs(T2.second);
    26         T=T1-T2_tmp;
    27         return T;
    28     }
    29     T.second=(T1.second+T2.second<60)?(T1.second+T2.second):(T.minute++,T1.second+T2.second-60);
    30     T.minute=(T1.minute+T2.minute+T.minute<60)?(T.minute+T1.minute+T2.minute):(T.hour++,T.minute+T1.minute+T2.minute-60);
    31     T.hour=(T1.hour+T2.hour+T.hour<24)?(T.hour+T1.hour+T2.hour):(T.hour-=24,T.hour+T1.hour+T2.hour);
    32     return T;
    33 }
    34 
    35 Time operator - (Time &T1,Time &T2)
    36 {
    37     Time T(0,0,0);
    38     T.second=(T1.second>=T2.second)?(T1.second-T2.second):(T.minute--,T1.second-T2.second+60);
    39     T.minute=(T1.minute+T.minute>=T2.minute)?(T1.minute+T.minute-T2.minute):(T.hour--,T1.minute+T.minute-T2.minute+60);
    40     T.hour=(T1.hour+T.hour>=T2.hour)?(T1.hour+T.hour-T2.hour):(T.hour+=24,T1.hour+T.hour-T2.hour);
    41     return T;
    42 }
    43 
    44 istream& operator >> (istream &input,Time &T)
    45 {
    46     input>>T.hour>>T.minute>>T.second;
    47     return input;
    48 }
    49 
    50 ostream& operator << (ostream &output,Time &T)
    51 {
    52     output<<"time:"<<T.hour<<":"<<T.minute<<":"<<T.second;
    53     return output;
    54 }
    55 
    56 bool Time::getEnd(void)
    57 {
    58     if(!hour&&!minute&&!second) return false;
    59     else return true;
    60 }
    61 
    62 int main()
    63 {
    64     Time T;
    65     int S;
    66     cin>>T>>S;
    67     while(T.getEnd()||S)
    68     {
    69         int hh,mm,ss;
    70         ss=S%60,mm=((S-ss)/60)%60,hh=((((S-ss)/60)-mm)/60)%24;
    71         Time T_tmp(hh,mm,ss);
    72         T=T+T_tmp;
    73         cout<<T<<endl;
    74         cin>>T>>S;
    75     }
    76     return 0;
    77 }

    2017final复数的比较

     1 #include<iostream>
     2 using namespace std;
     3 
     4 class Complex
     5 {
     6 private:
     7     int i,j;
     8 public:
     9     friend bool operator > (Complex &C1,Complex &C2);
    10     friend istream& operator >> (istream &input, Complex &C);
    11     friend ostream& operator << (ostream &output, Complex &C);
    12     Complex(void){};
    13     Complex(int ii,int jj):i(ii),j(jj){};
    14     friend bool isEnd(Complex &C1,Complex &C2);
    15 };
    16 
    17 bool operator > (Complex &C1,Complex &C2)
    18 {
    19     if(C1.i*C1.i+C1.j*C1.j>C2.i*C2.i+C2.j*C2.j) return true;
    20     else return false;
    21 }
    22 
    23 istream& operator >> (istream &input,Complex &C)
    24 {
    25     input>>C.i>>C.j;
    26     return input;
    27 }
    28 
    29 ostream& operator << (ostream &output,Complex &C)
    30 {
    31     output<<C.i;
    32     if(C.j>=0) output<<"+";
    33     output<<C.j<<"i";
    34     return output;
    35 }
    36 
    37 bool isEnd(Complex &C1,Complex &C2)
    38 {
    39     if(!C1.i&&!C1.j&&!C2.i&&!C2.j) return true;
    40     else return false;
    41 }
    42 
    43 int main()
    44 {
    45     Complex C1,C2;
    46     cin>>C1>>C2;
    47     while(!isEnd(C1,C2))
    48     {
    49         if(C1>C2) cout<<"true"<<endl;
    50         else cout<<"false"<<endl;
    51         cin>>C1>>C2;
    52     }
    53     return 0;
    54 }

    复数类的运算

     1 #include<iostream>
     2 using namespace std;
     3 
     4 class Complex
     5 {
     6     public:
     7         Complex(double r=0,double i=0):real(r), imag(i){}
     8         Complex operator+(Complex &) const;//重载双目运算符'+'
     9         Complex operator-=(Complex &); //重载双目运算符'-='
    10         friend  const Complex operator-(Complex &,Complex &);//重载双目运算符'-'
    11         void Display() const;
    12     private:
    13         double real;
    14         double imag;
    15 };
    16 
    17 Complex Complex::operator + (Complex &C) const
    18 {
    19     return Complex(real+C.real,imag+C.imag);
    20 }
    21 
    22 Complex Complex::operator-=(Complex &C)
    23 {
    24     real=real-C.real;
    25     imag=imag-C.imag;
    26     return Complex(real,imag);
    27 }
    28 
    29 Complex const operator - (Complex &C1,Complex &C2)
    30 {
    31     return Complex(C1.real-C2.real,C1.imag-C2.imag);
    32 }
    33 
    34 void Complex::Display() const
    35 {
    36     cout << "(" << real << ", " << imag << ")" << endl;
    37 }
    38 
    39 int main()
    40 {
    41     double r, m;
    42     cin >> r >> m;
    43     Complex c1(r, m);
    44     cin >> r >> m;
    45     Complex c2(r, m);
    46     Complex c3 = c1+c2;
    47     c3.Display();
    48     c3 = c1-c2;
    49     c3.Display();
    50     c3 -= c1;
    51     c3.Display();
    52     return 0;
    53 }

    师生信息管理

      1 #include<iostream>
      2 #include<string>
      3 #include<iomanip>
      4 using namespace std;
      5 
      6 class Person
      7 {
      8 protected:
      9     int NO;//编号
     10 public:
     11     Person() {};
     12     Person(int N): NO(N) {};
     13     virtual void display() = 0; //输出相关信息
     14     virtual ~Person() {};
     15 };
     16 
     17 class Student: public Person
     18 {
     19     int score[5];
     20 public:
     21     Student() {};
     22     Student(int N, int S1, int S2, int S3, int S4, int S5): Person(N)
     23     {
     24         score[0] = S1, score[1] = S2, score[2] = S3, score[3] = S4, score[4] = S5;
     25     };
     26     ~Student() {};
     27     //friend istream& operator >> (istream &input,Student &S);
     28     void display();
     29 };
     30 /*
     31 istream& operator >> (istream &input,Student &S)
     32 {
     33     input>>S.NO>>S.score[0]>>S.score[1]>>S.score[2]>>S.score[3]>>S.score[4];
     34     return input;
     35 }
     36 */
     37 void Student::display()
     38 {
     39     double average(0);
     40     int count(0);
     41 
     42     for(int i(0); i < 5; i++)
     43     {
     44         if(score[i] == -1) count++;
     45         else average += score[i];
     46     }
     47 
     48     average /= (5 - count);
     49 
     50     if(count == 5) cout << NO << " " << count << endl;
     51     else cout << NO << " " << count << " " << fixed << setprecision(1) << average << endl;
     52 }
     53 
     54 class Teacher: public Person
     55 {
     56     int num[3];
     57 public:
     58     Teacher() {};
     59     Teacher(int N, int N1, int N2, int N3): Person(N)
     60     {
     61         num[0] = N1, num[1] = N2, num[2] = N3;
     62     };
     63     ~Teacher() {};
     64     //friend istream& operator >> (istream &input,Teacher &T);
     65     void display();
     66 };
     67 /*
     68 istream& operator >> (istream &input,Teacher &T)
     69 {
     70     input>>T.NO>>T.num[0]>>T.num[1]>>T.num[2];
     71     return input;
     72 }
     73 */
     74 void Teacher::display()
     75 {
     76     int number(0);
     77 
     78     for(int i(0); i < 3; i++)
     79     {
     80         number += num[i];
     81     }
     82 
     83     cout << NO << " " << number << endl;
     84 }
     85 
     86 int main()
     87 {
     88     int flag, count(0);
     89     Person *pp[10];
     90 
     91     while(cin >> flag, flag)
     92     {
     93         switch(flag)
     94         {
     95             case 1:
     96                 {
     97                     int N, S1, S2, S3, S4, S5;
     98                     cin >> N >> S1 >> S2 >> S3 >> S4 >> S5;
     99                     pp[count++] = new Student(N, S1, S2, S3, S4, S5);
    100                     pp[count - 1]->display();
    101                     break;
    102                 }
    103 
    104             case 2:
    105                 {
    106                     int N, N1, N2, N3;
    107                     cin >> N >> N1 >> N2 >> N3;
    108                     pp[count++] = new Teacher(N, N1, N2, N3);
    109                     pp[count - 1]->display();
    110                     break;
    111                 }
    112         }
    113     }
    114 
    115     return 0;
    116 }

    汽车收费

      1 #include<iostream>
      2 #include<string>
      3 using namespace std;
      4 
      5 class Vehicle
      6 {
      7 protected:
      8     string NO;//编号
      9 public:
     10     Vehicle() {};
     11     Vehicle(string N): NO(N) {};
     12     virtual void display() = 0; //输出应收费用
     13     virtual ~Vehicle() {};
     14 };
     15 
     16 class Car: public Vehicle
     17 {
     18     int number, weight;
     19 public:
     20     Car() {};
     21     Car(string N, int Num, int Wei): Vehicle(N), number(Num), weight(Wei) {};
     22     //friend istream& operator >> (istream &input,Car &C);
     23     void display();
     24 };
     25 /*
     26 istream& operator >> (istream &input,Car &C)
     27 {
     28     input>>C.NO>>C.number>>C.weight;
     29     return input;
     30 }
     31 */
     32 void Car::display()
     33 {
     34     cout << NO << " " << number * 8 + weight * 2 << endl;
     35 }
     36 
     37 class Truck: public Vehicle
     38 {
     39     int weight;
     40 public:
     41     Truck() {};
     42     Truck(string N, int W): Vehicle(N), weight(W) {};
     43     //friend istream& operator >> (istream &input,Truck &T);
     44     void display();
     45 };
     46 /*
     47 istream& operator >> (istream &input,Truck &T)
     48 {
     49     input>>T.NO>>T.weight;
     50     return input;
     51 }
     52 */
     53 void Truck::display()
     54 {
     55     cout << NO << " " << weight * 5 << endl;
     56 }
     57 
     58 class Bus: public Vehicle
     59 {
     60     int number;
     61 public:
     62     Bus() {};
     63     Bus(string N, int Num): Vehicle(N), number(Num) {};
     64     //friend istream& operator >> (istream &input,Bus &B);
     65     void display();
     66 };
     67 /*
     68 istream& operator >> (istream &input,Bus &B)
     69 {
     70     input>>B.NO>>B.number;
     71     return input;
     72 }
     73 */
     74 void Bus::display()
     75 {
     76     cout << NO << " " << number * 3 << endl;
     77 }
     78 
     79 int main()
     80 {
     81     int flag, count(0);
     82     Vehicle *pv[10];
     83 
     84     while(cin >> flag, flag)
     85     {
     86         switch(flag)
     87         {
     88             case 1:
     89                 {
     90                     string No;
     91                     int number, weight;
     92                     cin >> No >> number >> weight;
     93                     pv[count++] = new Car(No, number, weight);
     94                     pv[count - 1]->display();
     95                     break;
     96                 }
     97 
     98             case 2:
     99                 {
    100                     string No;
    101                     int weight;
    102                     cin >> No >> weight;
    103                     pv[count++] = new Truck(No, weight);
    104                     pv[count - 1]->display();
    105                     break;
    106                 }
    107 
    108             case 3:
    109                 {
    110                     string No;
    111                     int number;
    112                     cin >> No >> number;
    113                     pv[count++] = new Bus(No, number);
    114                     pv[count - 1]->display();
    115                     break;
    116                 }
    117         }
    118     }
    119 
    120     return 0;
    121 }

    宠物的生长(多态)

     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 
     5 class Pet   //
     6 {
     7 protected:
     8     string name;
     9     int length,weight,current;
    10 public:
    11     virtual void display(int day)=0;
    12     virtual ~Pet(){};
    13 };
    14 
    15 class Cat:public Pet
    16 {
    17 public:
    18     Cat(){};
    19     Cat(string N,int L,int W,int C);
    20     void display(int day);
    21 };
    22 
    23 Cat::Cat(string N,int L,int W,int C)
    24 {
    25     name=N,length=L,weight=W,current=C;
    26 }
    27 
    28 void Cat::display(int day)
    29 {
    30     cout<<name<<" "<<length+(day-current)<<" "<<weight+(day-current)*2<<endl;
    31 }
    32 
    33 class Dog:public Pet
    34 {
    35 public:
    36     Dog(){};
    37     Dog(string N,int L,int W,int C);
    38     void display(int day);
    39 };
    40 
    41 Dog::Dog(string N,int L,int W,int C)
    42 {
    43     name=N,length=L,weight=W,current=C;
    44 }
    45 
    46 void Dog::display(int day)
    47 {
    48     cout<<name<<" "<<length+(day-current)*2<<" "<<weight+(day-current)<<endl;
    49 }
    50 
    51 int main()
    52 {
    53     int flag,i(0);
    54     Pet *pt[10];
    55     string name;
    56     int length,weight,time;
    57     while(cin>>flag,flag==1||flag==2)
    58     {
    59         cin>>name>>length>>weight>>time;
    60         switch(flag)
    61         {
    62         case 1:pt[i++]=new Cat(name,length,weight,time);break;
    63         case 2:pt[i++]=new Dog(name,length,weight,time);break;
    64         }
    65     }
    66     for(int j(0);j<i;j++)
    67     {
    68         pt[j]->display(flag);
    69     }
    70     return 0;
    71 }

    马会飞

     1 #include<iostream>
     2 using namespace std;
     3 
     4 class Horse
     5 {
     6 public:
     7     Horse(){cout<<"Horse 申请了空间..."<<endl;}
     8     virtual void Fly(){cout<<"Just a horse."<<endl;}
     9     virtual ~Horse(){cout<<"Horse 释放了空间..."<<endl;}
    10 };
    11 
    12 class Pegasus:public Horse
    13 {
    14 public:
    15     Pegasus(){cout<<"Pegasus 申请了空间..."<<endl;}
    16     void Fly(){cout<<"I can fly!"<<endl;}
    17     ~Pegasus(){cout<<"Pegasus 释放了空间..."<<endl;}
    18 };
    19 
    20 int main()
    21 {
    22     Horse *p1 = new Horse; //输出:Horse 申请了空间...
    23     Horse *p2 = new Pegasus; /*  输出两行:
    24                                  Horse 申请了空间...
    25                                  Pegasus 申请了空间...   
    26                      */    
    27     cout << endl; 
    28     
    29     p1->Fly(); //输出:Just a horse.
    30     p2->Fly(); //输出:I can fly!
    31     cout << endl; 
    32     
    33     delete p1; //输出:Horse 释放了空间...
    34     delete p2;  /* 输出两行:
    35                    Pegasus 释放了空间... 
    36                    Horse 释放了空间... 
    37             */
    38     return 0;
    39 }

    鸡兔同笼

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int is_min(int);
     7     int is_max(int);
     8     int count, num;
     9     cin >> count;
    10 
    11     while(count--)
    12     {
    13         cin >> num;
    14 
    15         if(num % 2)
    16             cout << 0 << ' ' << 0 << endl;
    17         else
    18             cout << is_min(num) << ' ' << is_max(num) << endl;
    19     }
    20 
    21     return 0;
    22 }
    23 
    24 int is_min(int number)
    25 {
    26     for(int i(number / 4); i >= 0; i++)
    27         if(4 * i == number) return i;
    28         else return i + 1;
    29 
    30     return 0;
    31 }
    32 
    33 int is_max(int number)
    34 {
    35     return number / 2;
    36 }

    数据的最大值问题(重载+函数模板)

      1 #include <iostream>
      2 using namespace std;
      3 
      4 class Time
      5 {
      6 private:
      7     int hh, mm, ss;
      8 public:
      9     Time()
     10     {
     11         hh = 0;
     12         mm = 0;
     13         ss = 0;
     14     }; //构造函数
     15     Time(int h, int m, int s): hh(h), mm(m), ss(s) {};  //构造函数
     16     void settime(int h, int m, int s)
     17     {
     18         hh = h, mm = m, ss = s;
     19     };
     20     friend Time operator - (Time A, Time B);
     21     friend bool operator > (Time A, Time B);
     22     friend ostream& operator << (ostream &output, Time &A);
     23 };
     24 
     25 Time operator - (Time A, Time B)    //在该程序中无实际用途,忽略
     26 {
     27     return Time(A.hh - B.hh, A.mm - B.mm, A.ss - B.ss); //实际情况需要考虑负数情况
     28 }
     29 
     30 bool operator > (Time A, Time B)    //重载大于号,用于比较
     31 {
     32     return A.hh * 3600 + A.mm * 60 + A.ss > B.hh * 3600 + B.mm * 60 + B.ss;
     33 }
     34 
     35 ostream& operator << (ostream &output, Time &A)     //重载输出流函数,方便输出
     36 {
     37     output << A.hh << " " << A.mm << " " << A.ss;
     38     return output;
     39 }
     40 
     41 class date
     42 {
     43 private:
     44     int year, month, day;
     45 public:
     46     date() {};
     47     date(int y, int m, int d): year(y), month(m), day(d) {};
     48     void setdate(int y, int m, int d)
     49     {
     50         year = y, month = m, day = d;
     51     };
     52     friend bool operator > (date A, date B);
     53     friend ostream& operator << (ostream &output, date &A);
     54 };
     55 
     56 bool operator > (date A, date B)
     57 {
     58     return A.year * 365 + A.month * 30 + A.day > B.year * 365 + B.month * 30 + B.day;
     59 }
     60 
     61 ostream& operator << (ostream &output, date &A)
     62 {
     63     output << A.year << " " << A.month << " " << A.day;
     64     return output;
     65 }
     66 
     67 template<class T>
     68 T maxn(T x[], int len)
     69 {
     70     T temp = x[0];
     71 
     72     for(int i(1); i < len; i++)
     73         if(x[i] > temp)
     74             temp = x[i];
     75 
     76     return temp;
     77 }
     78 
     79 int main()
     80 {
     81     int intArray[100], flag;
     82     double doubleArray[100];
     83     Time timeArray[100];
     84     date dateArray[100];
     85     cin >> flag;
     86 
     87     while(flag != -1)
     88     {
     89         switch(flag)
     90         {
     91             case 1:
     92                 {
     93                     int Max, a, i(0);
     94 
     95                     while(cin >> a, a)
     96                         intArray[i++] = a;
     97 
     98                     Max = maxn(intArray, i);
     99                     cout << Max << endl;
    100                     break;
    101                 }
    102 
    103             case 2:
    104                 {
    105                     double Max, a;
    106                     int i(0);
    107 
    108                     while(cin >> a, a)
    109                         doubleArray[i++] = a;
    110 
    111                     Max = maxn(doubleArray, i);
    112                     cout << Max << endl;
    113                     break;
    114                 }
    115 
    116             case 3:
    117                 {
    118                     Time Max;
    119                     int a, b, c, i(0);
    120 
    121                     while(cin >> a, a)
    122                     {
    123                         cin >> b >> c;
    124                         timeArray[i++].settime(a, b, c);
    125                     }
    126 
    127                     Max = maxn(timeArray, i);
    128                     cout << Max << endl;
    129                     break;
    130                 }
    131 
    132             case 4:
    133                 {
    134                     date Max;
    135                     int a, b, c, i(0);
    136 
    137                     while(cin >> a, a)
    138                     {
    139                         cin >> b >> c;
    140                         dateArray[i++].setdate(a, b, c);
    141                     }
    142 
    143                     Max = maxn(dateArray, i);
    144                     cout << Max << endl;
    145                     break;
    146                 }
    147         }
    148     
    149         cin >> flag;
    150     }
    151 
    152     return 0;
    153 }
  • 相关阅读:
    进阶篇:3.2.5)DFM钣金-常见装配和成形结构
    基础篇:3.4)3d模型绘制的好坏会影响产品合格率(注意点)
    进阶篇:2.1)DFMA实施障碍和关键
    [洛谷P2224][题解][HNOI2001]产品加工
    [洛谷P1262][题解]间谍网络
    [洛谷P3919][题解]可持久化数组&&主席树讲解
    [洛谷P5677][题解][GZOI2017]配对统计
    [洛谷P1040][题解]加分二叉树
    [校内赛3-1][题解]folder
    [校内赛3-3][题解]block
  • 原文地址:https://www.cnblogs.com/wzzdeblog/p/10872300.html
Copyright © 2020-2023  润新知