1. 程式人生 > >1.通過輸入一個年月日 獲取到當月的這個日曆 打印出來 並且[]把輸入的這個日期包起來 2.酒店訂房小程式

1.通過輸入一個年月日 獲取到當月的這個日曆 打印出來 並且[]把輸入的這個日期包起來 2.酒店訂房小程式

1.=====================

package pratice;

import java.util.Calendar;
import java.util.Scanner;

public class CalEx {
    /**
     *  通過輸入一個年月日 獲取到當月的這個日曆 打印出來 並且[]把輸入的這個日期包起來
     * 
     */
    public static void main(String[] args) {
        CalEx cal = new CalEx();
        cal.year = cal.getInput("年");
        cal.month = cal.getInput("月");
        cal.day = cal.getInput("日期");    
        cal.printCal();
    }
    
    private int year;
    private int month;
    private int day;
    
    public int getInput(String str){
        System.out.println("請輸入"+str);
        return new Scanner(System.in).nextInt();
    }
    
    public void printCal(){
        // 日曆 6行 7列  通過Caldendar.set(year, month, day) 當月的日曆
        int[][] arr = new int[6][7];
        Calendar cal = Calendar.getInstance();
        cal.set(year, month, 0);
        int max = cal.get(Calendar.DAY_OF_MONTH);
        // 星期天開始的
        for(int i=1;i<=max;i++){
            cal.set(year, month-1, i);
            int row = cal.get(Calendar.WEEK_OF_MONTH)-1;
            int col = cal.get(Calendar.DAY_OF_WEEK)-1;
            arr[row][col] = i;
        }
        
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        for(int x=0;x<arr.length;x++){
            for(int y=0;y<arr[x].length;y++){
                if(arr[x][y] != 0){
                    if(arr[x][y] == day){
                        System.out.print("["+arr[x][y]+"]");
                    }else{
                        System.out.print(arr[x][y]);
                    }
                }
                System.out.print("\t");
            }
            System.out.println();
        }
    }
    

}
 

2.訂房小程式

package pratice;

import java.util.Scanner;

public class Hotel {
    
    public static void main(String[] args) {
        Hotel hotel = new Hotel();
        hotel.printRooms();
        
        Scanner in = new Scanner(System.in);
        while(true){
            System.out.println("請輸入操作 1:訂房   2:退房   3:退出");
            int num = in.nextInt();
            switch (num) {
            case 1:
                System.out.println("請輸入房間號");
                hotel.order(in.next());
                break;
                
            case 2:
                System.out.println("請輸入房間號");
                hotel.back(in.next());
                break;

            default:
                System.exit(0);
                break;
            }
        }
    }
    
    // 容器裝所有的房間
    public Room[][] rooms;

    public Hotel(){
        this(3, 5);
    }
    
    private Hotel(int row, int num) {
        // 未佔用的狀態
        rooms = new Room[row][num];
        for(int i=0;i<rooms.length;i++){
            for(int j=0;j<rooms[i].length;j++){
                if(i == 0){
                    rooms[i][j] = new Room("普通間", ""+(i+1)+0+j,false);
                }
                
                if(i == 1){
                    rooms[i][j] = new Room("雙人間", ""+(i+1)+0+j,false);
                }
                
                if(i == 2){
                    rooms[i][j] = new Room("豪華間", ""+(i+1)+0+j,false);
                }
            }
        }
    }
    
    
    public void order(String num){
        
        boolean flag = true;
        // 每次訂房間的時候 需要去檢查一下這個房間是不是被定了
        for(int i=0;i<rooms.length;i++){
            for(int j=0;j<rooms[i].length;j++){
                if(rooms[i][j].getNum().equals(num) && rooms[i][j].isUse() == false){
                    System.out.println("恭喜開房成功");
                    rooms[i][j].setUse(true);
                    flag = false;
                }
            }
        }
        printRooms();
        if(flag){
            System.out.println("不好意思這個房間已經被佔用了");
        }
    }
    
public void back(String num){
        
        boolean flag = true;
        // 每次訂房間的時候 需要去檢查一下這個房間是不是被定了
        for(int i=0;i<rooms.length;i++){
            for(int j=0;j<rooms[i].length;j++){
                if(rooms[i][j].getNum().equals(num) && rooms[i][j].isUse() == true){
                    System.out.println("退房成功,歡迎下次再來");
                    rooms[i][j].setUse(false);
                    flag = false;
                }
            }
        }
        printRooms();
        
        if(flag){
            System.out.println("你咋這麼秀呢");
        }
    }
    
    
    public void printRooms(){
        for(int i=0;i<rooms.length;i++){
            for(int j=0;j<rooms[i].length;j++){
                System.out.print(rooms[i][j] + " ");
            }
            System.out.println();
        }
    }
    
    
    
}
 

=====================================

package pratice;

public class Room {

    //房間型別
    private String type;
    //房間號
    private String num;
    //狀態
    private boolean isUse;
    public Room(String type, String num, boolean isUse) {
        super();
        this.type = type;
        this.num = num;
        this.isUse = isUse;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public boolean isUse() {
        return isUse;
    }
    public void setUse(boolean isUse) {
        this.isUse = isUse;
    }
    @Override
    public String toString() {
        return "Room [type=" + type + ", num=" + num + ", isUse=" + isUse + "]";
        }
    
    }
 

相關推薦

1.通過輸入一個年月日 獲取當月這個日曆 出來 並且[]輸入這個日期起來 2.酒店程式

1.===================== package pratice; import java.util.Calendar; import java.util.Scanner; public class CalEx {     /**      *  通過輸入

任意輸入一串字符串,求該字符串中字符的出現次數並出來,如輸入“bcaba”輸出:b 2 c 1 a 2

str ner ray view 方法 打印 contain 返回 play 前言:其實我還是有點不懂,有點郁悶了,算了直接把代碼放上去把。 方法一: Scanner input=new Scanner(System.in); System.out.pr

C++入門篇——輸入一個整數並將這個整數分別以八進位制,十進位制,十六進位制輸出;同時輸入一個布林值並且以布林值的方式出來

C++入門篇 輸入一個整數並將這個整數分別以 八進位制,十進位制,十六進位制輸出; 同時輸入一個布林值並且以 布林值的方式打印出來 注意:執行的時候需要按 ctrl鍵+F5 如果想只按F5就執行,在return 0;前面加一段程式碼: system("pause"); 同時需要

輸入一個年月日日期,給出上一天和下一天的日期

要求輸入一個代表年月日的8位整數, 計算出其上一天和下一天是什麼日期 2月分閏年和平年 這裡用的是if-else分支結構分情況計算上一天和下一天的日期 public class Demo { public static void main(String[]

輸入一個年月日,判斷是當年的第幾天

解題思路:先判斷是否是閏年,再判斷月份數n,最後將前n-1 個月有多少天相加,再加上第n個月的天數 一種方法是判斷閏年,再判斷是那個月,直接計算,這種方法就會有12次判斷 第二種方法是將每年12個月的

輸入一個大於7的整數,輸出小於k並且至少滿足下面2個條件中的1個條件的所有正整數

java -- exti 所有 數字 bre vat clas sta import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/6 22:06 * @d

P68——編寫一個程式,要求提示輸入一個ASCII碼值(如66),然後列印輸入的字元

錯誤程式碼如下: 錯在定義了錯誤的輸入物件型別,使用者輸入時也弄錯了輸入型別, 更改後正確程式碼如下: #include <stdio.h> int main(void) { int a; printf("please enter a ASCII ma:");

java--建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,將其一起出來

題目描述:建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 //Person類 class Pe

Java 輸入一個正整數,將其用中文出來

輸入一個正整數,將其用中文打印出來。使用java 實現 import  java.util.Scanner; public static void main(String[]  arge){          

java--建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,將其一起出來

題目描述:建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 //Perso

輸入一個五位整數,將它反向輸出。例如輸入12345,輸出應為54321。

這個程式是我對建構函式有個更深的認識。 首先建構函式要先從頭至尾走一邊才會輸出,無論輸出語句加的位置(迴圈內,條件語句內...除外)。 然後建構函式遞迴可以把問題簡單化,本題如果按常規思路,應該是做個迴圈,把各個數首尾交換。但是用呼叫使得其可以一次輸出一位數,而並不是輸出一個數組。 這道題使我開闊了程式設計思

當在瀏覽器中輸入一個url後回車,後臺發生了什麼?比如輸入url後,你看到了百度的首頁,那麼這一切是如何發生的呢?

簡單來說有以下步驟:1、查詢域名對應的IP地址。這一步會依次查詢瀏覽器快取,系統快取,路由器快取,ISPDNS快取,根域名伺服器。2、向IP對應的伺服器傳送請求。3、伺服器響應請求,發回網頁內容。4、瀏覽器解析網頁內容。當然,由於網頁可能有重定向,或者嵌入了圖片,AJAX,

分解一個使用者輸入的整數,並將各位數和各位數的和出來

例如給一個0-10000的整數6789;分解出6/7/8/9並計算6+7+8+9=24; 下列程式碼: package com.test; import java.util.Scanner; import org.junit.Test; public class Dame { @Tes

輸入一個整數和一棵二元樹,從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑,出和與輸入整數相等的所有路徑

題目:輸入一個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。打印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹         10          /    \         5       12       /  

jshtml指定元素,解決動態獲取的圖片無法問題

tps per 註意 pri javascrip iframe 動態 下載 默認 用js來調用瀏覽器的打印接口很容易,一兩行代碼就能搞定,但是有些數據是通過動態生成的,例如一些動態生成的二維碼,有時候調用打印接口圖片會無法顯示 為了解決這個問題,建議使用下面這個庫 下載:h

一個日誌模板,從traceback異常受啟發做的模板,可被pycharm esclip sublime等ide識別和跳轉

-c http esc pip 支持 pyc bubuko info 格式 之前發過日誌,再增加一種模板。logging.Formatter(‘%(asctime)s - %(name)s - File "%(pathname)s", line %(lineno)d, in

從0到1簡易區塊鏈開發手冊V0.6-實現區塊

操作 error 8 8 size ima 鎖定 圖片 src 。。 八. 打印區塊 以上的轉賬交易中,我們共計創建了四個區塊,其中一個區塊為創世區塊,另外三個區塊都是對我們的交易進行打包後產生的新區塊,本文將介紹如何將區塊信息打印出來。 1.命令行代碼 func (cli

java中如何知道一個字符串中有多少個字,每個字出來,舉例

有一個 url ont chapter 書籍 whole mar strong posit (視頻下載) (全部書籍) 9.6 About string,"I am a teacher",這個字符串中有多少個字,且分別把每個字打印出來。 /*本題的思路就是,當我有