주차장 관리 - 엄 울 민 판 데이터 구조 실습 문제
9983 단어 개인 항목
* 주차 장 치 는 n 대의 차 를 주차 할 수 있 는 좁 고 긴 통로 이 며 한 개의 대문 만 출입 할 수 있 습 니 다.자동 차 는 주차장 안에서 도착 하 는 선착순 으로 한 번 에 북쪽에 서 남쪽 으로 주차 하고 만약 에 장 내 에 주차 가 꽉 찼 다 면 먼저 인도 에 주차 해 야 한다.
* 주차장 에서 차 가 나 오 면.인도 에 있 는 첫 번 째 차 에 그것 을 타고 들 었 다.주차장 안에서 차 가 나 오 려 고 할 때.그의 뒤에 있 는 차 는 그 를 위해 길 을 양보 해 야 한다.그리고 주차장 에 원래 순서대로 들 어가 비용 을 받는다.
parking.java
/**
* ***********CopyRight**************
*-------Powered by QianXunNet-----
*-----Version 1.00 2009-01-17-----
*----- Design BY NiChao -----
*=========description===========
*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
*/
package yanweimin.Parking;
import java.util.Scanner;
import yanweimin.Parking.*;
import java.util.Scanner;
public class Park {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//
System.out.println("the parking money is 10 yuan per hour");
System.out.println("input a num for the maxsize of parking:");
Scanner in = new Scanner(System.in);
int maxsize = in.nextInt();
Queue biandao = new Queue();
StackArray main = new StackArray(maxsize," ");
StackArray fuzhu = new StackArray(maxsize, " ");
loop: while(true)
{
Scanner cin = new Scanner(System.in);
System.out.println(" :");
//====== =======
int time = cin.nextInt();
System.out.println("select === 1: 2. 3. ");
int select = cin.nextInt();
switch(select)
{
//
case 1 :
{
System.out.println("input the num of car");
int num = cin.nextInt();
Car mycar = new Car(time ,num);
int into = main.push(mycar);
if(into == -1)
{
biandao.addQueue(mycar);
}
break;
}
//
case 2 :
{
System.out.println("input the num of the car you want to out:");
int num = cin.nextInt();
while( main.stackvalue[main.p].num != num)
{
Car acar = main.stackvalue[main.p];
main.pop();
fuzhu.push(acar);
}
Car right_car = main.stackvalue[main.p];
main.pop();
int money = (time - right_car.time)*10;
System.out.println(" "+money);
while( fuzhu.p != -1)
{
Car acar = fuzhu.stackvalue[fuzhu.p];
fuzhu.pop();
main.push(acar);
}
if(biandao.rear != -1)
{
Car acar = biandao.queuevalue[0];
acar.time = time;
biandao.delQueue();
main.push(acar);
}
break;
}
case 3 :
{
break loop;
}
}
}
}
}
queue.class
package yanweimin.Parking;
//
import yanweimin.Parking.Car;
public class Queue {
/*
*
*/
// public void coutQueue()
// {
//
// if(this.rear == -1)
// System.out.println(" ");
// else
// {
// int j = 0;
// for(int i =0; i<=rear;i++,j++)
// {
// System.out.print(queuevalue[i]+" ");
// }
// System.out.println(" "+j+" ");
// }
// }
/*
*
* @param num
*/
public void addQueue(Car car)
{
//
if(this.rear == this.maxsize-1)
{
System.out.println(" ");
}
else
{
this.rear ++;
this.queuevalue[this.rear] = car;
System.out.println(" "+car.num+" ");
}
}
/*
*
* @return num
*/
public void delQueue()
{
if(this.rear == -1)
{
System.out.println(" ");
}
else
{
Car car = this.queuevalue[0];
int temp = 0;
while ( temp != this.rear )
{
this.queuevalue[temp] = this.queuevalue[temp +1];
temp ++;
}
this.rear --;
System.out.println(" "+car.num+" ");
}
}
public int maxsize = 20;
public Car[] queuevalue = new Car[maxsize];
public int rear = -1;
}
stackarray.class
package yanweimin.Parking;
import yanweimin.Parking.Car;
public class StackArray {
//
public StackArray(int maxsize,String name)
{
p = -1;
this.maxsize = maxsize;
stackvalue = new Car[maxsize];
this.name = name;
}
//
// public void print()
// {
//
// if(this.p==-1)
// System.out.println(" ");
// else
//{
// int i = this.p;
// while(i>=0)
// {
// System.out.println(this.stackvalue[p]);
// i--;
// }
// }
// } //print
//
// -1
// 1
public int push(Car value)
{
if(this.p == this.maxsize-1 )
{
System.out.println(name+" ");
return -1;
}
else
{
this.p++;
this.stackvalue[p] = value;
System.out.println(" "+value.num+" "+this.name);
return 1;
}
} //push
public int pop()
{
// int temp = -1;
if(this.p == -1)
{
System.out.println(" ");
return -1;
}
else
{
int temp;
temp = this.stackvalue[p].num;
System.out.println(" "+temp+" "+this.name);
this.p--;
return temp;
}
}
int p; //
int maxsize; //
Car[] stackvalue;
String name;
}
테스트 결과
--------------------------------------------
the parking money is 10 yuan per hour
input a num for the maxsize of parking:
2
현재 시간 을 입력 하 세 요:
5
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
1
input the num of car
1
자동차 번호판 이 1 로 주 차고 에 들 어 갔다.
현재 시간 을 입력 하 세 요:
10
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
1
input the num of car
2
자동차 번호판 이 2 로 메 인 차고 에 들 어 갔다.
현재 시간 을 입력 하 세 요:
15
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
2
input the num of the car you want to out:
1
차 번 호 는 2 출 주 차고 이다.
자동차 번호판 이 2 로 보조 차고 에 들 어 갔다.
차 번 호 는 1 번 주 차고 이다.
이 차 는 100 위안 을 지불해 야 한다
차 번 호 는 2 차 보조 차고 이다.
자동차 번호판 이 2 로 메 인 차고 에 들 어 갔다.
현재 시간 을 입력 하 세 요:
20
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
1
input the num of car
3
자동차 번호판 은 3 으로 메 인 차고 에 들 어 갔다.
현재 시간 을 입력 하 세 요:
25
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
1
input the num of car
4
차고
차 번호 가 4 인 데 인도 에 들 어 갔 어 요.
현재 시간 을 입력 하 세 요:
30
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
1
input the num of car
5
차고
차 번호 가 5 로 인도 에 들 어 섰 다.
현재 시간 을 입력 하 세 요:
35
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
2
input the num of the car you want to out:
2
차 번 호 는 3 출 주 차고 이다.
자동차 번호판 은 3 으로 보조 차고 에 들 어 갔다.
차 번 호 는 2 출 주 차고 이다.
이 차 는 반드시 250 위안 을 지불해 야 한다.
차 번 호 는 3 개의 보조 차고 이다.
자동차 번호판 은 3 으로 메 인 차고 에 들 어 갔다.
차 번호 가 4 번 인 데 요.
자동차 번호판 이 4 로 메 인 차고 에 들 어 갔다.
현재 시간 을 입력 하 세 요:
40
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
2
input the num of the car you want to out:
4
차 번 호 는 4 번 메 인 차고 이다.
이 차 는 반드시 50 위안 을 지불해 야 한다
차 번 호 는 5 번 인도 이다.
자동차 번호판 이 5 로 메 인 차고 에 들 어 갔다.
현재 시간 을 입력 하 세 요:
45
select = = = 1: 도착 2. 떠 나 3. 종료 프로그램
3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
모집 사이트 기술 류 품사 분석제2판클 러 스 터 모드 에서 코드 에 사용자 정의 단 어 를 동적 으로 추가 하 는 것 이 잘못 되 었 습 니 다.사용자 정의 단 어 는 사용자 정의 단어 파일 을 추가 하 는 형식 으로 만 존재 합 니 다 ① hanl...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.