| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 790 人关注过本帖
标题:数据结构(C语言)题目求解!!!谢谢!!!
只看楼主 加入收藏
showboat2009
Rank: 2
等 级:论坛游民
帖 子:16
专家分:19
注 册:2010-3-11
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
数据结构(C语言)题目求解!!!谢谢!!!
【问题描述】
某百货公司仓库中有一批电视机,构成了一个单链表并存与计算机中,链表的结点指出同样价格的若干台。
【基本要求】
实现以下基本操作:
(1)    从键盘输入电视机的信息,建立电视机链表。
(2)    从键盘输入电视机的信息,实现电视机查询操作。
(3)    从键盘输入电视机的信息,实现电视机入库操作。
(4)    从键盘输入电视机的信息,实现电视机出库操作。
搜索更多相关主题的帖子: C语言 数据结构 求解 
2010-03-22 19:55
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
#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;
        }
    }
}
2010-03-25 15:13
快速回复:数据结构(C语言)题目求解!!!谢谢!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059955 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved