/*【基本要求】
实现以下基本操作:
(1)从键盘输入电视机的信息,建立电视机链表。
(2)从键盘输入电视机的信息,实现电视机查询操作。
(3)从键盘输入电视机的信息,实现电视机入库操作。
(4)从键盘输入电视机的信息,实现电视机出库操作。*/
#include<iostream>
#include<string>
#include<iomanip>
#include<cstdlib>
using namespace std;
typedef struct Node
{
int num;
int price;
struct Node *next;
}Node , *LinkList;
//建立链表
LinkList L;
int length=0;
//入库
int insertPost_link()
{ printf("请输入要插入的电视机得信息:编号 价格\n");
//cout<<"请输入信息:编号 价格"<<endl;
LinkList p , q;
q = new Node();//申请新节点,省去c中createnode函数
if(L->next == NULL)
L->next = q;
else
{
p = L;
while(p->next != NULL)
p = p->next;
p->next = q;
}
//scanf("%d,%d",q->num,q->price);
cin>>q->num>>q->price;
q->next = NULL;
length++;
return 1;
}
//出库
int deleteV_link()//删除第一个值为x的结点
{
if(length==0)
{
printf("没有电视机了,快别删了\n");
return 0;
}
else
{
printf("请输入删除的电视信息编号\n");
//cout<<"请输入删除的电视信息编号"<<endl;
LinkList p , q;
p = L;//当前位置
q = p;//辅助指针
p = p->next;
int temp;//编号
scanf("%d",&temp);
//cin>>temp;
for(int i=1;i<=temp-1;i++)
{
q = p;
p = p->next;
}
q->next = p->next;
q = p;
p = p->next;
free(q);
length--;
return 1;
}
}
//查找
int locate_link() //在链表中找到值为id的结点存储位置//
{
LinkList s = L->next;
int q , i;
printf("请输入想查找得电视机信息编号:\n");
//cout<<"请输入电视机信息编号:"<<endl;
scanf("%d",&q);
//cin>>q;
for(i = 1 ; i <= length ; i++)
{
if(s->num == q)
{ //printf("%d",i,s->num,s->price);
cout<<i<<'.'<<s->num<<' '<<s->price;
return 1;
}
else
{
s = s->next;
printf("没查到这个编号的电视机。\n");
return 0;
}
}
}
void printMenu()
{
printf("*************************************\n");
printf("欢迎使用老杨家电视机厂产品信息管理系统\n");
printf("[1] 插入的电视机编号\n");
printf("[2] 删除的电视机编号\n");
printf("[3] 按编号查找电视机信息\n");
printf("[4] 电视机余量\n");
printf("[5] 退出系统\n");
printf("*************************************\n");
printf("请输入您的选择(1-5):\n");
}
int main()
{ int a,id;
int chioce;
L = new Node();
L->next = NULL;//头结点
while(1)
{ printMenu();
scanf("%d",&chioce);
switch (chioce)
{
case 1:
//插入
if (insertPost_link())
printf("插入成功!");
break;
case 2:
//删除
if (deleteV_link() == 1)
printf("删除成功!");
else
printf("删除失败");
break;
case 3:
//查找
if (locate_link() == 1)
printf("查询成功!");
break;
//显示余量
case 4:
printf("咱们这个仓库库存的电视机余量为:%d\n",length);
break;
//告辞
case 5:
printf("欢迎下次使用!");
break;
default:
printf("没有这个操作哦,请重新输入:\n");
break;
}
}
return 0;
}