EECS 183專案分析

浅笑心柔2發表於2024-03-26

EECS 183專案4:酷派圖片p4酷圖片
EECS 183專案4:CoolPics
專案截止時間:2024年3月22日星期五晚上11:59直接自動標記連結在這個專案中,您將建立一個程式,讀取形狀的描述,繪製形狀,並將結果儲存到檔案中。您將使用表示不同的形狀。在這裡以下是學生在上學期創作的一些影像示例:EECS 183專案4:酷派圖片|p4酷派圖片2/28透過完成此專案,您將學會:使用多個類開發應用程式將C++程式劃分為原始檔和標頭檔案從具有多行格式的檔案中讀取程式輸入為類編寫測試用例編寫給定宣告的成員函式存根您將運用在講座中學到的以下技能:第13講使用流的失敗狀態來檢測輸入格式從進入失敗狀態的流中恢復使用流讀取和寫入檔案第14講使用類編寫程式碼編寫和使用預設建構函式和非預設建構函式第15講
將類和成員函式宣告和定義放在正確的檔案中在適當的地方訪問課程的公共和私人部分編寫和使用getter和setter函式定義和使用多個非預設建構函式
第16講建立和使用包含作為其他類例項的成員變數的類第17講EECS 183專案4:酷派圖片|p4酷派圖片/28過載運算子«和運算子»以允許類被讀取和寫入流為用類結構化程式碼編寫測試用例入門
Starter檔案
使用此連結下載入門檔案,並在IDE中使用它們建立專案。您將使用以下檔案:檔案角色你要做什麼
pics.cpp應用程式驅動程式在此處編寫程式碼並提交
test.cpp測試用例在此處編寫程式碼並提交
圓形.cpp,顏色.cpp,
圖形.cpp,線條.cpp,
Point.cpp、Rectangle.cpp、,
三角形.cpp
成員功能
定義
在此處編寫程式碼並提交Circle.h,Color.h,Graphics.h,直線.h,點.h,矩形.h,三角形.h類宣告不要修改!形狀.h,形狀.cpp提供的支援密碼請勿修改!bmp.h,實用程式.h提供的支援密碼請勿修改!txt檔案要生成的輸入圖片將這些作為測試的輸入圖片.pp
.bmp檔案從.txt檔案輸出使用這些測試
pics.cpp的輸出
我們建議按以下順序編寫程式碼:
1.test.cpp(在開發每個類時進行)
2.點.cppEECS 183專案4:酷派圖片|p4酷派圖片
3.顏色.cpp
4.圖形.cpp
5.線路.cpp
6.三角形.cpp
7.圓圈.cpp
8.矩形.cpp
9.圖片
寫入函式存根第一次嘗試執行啟動程式碼時,您會看到許多編譯錯誤。他們會看如下所示。這些錯誤是由於大多數類成員函式缺少函式定義造成的。在裡面在EECS 183之前的專案中,為您提供了每個專案的所有必要功能專案給出了函式定義的外殼,您必須完成它們的實現。對於這個專案,您將需要完成函式定義的所有外殼。這必須為所有類完成,才能編譯程式碼。每個功能存在對函式的任何呼叫,宣告就必須具有相應的函式定義。這被稱為函式存根。必須為每個函式定義編寫所有存根在Visual Studio或Xcode中建立專案後立即執行。Point類非預設建構函式的函式存根如下所示,並且出現在檔案Point.cpp中Point類checkRange函式的函式存根如下所示:
矩形.obj:錯誤LNK2001:未解析的外部符號“public:__thiscall
點::點(int,int)“(??0點@@QAE@HHZ
1.
2.
3.
點::點(int xVal,int yVal){
//執行
}
1.
2.
3.
4.
5.
6.
int點::checkRange(int val){
//執行
//to do-替換為正確的返回語句
返回val;
}

提交和分級在此處將您的程式碼提交給簽名者。您每天收到4次提交,並且您的總體成績最好提交的內容視為您的分數。您將提交11個檔案,這些檔案必須名為Circle.cpp,顏色.cpp、圖形.cpp、線條.cpp、圖片.cpp、點.cpp、矩形.cpp、三角形.cpp,test.cpp、data1.txt和data2.txtdata1.txt和data2.txt檔案可以包含您想要的任何內容。他們會幫助你在test.cpp中為檔案I/O編寫測試用例。您可以將data1.text與已新增的形狀一起使用閱讀test.cpp和data2.txt來測試寫作。正確性(60分)。您的程式碼在多大程度上實現了我們的規格?您的程式碼在多大程度上符合我們的規範,並且不受漏洞?測試(10分)。在test.cpp中編寫一個測試套件,暴露autorader上的錯誤。風格(10分)。你的程式碼寫得好到什麼程度?您的程式碼在多大程度上可讀性?有關一些提示,請參閱專案風格準則和EECS 183風格指南!
如果您在3月20日(星期三)晚上11:59之前提交,您將在專案的正確性部分。如果您在3月21日(星期四)晚上11:59之前提交,您將獲得專案正確部分的2.5%額外信貸與合作伙伴合作對於專案3和專案4,您可以選擇與另一名當前在EECS 183註冊。儘管如果您願意,歡迎您單獨工作,但我們鼓勵您考慮為專案4合作。如果你想要一個合夥伴,但不認識班上的任何人,我們如果你想找人,鼓勵你使用廣場上的“搜尋隊友”帖子!一旦找到合作伙伴,請確保將搜尋標記為“完成”。為進一步的提醒,伴侶關係被定義為兩個人。我們鼓勵您提供幫助相互交流,並用英語(或其他人類語言)討論專案,但不要與除您的合作伙伴以外的任何人共享專案程式碼。要在autorader上註冊合作伙伴關係,請轉到專案的autorader連結,然後選擇“傳送群邀請”。然後,透過輸入他們的提示時傳送電子郵件。他們將在註冊後收到確認,並且必須接受合作伙伴可以提交邀請之前。你必須選擇是否在提交之前,請在autorader上註冊一個群組。如果選擇選項獨自工作,你將無法在專案後期與合作伙伴一起工作。如果是合夥企業註冊後需要更改,您可以提交管理請求。EECS 183專案4:酷派圖片|p4酷派圖片6/28出於親筆簽名的目的,代 寫EECS 183合作伙伴將被視為一名學生,您將在每天提交的10份檔案之外,不得收到額外的提交檔案。如果您決定與合作伙伴合作,請務必檢視與搭檔如果您選擇晚些時候上班,並且您正在合作伙伴關係中工作,請檢視每個合夥人將收取多晚天數的檔案。協作策略我們希望學生們相互學習,相互學習,我們鼓勵你們合作。我們也希望鼓勵你在需要幫助時伸出援手。我們鼓勵你:在理解講座或實驗室中涵蓋的課程概念方面給予或接受幫助。與其他學生一起練習和學習,為評估或考試做準備。諮詢其他學生以更好地理解專案規範。討論與專案相關的一般設計原則或想法。幫助其他人瞭解編譯器錯誤或如何除錯部分程式碼。為了澄清最後一項,你可以檢視其他學生的程式碼來幫助他們瞭解他們的程式碼是怎麼回事。你不允許告訴他們寫什麼
他們的程式碼,並且您不允許複製他們的工作以在您自己的解決方案中使用。如果你是不確定是否允許您的合作,請透過管理表格聯絡課程工作人員在你做任何事情之前。們將幫助您確定您的想法是否符合精神EECS 183的合作。以下行為被視為違反《榮譽準則》:把別人的工作當成自己的工作。從他人的解決方案中複製或派生部分程式碼。
協作編寫程式碼,使您的解決方案具有可識別的相似性。與他人共享您的程式碼,以便在編寫程式碼時用作資源。接受他人的幫助來編寫程式碼。如果將測試用例作為解決方案的一部分提交,則與其他人共享測試用例。以任何方式共享您的程式碼,包括以任何形式(例如公共GitHub儲存庫或個人網站)。完整的合作政策可以在教學大綱中找到。建議的時間表EECS 183專案4:酷派圖片|p4酷派圖片7/28對於這個專案,您將實現各種各樣的類。你將大約在如果在每個日期之前你已經為其編寫了測試、實現了測試並提交給了autorader,請安排每個指定的類。
3月13日,星期三:編寫所有函式存根,可以在本地編譯您的專案。
3月15日,星期五:Point.cpp
3月16日,星期六:Color.cpp,Graphics.cpp
3月17日,星期日:Line.cpp,Triangle.cpp
3月18日,星期一:Circle.cpp,Rectangle.cpp,你吃了很多糖果:)
3月20日,星期三:pics.cpp和任何最終除錯。今天最後提交5%
額外的學分!月22日,星期五:專案到期。在今天11:59之前向簽名者提交您的最後意見下午。解決方案概述你在這個專案中的任務是編寫一個可以讀取.txt資料檔案的程式,處理資料,併為相應的影像建立和寫入.bmp檔案。在計算機2D圖形中,通常在座標系中表示影像,從這個意義上講,影像只是位元的對映。對於更大的影像,您只需要一個更大的網格,對於更豐富多彩的影像,每個畫素需要更多的位,以便儲存更多資訊許多檔案格式支援“24位顏色”,這意味著它們用24表示畫素位(24個零和1)。
24位BMP使用其中的8位表示畫素顏色中的紅色數量,8位表示畫素顏色中的綠色數量,以及表示畫素顏色中藍色數量的8位。
由此發展出了色彩的RGB表示法。順便說一句,同樣的表示是用於web上HTML和CSS中的顏色。如果感興趣,請檢視由於畫素中的每種顏色(紅、綠、藍)都由8位表示,此可能有2=256該顏色的值,範圍從0到255。一種顏色的值為0意味著“沒有顏色”,而255的值意味著“很多這種顏色”。“所以,如果你想表示一個畫素
純藍色,紅色的值為0,綠色的值為零,藍色的值為255。在網路上——以及本次討論的其餘部分——而不是用小數表示數字0-255,我們使用等效的十六進位制數字00-FF,並且可以定義顏色具有這些十六進位制值的24位三元組(例如,ff0000是紅色,ffffff是白色使用十六進位制(即十六進位制)進行顏色描述的說明。由於檔案只是一個位元序列,我們可以透過順序放置每個24來建立影像檔案表示畫素中顏色的位。這(幾乎)就是BMP(點陣圖)檔案的結構。首先,它包含一些“後設資料”,即有關檔案的一般資訊,如格式、寬度和影像的高度。此後設資料以兩個資料的形式儲存在檔案的開頭結構稱為“標頭檔案”(不要與C++標頭檔案混淆)。別擔心頁首中到底應該包含什麼(除了影像的寬度和高度);工作人員拿走了小心將它們寫入檔案。緊跟在標題後面的是點陣圖中的影像表示(即畫素的集合)。每個畫素儲存為三元組(紅色、綠色和藍色值各1個位元組)。
然而,BMP將這些三元組向後儲存(即,作為BGR),藍色為8位,後面跟著8位表示綠色,後面跟著8位表示紅色。因此,如果我們將上面的黑白笑臉轉換為紅色,每個白色畫素將由三元組(255255255)或中的ffffff表示十六進位制,並且每個紅色畫素將由(0,0255)或類似的0000ff表示十六進位制。我們得到現在,我來談談填充。事實證明,如果每行中的畫素不是4的倍數。例如,m.bmp是11畫素寬乘8畫素高。

相關文章