【数据结构】c语言实现的电视机厂管理系统

/*【基本要求】
实现以下基本操作:
(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;
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值