#include<iostream>
using namespace std;
class my_Score
{
public:
int my_var;
my_Score()
{
my_var=9;
}
my_Score(int a)
{
my_var=a;
}
my_Score operator++(int); // 必須定義為類別的成員函式
my_Score operator--(int); // 必須定義為類別的成員函式
};
// 宣告++運算子多載
my_Score my_Score::operator++(int)
{
return my_Score(my_var++);
}
// 宣告--運算子多載
my_Score my_Score::operator--(int)
{
return my_Score(my_var--);
}
void main()
{
int i,j;
for(i=1;i<=10;i++){
my_Score st1(i)++;
cout << "值 :" << st1.my_var << endl;
st1++;
}
for(i=10;i>=1;i--){
my_Score st2(i);
cout << "值 :" << st2.my_var << endl;
st2--;
}
}
>即時新聞-熱門
2008年8月29日星期五
vc++ - 一元運算作法
vc++ 多元一元載子 四則運算
#include<iostream>
using namespace std;
class my_Score
{
public:
int my_var;
my_Score(int a)
{
my_var=a;
}
};
int operator+(int x,my_Score s1)
{
return (x+s1.my_var);
}
int operator-(int x,my_Score s1)
{
return (x-s1.my_var);
}
int operator*(int x,my_Score s1)
{
return (x*s1.my_var);
}
int operator/(int x,my_Score s1)
{
return (x/s1.my_var);
}
void main()
{
my_Score my_st(20);
cout << "100 + 20 = " << (100+my_st) << endl;
cout << "100 - 20 = " << (100-my_st) << endl;
cout << "100 * 20 = " << (100*my_st) << endl;
cout << "100 / 20 = " << (100/my_st) << endl;
}
VC++ - 多載化建構子
#include<iostream>
#include "ctype.h"
using namespace std;
class Data
{
public:
Data(char b)
{
cout << "參數為:" << (int)b << endl;
}
};
void main()
{
char p;
cout<<"請輸入一個字元"<<endl;
cin>>p;
if (isalpha(p)){
Data d1(p);
}
else{
cout<<"輸入的不是字元"<<endl;
}
}
vc++ - 多載函式類別成員1
#include<iostream>
using namespace std;
class Score
{
int china;
int english;
int math;
public:
int sum,sum1;
void total_score()
{
sum=0;
}
void total_score(int a,int b,int c)
{
china=a;
if (china<60)
china=60;
math=b;
if (math<60)
math=60;
english=c;
if (english<60)
english=60;
sum1=china+english+math;
sum=sum1+sum;
}
};
void main()
{
int x1,x2,x3;
char d;
Score s1;
s1.total_score();
for(;;){
cout<<"請輸入國文成績 : ";
cin>>x1;
cout<<"請輸入英文成績 : ";
cin>>x2;
cout<<"請輸入數學成績 : ";
cin>>x3;
s1.total_score(x1,x2,x3);
cout << "合計是" << s1.sum << endl;
cout<<"請問是否要繼續:是 -> y , 否-> n ";
cin>>d;
if (d=='N'||d=='n')
break;}
}
vc++ - 多載函式類別成員
#include<iostream>
using namespace std;
class Score
{
int china;
int english;
int math;
public:
int sum,sum1;
void total_score()
{
sum=0;
}
void total_score(int a,int b,int c)
{
china=a;
math=b;
english=c;
sum1=china+english+math;
sum=sum1+sum;
}
};
void main()
{
int x1,x2,x3;
char d;
Score s1;
s1.total_score();
for(;;){
cout<<"請輸入國文成績 : ";
cin>>x1;
cout<<"請輸入英文成績 : ";
cin>>x2;
cout<<"請輸入數學成績 : ";
cin>>x3;
s1.total_score(x1,x2,x3);
cout << "合計是" << s1.sum << endl;
cout<<"請問是否要繼續:是 -> y , 否-> n ";
cin>>d;
if (d=='N'||d=='n')
break;}
}
2008年8月27日星期三
vc++ - 多載函式2
#include<iostream>
#include "math.h"
using namespace std;
int multisum(int a,int b)
{
int sum=0;
sum=a*b;
return sum;
}
int multisum(int a,int b,int c)
{
int sum=0;
sum=a*b*c;
return sum;
}
float multisum(float a)
{
float sum=0;
sum=a*a*3.1415962;
return sum;
}
void main()
{
int w,l,h;
float r;
cout << "請輸入長:" << endl;
cin>>l;
cout << "請輸入寬:" << endl;
cin>>w;
cout << "請輸入高:" << endl;
cin>>h;
r = (float)sqrt(w*w+l*l)/2;
cout << "圓面積:" << multisum(r) << endl;
cout << "面積:" << multisum(w,l) << endl;
cout << "體積:" << multisum(w,l,h) << endl;
};
vc++ - 多載函式1
#include<iostream>
using namespace std;
int multisum(int a,int b)
{
int sum=0;
sum=a*b;
return sum;
}
int multisum(int a,int b,int c)
{
int sum=0;
sum=a*b*c;
return sum;
}
float multisum(int a)
{
float sum=0;
sum=a*a*3.1415962;
return sum;
}
void main()
{
cout << "圓面積:" << multisum(12) << endl;
cout << "面積:" << multisum(12,12) << endl;
cout << "體積:" << multisum(3,4,5) << endl;
};
vc++ - 多重繼承3
#include<iostream>
using namespace std;
class my_no
{
private:
int no;
public:
void set_no(int no)
{
this->no=no;
}
int get_no()
{
return no;
}
};
class my_score
{
private:
int china;
int english;
int math;
public:
void set_china(int china)
{
this->china=china;
}
int get_china()
{
return china;
}
void set_english(int english)
{
this->english=english;
}
int get_english()
{
return english;
}
void set_math(int math)
{
this->math=math;
}
int get_math()
{
return math;
}
};
class my_student : public my_no,public my_score
{
private:
int sum;
public:
my_student()
{
int sum=0;
}
void show()
{
cout << "學號:" << get_no() << endl;
cout << "國文:" << get_china() << endl;
cout << "英文:" << get_english() << endl;
cout << "數學:" << get_math() << endl;
}
void add1()
{
sum=get_china()+get_english()+get_math();
cout << "總成績為:" << sum << endl;
}
};
void main()
{
my_student st1;
int s1,s2,s3;
st1.set_no(3);
cout << "請輸入國文成績:";
cin >> s1;
cout << "請輸入英文成績:";
cin >> s2;
cout << "請輸入數學成績:";
cin >> s3;
st1.set_china(s1);
st1.set_english(s2);
st1.set_math(s3);
cout << "*************************************" << endl;
st1.show();
st1.add1();
}
vc++ - 多重繼承2
#include<iostream>
using namespace std;
class my_score
{
private:
int china;
int english;
int math;
public:
void set_china(int china)
{ this->china=china; }
int get_china()
{ return china; }
void set_english(int english)
{ this->english=english; }
int get_english()
{ return english; }
void set_math(int math)
{ this->math=math; }
int get_math()
{ return math; }
};
class my_student : public my_score
{
private:
int sum;
float avg;
public:
my_student()
{ int sum=0;
float avg=0.0;
}
void show_score()
{
cout << "國文:" << get_china() << endl;
cout << "英文:" << get_english() << endl;
cout << "數學:" << get_math() << endl;
}
void add1()
{
sum=get_china()+get_english()+get_math();
cout << "總成績為:" << sum << endl;
}
void avg1()
{
avg=(float)(get_china()+get_english()+get_math())/3;
cout << "總平均為:" << avg << endl;
}
};
void main()
{
my_student st1;
int s1,s2,s3;
cout << "請輸入國文成績:";
cin >> s1;
cout << "請輸入英文成績:";
cin >> s2;
cout << "請輸入數學成績:";
cin >> s3;
st1.set_china(s1);
st1.set_english(s2);
st1.set_math(s3);
cout << "************************************" << endl;
st1.show_score();
st1.add1();
st1.avg1();
}
vc++ - 多重繼承
#include<iostream>
using namespace std;
class my_score
{
private:
int china;
int english;
int math;
public:
void set_china(int china)
{ this->china=china; }
int get_china()
{ return china; }
void set_english(int english)
{ this->english=english; }
int get_english()
{ return english; }
void set_math(int math)
{ this->math=math; }
int get_math()
{ return math; }
};
class my_student : public my_score
{
private:
int sum;
float avg;
public:
my_student() { int sum=0;
float avg=0.0;
}
void show_score()
{
cout << "國文:" << get_china() << endl;
cout << "英文:" << get_english() << endl;
cout << "數學:" << get_math() << endl;
}
void add1()
{
sum=get_china()+get_english()+get_math();
avg=(float)sum/3;
cout << "總成績為:" << sum << endl;
cout << "總平均為:" << avg << endl;
}};
void main()
{
my_student st1;
int s1,s2,s3;
cout << "請輸入國文成績:";
cin >> s1;
cout << "請輸入英文成績:";
cin >> s2;
cout << "請輸入數學成績:";
cin >> s3;
st1.set_china(s1);
st1.set_english(s2);
st1.set_math(s3);
cout << "***********************" << endl;
st1.show_score();
st1.add1();
}
vc++ - protected作法
#include<iostream>
using namespace std;
class my_data
{
private:
int no;
protected:
int china;
int narth;
public:
int math;
int english;
my_data()
{
no=0;
china=0;
narth=0;
math=0;
english=0;
}
void set_no(int n1)
{ no=n1; }
void show_no()
{ cout << "學號 : " << no << endl; }
};
class my_data1:protected my_data
{
public:
void set_data1(int n3,int n4)
{
china=n3;
narth=n4;
}
void set_data2(int n5 , int n6)
{
english=n5;
math=n6;
}
void setno(int n7)
{
set_no(n7);
}
void show_data()
{
show_no();
cout << "國文 :" << china << endl;
cout << "自然 :" << narth << endl;
cout << "英文 :" << english << endl;
cout << "數學 :" << math << endl;
}
};
void main()
{
int i,a,no[sizeof(int)],ch[sizeof(int)],ma[sizeof(int)],en[sizeof(int)],na[sizeof(int)];
cout << "請輸入同學位數 :" ;
cin>>a ;
for(i=0;i<a;i++){
cout << "第 "<<i+1<<"位同學" ;
cout << "學號 :" ;
cin>>no[i] ;
cout << "國文 :" ;
cin>>ch[i] ;
cout << "自然 :" ;
cin>>na[i];
cout << "英文 :" ;
cin>>en[i];
cout << "數學 :" ;
cin>>ma[i];
}
my_data1 obj1;
for(i=0;i<3;i++){
obj1.setno(no[i]);
obj1.set_data1(ch[i],na[i]);
obj1.set_data2(en[i],ma[i]);
obj1.show_data();
}
}
VC++ - 繼承
#include<iostream>
using namespace std;
class my_score
{
public:
int china;
int math;
int english;
int total;
my_score();
void get_score();
void show_score();
void gettotal();
};
my_score::my_score()
{
china=0;
math=0;
english=0;
total =china+math+english;
}
void my_score::get_score()
{
cout << "輸入國文成績:";
cin >> china;
cout << endl<<"輸入英文成績:";
cin >> english;
cout <<endl<< "輸入數學成績:";
cin >> math;
}
void my_score::show_score()
{
cout << "國文:" << china << endl;
cout << "英文:" << english << endl;
cout << "數學:" << math << endl;
}
void my_score::gettotal()
{
total =china+math+english;
}
class st1:public my_score
{
private:
int no;
char name[20];
public:
void show_data();
void set_data();
void show_total();
};
void st1::show_data()
{
cout << "********************************" << endl;
show_score();
cout << "座號:" << no << endl;
cout << "姓名:" << name << endl;
}
void st1::set_data()
{
cout << "輸入座號:";
cin >> no;
cout << "輸入姓名:";
cin >> name;
}
void st1::show_total()
{
cout << "合計 :" << total << endl;
}
void main()
{
st1 s1;
s1.get_score();
s1.set_data();
s1.gettotal();
s1.show_total();
s1.show_data();
}
2008年8月26日星期二
VC++ - 例外(感謝PETER)
#include<iostream>
using namespace std;
void main()
{
cout<<"例外"<<endl;
try
{
int n1;
cout<<"請輸入除數:";
cin>>n1; //經過我無聊而且有耐心的精神發現到,n1宣告int後,經cin指另寫進去n1的是ASSIC CODE十進位碼。^^//
if (!(n1>0 && n1<=9)) //我只修改這行判別式,意思就是說不是輸入0—9的一律都是"除零例外"不管是符號,英文字或是組合鍵,通通擋住,滴水不漏。 ^^//
{
throw 1;
}
cout<<"不是例外"<<endl;
}
catch(int e)
{
cout<<"除零例外"<<endl;
}
}
2008年8月25日星期一
vc++ - 例外 字母
#include<iostream>
using namespace std;
void main()
{
cout<<"例外"<<endl;
try
{
char x;
cout<<"請輸入除數:";
cin>>x;
if (x>='A' && x<='Z'){
throw 1; }
cout<<"不是例外"<<endl;
}
catch(int r)
{
cout<<"除零例外"<<endl;
}
}
VC++ - 類別相減
#include <iostream.h>
class Addsum
{
int x;
public:
Addsum(int);
void sum(Addsum);
void show();
};
Addsum::Addsum(int s)
{ x=s;}
void Addsum::sum(Addsum obj)
{ x-=obj.x; }
void Addsum::show()
{ cout<<x;}
void main()
{
int x,y;
int*p =&x;
int*p1=&y;
cout<<"請輸入數值一"<<endl;
cin>>x;
cout<<"請輸入數值二"<<endl;
cin>>y;
Addsum a(*p),b(*p1);
a.show();
cout<<"-";
b.show();
cout<<"=";
a.sum(b);
a.show();
cout<<endl;
}
類別 - 最大值
#include<iostream>
using namespace std;
class basedata {
private:
char no[6];
char name[20];
int math;
int china;
int english;
int scoresum(void);
float scoreavg(void);
int scoremax(void);
public:
void inputbasedata();
void showbasedata();
};
void basedata::inputbasedata(void)
{
cout << "****************************" << endl;
cout << "學號:" ;
cin >> no;
cout <<endl<< "姓名:";
cin >> name ;
cout <<endl<< "數學:";
cin >> math;
cout <<endl<< "國文:";
cin >> china;
cout <<endl<< "英文:";
cin >> english;
}
void basedata::showbasedata(void)
{
int sum;
float avg;
int mymax;
sum=scoresum();
avg=scoreavg();
mymax=scoremax();
cout << "***************************" << endl;
cout << "學號:" << no << endl;
cout << "姓名:" << name << endl;
cout << "數學:" << math << endl;
cout << "國文:" << china << endl;
cout << "英文:" << english << endl;
cout << "***************************" << endl;
cout << "總分:" << sum<< endl;
cout << "平均:" << avg << endl;
cout << "最大值:" << mymax << endl;
}
int basedata::scoresum()
{
int my_sum;
my_sum=math+china+english;
return my_sum;
}
float basedata::scoreavg()
{
float my_avg;
my_avg=(math+china+english)/3;
return my_avg;
}
int basedata::scoremax()
{
int my_max;
if (math > china){
if (math >english){
my_max=math;
}
else{
my_max=english;
}
}
else{
if (china >english){
my_max=china;
}
else{
my_max=english;
}
}
return my_max;
}
void main()
{
basedata a[4];
int i;
cout<<"請輸入資料"<<endl;
for(i=0;i<4;i++){
a[i].inputbasedata();
}
cout<<"資料輸出"<<endl;
for(i=0;i<4;i++){
a[i].showbasedata();
}
}
類別 - 加入平均合計
#include<iostream>
using namespace std;
class basedata {
private:
char no[6];
char name[20];
int math;
int china;
int english;
int scoresum(void);
float scoreavg(void);
public:
void inputbasedata();
void showbasedata();
};
void basedata::inputbasedata(void)
{
cout << "****************************" << endl;
cout << "學號:" ;
cin >> no;
cout <<endl<< "姓名:";
cin >> name ;
cout <<endl<< "數學:";
cin >> math;
cout <<endl<< "國文:";
cin >> china;
cout <<endl<< "英文:";
cin >> english;
}
void basedata::showbasedata(void)
{
int sum;
float avg;
sum=scoresum();
avg=scoreavg();
cout << "***************************" << endl;
cout << "學號:" << no << endl;
cout << "姓名:" << name << endl;
cout << "數學:" << math << endl;
cout << "國文:" << china << endl;
cout << "英文:" << english << endl;
cout << "***************************" << endl;
cout << "總分:" << sum<< endl;
cout << "平均:" << avg << endl;
}
int basedata::scoresum()
{
int my_sum;
my_sum=math+china+english;
return my_sum;
}
float basedata::scoreavg()
{
float my_avg;
my_avg=(math+china+english)/3;
return my_avg;
}
void main()
{
basedata a[4];
int i;
cout<<"請輸入資料"<<endl;
for(i=0;i<4;i++){
a[i].inputbasedata();
}
cout<<"資料輸出"<<endl;
for(i=0;i<4;i++){
a[i].showbasedata();
}
}
2008年8月24日星期日
VC++ - 樣版 - 類別
#include <iostream>
using namespace std;
class AddValue {
int i;
public:
AddValue(int b1)
{
for(i=0;i<b1;i++)
i=b1+1;
}
friend void F1(const AddValue&);
};
void F1(const AddValue& p1) {
cout << p1.i << endl;
}
void main()
{
int y;
cout<<"請輸入數值:";
cin>>y;
F1(y);
}
VC++ - 樣版 - 明顯特殊化
#include <cstring>
#include <iostream>
using namespace std;
template<typename T> const T&
min(const T& a, const T& b)
{
if (a < b)
return a;
else
return b;
}
template<>
const int* const& min<const int*>(const int* const& a,const int* const& b)
{
if (a < b)
return a;
else
return b;
}
void main()
{
int s1,s2;
cout << "請輸入數值1 : ";
cin >>s1;
cout << endl << "請輸入數值2 : ";
cin >>s2;
cout << endl << "最小值為:"<<min(s1, s2) << endl;
}
VC++ - 樣版函式
#include <iostream>
using namespace std;
template<class T>
void ListArray(const T a1,int count)
{
for (int i = 0; i < count; i++ )
cout<<a1[i]<<" ";
cout << endl;
}
void main()
{
int y ;
char a[5],b[6]="abcde";
cout << "陣列內容為:" << endl;
for ( y = 0; y < 5; y++ )
a[y] = b[y];
ListArray(a,2);
ListArray(b,5);
}
VC++ - 多載一元運算子
#include<iostream>
using namespace std;
class my_Score
{
public:
int my_var;
my_Score(int a)
{
my_var=a;
}
};
int operator+(int x,my_Score s1)
{
return (x+s1.my_var);
}
void main()
{
int y;
cout << "請輸入一個數值: " <<endl;
cin>>y;
my_Score my_st(y);
cout <<"100 +"<< y<< "=" << (100+my_st) << endl;
}
VC++ - 後置式多載
#include<iostream>
using namespace std;
class my_Score
{
public:
int my_var;
my_Score()
{
my_var=88;
}
my_Score(int a)
{
my_var=a;
}
my_Score operator++(int);
my_Score operator--(int);
};
my_Score my_Score::operator++(int)
{
return my_Score(my_var++);
}
my_Score my_Score::operator--(int)
{
return my_Score(my_var--);
}
void main()
{
my_Score st1(3);
my_Score st2;
st1++;
st2--;
cout << "第一次" << st1.my_var << endl;
cout << "第二次" << st2.my_var << endl;
}
标签: VISUAL C++