C++第二次上机实验其他作业
来源:互联网 发布:大胃王密子君直播软件 编辑:程序博客网 时间:2024/06/04 17:44
一、阅读、运行程序后,按要求增加类的功能
#include <iostream>using namespace std;class Time{public: void set_time( ); void show_time( ); void add_a_sec(); void add_a_minute(); void add_an_hour(); void add_seconds(int s); void add_minutes(int m); void add_hours(int h);private: bool is_time(int, int, int); int hour; int minute; int sec;};void Time::set_time( ){ char c1,c2; cout<<"请输入时间(格式hh:mm:ss)"; while(1) { cin>>hour>>c1>>minute>>c2>>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;}void Time::add_a_sec(){ sec+=1; if(sec==60) { sec=0; minute++; } if(minute==60) { minute=0; hour++; } if(hour==24) { hour=0; }}void Time::add_a_minute(){ minute+=1; if(minute==60) { minute=0; hour++; } if(hour==24) { hour=0; }}void Time::add_an_hour(){ hour+=1; if(hour==24) { hour=0; }}void Time::add_seconds(int s){ cout<<"增加s秒:"<<endl; cin>>s; sec+=s; if(sec>=60) { minute+=(sec/60); sec%=60; if(minute>=60) { hour+=(minute/60); } if(hour>=24) { hour%=24; } }}void Time::add_minutes(int m){ cout<<"增加m分:"<<endl; cin>>m; minute+=m; if(minute>=60) { hour+=(minute/60); } if(hour>=24) { hour%=24; }}void Time::add_hours(int h){ cout<<"增加h时:"<<endl; cin>>h; hour+=h; if(hour>=24) { hour%=24; }}int main( ){ Time t1; int s,m,h; t1.set_time(); t1.add_a_sec(); t1.show_time(); t1.set_time(); t1.add_a_minute(); t1.show_time(); t1.set_time(); t1.add_an_hour(); t1.show_time(); t1.set_time(); t1.add_seconds(s); t1.show_time(); t1.set_time(); t1.add_minutes(m); t1.show_time(); t1.set_time(); t1.add_hours(h); t1.show_time(); return 0;}
运行结果:
二、项目名称:正整数类
#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 NaturalNumber::setValue (int x) //判断是否是正整数{ n=x; if(n>0) { cout<<n<<"为正整数"<<endl; } else cout<<n<<"不是正整数"<<endl;}int NaturalNumber::getValue() //返回私有数据成员n的值{ return n;}bool NaturalNumber::isPrime() //判断数据成员n是否为素数,是返回true,否则返回false{ int i; if(n==1) return 0; for(i=2; i<n; i++) { if(n%i==0) { return false; } else return true; }}void NaturalNumber::printFactor() //输出数据成员n的所有因子,包括1和n自身{ int i; for(i=1; i<=n; i++) if(n%i==0) cout<<i<<" "; cout<<endl;}bool NaturalNumber::isPerfect() //判断数据成员n是否为完全数。{ int i,s=0; for (i=1; i<n; i++) { if(n%i==0) s+=i; } if(s==n) return 1; else return 0;}bool NaturalNumber::isReverse(int x) //判断形式参数x是否为数据成员n的逆向数{ int s=0; while (x) { s=s*10+x%10; x/=10; } if(s==n) return 1; else return 0;}bool NaturalNumber::isDaffodil(int x) //判断形式参数x是否是水仙花数。{ int i,j,k; i=x/100; j=x/10%10; k=x%10; if(i*i*i+j*j*j+k*k*k==x) cout<<x<<"是水仙花数"<<endl; else cout<<x<<"不是水仙花数"<<endl;}void NaturalNumber::print_Daffodils() //显示所有大于1,且小于数据成员n的水仙花数;{ int i,j,k,a; cout<<n<<"所有水仙花数为 "; for(a=100; a<n; a++) { i=a/100; j=a/10%10; k=a%10; if(i*i*i+j*j*j+k*k*k==a) { cout<<a<<" "; } } cout<<endl;}int main(){ 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(); nn.setValue(6); cout << nn.getValue() << (nn.isPerfect()?"是":"不是") << "完全数" << endl; nn.isPerfect(); nn.setValue(121); cout<<nn.getValue()<<(nn.isReverse(121)?"是":"不是")<<"逆向数" <<endl; nn.isDaffodil(234); nn.setValue(888); nn.print_Daffodils(); return 0;}
运行结果:
三、项目名称:Book类
#include<iostream>#include<string>using namespace std;class Book{public: void setBook(string n,string w,string pub,float pri,int num,int N); void borrow(); void restore(); void print(); void set_NO(int a); int get_NO();private: string name; string writer; string publicer; float price; int number; int NO;};void Book::setBook(string n,string w,string pub,float pri,int num,int N){ name=n; writer=w; publicer=pub; price=pri; number=num; NO=N;}void Book::borrow(){ number--;}void Book::restore(){ number++;}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(int a){ NO=a;}int Book::get_NO(){ return NO;}int main(){ Book n; n.setBook("红楼梦","曹雪芹","北京大学出版",18.8,5,20); cout<<"借出以后:"<<endl; n.borrow(); n.print(); cout<<"还书以后:"<<endl; n.restore(); n.print(); cout<<"现在书籍的信息:"<<endl; n.set_NO(20); n.print(); return 0;}运行结果:
五、分数类
0 0
- C++第二次上机实验其他作业
- c++第二次上机实验作业
- C++第二次上机实验作业
- 第二次c程序设计上机作业
- C语言第二次上机作业
- C++ 第二次上机实验(作业)
- 作业:c++作业:第二次上机实验-模拟ATM
- C++第三次上机实验其他作业
- C++第四次上机实验其他作业
- C++第五次上机实验其他作业
- C++第六次上机实验其他作业
- C++第七次上机实验其他作业
- c程序语言设计第二次上机实验报告
- 第二次上机实验作业
- 第二次上机作业
- 第二次上机作业
- 第二次上机作业
- 第二次C++上机作业
- 调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment之我的解决方法
- 笔记 - 9、HTML - XHTML
- Ubuntu 循环显示登录界面
- 普里姆算法
- mysql建索引杂谈
- C++第二次上机实验其他作业
- maven获取svn版本号并输出到MANIFEST.MF的两种方法
- Linux多线程学习笔记
- python爬虫,爬取糗事百科并保存到文件中
- 第一个EA
- 在UE4的蓝图中创建一个自动销毁的Actor
- h5实战
- 利用字蛛FontSpider压缩webfont字体演示
- 机器学习之kNN算法