您的位置:首页 > 编程语言 > C语言/C++

c++第二次作业

2016-04-11 00:23 519 查看


#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<&
4000
lt;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();
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: