zoukankan      html  css  js  c++  java
  • C++程序的多文件组成

    C++程序的多文件组成

    【例3.32】 一个源程序按照结构划分为3个文件
    // 文件1 student.h (类的声明部分)
    #include<iostream.h>
    #include<string.h>
    class Student {
    private:
        char *name; // 学生姓名
        char *stu_no; // 学生学号
        float score; // 学生成绩
    public: // 类的外部接口
        Student(char *name1,char *stu_no1,float score1); // 构造函数
        ~Student(); // 析构函数
        void modify(float score1); // 数据修改
        void show(); // 数据输出
    };
    
    // 文件2 student.cpp (类的实现部分)
    #include "student.h" // 包含类的声明文件
    Student∷Student(char *name1,char *stu_no1,float score1)
    {
        name=new char[strlen(name1)+1];
        strcpy(name,name1);
        stu_no=new char[strlen(stu_no1)+1];
        strcpy(stu_no,stu_no1);
        score=score1;
    }
    Student∷~Student()
    {
        delete []name;
        delete []stu_no;
    }
    void Student∷modify(float score1)
    { score=score1; }
    void Student∷show()
    {
        cout<<"
     name: "<<name;
        cout<<"
     stu_no: "<<stu_no;
        cout<<"
     score: "<<score;
    }
    
    // 文件3 studentmain.cpp (类的使用部分)
    #include "student.h" // 包含类的声明文件
    void main()
    {
        Student stu1("Liming","990201",90);
        stu1.show();
        stu1.modify(88);
        stu1.show();
    }
    
    【例3.33】 利用类表示一个堆栈(stack),并为此堆栈建立push()、 pop()及显示堆栈内容的showstack()等函数
    //文件1 stack.h
    #include <iostream.h>
    #include <iomanip.h>
    #include <ctype.h>
    const int SIZE=10;
    class stack{
        int stck[SIZE]; // 数组,用于存放栈中数据
        int tos; // 栈顶位置(数组下标)
    public:
        stack();
        void push(int ch); // 将数据ch压入栈
        int pop(); // 将栈顶数据弹出栈
        void ShowStack();
    };
    
    // 文件2 stack.cpp
    #include <iostream.h>
    #include "stack.h"
    stack∷stack() // 构造函数,初始化栈
    { tos= 0; }
    void stack∷push(int ch)
    {
        if(tos==SIZE){
            cout<<"Stack is full";
            return;
        }
        stck[tos]=ch;
        tos++;
        cout<<"You have pushed a data into the stack!
    ";
    }
    int stack∷pop()
    {
        if (tos==0){
            cout<<"Stack is empty";
            return 0;
        }
        tos--;
        return stck[tos];
    }
    void stack∷ShowStack()
    {
        cout<<"
     The content of stack: 
    " ;
        if (tos==0){
            cout<<"
    The stack has no data!
    ";
            return;
        }
        for (int i=tos-1; i>=0;i--)
            cout<<stck[i]<<" ";
        cout<<"
    
    ";
    }
    
    //文件3 stackmain.cpp
    #include <iostream.h>
    #include "stack.h"
    main()
    {
        cout<<endl;
        stack ss;
        int x;
        char ch;
        cout<<" <I> ------ Push data to stack
    ";
        cout<<" <O> ------ Pop data from stack
    ";
        cout<<" <S> ------ Show the content of stack
    ";
        cout<<" <Q> ------ Quit... 
    ";
        while (1){
            cout<<"Please select an item: ";
            cin>>ch;
            ch=toupper(ch);
            switch(ch){
                case 'I':
                    cout<<"
     Enter the value that "<<"you want to push: ";
                    cin >>x;
                    ss.push(x);
                    break;
                case 'O':
                    x=ss.pop();
                    cout<<"
     Pop "<<x<<" from stack.
    "; break;
                case 'S':
                    ss.ShowStack();
                    break;
                case 'Q':
                    return 0;
                default:
                    cout<<"
     You have inputted a wrong item! Please try again!
    ";
                    continue;
            }
        }
    }
    
  • 相关阅读:
    OSCP Learning Notes Buffer Overflows(3)
    OSCP Learning Notes Buffer Overflows(5)
    OSCP Learning Notes Exploit(3)
    OSCP Learning Notes Exploit(4)
    OSCP Learning Notes Exploit(1)
    OSCP Learning Notes Netcat
    OSCP Learning Notes Buffer Overflows(4)
    OSCP Learning Notes Buffer Overflows(1)
    OSCP Learning Notes Exploit(2)
    C++格式化输出 Learner
  • 原文地址:https://www.cnblogs.com/whale90830/p/10542444.html
Copyright © 2011-2022 走看看