Java连载69-接受输入、用数组模拟栈
一、编写一个酒店管理系统
1.直接上代码
package com.bjpowernode.java_learning;
public class D69_1_ {
  //编写一个程序模拟酒店的管理系统:预定房间、退房.......
  public static void main(String[] args) {
  }
}
class Room{
  String no;
  String type;//“标准间”“双人间”“豪华间”
  boolean isUse;//true表示占用,false表示空闲
}
class Hotel{
  //规定酒店:五层,每层十个房间,1,2层标准间,3,4双人间,5层豪华间
  Room[][] rooms;
  //无参数
  Hotel(){
    this(5,10);
  }
  Hotel(int rows,int cols){
    rooms = new Room[rows][cols];
    /*
     * rooms[0][0]....
     * rooms[4][9]....
     */
  }
  //对外提供预定方法
}
二、接受用户键盘输入
1.下面演示如何接受用户的输入
package com.bjpowernode.java_learning;
import java.util.Scanner;
public class D69_2_AcceptUserInput {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    //程序运行到此处,停下来,等待用户的输入
    String userInput = s.next();
    System.out.println("您输入了:"+userInput);
  }
}

三、使用数组模拟栈Stack
package com.bjpowernode.java_learning;
public class D69_3_ArraysSimulateStack {
  public static void main(String[] args) {
    Stack s = new Stack(2);
    User69 u1 = new User69("jfidsa",12);
    User69 u2 = new User69("jfiddfsa",12);
    User69 u3 = new User69("jfidfdsfsa",12);
    try {
      s.push(u1);
      s.push(u2);
      s.push(u3);
    }catch(StackOperationException e) {
      System.out.println(e);
    }
//      System.out.println(s.pop());
  }
}
class Stack{
  //使用数组存储数据,注意栈可以存储多个引用类型的元素
  Object[] elements;
  //指向栈顶元素上方的一个帧
  int index;
  //栈默认的初始化容量是10
  Stack(){
    this(10);
  }
  Stack(int max){
    elements = new Object[max];
  }
  //栈应该对外提供一个压栈的方法
  public void push(Object element) throws StackOperationException{
    if (index == elements.length) {
      throw new StackOperationException("栈已经满了");
    }
    elements[index++] = element;
  }
  //对外提供一个弹栈的方法
  public Object pop() throws StackOperationException{
    if(index == 0) {
      throw new StackOperationException("栈已经空了");
    }
    return elements[--index];
  }
}
class User69{
  String name;
  int age;
  User69(String name,int age){
    this.name = name;
    this.age = age;
  }
  public String toString() {
    return "User是我";
  }
}
class StackOperationException extends Exception{
  public StackOperationException() {}
  public StackOperationException(String msg) {
    super(msg);
  }
}

四、源码:
D69_1_HotelManageSystem.java
D69_2_AcceptUserInput.java
D69_3_ArraysSimulateStack.java
https://github.com/ruigege66/Java/blob/master/D69_1_HotelManageSystem.java
https://github.com/ruigege66/Java/blob/master/D69_2_AcceptUserInput.java
https://github.com/ruigege66/Java/blob/master/D69_3_ArraysSimulateStack.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载69-接受输入、用数组模拟栈的更多相关文章
- 数组模拟栈(C语言)
		
用数组模拟栈的实现: #include <stdio.h> #include <stdlib.h> #define STACK_SIZE 100 typedef struct ...
 - Java数组模拟栈
		
一.概述 注意:模拟战还可以用链表 二.代码 public class ArrayStack { @Test public void test() { Stack s = new Stack(5); ...
 - Hdu 3887树状数组+模拟栈
		
题目链接 Counting Offspring Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
 - Java连载19-用户输入和大括号省略
		
一.联系一个if语句 public class d19_{ public static void main(String[] args) { double a = 20.2; if(a>100 ...
 - Java从控制台接受输入字符
		
创建一个类,在该类的主方法中创建Scanner扫描起来封装System类的in输入流,然后提示用户输入身份证号码,并输入身份证号码的位数. 代码如下: import java.util.Scanner ...
 - java、C语言实现数组模拟栈
		
java: public class ArrayStack { private int[] data; private int top; private int size; public ArrayS ...
 - JavaScript数组模拟栈和队列
		
*栈和队列:js中没有真正的栈和队列的类型 一切都是用数组对象模拟的 栈:只能从一端进出的数组,另一端封闭 FILO 何时使用:今后只要仅希望数组只能从一端进 ...
 - LeetCode 155 - 最小栈 - [数组模拟栈]
		
题目链接:https://leetcode-cn.com/problems/min-stack/description/ 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的 ...
 - 数据结构(3):java使用数组模拟堆栈
		
堆栈原理: 数组模拟堆栈: //数组模拟栈 class ArrayStack{ //栈顶 private int top = -1; private int maxSize; private int[ ...
 
随机推荐
- [翻译]使用Visual Studio Code怎样调试Rust
			
我将 Visual Studio Code 作为Rust首选编辑器.遗憾的是 VS Code 不能非常好地完成 Rust 的调试. 配置调试器不难,但仍然需要几个步骤.我已经完整配置了好几次.我正在写 ...
 - C# 篇基础知识2——运算符、类型转换、流程控制、枚举、结构体和数组、函数
			
1.运算符.类型转换 计算某年y某月m某日d是周几的基姆拉尔森公式公式:int week = (d + 2*m + 3*(m + 1)/5 + y + y/4 - y/100 + y/400 + 1) ...
 - Lesson 48 Planning a share portfolio
			
How does the older investor differ in his approach to investment from the younger investor? There is ...
 - Task使用注意
			
1. CancellationTokenSource的使用 https://binary-studio.com/2015/10/23/task-cancellation-in-c-and-things ...
 - robot_framework + selenium + 上传本地文件+win7 32位
			
1.下载与安装AutoIt v3 地址链接:http://pan.baidu.com/s/1hqsDFBA,我自己是32位的系统,用这个运行可以 2.安装完成后,如下图所示 3. AutoIt Wi ...
 - activity标题栏和状态栏操作
			
修改显示的标题 1.修改AndroidMainfest.xml文件的label标签 2.setTitle("标签"); 去掉标签的显示 1.android:theme=" ...
 - iplimage 转HBITMAP
			
HBITMAP IplImage2hBitmap(IplImage* pImg) { cvFlip(pImg, NULL); BYTE tmp[]; BITMAPINFO *bmi = (BITMAP ...
 - $('#myModal').modal('show') //显示$('#myModal').modal('hide')隐藏
			
你这样试试,这是官方文档的写法 $('#myModal').modal('show') //显示$('#myModal').modal('hide')隐藏 //重复点击的隐藏显示有一个很更方便的写法$ ...
 - [Android]如何导入已有的外部数据库
			
转自:http://www.cnblogs.com/xiaowenji/archive/2011/01/03/1925014.html 我们平时见到的android数据库操作一般都是在程序开始时创建一 ...
 - delphi日期GMT格式
			
function TForm1.DateTimeToGMT(const DateTime: TDateTime): string;const WEEK: array[1..7] of PChar = ...