<pre name="code" class="cpp">一、
#include <iostream>
using namespace std;
int sec2,minute2,hour2,sec1,minute1,hour1;
class Time
{
public:
void set_time( );
void show_time( );
inline void add_a_sec(); //增加1秒钟
inline void add_a_minute(); //增加1分钟
inline void add_an_hour(); //增加1小时
void add_seconds(int); //增加n秒钟
void add_minutes(int); //增加n分钟
void add_hours(int); //增加n小时
private:
bool is_time(int, int, int);
int hour;
int minute;
int sec;
};
int main( )
{
Time t1;
t1.set_time( );
t1.show_time( );
t1.add_a_sec();
cout<<"增加一秒后的时间为:";
t1.show_time( );
t1.add_a_minute();
cout<<"增加一分钟后的时间为:";
t1.show_time( );
t1.add_an_hour();
cout<<"增加一小时后的时间为:";
t1.show_time( );
cout<<"请输入增加的秒钟:";
cin>>sec2;
t1.add_seconds(sec2);
cout<<"增加"<<sec2<<"秒后的时间为:";
t1.show_time( );
cout<<"请输入增加的分钟:";
cin>>minute2;
t1.add_minutes(minute2);
cout<<"增加"<<minute2<<"分钟后的时间为:";
t1.show_time( );
cout<<"请输入增加的小时:";
cin>>hour2;
t1.add_hours(hour2);
cout<<"增加"<<hour2<<"小时后的时间为:";
t1.show_time( );
system("PAUSE");
return 0;
}
void Time::set_time( )
{
char c1,c2;
cout<<"请输入时间(格式hh:mm:ss)";
while(1)
{
cin>>hour>>c1>>minute>>c2>>sec;
hour1=hour;
minute1=minute;
sec1=sec;
if(c1!=':'||c2!=':')
cout<<"格式不正确,请重新输入"<<endl;
else if (!is_time(hour,minute,sec))
cout<<"时间非法,请重新输入"<<endl;
else
break;
}
}
void Time::show_time( )
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
bool Time::is_time(int h,int m, int s)
{
if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)
return false;
return true;
}
inline void Time::add_a_sec()
{
add_seconds(1);
return;
}
inline void Time::add_a_minute()
{
add_minutes(1);
return;
}
inline void Time::add_an_hour()
{
add_hours(1);
return;
}
void Time::add_seconds(int sec2)
{
sec=sec1;
minute=minute1;
hour=hour1;
sec=sec+sec2;
if(sec>=60)
{ minute=minute+sec/60;
sec%=60;
}
if(minute>=60)
{ hour=hour+minute/60;
minute%=60;
}
if(hour>=24)
{
hour%=24;
}
return;
}
void Time::add_minutes(int minute2)
{
sec=sec1;
minute=minute1;
hour=hour1;
minute=minute+minute2;
if(minute>=60)
{ hour=hour+minute/60;
minute%=60;
}
if(hour>=24)
{
hour%=24;
}
return;
}
void Time::add_hours(int hour2)
{
hour=hour1;
sec=sec1;
minute=minute1;
hour=hour+hour2;
if(hour>=24)
{
hour%=24;
}
return ;
}
二、#include<iostream> using namespace std; class NaturalNumber {private: int n; public: void setValue (int x);//置数据成员n的值,要求判断是否是正整数 int getValue(); //返回私有数据成员n的值 bool isPrime(); //判断数据成员n是否为素数,是返回true,否则返回false void printFactor(); //输出数据成员n的所有因子,包括1和n自身 bool isPerfect(); //判断数据成员n是否为完全数。若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。 bool isReverse(int x);//判断形式参数x是否为数据成员n的逆向数(例321是123的逆向数)。 bool isDaffodil(int x); //判断形式参数x是否是水仙花数。水仙花数的各位数字立方和等于该数,如153=1*1*1+5*5*5+3*3*3 void print Daffodils(); //显示所有大于1,且小于数据成员n的水仙花数; }; void main(void) { NaturalNumber nn; //定义类的一个实例(对象) nn.setValue (6); cout<<nn.getValue()<<(nn.isPrime()?”是”:”不是”)<<”素数” <<endl; nn.setValue (37); cout<<nn.getValue()<<(nn.isPrime()?”是”:”不是”)<<”素数” <<endl; nn.setValue (84); cout<<nn.getValue()<<”的因子有:”; printFactor(); //随着成员函数的实现,增加代码以完成相关的测试。 } //请在下面定义类中的各个成员函数 class NaturalNumber {private: int n; public: void setValue (int x);//置数据成员n的值,要求判断是否是正整数 int getValue(); //返回私有数据成员n的值 bool isPrime(); //判断数据成员n是否为素数,是返回true,否则返回false void printFactor(); //输出数据成员n的所有因子,包括1和n自身 bool isPerfect(); //判断数据成员n是否为完全数。若一个正整数n的所有小于n的因子之和等于n, 则称n为完全数, 如6=1+2+3是完全数。 bool isReverse(int x);//判断形式参数x是否为数据成员n的逆向数(例321是123的逆向数)。 bool isDaffodil(int x); //判断形式参数x是否是水仙花数。水仙花数的各位数字立方和等于该数,如153=1*1*1+5*5*5+3*3*3 void printDaffodils(); //显示所有大于1,且小于数据成员n的水仙花数; };#include<iostream> #include <Cmath> #include "NaturalNumber.h" using namespace std; void main(void) { NaturalNumber nn; //定义类的一个实例(对象) nn.setValue (6); cout<<nn.getValue()<<(nn.isPrime()?"是":"不是")<<"素数" <<endl; nn.setValue (37); cout<<nn.getValue()<<(nn.isPrime()?"是":"不是")<<"素数" <<endl; nn.setValue (84); cout<<nn.getValue()<<"的因子有:"; nn.printFactor(); system("PAUSE"); //随着成员函数的实现,增加代码以完成相关的测试。#include<iostream> #include <Cmath> #include "NaturalNumber.h" using namespace std; void NaturalNumber::setValue (int x) { cout << "请输入一个数据成员的值:"; cout<< x << endl; if (x > 0) { cout << "数据为正整数!"<<endl; n = x; } else { cout << "数据不是正整数!请重新输入:"<< endl; } } int NaturalNumber::getValue() { return n; } bool NaturalNumber::isPrime() { bool pri = true; for (int i = 2;i <= sqrt(x);i++) { if( n % i == 0) { pri = false; break; } } return pri; } void NaturalNumber::printFactor() { for(int i = 1;i <= n;i++) { if( n % i == 0) { cout << i << " "; } } cout << endl; } bool NaturalNumber::isPerfect() { int s = 0; for(int i = 1;i < n;i++) { if( n % i == 0) { s = s + i; } } if(n == s) { cout << "n为完全数!"<< endl; } else { cout << "n不是完全数!"<< endl; } return 0; } bool NaturalNumber::isReverse(int x) { int t,s = 0; while(x > 0) { t = x % 10; s = s + t; x = x / 10; } if (n == x) { cout << "形式参数x是数据成员n的逆向数"<< endl; } else { cout << "形式参数x不是数据n的逆向数"<< endl; } return 0; } bool NaturalNumber::isDaffodil(int x) { int t,s = 0; while(x > 0) { t = x % 10; s = s + t * t * t; x = x / 10; } if (n == s) { cout << "形式参数x是水仙花数"<< endl; } else { cout << "形式参数x不是水仙花数"<< endl; } return 0; } void NaturalNumber::printDaffodils() { int i,t,s = 0; for(i = 1;i < n;i++) { while(i > 0) { t = i % 10; s = s + t * t *t; i = i / 10; } if(s == i) { cout << "1--n的水仙花数有:"<< i << " "; } } }
三、
#include<iostream>
#include<string>
using namespace std;
class Book
{
public:
void setBook(string n,string w,string pub,double pri,int num);
int borrow();
int restore();
void print();
void set_NO(float s);
int get_NO();
private:
string name,writer,publicer;
double price,number,NO;
};
void Book::setBook(string n,string w,string pub,double pri,int num)
{
name=n;
writer=w;
publicer=pub;
price=pri;
number=num;
}
int Book::borrow()
{
return(number-=1);
}
int Book::restore()
{
return(number+=1);
}
void Book::print()
{
cout<<"书名:"<<name<<endl;
cout<<"作者:"<<writer<<endl;
cout<<"出版社:"<<publicer<<endl;
cout<<"单价:"<<price<<endl;
cout<<"数量:"<<number<<endl;
cout<<"编号:"<<NO<<endl;
}
void Book::set_NO(float s)
{
NO=s;
}
int Book::get_NO()
{
return NO;
}
void main()
{
Book b1;
b1.setBook("红楼梦","曹雪芹","中国人民教育出版",50,2);
b1.set_NO(510121);
b1.print();
}