實驗三 物件導向初步

2021-10-04 10:13:21 字數 3482 閱讀 3979

1 實驗目的

(1)學習如何宣告和編寫類的**。

(2)學習如何編寫改變類的屬性的成員函式。

(3)學習如何宣告和建立物件,如何通過物件呼叫類的成員函式。

2 實驗內容

2.1 設計point類(40分)

(1)問題描述

計算機的顯示屏的座標系是這樣的,左上角的座標為(0,0),如下圖所示。

定義計算機顯示屏上的點point類。該類具有兩個私有資料成員x、y,分別表示該點的橫座標、縱座標。類的宣告如下:

class point ;

(2)問題要求

請實現以下函式宣告,要求能得到如下圖所示的執行結果。

(1)接受使用者的輸入,生成兩個物件;

(2)列印這兩個點;

(3)向右平移其中乙個點後,列印該點;向下平移另乙個點後,列印該點。

(3)主函式**框架

void main()

(4)執行結果示例

please input a point: 12 8

point p1: (12, 8)

point p2: (24, 16)

after moving right, p1: (22, 8)

after moving down, p2: (24, 6)

#include

using namespace std;

class point

void

setx

(int xx)

;int

getx()

;void

sety

(int yy)

;int

gety()

;void

print()

;void

moveright

(int offset)

;void

movedown

(int offset)

;private:

int x;

int y;};

void point:

:setx

(int xx)

int point:

:getx()

void point:

:sety

(int yy)

int point:

:gety()

void point:

:print()

void point:

:moveright

(int offset)

void point:

:movedown

(int offset)

intmain()

2.2 設計日期類date(60分)

(1)問題描述

設計乙個日期類date,類的宣告如下:

class date ;

(2)問題要求

請實現日期類,使得主函式及其輸出如下:

void main()

#include

#include

using

namespace std;

class

date

;const

int date::days_per_month[12]

=;date::

date

(int ayear ,

int amonth ,

int aday)

void date::

setyear

(int ayear)

int date::

getyear()

void date::

setmonth

(int amonth)

int date::

getmonth()

void date::

setday

(int aday)

int date::

getday()

void date::

setseparator

(char sepa)

void date::

printfullyear()

void date::

printstandardyear()

int date::

fullyearsto

(int ayear,

int amonth,

int aday)

else

if(amonth == month)

else

return temp = ayear - year -1;

}int date::

getyeardays

(int year)

bool date::

isleapyear

(int year)

int date::

getleftdaysyear()

int date::

checkday

(int testday)

int date::

getdayofyear()

days +

= day;if(

isleapyear

(year)

&& month >2)

days++

;return days;

}int date::

daysto

(int year,

int month,

int day)

// 不在同一年中,且當前日期大於引數日期if(

this

->year > year)

else

// 先加上開始日期到該年結束的天數

int offsetdays = startdate-

>

getleftdaysyear()

;// 再加上開始日期和結束日期之間的所有年的天數 (不包括起止年)

for(

int i = startdate-

>year +

1; i < enddate-

>year; i++

) offsetdays +

=getyeardays

(i);

// 再加上結束日期時,該年已經過的天數

offsetdays +

= enddate-

>

getdayofyear()

;// 如果是公升序,返回負數

if(ascent)

return

0- offsetdays;

// 如果是降序

else

return offsetdays;

}int

main()

之前寫的有點錯誤,已進行修改,還有一部分需要改正,之後有時間了再放上來

實驗三 物件導向分析與設計

部落格班級 ahpu 軟體工程導論 計算機18級 作業要求 實驗三 物件導向分析與設計 作業目的 學習掌握類圖 活 狀態圖 時序圖的繪製方法 學號3180701230 目錄1 了解基於uml的物件導向分析與設計方法 2 掌握用例圖的繪製 用例規約 文件 的編制 3 掌握類圖 活 狀態圖 時序圖的繪製...

實驗三 物件導向分析與設計

部落格班級 軟體工程 作業鏈結 第三次實驗 作業要求 完成第三次實驗 學號3180701333 一.實驗目的 1 了解基於uml的物件導向分析與設計方法 2 掌握用例圖的繪製 用例規約 文件 的編制 3 掌握類圖 活 狀態圖 時序圖的繪製方法 二 實驗內容 大學教師選擇本學期要教授的課程,每位教師最...

實驗三 物件導向分析與設計

一 作業資訊 部落格班級 作業要求 homework 11621 作業目標 了解基於uml的物件導向分析與設計方法 學號3180701325 一.實驗目的 1 了解基於uml的物件導向分析與設計方法 2 掌握用例圖的繪製 用例規約 文件 的編制 3 掌握類圖 活 狀態圖 時序圖的繪製方法 二 實驗內...