| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:求高手解释一下该程序
只看楼主 加入收藏
xy2bl
Rank: 1
等 级:新手上路
帖 子:61
专家分:2
注 册:2010-12-2
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:5 
求高手解释一下该程序
void leave(sqstack *tcc,sqstack *dcc,LinkQueue *p,car_info a,float pay)
{
car_info x,ss;
QueuePtr b;
int find=1,arrivetime=0;
float cost=0.0;
while(find)
{

ss=pop(tcc);
push(dcc,ss);
if(ss.car_num==a.car_num)
{
find=0;
cost=(a.time-ss.time)*pay;
arrivetime=ss.time;
}
}
pop(dcc); //把临时堆栈的第一辆车(要离开的)去掉;
while(dcc->stacksize)
{
x=pop(dcc);
push(tcc,x);
}
if(tcc->stacksize<2&&p->lenth!=0)
{
b=DeQueue(p);
x.car_num=b->car_num;
x.time=b->time;
push(tcc,x);
printf("车牌号为%d的车辆由便道进入停车场%d号车道\n",x.car_num,tcc->stacksize);
}
printf("\n**********************************************\n");
printf("|车牌号码|进站时刻|出站时刻|停留时间|停车费用|\n");
printf("|%-6d |%-6d |%-6d |%-6d |%-6.2f |\n",a.car_num,arrivetime,a.time,a.time-arrivetime,cost);
printf("**********************************************\n");
}
版主帮我解释一下该程序
2010-12-28 18:32
xy2bl
Rank: 1
等 级:新手上路
帖 子:61
专家分:2
注 册:2010-12-2
收藏
得分:0 
帮个忙
2010-12-28 22:39
xy2bl
Rank: 1
等 级:新手上路
帖 子:61
专家分:2
注 册:2010-12-2
收藏
得分:0 
版主,帮个忙
2010-12-29 11:09
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:15 
/*
*车辆到达时 的处理过车
*当车厂有空的车位时 表示可以停车  则进栈操作表示
*当车厂没有剩余的车位时,则将车停放在 便道上  则进队列操作
*/
void arrive(sqstack *s,LinkQueue *p,car_info a,int n)
{
    if(s->stacksize<n)
    {
        push(s,a);
        printf("\n车牌号为%d的车辆进入停车场%d号车道\n",a.car_num,s->stacksize);
    }
    else  
    {
        EnQueue(p,&a);
        printf("\n停车场已满,车牌号为%d的车辆停在便道的%d号位置\n",a.car_num,p->lenth);
    }
}
2010-12-29 12:27
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
/*
*车辆 离开时的处理过程
*/
void leave(sqstack *tcc,sqstack *dcc,LinkQueue *p,car_info a,float pay)
{
    car_info x,ss;
    QueuePtr b;
    int find=1,arrivetime=0;
    float cost=0.0;
    while(find)
    { //在停车场  查找
        ss=pop(tcc);
        push(dcc,ss); // 将tcc中的数据搬到dcc中 直到找到 则停止搬运
        if(ss.car_num==a.car_num)
        { //表示找到
            find=0;
            cost=(a.time-ss.time)*pay; //计算费用
            arrivetime=ss.time; //登记时间
        }
    }
    pop(dcc); //把临时堆栈的第一辆车(要离开的)去掉;
    while(dcc->stacksize)
    { //把dcc剩余的信息 全部搬到tcc中
        x=pop(dcc);
        push(tcc,x);
    }
    if(tcc->stacksize<2&&p->lenth!=0)
    { //如果if条件成立 则将便道上的车辆移进停车场
        b=DeQueue(p);
        x.car_num=b->car_num;
        x.time=b->time;
        push(tcc,x);
        printf("车牌号为%d的车辆由便道进入停车场%d号车道\n",x.car_num,tcc->stacksize);
    }

    printf("\n**********************************************\n");
    printf("|车牌号码|进站时刻|出站时刻|停留时间|停车费用|\n");
    printf("|%-6d |%-6d |%-6d |%-6d |%-6.2f |\n",a.car_num,arrivetime,a.time,a.time-arrivetime,cost);
    printf("**********************************************\n");
}
2010-12-29 12:37
chenzp
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2010-12-30
收藏
得分:15 
计科大二生迷茫中。。。。。。。。
2010-12-30 18:10
快速回复:求高手解释一下该程序
数据加载中...
 
   



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

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