zoukankan      html  css  js  c++  java
  • C++Primer Plus习题记录-Chapter10

    10-1

    #pragma once
    #include <string>
    #ifndef ACCOUNT_H_
    #define ACCOUNT_H_
    class Account {
    private:
        char names[20];
        char accounts[20];
        double deposits;
    public:
        Account(char namec[],char accountc[],double depositc);
        ~Account();
        void display();
        void store(double n);
        void getout(double n);
    };
    #endif // !ACCOUNT_H_
    
    #include "pch.h"
    #include "account.h"
    #include <iostream>
    #include <cstring>
    using namespace std;
    Account::Account(char namec[],char accountc[],double depositc) {
        strcpy_s(names, namec);
        strcpy_s(accounts, accountc);
        deposits = depositc;
    }
    Account::~Account() {
    }
    void Account::display() {
        cout << names << ": " << accounts << "---" << deposits << endl;
    }
    void Account::store(double n) {
        deposits += n;
    }
    void Account::getout(double n) {
        deposits -= n;
    }
    
    #include "pch.h"
    #include <iostream>
    #include "account.h"
    using namespace std;
    
    int main(void) {
        char namec[20];
        char accountc[20];
        double depositc;
        cin >> namec;
        cin >> accountc;
        cin >> depositc;
        Account lls(namec, accountc,depositc);
        lls.display();
        lls.store(100.0);
        lls.display();
        lls.getout(20.0);
        lls.display();
        return 0;
    }

    10-2

    #pragma once
    #ifndef Person_H_
    #define Person_H_
    using namespace std;
    class Person {
    private:
        static const int LIMIT = 25;
        string lname;
        char fname[LIMIT];
    public:
        Person() { lname = ""; fname[0] = ''; }
        Person(const string &ln, const char *fn = "Heyyou");
        void Show() const;
        void FormalShow() const;
    };
    #endif // !1
    
    #include "pch.h"
    #include <iostream>
    #include <string>
    #include "account.h"
    Person::Person(const string &ln, const char *fn) {
        lname = ln;
        strcpy_s(fname,fn);
    }
    void Person::Show() const {
        cout << fname << " " << lname << endl;
    }
    void Person::FormalShow() const {
        cout << lname << " " << fname << endl;
    }
    
    #include "pch.h"
    #include <iostream>
    #include <cstdlib>
    #include <string>
    #include <cstring>
    #include <ctime>
    #include <array>
    #include <iomanip>
    #include <algorithm>
    #include "account.h"
    using namespace std;
    
    int main(void) {
        Person one;
        Person two("Smythecraft");
        Person three("Dimwiddy", "Sam");
        one.Show();
        two.FormalShow();
        three.Show();
    
        return 0;
    }

    10-6

    #pragma once
    #ifndef Person_H_
    #define Person_H_
    using namespace std;
    class Move {
    private:
        double x;
        double y;
    public:
        Move(double a = 0, double b = 0);
        void showmove() const;
        Move add(const Move & m) const;
        void reset(double a = 0, double b = 0);
    };
    #endif
    
    #include "pch.h"
    #include <iostream>
    #include <string>
    #include "account.h"
    using namespace std;
    Move::Move(double a, double b) {
        x = a;
        y = b;
    }
    void Move::showmove() const{
        cout << "Move toward x: " << x << "
    Move toward y: " << y << endl;
    }
    Move Move::add(const Move & m) const {
        Move newm;
        newm.x = x + m.x;
        newm.y = y + m.y;
        return newm;
    }
    void Move::reset(double a, double b) {
        x = a;
        y = b;
    }
    
    
    #include "pch.h"
    #include <iostream>
    #include "account.h"
    using namespace std;
    
    int main(void) {
        Move move1(1.1, 2.2);
        move1.showmove();
        Move move2(3.3, 4.4);
        move2.showmove();
        move2 = move2.add(move1);
        move2.showmove();
        move2.reset(0.1, 0.2);
        move2.showmove();
    
        return 0;
    }

    10-7

    #pragma once
    #ifndef Plorg_H_
    #define Plorg_H_
    using namespace std;
    class Plorg {
    private:
        enum {LEN=20};
        char names[LEN];
        int CI;
    public:
        Plorg(const char* name="Plorga", int CI = 50);
        void setCI(int n);
        void show() const;
    };
    #endif
    
    #include "pch.h"
    #include <iostream>
    #include <string>
    #include "account.h"
    using namespace std;
    Plorg::Plorg(const char* name, int CI) {
        strcpy_s(names, name);
        this->CI = CI;
    }
    void Plorg::setCI(int n) {
        CI = n;
    }
    void Plorg::show() const {
        cout << names << ": " << CI << endl;
    }
    
    int main(void) {
        Plorg lls1;
        lls1.show();
        Plorg aa("lls", 20);
        aa.show();
        aa.setCI(30);
        aa.show();
    
        return 0;
    }

    10-8

    #pragma once
    class List {
    public:
        typedef int Item;
    private:
        enum {LIMIT=5};
        Item items[LIMIT];
        Item top;
    public:
        List(const Item[]=nullptr, int m = 0) { top = 0; }
        bool push(const Item &);
        bool isempty()const;
        bool isfull()const;
        void visit(void(*fun)(Item &m));
    };
    void show(List::Item &m);
    void change(List::Item &m);
    List::Item getin();
    
    #include "pch.h"
    #include "list.h"
    #include <iostream>
    using namespace std;
    bool List::push(const Item &m) {
        if (!isfull()) {
            items[top++] = m;
            return true;
        }
        else {
            cout << "插入失败。" << endl;
            return false;
        }
    }
    bool List::isempty()const {
        if (!top) return true;
        else return false;
    }
    bool List::isfull()const {
        if (top == LIMIT) return true;
        else return false;
    }
    void List::visit(void(*fun)(Item &m)) {
        for (int i = 0; i < top; i++)
            fun(items[i]);    
    }
    void show(List::Item &m) {
        cout << m << ", ";
    }
    void change(List::Item &m) {
        cout << "请输入要替换的内容:";
        List::Item a;
        cin >> a;
        m = a;
        cout << "替换成功,新的值为" << m << endl;
    }
    List::Item getin() {
        List::Item a;
        cout << "请输入你要插入的内容: ";
        cin >> a;
        while (!cin)
        {
            cin.clear();
            cout << "输入错误,请重新输入: ";
            cin >> a;
        }
        return a;
    }
    
    using namespace std;
    
    int main(void) {
        List m;
        if (m.isempty())
            cout << "是空的!" << endl;
        else
            cout << "不是空的" << endl;
        while (!m.isfull())
        {
            List::Item a = getin();
            if (m.push(a))
                cout << "插入成功" << endl;
            else
                cout << "插入失败" << endl;
        }
        m.visit(show);
        m.visit(change);
        m.visit(show);
        system("pause");
        return 0;
    }
  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/lightmonster/p/10398098.html
Copyright © 2011-2022 走看看