2

我对 VC++ 很陌生。昨天我的 VC++ 讲师给了我们这段代码,并要求我们将其制作为 exe。我不知道从哪里开始和结束。如何将这个单个文件变成exe。在 Visual Studio 中如何以及在何处粘贴此工作代码。如果我的问题听起来太愚蠢,对不起。但是我。请帮助我从这个单个文件中制作一个 exe。顺便说一下,这是约瑟夫斯圆算法

Code :
//////////////////Header file

#include<iostream.h>
template <class T>
class ex
{
    private:
        struct node
        {
            T data;
            struct node *next;
        };
        struct node *head,*front,*rear;
    public:
        ex()
        {
            head=new node;
            head->next=NULL;
            front=rear=head;
        }
        void enqueue(T x);
        T dequeue();
        void print();
        void move_next();
};



//////////////////Implementation file
#include "ex.h"
template <class T>
void ex<T>::enqueue(T x)
{
    node *p;
    p=new node;
    p->data=x;
    if(head->next==NULL)
    {
        front=rear=p;
        head->next=p;
        p->next=p;
    }
    else
    {
        rear->next=p;
        p->next=front;
        rear=rear->next;
    }
}

template<class T>
T ex<T>::dequeue()
{
    node *t;
    T x;
    t=front;
    x=t->data;
    front=front->next;
    rear->next=front;
    delete(t);
    return x;
}

template<class T>
void ex<T>::print()
{
    node *p=front;
    do
    {
        cout<<p->data<<endl;
        p=p->next;
    }while(p!=rear->next);
}

template<class T>
void ex<T>::move_next()
{
    front=front->next;
    rear=rear->next;
}



/////////////////Application file
#include "ex.cpp"
void main()
{
    ex<int> e;
    int m,n,i,d;
    cout<<"Enter the number of people";
    cin>>n;
    cout<<"Enter the number of passes";
    cin>>m;
    for(i=1;i<=n;i++)
        e.enqueue(i);
    cout<<"The players are
";
    e.print();
    cout<<"Eliminated in order
";
    while(n>1)
    {
        for(i=1;i<=m;i++)
            e.move_next();
        d=e.dequeue();
        cout<<d<<endl;
        n--;
    }
    d=e.dequeue();
    cout<<"Winning player:  "<<d<<endl;
}
4

2 回答 2

4

制作第一个名为 ex.h 的文件

#include<iostream.h>
template <class T>
class ex
{
    private:
        struct node
        {
            T data;
            struct node *next;
        };
        struct node *head,*front,*rear;
    public:
        ex()
        {
            head=new node;
            head->next=NULL;
            front=rear=head;
        }
        void enqueue(T x);
        T dequeue();
        void print();
        void move_next();
};

第二个文件到 ex.cpp

#include "ex.h"
template <class T>
void ex<T>::enqueue(T x)
{
    node *p;
    p=new node;
    p->data=x;
    if(head->next==NULL)
    {
        front=rear=p;
        head->next=p;
        p->next=p;
    }
    else
    {
        rear->next=p;
        p->next=front;
        rear=rear->next;
    }
}

template<class T>
T ex<T>::dequeue()
{
    node *t;
    T x;
    t=front;
    x=t->data;
    front=front->next;
    rear->next=front;
    delete(t);
    return x;
}

template<class T>
void ex<T>::print()
{
    node *p=front;
    do
    {
        cout<<p->data<<endl;
        p=p->next;
    }while(p!=rear->next);
}

template<class T>
void ex<T>::move_next()
{
    front=front->next;
    rear=rear->next;
}

并将第三个文件改成 Main.cpp 什么的。

#include "ex.cpp"
void main()
{
    ex<int> e;
    int m,n,i,d;
    cout<<"Enter the number of people";
    cin>>n;
    cout<<"Enter the number of passes";
    cin>>m;
    for(i=1;i<=n;i++)
        e.enqueue(i);
    cout<<"The players are
";
    e.print();
    cout<<"Eliminated in order
";
    while(n>1)
    {
        for(i=1;i<=m;i++)
            e.move_next();
        d=e.dequeue();
        cout<<d<<endl;
        n--;
    }
    d=e.dequeue();
    cout<<"Winning player:  "<<d<<endl;
}

然后编译它。另外,应该int main()不是void main()

于 2012-08-18T06:06:53.503 回答
0

要添加到 Alex F. 答案,您还需要创建一个 ex.h 文件和一个 ex.cpp 文件并将它们各自的代码粘贴到其中

于 2012-08-18T06:04:33.247 回答