鱼C论坛

 找回密码
 立即注册
查看: 1458|回复: 1

C++代码补充

[复制链接]
发表于 2020-3-30 22:51:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

class CStudent

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

        long xuehao;

        char name[11];

        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 内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-30 23:40:11 | 显示全部楼层
有好心人救救我吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表