C++第二次作业
2016-03-26 12:40
525 查看
<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(); }
相关文章推荐
- C语言——可变参数
- C语言——回调函数
- C++11中的decltype用法注意
- 设计模式--代理模式C++实现
- C++ 获取windows一些基本信息
- sizeof()、size()、strlen()总结
- C++学习笔记(七)输入不定长度二维数组
- 关于C++ 引用<初学写代码小记>
- c++的cout
- 【C语言】求斐波那契(Fibonacci)数列通项(递归法、非递归法)
- 【学习C++】2.cin与Enter
- c++函数参数类型-引用
- 关于 C++ list 一些使用
- c++实现归并排序
- C语言程序设计,实验报告程序
- C++中const用法总结
- 由find_char()函数所想到的
- c语言:双向循环链表的实现
- 在C++中使用sizeof
- C语言结构体变量字节对齐问题总结