📄 数据结构(1).cpp
字号:
#include <iostream>
using namespace std;
#include<string.h>
typedef struct data{
char name[20];
char type[20];
float price;
int num;
}Data;
typedef struct LNODE
{Data datal;
struct LNODE *next;
}LNODE,*LinkList;
//下面是各个函数:
void Cin(LinkList &head) //输入函数
{
int i=0;
int n;
LNODE *p,*l,*q1;
cout<<"输入要输入的数据组数:"<<endl;
cin>>n;
for(i=0;i<n;i++)
{
p=new LNODE;
p->next=NULL;
cout<<"输入要输入的具体数据:"<<endl;
cin>>p->datal.name>>p->datal.num>>p->datal.price>>p->datal.type;
if(head==NULL)
{head=p;p->next=NULL;
}
else
{l=head;
while(p->datal.price>l->datal.price)
{
q1=l;
if(l->next!=NULL)
l=l->next;
else{
l->next=p;
break;
}
}
if(p->datal.price<=l->datal.price)
{
if(head==l)
head=p;
else
q1->next=p;
p->next=l;
}//if
l=head;
}
}
}
//以上是输入函数
void Cout(LinkList head)
{ LNODE *p;
cout<<"货物清单如下:"<<endl;
p=head;
cout<<"name"<<" "<<"num"<<" "<<"price"<<" "<<"type"<<endl;
while(p!=NULL)
{cout<<p->datal.name<<" "<<p->datal.num<<" "<<p->datal.price<<" "<<p->datal.type<<endl;
p=p->next;
}
}
//以上是Cout函数
void Insert(LinkList &head)
{LNODE *p,*l,*q1;
p=new LNODE;
p->next=NULL;
cout<<"输入要插入的数据:"<<endl;
cin>>p->datal.name>>p->datal.num>>p->datal.price>>p->datal.type;
if(head==NULL)
{head=p;p->next=NULL;
}
else
{l=head;
while(p->datal.price>l->datal.price)
{
q1=l;
if(l->next!=NULL)
l=l->next;
else{
l->next=p;
break;
}
}
if(p->datal.price<=l->datal.price)
{
if(head==l)
head=p;
else
q1->next=p;
p->next=l;
}//if
l=head;
}
Cout(head);
}
//以上是Insert函数
void Delete(LinkList &head)
{ LNODE *t,*s;
char str[20];
cout<<"输入要删除的货物的名称:"<<endl;
cin>>str;
if(strcmp(str,head->datal.name)==0)
head=head->next;
else
{ s=head;
while((strcmp(str,s->datal.name)!=0)&&(s->next!=NULL))
{t=s;
s=s->next;
}
if((strcmp(str,s->datal.name))==0)
{if(s->next!=NULL)
t->next=s->next;
else t->next=NULL;
}
}
Cout(head);
}
//以上是删除函数
void New(LinkList &head)
{ LNODE *s,*p,*t;
p=new LNODE;
cout<<"输入要更新后的数据:"<<endl;
cin>>p->datal.name>>p->datal.num>>p->datal.price>>p->datal.type;
if(strcmp(p->datal.name,head->datal.name)==0)
{s=head;head=p;head->next=s->next;}
else
{s=head;
while(strcmp(p->datal.name,s->datal.name)!=0)
{t=s;
s=s->next;
}
t->next=p;
p->next=s->next;
}
Cout(head);
}
//以上是更新函数
void Search(LinkList head)
{ LNODE *s;
char p[20];
cout<<"输入要查询的家电的名称:"<<endl;
cin>>p;
s=head;
if(s==NULL)
cout<<"出错啦!笨蛋!"<<endl;
while(strcmp(p,s->datal.name)!=0) s=s->next;
cout<<"查询结果为:"<<endl;
cout<<s->datal.name<<" "<<s->datal.num<<" "<<s->datal.price<<" "<<s->datal.type<<endl;
}//以上是查找函数
void main()
{ //主函数
cout<<"欢迎进入货物管理系统:"<<endl<<endl;
LinkList head;
head=NULL;
Cin(head);
int a;
do
{
cout<<"如果要输出货物清单请键入1;"<<endl;
cout<<"如果要插入货物项目请键入2;"<<endl;
cout<<"如果要删除货物项目请键入3;"<<endl;
cout<<"如果要更新货物清单请键入4;"<<endl;
cout<<"如果要查询货物项目请键入5;"<<endl;
cout<<"如果要退出请键入6;"<<endl;
cin>>a;
switch (a)
{case 1: Cout(head);break;
case 2: Insert(head);break;
case 3: Delete(head);break;
case 4: New(head);break;
case 5: Search(head);break;
case 6: { cout<<"谢谢您使用本系统,有不足之处敬请谅解!!^.^ ^.^ ^.^ ^.^ ^.^ ^.^ ^.^ ^.^ ^.^ ^.^ ^.^ ^.^"<<endl; break;}
}
}
while(a!=6);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -