资源简介
欢迎进入系统菜单
.添加新商品信息记录
.显示仓库中商品信息记录内容
.根据商品名查询仓库中商品信息记录
.根据商品名首字查询仓库中商品信息记录
.根据商品名删除仓库中商品信息记录
.根据商品名修改仓库中商品信息记录
.退出系统
请输入您的选择
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
int count=0;
class CData //定义数据基类
{
public:
CData(){};
virtual int Compare(CData &int)=0;
virtual void Show()=0;
virtual ~CData(){};
};
class CNode //定义结点基类
{
private:
CData *pData; //用于指向数据类的指针
CNode *pNext; //用于指向链表的后向指针
public:
CNode(){pData=0;pNext=0;}; //结点构造函数
CNode(CNode &node) //用于拷贝的构造函数
{
pData=node.pData;
pNext=node.pNext;
}
void InputData(CData *pdata){pData=pdata;} //输入数据
void ShowNode(){pData->Show();}
CData *GetData(){return pData;}
friend class CList; //定义链表类为基类
};
class CList
{
CNode *pHead; //链表头结点指针
public:
CList(){pHead=0;};
~CList(){DeleteList();}
void AddNode(CNode *pnode); //在首部添加结点
CNode *DeleteNode(CNode *); //删除一个指定的结点,返回该结点的指针
CNode *LookUp(CData &); //查找一个指定的数据,返回该数据所在的结点在链表的指针,未找到返回0
bool LookUpF(CData &);
void ShowList(); //打印整个链表
void DeleteList(); //删除整个链表
CNode *GetListHead(){return pHead;} //返回链表首结点
CNode *GetListNextNode(CNode *pnode); //返回链表指定结点的下一个结点
};
CNode *CList::GetListNextNode(CNode *pnode) //返回链表指定结点的下一个结点
{
CNode *p1=pnode;
return p1->pNext;
};
void CList::AddNode(CNode *pnode) //在首部添加结点
{
if (pHead==0) //如果是空链表,插入的结点是唯一的结点
{
pHead=pnode;
pnode->pNext=0;
return;
}
else //否则,插入到链表首部
{
pnode->pNext=pHead;
pHead=pnode;
}
};
CNode *CList::DeleteNode(CNode *pnode) //删除一个指定的结点,返回该结点的指针
{
CNode *p1*p2;
p1=pHead; //指向首结点
while(p1!=pnode&&p1->pNext!=0) //寻找要删除的结点
{
p2=p1;
p1=p1->pNext; //结点p2始终在p1的后面
}
if (p1==pHead) //如果要删除的是首结点
{
pHead=pHead->pNext; //将首结点后移
return pnode;
}
p2->pNext=p1->pNext; //p1指向被删除的结点,将p2结点与p1后面的结点连接起来
return pnode;
}
CNode *CList::LookUp(CData &data) //查找一个指定的数据,返回指针,若未找到返回0
{
CNode *p1=pHead;
while(p1) //从头结点开始查找
{
if (p1->pData->Compare(data1)==0)
return p1; //找到后返回结点指针
p1=p1->pNext;
}
return 0; //搜索完找不到,返回空指针0
}
bool CList::LookUpF(CData &data)
{
bool f1=false;
CNode *p1=pHead;
while(p1)
{
if (p1->pData->Compare(data0)==0)
{
p1->ShowNode();
f1=true;
}
p1=p1->pNext;
}
return f1;
}
void CList::ShowList() //打印整个链表
{
CNode *p1=pHead;
while(p1)
{
p1->pData->Show();
p1=p1->pNext;
}
}
void CList::DeleteList() //删除整个链表结点
{
CNode *p1*p2;
p1=pHead;
while(p1)
{
delete p1->pData;
p2=p1;
p1=p1->pNext;
delete p2;
}
}
class Warehouse:public CData //仓库为记录,为数据基类的公有派生类
{
private :
char szName[20]; //仓库中数据:商品名、商品数量和入库时间
char szNumber[20];
char szTime[20];
char szN;
public:
Warehouse(){strcpy(szName“\0“);strcpy(szNumber“\0“);strcpy(szTime“\0“);} //构造函数
Warehouse(char *namechar *numberchar *time)
{
strcpy(szNamename);
strcpy(szNumbernumber);
strcpy(szTimetime);
- 上一篇:行李寄存管理软件绿色版.
- 下一篇:山东大学数字图像处理实验一:图像基本操作
相关资源
- 防火墙C++源码,测试可以运行
- QT制作类似360悬浮球,实现各种基本功
- hashtable-C语言版折叠法+单链表
- 单链表及文件操作 从txt文件中读取数
- 从txt文件中读取数据并自动建立单链
- 学生信息管理系统c语言单链表实现
- 二叉树的C语言实现,实现二叉树基本
- 编写算法删除单链表L中所有值为e的数
- 哈夫曼编码译码器绝对可以运行c语言
- mfc画一个五角星的可以运行
- C语言下用单链表实现一元多项式的四
- 模拟 数据库 C语言 基本功能
- c++实现的sql基本功能 Linux,win下可运
- 已知head为单链表的表头指针,链表中
- c语言实现的单链表和循环链表
- 数据结构 通讯录管理 课程设计C++单链
- 计算机图形学考试内容-Opengl-会移动的
- 用c语言编程ftp程序,并实现基本功能
- 数据结构c语言版-单链表的操作程序代
- C语言,设备管理系统,用win32写的界
- 华容道基本功能c++实现
- 若干城市的信息存入一个带头结点的
- c++实现的单链表
- 单链表的并集与交集C语言
- 单链表的C++实现。。
- c语言 利用学生信息栈实现学生信息单
- 数据结构单链表c语言源代码
- 数据结构头插法建立单链表
- 单链表的类模板定义与实现
- 数据结构单链表实现大数阶乘C++递归
评论
共有 条评论