主頁 > 後端開發 > 小白有沒有和我相同的感覺,感覺自己還會點東西,這次作業就無情打臉,以后還是乖乖學,練手題二----看著簡單動手墨滴-突然感覺自己好水

小白有沒有和我相同的感覺,感覺自己還會點東西,這次作業就無情打臉,以后還是乖乖學,練手題二----看著簡單動手墨滴-突然感覺自己好水

2020-10-08 10:28:36 後端開發

模塊二的練習來了-第二個題還是有點難的整了一天還是沒整出來,最后還是參考別人的

  1. 編程實作以下需求:

定義一個長度為[16][16]的整型二維陣列并輸入或指定所有位置的元素值,分別實作二維陣列中所有行和所有列中所有元素的累加和并列印,

再分別實作二維陣列中左上角到右下角和右上角到左下角所有元素的累加和并列印,

實作類

package code_1;
import java.util.Random;
public class arr {

    //定義行列以及陣列
    private int row;
    private int column;
    private int [][] arrs;


    //定義行的和,列,對角線的和
    private int[] sumRows;
    private int[] sumCols;
    private int[] sumDiagonal;


    public arr() {
    }

    public arr(int row, int column) {
        this.row = row;
        this.column = column;
        setSumDiagonal(2);
        sumRows=new  int[row];
        sumCols=new  int[column];
        arrs = new int[row][column];

    }


    public void setRow(int row) {
        this.row = row;
    }

    public void setColumn(int column) {
        this.column = column;
    }

    public void setArrs(int[][] arrs) {
        this.arrs = arrs;
    }

    public void setSumRows(int[] sumRows) {
        this.sumRows = sumRows;
    }

    public void setSumCols(int[] sumCols) {
        this.sumCols = sumCols;
    }

    public void setSumDiagonal(int number) {
        sumDiagonal = new int[number];
    }

    public int getRow() {
        return row;
    }

    public int getColumn() {
        return column;
    }

    public int[][] getArrs() {
        return arrs;
    }


    /**
     * 得到所有行的和
     * @return
     */
    public int[] getSumRows() {
        System.out.println("\n====列印各行的和====");
        for (int i = 0; i < sumRows.length; i++) {
            System.out.println("第"+i+"列的和"+sumRows[i]);
        }

        return sumRows;
    }
    /**
     * 得到所有列的和
     * @return
     */
    public int[] getSumCols() {
        System.out.println("\n====列印各列的和====");
        for (int i = 0; i < sumCols.length; i++) {
            System.out.println("第"+i+"行的和"+sumCols[i]);
        }
        return sumCols;
    }

    public int[] getSumDiagonal() {
        System.out.println("\n====對角線的和====");
        System.out.println("從左上角到右下角的和"+ sumDiagonal[0]);
        System.out.println("從右下角到左上角的和"+sumDiagonal[1]);
        return sumDiagonal;
    }

    /**
     *指定所有位置的元素值
     */


    public void add(){
        Random ra=new Random();
        for (int i = 0; i <arrs.length; i++) {
            for (int j = 0; j < arrs[i].length; j++) {
                arrs[i][j]=ra.nextInt(10);
                sumRows[i] += arrs[i][j];
                sumCols[j] += arrs[i][j];
                if (i == j) {
                    sumDiagonal[0] += arrs[i][j];
                }
                if (i == (arrs[i].length -1-j )) {
                    sumDiagonal[1] += arrs[i][j];
                }
            }

        }
    }
    /**
     * 列印陣列
     */

    public void show(){
      for (int i = 0; i < arrs.length; i++) {
          for (int j = 0; j < arrs[i].length; j++) {
              System.out.print(" "+arrs[i][j]);
          }
          System.out.println();
      }
  }

}

測驗類

package code_1;

public class it_test_1 {
    public static void main(String[] args) {
        arr array=new arr(16,16);
        array.add();//添加元素
        array.show();
        array.getSumRows();//行的和
        array.getSumCols();//列的和
        array.getSumDiagonal();//對角線的和




    }
}
  1. 編程實作控制臺版并支持兩人對戰的五子棋游戲,

(1)繪制棋盤 - 寫一個成員方法實作

(2)提示黑方和白方分別下棋并重新繪制棋盤 - 寫一個成員方法實作,

(3)每當一方下棋后判斷是否獲勝 - 寫一個成員方法實作,

(4)提示: 采用二維陣列來模擬并描述棋盤,棋盤如下:

實作類

package code_2;

import java.util.Scanner;

public class gobang {
    //(1)繪制棋盤 - 寫一個成員方法實作
            private String[][] checkerboard;
    //定義白棋黑棋
            private char black_mole;
            private char white_mole;
    // 棋盤大小
            private int rows;
            private int cols;

    public gobang() {
    }

    public gobang( char black_mole, char white_mole, int rows, int cols) {
        setCheckerboardint(rows,cols);
        setBlack_mole(black_mole);
        setWhite_mole(white_mole );
        setCols(cols);
        setRows(cols);
    }


    public void setCheckerboardint(int rows, int cols) {
        checkerboard = new String[rows][cols];
    }

    public char getBlack_mole() {
        return black_mole;
    }

    public void setBlack_mole(char black_mole) {
        this.black_mole = black_mole;
    }

    public char getWhite_mole() {
        return white_mole;
    }

    public void setWhite_mole(char white_mole) {
        this.white_mole = white_mole;
    }

    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        this.rows = rows;
    }

    public int getCols() {
        return cols;
    }

    public void setCols(int cols) {
        this.cols = cols;
    }
//繪制棋盤
    public void getCheckerboard(){
        for (int i = 0; i < checkerboard.length; i++) {
            for (int j = 0; j < checkerboard[i].length; j++) {
                checkerboard[0][0]=" ";
                if (0==i) {checkerboard[i][j]=String.format("%x",j-1);}
                else if (0==j) {checkerboard[i][j]=String.format("%x",i-1);}
                else {checkerboard[i][j]="+";}
            }
        }

    }
//列印棋盤
    public void showcheckerboard() {
        for (String[] str : checkerboard) {
            for (int j = 0; j < checkerboard[0].length; j++) {
                if ("白".equals(str[j])) {
                    System.out.print(white_mole + " ");
                } else if ("黑".equals(str[j])) {
                    System.out.print(black_mole + " ");
                } else {
                    System.out.print(str[j] + " ");

                }
            }
            System.out.println();
        }
    }
//判斷
    private Boolean isWin(int x, int y, String chess, int rows, int cols) {
        int countCol = -1;
        int countRow = -1;
        int countDiagonalLeft = -1;
        int countDiagonalRight = -1;
        int a;
        int b;
        // 行:向左數相同的棋子
        a = x;
        b = y;
        while (true){
            if (chess.equals(checkerboard[a][b])) {
                countRow++;
                if (b == 0) {
                    break;
                }
                b--;
            }else {
                break;
            }
        }
        // 行:向右數相同的棋子
        a = x;//行
        b = y;//列
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countRow++;
                // 防止陣列下標越界
                if (b == (cols - 1)) {
                    break;
                }
                b++;
            } else {
                break;
            }
        }

        // 列:向下數相同的棋子
        a = x;//行
        b = y;//列
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countCol++;
                // 防止陣列下標越界
                if (a == 0) {
                    break;
                }
                a--;
            } else {
                break;
            }
        }
        // 列:向上數相同的棋子
        a = x;
        b = y;
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countCol++;
                // 防止陣列下標越界
                if (a == (rows - 1)) {
                    break;
                }
                a++;
            } else {
                break;
            }
        }
        // 左對角:左上數相同的棋子
        a = x;
        b = y;
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countDiagonalLeft++;
                // 防止陣列下標越界
                if (a == 0 || b == 0) {
                    break;
                }
                a--;
                b--;
            } else {
                break;
            }
        }
        // 左對角:右下數相同的棋子
        a = x;
        b = y;
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countDiagonalLeft++;
                // 防止陣列下標越界
                if (a == (rows - 1) || b == (cols - 1)) {
                    break;
                }
                a++;
                b++;
            } else {
                break;
            }
        }

        // 右對角:右上數相同的棋子
        a = x;
        b = y;
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countDiagonalRight++;
                // 防止陣列下標越界
                if (a == 0 || b == (cols - 1)) {
                    break;
                }
                a--;
                b++;
            } else {
                break;
            }
        }
        // 右對角:左下數相同的棋子
        a = x;
        b = y;
        while (true) {
            if (chess.equals(checkerboard[a][b])) {
                countDiagonalRight++;
                // 防止陣列下標越界
                if (a == (rows - 1) || b == 0) {
                    break;
                }
                a++;
                b--;
            } else {
                break;
            }
        }


        return (countRow >= 5 || countCol >= 5 || countDiagonalLeft >= 5 || countDiagonalRight >= 5);
    }

//游戲入口
    public void startGame() {
        Scanner sc = new Scanner(System.in);
        boolean flag = true;
        int x;
        int y;
        String chess;
        while (true) {
            if (flag) {
                System.out.println("請白方落子(空格隔開):");
                chess = "白";
            } else {
                System.out.println("請黑方落子(空格隔開):");
                chess = "黑";
            }
            x = sc.nextInt() + 1;
            y = sc.nextInt() + 1;
            if (x < 0 || y < 0 || x > 16 || y > 16) {
                System.out.println("落子超出棋盤范圍,請重新落子,");
                continue;
            }
            if ("+".equals(checkerboard[x][y])) {
                checkerboard[x][y] = chess;
            } else {
                System.out.println("當前坐標不可落子,請重新落子,");
                continue;
            }
            showcheckerboard();
            flag = !flag;
            boolean isWin = isWin(x, y, chess, getRows(), getCols());
            if (isWin) {
                System.out.printf("恭喜%s方獲勝!", chess);
                break;
            }
        }
    }
}




測驗類

/**
 * 2. 編程實作控制臺版并支持兩人對戰的五子棋游戲,

 (1)繪制棋盤 - 寫一個成員方法實作

 (2)提示黑方和白方分別下棋并重新繪制棋盤 - 寫一個成員方法實作,

 (3)每當一方下棋后判斷是否獲勝 - 寫一個成員方法實作,
 */
public class it_test_2 {
    public static void main(String[] args) {

        char black_mole=0x2665;
        char white_mole=0x2022;
        gobang go=new gobang(black_mole,white_mole,17,17);
        go.getCheckerboard();
        go.showcheckerboard();
        go.startGame();

    }



}
  1. 按照要求設計并實作以下物體類和介面,

    3.1 第一步:設計和實作以下類

    (1)手機卡類 特征:卡型別、卡號、用戶名、密碼、賬戶余額、通話時長(分鐘)、上網流量 行為:顯示(卡號 + 用戶名 + 當前余額)

    (2)通話套餐類 特征:通話時長、短信條數、每月資費 行為: 顯示所有套餐資訊 (3)上網套餐類 特征:上網流量、每月資費 行為:顯示所有套餐資訊

    (4)用戶消費資訊類 特征:統計通話時長、統計上網流量、每月消費金額

    3.2 第二步:設計和實作以下列舉類 手機卡的型別總共有 3 種:大卡、小卡、微型卡

    3.3 第三步:物體類的優化 將通話套餐類和上網套餐類中相同的特征和行為提取出來組成抽象套餐類,

    3.4 第四步:創建并實作以下介面

    (1)通話服務介面 抽象方法: 引數1: 通話分鐘, 引數2: 手機卡類物件 讓通話套餐類實作通話服務介面,

    (2)上網服務介面 抽象方法: 引數1: 上網流量, 引數2: 手機卡類物件 讓上網套餐類實作上網服務介面,

3.5 第五步:進行代碼測驗

撰寫測驗類使用多型格式分別呼叫上述方法,方法體中列印一句話進行功能模擬即可,

消費類

public class UserConsume {
    // 統計余額、通話時長、上網流量
    private int consumeValue;
    private int consumeCallDuration;
    private int consumeNetworkData;

    public void setConsumeValue(int consumeValue) {
        this.consumeValue = consumeValue;
    }

    public void setConsumeCallDuration(int consumeCallDuration) {
        this.consumeCallDuration = consumeCallDuration;
    }

    public void setConsumeNetworkData(int consumeNetworkData) {
        this.consumeNetworkData = consumeNetworkData;
    }

    public int getConsumeValue() {
        return consumeValue;
    }

    public int getConsumeCallDuration() {
        return consumeCallDuration;
    }

    public int getConsumeNetworkData() {
        return consumeNetworkData;
    }

    // 列印消費情況
    public void showInfo() {
        System.out.printf("\n消費情況:您已通話 "+consumeCallDuration+"分鐘;流量使用"+consumeNetworkData+"GB;合計消費"+consumeValue+"元,");
    }
}

手機卡類

public class PhoneCard {


        private String cardType;
        private String cardId;
        private String userName;
        private String password;
        private int accountBalance;
        private int callDuration;
        private int networkData;
        private UserConsume userConsume;

        public PhoneCard() {
        }


        public PhoneCard(String cardType, String cardId, String userName, String password, int accountBalance,
                                 int callDuration, int networkData, UserConsume userConsume) {
            setCardType(cardType);
            setCardId(cardId);
            setUserName(userName);
            setPassword(password);
            setAccountBalance(accountBalance);
            setCallDuration(callDuration);
            setNetworkData(networkData);
            setUserConsume(userConsume);
        }

        public UserConsume getUserConsume() {
            return userConsume;
        }

        public void setUserConsume(UserConsume userConsume) {
            this.userConsume = userConsume;
        }

        public String getCardType() {
            return cardType;
        }

        public void setCardType(String cardType) {
            this.cardType = cardType;
        }

        public String getCardId() {
            return cardId;
        }

        public void setCardId(String cardId) {
            this.cardId = cardId;
        }

        public String getUserName() {
            return userName;
        }

        public void setUserName(String userName) {
            this.userName = userName;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        public int getAccountBalance() {
            return accountBalance;
        }

        public void setAccountBalance(int accountBalance) {
            this.accountBalance = accountBalance;
        }

        public int getCallDuration() {
            return callDuration;
        }

        public void setCallDuration(int callDuration) {
            this.callDuration = callDuration;
        }

        public int getNetworkData() {
            return networkData;
        }

        public void setNetworkData(int networkData) {
            this.networkData = networkData;
        }

        /**
         * 增加消費方法
         *
         * @param consumeValue 消費金額
         * @param consumeCallDuration 通話時長
         * @param consumeNetworkData 上網流量
         */
        public void addComsume(int consumeValue, int consumeCallDuration, int consumeNetworkData) {
            // 記錄消費金額
            getUserConsume().setConsumeValue(getUserConsume().getConsumeValue() + consumeValue);
            // 記錄通話時長
            getUserConsume().setConsumeCallDuration(getUserConsume().getConsumeCallDuration() + consumeCallDuration);
            //記錄上網流量
            getUserConsume().setConsumeNetworkData(getUserConsume().getConsumeNetworkData() + consumeNetworkData);
        }

        //列印資訊
        public void showInfo() {
            System.out.printf("卡號:%s\n用戶名:%s\n當前余額:%d元\n", getCardId(), getUserName(), getAccountBalance());
            // 列印消費情況
            getUserConsume().showInfo();

        }

        /**
         * 多型
         * 列印用戶所有資訊與各類套餐內容
         *
         *
         * @param abstractPackage 套餐抽象類物件
         */
        public void showOnCreate(AbstractPackage... abstractPackage) {
            System.out.printf("卡號:%s\n型別:%s\n用戶名:%s\n密碼:%s\n時長包:%d分鐘\n流量包:%dGB\n當前余額:%d元\n", getCardId(), getCardType(),
                    getUserName(), getPassword(), getCallDuration(), getNetworkData(), getAccountBalance());
            for (int i = 0; i < abstractPackage.length; i++) {
                abstractPackage[i].showInfo();
            }

        }


}

通話套餐類

public class PhonePackage extends AbstractPackage implements ServeCall {
    // 記錄短信條數
    private int message;

    //初始化通話套餐
    public PhonePackage(int price, int phonePackage,int message) {
        // 繼承抽象套餐類
        super(price,phonePackage);
        // 設定短信
        setMessage(message);
    }

    public void setMessage(final int message) {
        this.message = message;
    }

    public int getMessage() {
        return message;
    }

    // 重寫抽象套餐類,列印套餐資訊;
    @Override
    public void showInfo() {
        System.out.printf("通話套餐:時長包"+getPhonePackage()+"分鐘;每月資費"+getPrice()+"元/分鐘;短信"+getMessage()+"條");
    }
    @Override
    // 重寫通話服務介面方法
    public void server(int number, PhoneCard phoneCard) {
        // 消費金額=通話數量*資費
        int consumeValue=number*getPrice();
        // 手機余額減消費
        phoneCard.setAccountBalance(phoneCard.getAccountBalance() - consumeValue);
        // 添加通話消費時長
        phoneCard.addComsume(consumeValue,number,0);
        // 列印手機卡當前消費資訊
        phoneCard.showInfo();
    }



}

抽象類

public abstract class AbstractPackage {
    // 套餐資費
    private int price;
    // 套餐數量
    private int phonePackage;

    // 無參構造
    public AbstractPackage() {
    }

    // 初始化套餐
    public AbstractPackage(int price, int phonePackage) {
        setPrice(price);
        setPhonePackage(phonePackage);
    }

    // 設定資費
    public void setPrice(int price) {
        this.price = price;
    }

    // 獲取資費
    public int getPrice() {
        return price;
    }

    // 設定套餐數量
    public void setPhonePackage(int phonePackage) {
        this.phonePackage = phonePackage;
    }

    // 獲取套餐
    public int getPhonePackage() {
        return phonePackage;
    }

    // 列印套餐資訊
    public abstract void showInfo();


}

上網套餐類

public class NetworkPackage extends AbstractPackage implements ServerNtework {

    public NetworkPackage(int price, int phonePackage) {
        // 繼承抽象類套餐
        super(price,phonePackage);
    }


    //重寫抽象套餐類,列印套餐資訊;
    @Override
    public void showInfo() {
        System.out.printf("上網套餐:流量包"+getPhonePackage()+"GB;每月資費"+getPrice()+"元/GB");
    }

    // 重寫上網服務介面方法
    // 重寫上網服務介面方法
    @Override
    public void server(int networkData, PhoneCard phoneCard) {
        // 消費金額=上網流量*資費
        int consumeValue=networkData*getPrice();
        // 手機余額減消費
        phoneCard.setAccountBalance(phoneCard.getAccountBalance() - consumeValue);
        // 添加流量消費數量
        phoneCard.addComsume(consumeValue,0,networkData);
        // 列印手機卡當前消費資訊
        phoneCard.showInfo();
    }

}

卡型列舉類

public enum Type_enum {

    BIG("大卡"), SMALL("小卡"), MINI("微型卡");

    private final String cardType;

    private Type_enum(String cardType) {
        this.cardType = cardType;
    }

    public String getCardType() {
        return cardType;
    }

}

*** 通話服務介面:**

public interface ServeCall {
    // 通話數量,手機卡物件
    public abstract void server(int number, PhoneCard phoneCard);

}

流量服務介面

public interface ServerNtework {
    // 流量數量,手機卡物件
    public abstract void server(int networkData, PhoneCard phoneCard);
}

測驗類

public class it_test_3 {
    public static void main(String[] args) {
        System.out.println("========注冊卡=========");
        // 定義通話套餐數量與資費
        PhonePackage call = new PhonePackage(1, 0, 0);
        // 定義上網套餐與資費
        NetworkPackage network = new NetworkPackage(1, 0);
        // 消費統計物件
        UserConsume consume = new UserConsume();
        // 注冊一張手機卡  型別:大卡
        PhoneCard card = new PhoneCard(Type_enum.BIG.getCardType(), "110120130150",
                "username", "******", 1000, call.getPhonePackage(), network.getPhonePackage(), consume);
        // 多型:列印套餐資訊:抽象套餐類->通話套餐、上網套餐
        card.showOnCreate(call, network);
        System.out.println("=================\n\n");
        // 開始消費
        System.out.println("========使用通話=========");
        call.server(30, card);
        System.out.println("\n=================\n\n");

        System.out.println("========使用流量=========");
        network.server(100, card);
        System.out.println("\n=================\n\n");


    }

}

這次作業拖時間挺長的,國慶節,和學校實習,哎痛疼,加油吧少年~~~~~~~~~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/162786.html

標籤:java

上一篇:2020藍橋杯B 組省賽計蒜客模擬賽(一)題解

下一篇:Voting Judges(AtCoder agc041_B)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more