学習ノート『コンピュータプログラム設計C++』第9週プログラミング作業

28375 ワード

9週目のプログラミング作業本作業はオンライン評価形式です.ソースプログラムを提出し、システムは自動的に評価し、複数回提出することができる.出力フォーマットはテーマの要求に厳格に従い、与えられたサンプルを参照する.大文字と小文字、中国語と英語、スペースの数は厳格にしなければならない.
学術の誠実さの条項に基づいて、私はこの宿題が本人が独立して完成したことを保証します.
お知らせ:
1.今回の作業はOnline Judgeの問題に属し、提出後、システムが即時に採点する.
2.学生は宿題の締め切り時間までに回数を問わず答えを提出することができ、システムはその中の最高点を最終成績とする.
1設計Person類(20点)テーマ内容:
Personクラスを設計し、name、age、sexプロパティ、およびこれらのプロパティを操作する方法を含む.このクラスを実装してテストします.クラスのカプセル化要件に応じてname,age,sexをプライベートデータメンバーとして宣言し,共有メンバー関数Register(),ShowMe()を宣言してこれらの属性にアクセスし,Register()関数でデータメンバーを初期化する.person 1はcinにより情報を得,person 2はRegister("Zhang 3",19,‘m’)により情報を得る.
入力形式:
Person 1の情報
出力フォーマット:
Person 1とperson 2の情報
サンプルを入力:
Li4 18 f
出力サンプル:
Li4 18 f
Zhang3 19 m
時間制限:500 msメモリ制限:32000 kb C++
#include 
using namespace std;

class Person{
	char name[20],sex;
	int age; 
	public:
	void Set(){
		cin>>name>>age>>sex;
	}
	void Register(char *a,int ag,char c){
		char *a1=a,*na=name;
		while(*a1){
			*na=*a1;
			na++;a1++;
		}
		*na='\0';
		age=ag;
		sex=c;
	}
	void ShowMe(){
		cout<<name<<" "<<age<<" "<<sex<<endl;
	}
}; 
int main()
{
	Person person1,person2;
	person1.Set();
//	char x[]={"Zang3"};
	person2.Register("Zhang3",19,'m');
	person1.ShowMe();
	person2.ShowMe();
return 0;
}

用例試験結果運転時間占有メモリ提示スコア用例1 2 ms 236 kb 7用例2 2 ms 236 kb 7用例3 2 ms 256 kb 6で回答今回のスコア/総点:20.00/20.00点2設計Dog類(20点)問題内容:
名前、age、sex、weightなどの属性と、これらの属性を操作する方法を含むDogクラスを設計します.このクラスを実装してテストします.クラスのカプセル化要件に従って、name、age、sex、weightをプライベートデータメンバーとして宣言し、共通メンバー関数setdata()を記述してデータを初期化し、GetName()、GetAge()、GetSex()、GetWeight()は対応する属性を取得します.初期化データはユーザーによって入力されます.
入力形式:
Dogクラスオブジェクトの初期化データ
出力フォーマット:
Dogクラスオブジェクトのイニシャルデータに基づいて一言を出力します.フォーマットに厳格に従って出力してください.文末に少し番号があります.
サンプルを入力:
ahuang 3 m 2.4
出力サンプル:
It is my dog.
Its name is ahuang.
It is 3 years old.
It is male.
It is 2.4 kg.
時間制限:500 msメモリ制限:32000 kb C++
#include 
using namespace std;

class Person{
	char name[20],sex;
	int age;double wt; 
	public:
	void Set(){
		cin>>name>>age>>sex>>wt;
	}
	void Register(char *a,int ag,char c){
		char *a1=a,*na=name;
		while(*a1){
			*na=*a1;
			na++;a1++;
		}
		*na='\0';
		age=ag;
		sex=c;
	}
	void ShowMe(){
		cout<<"It is my dog."<<endl;
		cout<<"Its name is "<<name<<"."<<endl;
		cout<<"It is "<<age<<" years old."<<endl;
		cout<<"It is "<<sex<<"ale."<<endl;
		cout<<"It is "<<wt<<" kg."<<endl;
	}
}; 
int main()
{
	Person person1,person2;
	person1.Set();
//	char x[]={"Zang3"};
//	person2.Register("Zang3",19,'m');
	person1.ShowMe();
//	person2.ShowMe();
return 0;
}

用例試験結果運転時間占有メモリ提示スコア用例1 3 ms 364 kb 20を通じて解答を提出今回のスコア/総得点:20.00/20.00点3 Trapezium類(20点)テーマ内容を設計し試験する:
Trapeziumという名前の台形クラスを設計し、テストします.そのプロパティは台形の4つの頂点の座標です.この台形の上辺と下辺はいずれもx軸と平行である.クラスのカプセル化要件により,クラスの宣言では4点の座標値を8個のプライベート整数変数で表し,メンバー関数initial(int,int,int,int,int,int,int,int,int,int,int)を宣言してデータメンバーを初期化し,関数GetPosition(int&,int&,int&,int&,int&,int&,int&,int&,int&,int&,int&)は座標値を読み出し,関数Area()は面積を計算する.
入力形式:
台形の4つの頂点の座標、
出力フォーマット:
台形の面積は、左上(x 1,y 1)、右上(x 2,y 2)、左下(x 3,y 3)、右下(x 4,y 4)角の頂点の順である.
サンプルを入力:
3 2 5 2 1 -4 7 -4
出力サンプル:
24
時間制限:500 msメモリ制限:32000 kb C++
#include 
#include 
using namespace std;

class Person{
	double a[19] ;
	public:
	void Set(){
		for(int i=1;i<=8;++i)cin>>a[i];
	}

	void ShowMe(){
		cout<<(fabs(a[1]-a[3])+fabs(a[5]-a[7]))*fabs((a[2]-a[6])/2);
	}
}; 
int main()
{
	Person person1,person2;
	person1.Set();
	person1.ShowMe();
return 0;
}

用例試験結果運転時間占有メモリ提示スコア用例1通過3 ms 256 kb 7用例2通過3 ms 232 kb 7用例3通過2 ms 364 kb 6回答今回のスコア/総点:20.00/20.00点4設計MyTimeクラス(20点)問題内容:
MyTimeクラスの設計、メンバー関数の設定時間、print_12()12(0-11)時間制表示時間(AM午前、PM午後)、print_24()は24(0-23)時間で表示されます.
入力形式:
所要時間設定時、分、秒
出力フォーマット:
12時間制と24時間制で順番に時間が表示されますが、時間フォーマットのコロンは英語のコロンで、時分秒は2桁で、AM、PMの前にスペースがあり、夜12:00は00:00:00:00 AM、昼12時は00:00:00 PMです.
サンプルを入力:
13 23 34
出力サンプル:
01:23:34 PM
13:23:34
時間制限:500 msメモリ制限:32000 kb C++
#include
using namespace std;

class MyTime
{
	int h,f,m;
public:
    void SetTime(){
    	cin>>h>>f>>m;
	}
	void Show(){
		if(h%12<10)cout<<0;
		cout<<h%12<<":";
		if(f<10)cout<<0;
		cout<<f<<":";
		if(m<10)cout<<0;
		cout<<m;
		if(h<12)cout<<" AM
"
; else cout<<" PM
"
; if(h<10)cout<<0; cout<<h<<":"; if(f<10)cout<<0; cout<<f<<":"; if(m<10)cout<<0; cout<<m<<endl; } }; int main() { MyTime mt; mt.SetTime(); mt.Show(); return 0; }

用例試験結果運転時間占有メモリ提示スコア用例1通過3 ms 236 kb 7用例2通過2 ms 236 kb 6用例3通過2 ms 236 kb 6用例4通過2 ms 368 kb 1提出解答今回スコア/総点:20.00/20.00分5設計Weekday類(20点)問題内容:
Weekdayクラスを設計し、メンバー関数SetDay()は曜日を設定し、IncDay()は1日進み、NowDay()は現在曜日を印刷します.
入力形式:
ユーザーは1つの数字を入力して、0は日曜日を表して、1は月曜日を表して、類推して、6は土曜日を表して、この数字でWeekday類を初期化します
出力フォーマット:
中国語で当日から3日間連続で曜日を印刷します(3日未満の場合、ループ)
サンプルを入力:
0
出力サンプル:
日曜日
月曜日
火曜日
時間制限:500 msメモリ制限:32000 kb C++
#include
using namespace std;

class MyTime
{	int e; 
	char wk[7][4]={" "," "," "," "," "," "," "};
public:
    void SetTime(){
    	cin>>e;
	}
	void Show(){
		cout<<"  "<<wk[e%7] <<endl;
		cout<<"  "<<wk[(e+1)%7] <<endl;
		cout<<"  "<<wk[(e+2)%7] <<endl;
	}
};

int main()
{
    MyTime mt;
    mt.SetTime();
    mt.Show();
    return 0;
}

用例試験結果運転時間占有メモリ提示スコア用例1通過2 ms 244 kb 7用例2通過7 ms 256 kb 7用例3通過2 ms 372 kb 6提出解答今回のスコア/総得点:20.00/20.00点