#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++
 













 
 博文
博文
 
 
 
 
 
 

 








 13130
13130