日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

上次作业的升级版

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上次作业的升级版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好好好

211606375 牛振乾
211606351 曾茜

一、預估與實際

PSP2.1Personal Software Process Stages預估耗時(分鐘)實際耗時(分鐘)
Planning計劃
? Estimate? 估計這個任務需要多少時間4040
Development開發9001000
? Analysis? 需求分析 (包括學習新技術)60100
? Design Spec? 生成設計文檔6090
? Design Review? 設計復審4060
? Coding Standard? 代碼規范 (為目前的開發制定合適的規范)2030
? Design? 具體設計200230
? Coding? 具體編碼400400
? Code Review? 代碼復審4060
? Test? 測試(自我測試,修改代碼,提交修改)6090
Reporting報告6060
? Test Repor? 測試報告3040
? Size Measurement? 計算工作量3030
? Postmortem & Process Improvement Plan? 事后總結, 并提出過程改進計劃2020
合計1130

二、需求分析

我通過百度的方式了解到,小學三年級數學有如下的幾個特點:

  • 有混合運算
  • 可以有括號的出現

經過分析,我認為,這個程序應當:

  • 減法運算的結果不能有負數
  • 除法運算除數不能為0,不能有余數
  • 運算符在2~4個
  • 可以有括號

三、設計

1.設計思路

  • 關鍵流程圖

2.實驗方案

中綴表達式轉換為后綴表達式
你需要設定一個棧SOP,和一個線性表 L 。SOP用于臨時存儲運算符和分界符( ,L用于存儲后綴表達式。
遍歷原始表達式中的每一個表達式元素
(1)如果是操作數,則直接追加到 L中。只有 運算符 或者 分界符( 才可以存放到 棧SOP中
(2)如果是分界符
Ⅰ 如果是左括號 ( , 則 直接壓入SOP,等待下一個最近的 右括號 與之配對。
Ⅱ 如果是右括號),則說明有一對括號已經配對(在表達式輸入無誤的情況下)。不將它壓棧,丟棄它,然后從SOP中出棧,得到元素e,將e依次追加到L里。一直循環,直到出棧元素e 是 左括號 ( ,同樣丟棄他。
(3)如果是運算符(用op1表示)
Ⅰ如果SOP棧頂元素(用op2表示) 不是運算符,則二者沒有可比性,則直接將此運算符op1壓棧。 例如棧頂是左括號 ( ,或者棧為空。
Ⅱ 如果SOP棧頂元素(用op2表示) 是運算符 ,則比較op1和 op2的優先級。如果op1 > op2 ,則直接將此運算符op1壓棧。
如果不滿足op1 > op2,則將op2出棧,并追加到L,重復步驟3。
也就是說,如果在SOP棧中,有2個相鄰的元素都是運算符,則他們必須滿足:下層運算符的優先級一定小于上層元素的優先級,才能相鄰。

最后,如果SOP中還有元素,則依次彈出追加到L后,就得到了后綴表達式。

摘抄自【算法】表達式求值--逆波蘭算法介紹

四、編碼

請說明你如何按照設計思路進行編碼,并記錄你在開發中遇到的問題,與解決過程。

1.調試日志

記錄編碼調試的日志,請記錄下開發過程中的 debug 歷程
比如:

  • 將代碼全部設為靜態私有變量,方便使用
  • 在逆波蘭犯法中要設立優先級

    2.關鍵代碼

    private static String ReversePolish (String[] strArr){
    String str = "+-/";
    Stack stack = new Stack();
    //遍歷數組中的每一個元素
    for(String s : strArr){
    //如果是數字,放入棧中
    if(!str.contains(s)){
    stack.push(s);
    }
    else{
    int a = Integer.valueOf(stack.pop());
    int b = Integer.valueOf(stack.pop());
    switch(s){
    case "+" :
    stack.push(String.valueOf(a+b));
    break;
    case "-" :
    stack.push(String.valueOf(a-b));
    break ;
    case "" :
    stack.push(String.valueOf(a*b));
    break;
    case "/" :
    stack.push(String.valueOf(a/b));
    break ;
    }
    }
    }

    3.代碼規范

  • 減少代碼嵌套次數
  • 盡量不要用參數來帶回方法運算結果
  • 避免使用類似名字,或僅僅是大小寫不同的名字
  • 循環計數器 通常采用i,j,k或者counter都可以接受

    五、測試

六、總結

結對對我們還是有好處的,有時候可以一個人不會的知識點林一個人就可以馬上上手進行講解,但是也有一些壞處,就是在一些問題上有分歧,或者兩個人都不會的知識點,因為我們遵循男女搭配干活不累的原則——所以導致我們有時候只能進行語音,一些問題不能很好的解決。所以在下次作業上總店解決這些問題。這次就先附上語音的截圖啦~~~~~~~

轉載于:https://www.cnblogs.com/112233niu/p/9672263.html

總結

以上是生活随笔為你收集整理的上次作业的升级版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。