jjjoe 发表于 2020-3-30 22:51:52

C++代码补充

#include<iostream.h>
#include <string.h>

class CStudent

{ static int num;//对学生生成学号,静态成员生成

        long xuehao;

        char name;

        int nianling;

public:

        CStudent();//构造函数

        CStudent(CStudent&);//拷贝构造函数(无参)

        CStudent(char*,int);//name与年龄构造生成,形式参数可以给或者不给,但是在实现体中一定要给出来
        void SetNL(int n){nianling=n;}//设置年龄的方法
        void SetName(char*name)//设置姓名的方法

        {

                strcpy(this->name,name);

        }
        int GetNL();//获得年龄的方法

        char*GetName(){return name;}//获得姓名的方法
        void Print()//输出信息的方法
        {cout<<"学号:"<<xuehao<<" 姓名:"<<name<<" 年龄:"<<nianling;}

};

int CStudent::num=10000;//
CStudent::CStudent()//学生的构造函数
{num++;
xuehao=num;//有一个学生纠给出一个学号
}
CStudent::CStudent(char*name,int nl)
{num++;
xuehao=num;
strcpy(this->name,name);
nianling=nl;
}
CStudent::CStudent(CStudent &st)
{num++;
xuehao=num;
strcpy(this->name,st.name);
nianling=st.nianling;
}
int CStudent::GetNL()
{
return nianling;
}
class CNode//结点
{CStudent data;//数据域
CNode*next;//指针域
public:

        CNode();//对CNode设置无参构造函数
        CNode(CNode &);//设置带参数构造函数,写法在外面给出
        void SetNext(CNode*);//初始化
        CNode*GetNext();//获得下一个结点
        CStudent GetData()
        {
        return data;
        }
        void SetData(CStudent&);//设置数据域

};

CNode::CNode()

{
next=0;
}
CNode::CNode(CNode &st)
{
        data=st.data;
        next=st.next;
}

        CNode * CNode:: GetNext()//
        {

        return next;
        }

void CNode:: SetNext(CNode*n)

        {

        next=n;;
        }

void CNode:: SetData(CStudent&st)
        {
        data.SetName(st.GetName());
        data.SetNL(st.GetNL());
        }


class CSingleLink//单链表

{ CNode head;//链表头指针

        int num;//节点数
        public:
        CSingleLink();//创建空表
        void InsertNode(CNode&,int method=0,int pos=0);//method=0头节点插入,1,指定位置插入,pos,2.尾部char
        CNode*FindCNode(CNode&);//给出CNode的结点
        void Visit_Link()
{
        CNode*p=head.GetNext();
        while(p)

        { p->GetData().Print();

        cout<<endl;
        p=p->GetNext();
}
}

};


CSingleLink::CSingleLink()


{num=0;


}


void CSingleLink::InsertNode(CNode &n,int method,int pos)//method=0头节点插入,1,指定位置插入,pos,2.尾部char

{

switch(method)

{case 0://头结点插入方式

n.SetNext(head.GetNext());

head.SetNext(&n);

num++;

break;

case 1://指定位置pos插入




        break;
case 2://尾部插入
        {

        CNode*tail=head.GetNext();

        if(!tail){ n.SetNext(head.GetNext());

                        head.SetNext(&n);}

        else{

                while(tail->GetNext())

                        tail=tail->GetNext();

        tail->SetNext(&n);

        }

                num++;

        }
        break;
default:;

}

}

void main()
{
CSingleLink sgllinkst;//
CNode st;
st.SetData(CStudent("张三",22));
sgllinkst.InsertNode(st);
CNode st1;
st1.SetData(CStudent("李四",25));
CNode st2;
st2.SetData(CStudent("王五",18));
CNode st3;
st3.SetData(CStudent("胡明",30));
sgllinkst.InsertNode(st1);
sgllinkst.InsertNode(st2);
sgllinkst.InsertNode(st3,2);
sgllinkst.Visit_Link();
}

如何补充case1 内容

jjjoe 发表于 2020-3-30 23:40:11

有好心人救救我吗?{:5_99:}
页: [1]
查看完整版本: C++代码补充