| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 768 人关注过本帖
标题:数据结构 结业作业 各位高手帮忙啊
只看楼主 加入收藏
cyuyan11
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-12-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
数据结构 结业作业 各位高手帮忙啊
停车场管理系统
设计要求:设计停车厂,要求根据不同车辆选择不同的地方进行停车,来保证最大停车厂使用效率。
 分成三种车型 大中小,来车选型号停车,如果小的满了 可以进中 和大,若果中满了可以进大,大满了就没地方了!!!
我不会弄  我瞎写了  很多错误!!!! 高手帮我改改吧 要不就挂了!!!!!!!

#include<stdio.h>
#include<stdlib.h>
#define MAXNUM 100
#define ElemType int
typedef struct
{ElemType stack[MAXNUM];
  int Top;
}Sqstack;

void InitStack(SqStack *p[4])
{if(!p)
    printf("内存分配失败");
  p->top=-1;
}
void Push(Sqstuck *p1,p2,p3 ElemType x)
{if(p->top>MAXNUM-1)
{p->top=top+1;
p->stack[p->top]=x;
}
void main()
{Sqstack *p[i];
 int cord;ElemType a;
 Initstack(p[i]);
 printf("\n");
 printf("\n----------主菜单------------\n");
 printf("\n 1.  小型车辆     \n");
 printf("\n 2.  中型车辆     \n");
 printf("\n 3.  大型车辆     \n");
 printf("\n----------------------------\n");
 switch(cord)
 { case 1:
 {q=(SqStack*p1)malloc(sizeof(SqStack));
   InitStack(q);
   OutStack(q);
   if(p->top=p->top+1)
   {p1->=p2};
 printf("\n停车成功\n")
 scanf("%d",&a);}break;
 case 2:
     {q=(SqStack*p2)malloc(sizeof(SqStack));
     InitStack(q);
     OutStack(q);
     if(p->top=p->top+1)
     {p2->=p3};
     printf("\n停车成功\n")
     scanf("%d",&a);}break;
 case 3:{q=(SqStack*p3)malloc(sizeof(SqStack));
     Initstack(q);
     OutStack(q);
     if(p->top=p->top+1)
         printf("\n义务空车位,请下次光临\n");
     scanf("%d",&a);}
     break;}
}while(cord<=3);}
搜索更多相关主题的帖子: 停车场 管理系统 include 内存 设计 
2011-12-20 12:01
jj369258
Rank: 4
等 级:业余侠客
帖 子:116
专家分:226
注 册:2010-12-2
收藏
得分:5 
void InitStack(SqStack *p[4])
{if(!p)
    printf("内存分配失败");
  p->top=-1;
}
这个就是栈的初始化??
2011-12-20 14:42
cyuyan11
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-12-18
收藏
得分:0 
回复 2楼 jj369258
我也蒙了    那个不是吗
2011-12-20 16:23
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:5 
这个程序写得有待改进。
1、首先,要明白堆栈是什么;堆栈就是一个连续的内存空间,人为定义其先进后出。因此,要申请(malloc)空间,堆栈使用;其二,需要对指针管理;
2、多堆栈的管理。要管理堆栈,需对堆栈的情况相当了解,如是否为空,是否为满?
3、从作业题目分析,最好是不使用堆栈,避免造成车辆存取效率变低,使用一个一维数组即可。
有不清楚之处,可以再发帖讨论。
2011-12-20 16:47
cyuyan11
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-12-18
收藏
得分:0 
回复 4楼 silent_world
我们作业要求 用栈来编   。。能帮忙改改吗???? 万分感谢啊
2011-12-20 17:10
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:5 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#define MAXNUM 100
#define ElemType int
typedef char SElemType;
typedef int Status;
#define OK 1
#define ERROR 0


typedef struct
{
    SElemType *base, *top;
    int stacksize;
   
}SqStack;

Status InitStack(SqStack &S)
{
    S.base = (SElemType *)malloc(MAXNUM*sizeof(SElemType));
    if(!S.base)
        return ERROR;
    S.top = S.base;
    S.stacksize = MAXNUM;
    return OK;
}


Status Push(SqStack &S, SElemType e)
{
    if(S.top - S.base >= S.stacksize)
        return ERROR;
    else
    {
        *S.top++ = e;
        return OK;
    }
}

Status Pop(SqStack &S, SElemType &e)
{
    if(S.top == S.base)
        return ERROR;
    e = *--S.top;
    return OK;
}

int  main(void)
{
    SqStack Type[3]; //小、中、大三种车辆栈
    for(int i=0; i<3; i++)
    {
        InitStack(Type[i]); //初始化小、中、大车辆栈
    }
    char cord, e;
    while(1)
    {
        printf("\n");
        printf("\n----------主菜单------------\n");
        printf("\n 1.  小型车辆进车位    \n");
        printf("\n 2.  中型车辆进车位    \n");
        printf("\n 3.  大型车辆进车位    \n");
        printf("\n 4.  小型车位出车位    \n");
        printf("\n 5.  中型车位出车位    \n");
        printf("\n 6.  大型车位出车位    \n");
        printf("\n 7.  退出              \n");
        printf("\n----------------------------\n");
        cord = getchar();
        getchar(); //吃掉回车符
        switch(cord) //'1'表示小车;'2'表示中车;'3'表示大车
        {
            case '1':
                 if( Type[0].top - Type[0].base < Type[0].stacksize )
                 {
                     Push(Type[0], '1');
                     printf("小车进小车位!\n");
                     break;
                 }
            case '2':
                 if( Type[1].top - Type[1].base < Type[1].stacksize )
                 {
                        if( cord == '1' )
                        {
                            Push(Type[1], '1');
                            printf("小车进中车位!\n");
                        }
                        else
                        {
                            Push(Type[1], '2');
                            printf("中车进中车位!\n");
                        }
                        break;
                 }
            case '3':
                 if( Type[2].top - Type[2].base < Type[2].stacksize ) //大车的栈内有空
                 {
                     if( cord == '1' )
                     {
                         Push(Type[2], '1'); //小车停车:如果小车,中车位满,则把小车停在大车位
                         printf("小车进大车位!\n");
                     }
                     else if( cord == '2' )
                     {
                         Push(Type[2], '2'); //中车停车:如果中车位满,则把中车停在大车位
                         printf("中车进大车位!\n");
                     }
                     else
                     {
                         Push(Type[2], '3'); //大车停车:如果是大车,直接停在大车位
                         printf("大车进大车位!\n");
                     }
                     break;
                 }
                 else
                 {
                     printf("所有的车位已满!");
                     break;
                 }
            case '4':
                  Pop( Type[0], e);
                  printf("小车位小车出去!\n");
                  break;
            case '5':
                  Pop( Type[1], e);
                  if( e == '1' )
                      printf("中车位小车出去!\n");
                  else
                      printf("中车位中车出去!\n");
                  break;
            case '6':
                  Pop( Type[2], e);
                  if( e == '1')
                      printf("大车位小车出去!\n");
                  else if( e == '2')
                      printf("大车位中车出去!\n");
                  else
                      printf("大车位大车出去!\n");
                  break;
            default:return 0;
        }
    }
} 

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-12-23 14:49
yellow561384
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2011-12-25
收藏
得分:5 
呵呵 有长见识了
2011-12-25 11:54
快速回复:数据结构 结业作业 各位高手帮忙啊
数据加载中...
 
   



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

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