yuhuiang2061 2016-12-22 03:57 采纳率: 0%
浏览 1044

miscrosoft visual studio2010运行代码出错,怎么解决

#include
#include
#include
#include
#include//getch
void main()

#define MAX 2 //停车场容量
#define price 0.05; //每车每分钟费用
using namespace std;
typedef struct time{
int hour;
int min;
}Time; //时间

typedef struct node{
char num[10];
Time reach;
Time leave;
}CarNode; //车辆信息

typedef struct NODE{
CarNode *stack[MAX+1];
int top;
}SeqStackCar; //停车场

typedef struct car{
CarNode *data;
struct car *next;
}QueueNode; //车节点

typedef struct Node{
QueueNode *head;
QueueNode *rear;
}LinkQueueCar; //等待队列便道

void InitStack(SeqStackCar *); //初始化栈
int InitQueue(LinkQueueCar *); //初始化便道
int Arrival(SeqStackCar *,LinkQueueCar *); //车辆到达
void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); //车辆离开
void List(SeqStackCar,LinkQueueCar); //显示存车信息
void List1(SeqStackCar *S);

void InitStack(SeqStackCar s){ //初始化栈
int i;
s->top=0;
for(i=0;i<=MAX;i++)
s->stack[s->top]=NULL;
}
int InitQueue(LinkQueueCar *Q){ /
初始化便道*/
Q->head=(QueueNode *)malloc(sizeof(QueueNode));
if(Q->head!=NULL){
Q->head->next=NULL;
Q->rear=Q->head;
return(1);
}
else
return(-1);
}
void PRINT(CarNode *p,int room){ //打印出站车的信息
int A1,A2,B1,B2;
//这个循环有问题

    cout<<"\n请输入离开停车场的时间:/**:**/"; 
    scanf("%d:%d",&(p->leave.hour),&(p->leave.min)); 
    cout<<"\n车牌号为:"; 
    cout<<p->num; 
    cout<<"\n到达时间为: "<<p->reach.hour<<":"<<p->reach.min; 
    //printf("the depart time: %d:%d",p->leave.hour,p->leave.min); 
    A1=p->reach.hour; 
    A2=p->reach.min; 
    B1=p->leave.hour; 
    B2=p->leave.min; 
    cout<<"\n停车费为:"<<((B1-A1)*60+(B2-A2))*price<<"元"; 
    free(p);
    getch();

}
int Arrival(SeqStackCar Enter,LinkQueueCar *W){ //车辆到达
CarNode *p;
QueueNode *t;
p=(CarNode *)malloc(sizeof(CarNode));
void tcc();
cout<<"\n请输入车牌号(例:辽A12345):";
//gets(p->num);
cin>>p->num;
if(Enter->top Enter->top++;
cout<<"\n车辆位置:"<top;
cout<<"\n车辆进入时间:/
*:**/";
scanf("%d:%d",&(p->reach.hour),&(p->reach.min));
Enter->stack[Enter->top]=p;
return(1);
}
else{//车场已满,车进便道
cout<<"\n该车须在便道等待!";
t=(QueueNode )malloc(sizeof(QueueNode));
t->data=p;
t->next=NULL;
W->rear->next=t;
W->rear=t;
getch();
return(1);
}
}
void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W){ //车辆离开
int i, room;
CarNode *p,*t;
QueueNode *q;
//判断车场内是否有车
if(Enter->top>0){ //有车
while(1){ //输入离开车辆的信息
List1(Enter);
cout<<"\n请输入车在车场的位置(1--"<top<<")"< cin>>room;
if(room>=1&&room<=Enter->top)
break;
}
while(Enter->top>room){ //前面的车辆离开
Temp->top++;
Temp->stack[Temp->top]=Enter->stack[Enter->top]; //进入临时栈
Enter->stack[Enter->top]=NULL;
Enter->top--;
}
p=Enter->stack[Enter->top];
Enter->stack[Enter->top]=NULL; //把离开的车移除
Enter->top--;
while(Temp->top>=1){
Enter->top++;
Enter->stack[Enter->top]=Temp->stack[Temp->top]; //车再停回来
Temp->stack[Temp->top]=NULL;
Temp->top--;
}
PRINT(p,room);
//判断便道上是否有车及车站是否已满
if((W->head!=W->rear)&&Enter->top q=W->head->next;
t=q->data;
Enter->top++;
cout<<"\n便道的"<num<<"号车进入车场第"<top<<"位置."<<endl;
cout<<"\n请输入现在的时间/
*:**/:";
scanf("%d:%d",&(t->reach.hour),&(t->reach.min));
W->head->next=q->next;
if(q==W->rear)
W->rear=W->head;
Enter->stack[Enter->top]=t;
free(q);
}
else
cout<<"\n便道里没有车.\n";
getch();
}
else
cout<<"\n停车场里没有车."; //没车
getch();
}
void List1(SeqStackCar *S){ //列表显示听车场信息
int i;
if(S->top>0){ //判断车站内是否有车
cout<<"\n停车场:";
cout<<"\n位置 车牌号 到达时间\n";
for(i=1;i<=S->top;i++){
cout<stack[i]->num<<" "<stack[i]->reach.hour<<":"<stack[i]->reach.min< }
}
else
printf("\n停车场里没有车");
getch();
}
void List2(LinkQueueCar *W){ //列表显示便道信息
QueueNode *p;
p=W->head->next;
if(W->head!=W->rear){ //判断通道上是否有车
printf("\n等待车辆的号码为:");
while(p!=NULL){
cout<data->num< p=p->next;
}
}
else
cout<<"\n便道里没有车.";
getch();
}
void List(SeqStackCar S,LinkQueueCar W){
int flag,tag;
flag=1;
while(flag){
system("cls");
cout<<"\n请选择 :";
cout<<"\n1.车场\n2.便道\n3.返回\n";
while(1){
cin>>tag;
if(tag>=1||tag<=3)
break;
else
printf("\n请选择 :");
}
switch(tag){
case 1:
List1(&S);
break; //列表显示停车场信息
case 2:
List2(&W);
break; //列表显示便道信息
case 3:
flag=0;
break;
default:
break;
}
}
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-12-22 04:01
    关注

    怎么解决?看这么一堆代码,神也没法解决。应该以调试的方式运行程序,如果程序丢出异常,调试器会给出出错的行,这样找起来就容易了。如果程序没有丢出异常但是结果不对,那么单步执行,看每一步变量的变化,找到和你预期不同的地方。

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘