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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

结对编程前对队友程序的分析与对比总结

發布時間:2025/3/13 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结对编程前对队友程序的分析与对比总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1. 項目需求
    • 1.1 項目名稱
    • 1.2 用戶
    • 1.3 功能
  • 2. 對隊友程序的分析
    • 2.1 主要流程分析
    • 2.2 主要函數分析
    • 2.3 優點
    • 2.4 缺點
  • 3. 與自己的程序比較
  • 4. 個人項目總結
    • 4.1 收獲
    • 4.2 總結

1. 項目需求

1.1 項目名稱

中小學數學卷子自動生成程序

1.2 用戶

小學、初中、高中老師

1.3 功能

  • 命令行輸入用戶名和密碼,兩者之間用空格隔開(程序預設小學、初中和高中各三個賬號,具體見附表),如果用戶名和密碼都正確,將根據賬戶類型顯示“當前選擇為XX出題”,XX為小學、初中和高中三個選項中的一個。否則提示“請輸入 正確的用戶名、密碼”,重新輸入用戶名、密碼:
  • 登錄后,系統提示“準備生成XX數學題目,請輸入生成題目數量(輸入-1將退出當前用戶,重新登錄):”,XX為小學、初中和高中三個選項中的一個,用戶輸入所需出的卷子的題目數量,系統默認將根據賬號類型進行出題。每道題目的操作數在1-5個之間,操作數取值范圍為1-100;
  • 目數量的有效輸入范圍是“10-30”(含10,30,或-1退出登錄),程序根據輸入的題目數量生成符合小學、初中和高中難度的題目的卷子(具體要求見附表)。同一個老師的卷子中的題目不能與以前的已生成的卷子中的題目重復(以指定文件夾下存在的文件為準,見5)
  • 登錄狀態下,如果用戶需要切換類型選項,命令行輸入“切換為XX”,XX為小學、初中和高中三個選項中的一個,輸入項不符合要求時,程序控制臺提示“請輸入小學、初中和高中三個選項中的一個”;輸入正確后,顯示“”系統提示“準備生成XX數學題目,請輸入生成題目數量”,用戶輸入所需出的卷子的題目數量,系統新設置的類型進行出題;
  • 成的題目將以“年-月-日-時-分-秒.txt”的形式保存,每個賬號一個文件夾。每道題目有題號,每題之間空一行;
  • 附表
    (1)附表1–用戶名及密碼

  • (2)附表2–小學、初中、高中題目難度要求

    2. 對隊友程序的分析

    2.1 主要流程分析

    2.2 主要函數分析

  • static void menu()
    (1)參數:無。
    (2)功能:顯示主菜單,進行操作選項的選擇 0-退出 1-登陸。
    (3)實現:輸出提示+接收選項命令后使用if-else語句進行判斷。
    (4)調用函數:無。
  • static void login()
    (1)參數:無。
    (2)功能:接收由鍵盤輸入的用戶名和密碼信息。
    (3)實現:接收一個字符串(用戶名+一個空格+密碼)。
    (4)調用函數:check_userright(login_username, login_password)檢查用戶名和密碼是否正確。
  • static void check_userright(String x,String y)
    (1)參數:String x–輸入的用戶名;String y–輸入的密碼。
    (2)功能:將傳入的用戶名和密碼與設置好的9個用戶名進行比對,如果和其中的一個相同則進入下一個登錄界面,進行產生題目數量的合理性檢查;如果和9個設置好的用戶名均不相同,則需要重新輸入。
    (3)實現:在一個for循環中,調用user[i].checkmessage函數,如果用戶名和密碼均相同,則調用menu2函數,進行下一個功能,同時將難度等級作為menu2的參數傳入;如果均不相同,則調用login,從新輸入用戶名和密碼。
    (4)調用函數:user[i].checkmessage獲取已設置好的9個用戶名和密碼;menu2進入下一個功能;login再次輸入用戶名和密碼;getLevel返回難度等級(小學、初中、高中)。
  • static void menu2(String x,String y)
    (1)參數:String x–用戶名;String y–難度等級(小學、初中、高中)。
    (2)功能:第二界面菜單,進行產生題目數量合理性檢查
    (3)實現:首先選擇是切換卷子類型還是直接出題:如果切換卷子類型,則重新設置難度參數;輸入題目數量時如果輸入-1,則調用menu函數,返回到最初的主界面菜單;如果輸入[10,30]則調用display函數,進行出題;如果輸入超出前兩個范圍,則重新輸入。
    (4)調用函數:menu返回最初登陸界面;display進行出題。
  • static void menu3(String username,String level,int paper_num)
    (1)參數:String username–用戶名;String level–難度等級(小學、初中、高中);int paper_num–題目數量。
    (2)功能:重復操作出題步驟和切換難度步驟。
    (3)實現:輸入題目數量具體判斷和menu2中相同。
    (4)調用函數:無。
  • static String paper_level(String x)
    (1)參數:String x–輸入的難度等級(小學、初中、高中)。
    (2)功能:接收傳入的難度參數,根據難度獲取卷子。
    (3)實現:根據難度等級的不同,調用不同的獲取試卷函數:小學paper_create_p(x);初中paper_create_m(x);高中paper_create_s(x)。
    (4)調用函數:paper_create_p(x)小學難度試卷;paper_create_m(x)初中難度試卷;paper_create_s(x)高中難度試卷。
  • static String paper_create_p(String x)
    (1)參數:String x–難度(小學、初中、高中)。
    (2)功能:出一張試卷。
    (3)實現:調用小學難度出題函數Q_create_p(x)。
    (4)調用函數:Q_create_p(x)小學難度出題。
  • static String paper_create_m(String x)
    (1)參數:String x–難度(小學、初中、高中)。
    (2)功能:出一張試卷。
    (3)實現:調用初中難度出題函數Q_create_m(x)。
    (4)調用函數:Q_create_m(x)初中難度出題。
  • static String paper_create_s(String x)
    (1)參數:String x–難度(小學、初中、高中)。
    (2)功能:出一張試卷。
    (3)實現:調用高中難度出題函數Q_create_s(x)。
    (4)調用函數:Q_create_s(x)高中難度出題。
  • static void display(String username,String level,int paper_num)
    (1)參數:String username–用戶名;String level–難度(小學、初中、高中);int paper_num–出題數量)。
    (2)功能:在對應用戶的文件夾下產生一張試卷(含查重)。
    (3)實現:獲取時間作為文件名稱;創建對應名稱文件夾;調用paper_level函數隨機生成一張試卷;查重:獲取文件夾下每一個文件的名稱,進入每一個文件獲取每一行題目和剛剛生成的題目進行對比(不含題號),如果重復則重新生成一道題目,如果均沒有重復則寫入文件中;此過程重復9次(張三1、2、3,李四1、2、3,王五1、2、3)。在創建完試卷后判斷下一步的功能:重新登陸(調用menu函數)或者繼續生成試卷(調用menu3函數)。
    (4)調用函數:paper_level根據等級產生試卷;menu重新接受登陸的用戶名和密碼;menu3再次生成試卷。
  • static String add_bracket(String x,int y)
    (1)參數:String x–難度(小學、初中、高中),int y --運算符的數量。
    (2)功能:向題目中合適的位置添加括號。
    (3)實現:記下所有可能的左右括號的位置隨機添加并檢查合理性。
    (4)調用函數:無。
  • static String Q_create_p(String x)
    (1)參數:String x–難度(小學、初中、高中)。
    (2)功能:隨機生成一道小學難度的題目。
    (3)實現:隨機生成運算符的數量(題目的額長度);每次隨機生成一個操作數并一個運算符(存在一個數組中),將每次生成的內容寫入一個字符串中形成一個題目;最后調用add_bracket進行括號的添加。
    (4)調用函數:add_bracket添加括號。
  • static String Q_create_m(String x)
    (1)參數:String x–難度(小學、初中、高中)。
    (2)功能:隨機生成一道初中難度的題目。
    (3)實現:隨機生成運算符的數量(題目的額長度);每次隨機生成一個操作數并一個運算符(存在一個數組中),將每次生成的內容寫入一個字符串中形成一個題目;調用add_bracket進行括號的添加;判斷根號和平方的位置,如果不合理進行相應的調整。
    (4)調用函數:add_bracket添加括號。
  • static String Q_create_s(String x)
    (1)參數:String x–難度(小學、初中、高中)。
    (2)功能:隨機生成一道高中難度的題目。
    (3)實現:隨機生成運算符的數量(題目的額長度);每次隨機生成一個操作數并一個運算符(存在一個數組中),將每次生成的內容寫入一個字符串中形成一個題目;調用add_bracket進行括號的添加;判斷根號和平方的位置,如果不合理進行相應的調整;判斷sin cos tan的位置,如果不合理進行相應的調整。
    (4)調用函數:add_bracket添加括號。
  • 2.3 優點

  • 封裝性
    將一些普遍性的功能進行了函數的封裝(添加括號,菜單界面等),減少了一些代碼的重復,使代碼的長度減少,減輕了代碼的贅余。
  • 信息保密化
    用戶名和密碼等信息不能直接獲取,需要用特定的函數返回才可以獲取,保證了信息的安全性。
  • 用戶體驗感良好
    設置了美觀的菜單界面,用戶登陸系統后每次輸入前都會有文字提示輸入的內容和格式,還可以在功能中進行選擇,體驗感良好。
  • 2.4 缺點

  • 代碼過長
    雖然對一些功能進行了封裝,但是還有一些功能也可以封裝成一個函數,比如在初中難度出題時可以在調用已有的小學難度出題函數的基礎上增加初中難度的要求,同理,在高中難度出題時可以調用初中函數并增加高中的難度要求,這樣可以使代碼更加剪短,閱讀更加方便。
  • 函數參數名不直觀
    一些函數的參數為x、y這樣的隨意字母,閱讀起來很不直觀,不能直接獲得此參數的用途和功能等有效信息。
  • 3. 與自己的程序比較

    我們都是用的Java,很多功能的思考方式都相同(查重、創建文件、設置用戶名和密碼信息、將信息設置為私有只能通過函數調用等),但是我的程序中沒有添加菜單界面,只有每次輸入前的提示,在用戶體驗感方面需要加強。我們有相同的問題都是代碼過長,封裝性不夠高,導致程序閱讀起來很困難,這一點在結對編程時希望我們可以共同努力。

    4. 個人項目總結

    4.1 收獲

  • 學會了Java中獲取實時時間的函數。
  • 學會了創建文件夾的方法(包括相對路徑和絕對路徑)。
  • 學會了Java中文件讀寫的方法,并可以簡單應用。
  • 學會了打包jar的方法,并可以在cmd中使用命令行直接運行程序。
  • 4.2 總結

    這次的個人項目讓我真切的感受到了“做中學”的含義,在做項目前我會的只是Java這門語言的簡單編程規則,在項目進行的過程中,我不斷被需要的技術卡住,每次都需要停下來學一學相關的知識技能,然后繼續編程。在這次個人項目中,我的能力得到了很快的提升,我已經可以基本適應這種“一遍做一遍學,學完立刻做”的模式,讓我對接下來要進行的結對編程和團隊項目有了一些信心,希望我可以在后面的項目中可以更快更好提升自己,掌握更多知識技能!

    總結

    以上是生活随笔為你收集整理的结对编程前对队友程序的分析与对比总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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