#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define LEN
sizeof( struct Tv )
typedef struct Tv
{
int m;
//电视数量
int fee;
//电视的售价
struct Tv *next;
}*LinkList;
//建立 空链表 带头结点
void Creat_List( LinkList &T )
{
T = ( LinkList ) malloc ( LEN );
if( T == NULL )
{
printf("没有空间分配!\n");
return ;
}
T->next = NULL;
}
//输入信息查询 (金额)
void
Check_List( LinkList &T )
{
LinkList p;
int f;
printf("输入你要查询电视的售价:");
scanf("%d", &f);
p = T->next;
if( p == NULL )
printf("仓库中没有存货!\n");
while( p )
{
if( p->fee == f )
{
printf("售价为 %d 的电视仓库存货为 %d 台\n", f, p->m );
break;
}
p = p->next;
if( p == NULL )
printf("售价为 %d 的电视仓库中没有存放\n", f );
}
}
//入库
插入结点
void Input_List( LinkList &T )
{
LinkList p;
int i, n;
printf("输入你要插入的结点个数: ");
scanf("%d", &n);
printf("\n");
for( i = 0; i<n; i++)
{
p = ( LinkList ) malloc ( LEN );
printf("输入电视数量: ");
scanf("%d", &p->m);
printf("输入电视价格: ");
scanf("%d", &p->fee);
p->next = T->next;
T->next = p;
}
}
//出库 删除结点(金额)
void
Delete_List( LinkList &T )
{
int m, f;
LinkList p, r;
printf("输入出库电视的金额:");
scanf("%d", &f);
p = T->next;
r = T;
if( p == NULL )
printf("仓库中没有存货!\n");
else
{
while( p && (p->fee != f) )
{
r = p;
p = p->next;
}
if( !p )
printf("售价为 %d 的电视仓库中没有存放\n", f );
else
{
printf("输入你要取出电视的台数:");
scanf("%d", &m);
if( m > p->m )
printf("造作失败! 存货不足!\n");
else if( m<p->m )
p->m = p->m - m;
else
r->next = p->next;
}
}
}
void main( )
{
char c;
LinkList T;
Creat_List( T );
for( ; ; )
{
printf("*请按下面的提示进行造作*\n");
printf("*查询链表链表请按 \'1\' 键*\n");
printf("*信息入库请按 \'2\' 键*\n");
printf("*信息出库请按 \'3\' 键*\n");
printf("*推出系统请按 \'4\' 键*\n");
c = getch();
putchar(c);
putchar('\n');
switch( c )
{
case'1':
Check_List( T );
break;
case'2':
Input_List( T );
break;
case'3':
Delete_List( T );
break;
case'4':
exit(0);
break;
}
}
}