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 掌握類圖 活 狀態圖 時序圖的繪製方法 二 實驗內...