個人專案部落格

2022-09-04 02:24:09 字數 3268 閱讀 4046

專案內容

這個作業屬於哪個課程

課程鏈結

這個作業的要求在**

作業鏈結

教學班級

006專案位址

github位址

psp2.1

personal software process stages

預估耗時(分鐘)

實際耗時(分鐘)

planning

計畫

· estimate

· 估計這個任務需要多少時間

1010

development

開發

· analysis

· 需求分析 (包括學習新技術)

200180

· design spec

· 生成設計文件

6090

· design review

· 設計複審 (和同事審核設計文件)

3030

· coding standard

· **規範 (為目前的開發制定合適的規範)

2030

· design

· 具體設計

100120

· coding

· 具體編碼

200180

· code review

· **複審

10060

· test

· 測試(自我測試,修改**,提交修改)

150150

reporting

報告

· test report

· 測試報告

3020

· size measurement

· 計算工作量

3030

· postmortem & process improvement plan

· 事後總結, 並提出過程改進計畫

3040

合計960

930設計三個類

流程直線與圓各自有乙個set容器儲存,在識別出下乙個圖形後取出儲存的每乙個圖形,呼叫圖形的getcross方法得到交點,再將交點加入另乙個set容器。

單元測試

這部分使用時間60min,因為出現「在所選時間範圍內沒有**執行」的玄學問題,效能分析使用vs的instrumentation功能,效能分析圖:

整體的思路是用set容器作為儲存結構,下圖是新增乙個圓的過程:

infile >> x0 >> y0 >> x1;

circle circle(point(x0, y0), x1);

for (line temp : lineset)

for (circle temp : circleset)

circleset.insert(circle);

從lineset和circleset中分別取出圖形,各自計算交點。

getcross方法計算圖形交點,下圖是直線與直線求交點的方法,首先判斷平行,可避免出現除以0的問題。

point line::getcrosspoint(line l1)

point ptemp(0, 0);

ptemp.pointx = (l1.b * this->c - this->b * l1.c) / d;

ptemp.pointy = (l1.c * this->a - this->c * l1.a) / d;

return ptemp;

}

計算圓與圓的交點的方法,計算過程較長,所以效能不好

​ 個人專案可以說是對前一次所學的軟體工程方法的實踐。在作業的過程中乙個問題是需求分析和設計花了很長時間,因為想著優化計算方法所以一直在修改設計文件,結果時間大大超出了預期。另乙個問題是實現功能時很多時間花在鄒欣老師《構建之法》中說的低層次問題上,比如set容器用到的自定義類的運算子過載,只有通過不斷的練習,把這些低層次的問題都變成不用經過大腦的自動操作,然後才有時間和腦力來解決較高層次的問題。另外這是第一次對自己的專案使用單元測試,所以專案的結構有些問題,和單元測試配合的不是很好,下次一定使用更好的設計模式。希望在以後的結對專案和團隊專案裡能克服這些問題。

個人專案部落格(一)

實現乙個能夠生成數獨終局並能求解數獨問題的控制台程式。psp 2.1 personal software process stages 預估耗時 min 實際耗時 min planning 計畫30 estimate 估計這個任務需要多少時間 2860 development 開發1200 anal...

個人專案部落格(二)

實現乙個命令列程式,程式能 1 生成不重複的數獨終局至檔案。2 讀取檔案內的數獨問題,求解並將結果輸出到檔案。程式從命令列得到命令與引數,並根據命令實現兩個功能,因此把程式初步劃分為以下模組 通過資料流圖來進行功能建模。頂層圖 一層圖 命令的判斷與處理即簡單的輸入判斷。當輸入為位址時,進入生成數獨模...

個人部落格專案開發

基於django後端框架以及bootstarp前端框架搭建個人部落格 已實現功能 使用步驟 資料庫表結構以及資料所在檔案 建立名字為myblog的資料庫,然後匯入根目錄下的myblog.sql 匯入資料庫後配置資料庫 settings.py line 132 databases 登陸 使用者名稱 w...