C++第二次上机-作业

来源:互联网 发布:软件成熟度模型richard 编辑:程序博客网 时间:2024/04/29 10:41
一、#include <iostream>using namespace std;class Time{public:    void set_time();    void show_time();    void add_a_hours(int);    void add_a_minutes(int);    void add_a_seconds(int);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_seconds(int s){    int n;    sec+=s;    if(sec>=60)    {        n=sec/60;        sec%=60;        Time::add_a_minutes(n);    }}void Time::add_a_minutes(int m){    int n;    minute+=m;    if(minute>=60)    {        n=minute/60;        minute=minute%60;        Time::add_a_hours(n);    }}void Time::add_a_hours(int h){    hour+=h;     if(hour>=24)     {         hour%=24;     }}int main(){    int tSecond,tMinute,tHour;    Time t1;    t1.set_time();    t1.show_time();    cout<<"调整时间,输入增加的量ss,mm,hh"<<endl;    cin>>tSecond>>tMinute>>tHour;    t1.add_a_seconds(tSecond);    t1.add_a_minutes(tMinute);    t1.add_a_hours(tHour);    t1.show_time();    return 0;}二、#include<iostream>#include<string>using namespace std;class Book{public:void setBook(string n,string p,string w,double pri,int num);int borrow();int restore();void printf();void setNo(int a);int getNo();private:string name,publicer,writer;double price;int No,number;};void Book::setBook(string n,string p,string w,double pri,int num){name=n;publicer=p;writer=w;price=pri;number=num;}int Book::borrow(){return(number=number-1);}int Book::restore(){return(number=number+1);}void Book::printf(){cout<<"书名: "<<name<<endl;cout<<"出版社: "<<publicer<<endl;cout<<"作者: "<<writer<<endl;cout<<"价格: "<<price<<endl;cout<<"书号: "<<No<<endl;cout<<"数量: "<<number<<endl;}void Book::setNo(int a){No=a;}int Book::getNo(){return No;}void main(){Book b1;b1.setBook("高数","上海交通大学出版社","刘二根",30,1);b1.setNo(123456);b1.printf();}三、#include <iostream>  using namespace std; class CFraction  {  private:      int nume;      int deno;    public:      CFraction(int nu,int de);       void set(int nu=0,int de=1);         void input();                     void simplify();   void amplify(int n);void output(int style=0);};CFraction::CFraction(int nu,int de) {nume=nu;deno=de;}void CFraction::set(int nu,int de){nume=nu;deno=de;}void CFraction::input(){cout<<nume<<"/"<<deno<<"化简后为:";}void CFraction::simplify(){for(int i=2;i<=nume;i++){if(nume%i==0&&deno%i==0){nume/=i;deno/=i;i--;}else cout<<"";}cout<<nume<<"/"<<deno<<endl;}void CFraction::amplify(int n){nume*=n;cout<<"变化和"<<nume<<"/"<<deno<<endl;}void CFraction::output(int style){while(style==1){cout<<nume<<"/"<<deno<<"化简"<<nume<<"/"<<deno<<endl;break;}while(style==2){cout<<nume<<"/"<<deno<<"化简"<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;break;}while(style==3){double n=nume,d=deno;cout<<nume<<"/"<<deno<<"化简"<<n/d<<endl;break;}}void main(){CFraction n(0,0);n.set(6,8);n.input();n.simplify();n.set(2,3);n.amplify(5);n.set(4,3);n.output(1);n.output(2);n.output(3);}四、#include<iostream>  using namespace std;  class NaturalNumber  {private:      int n;   public:      void setValue (int x);    int getValue();    bool isPrime();      void printFactor();     bool isPerfect();bool isDaffodil(int x);void printDaffodils();};void NaturalNumber::setValue (int x){if(x>0&&(int)x==x)cout<<x<<"是正整数"<<endl;n=x;}int NaturalNumber::getValue(){return n;}bool NaturalNumber::isPrime(){int a;for(a=2;a<=n;a++){if(n%a==0)break;}if(n==a)return true;elsereturn false;}void NaturalNumber::printFactor(){int a;for(a=1;a<=n;a++){if(n%a==0)cout<<a<<" ";}}bool NaturalNumber::isPerfect(){int a,sum=0;for(a=1;a<n;a++){if(n%a==0)sum=sum+a;}if(sum==n)return true;elsereturn false;}bool NaturalNumber::isDaffodil(int x){if(x==1)return true;else if(x<10)return false;else if(x<100){int a,b;a=x/10;b=x-a*10;if((a*a*a+b*b*b)==x)return true;elsereturn false;}else if(x<1000){int a,b,c;a=x/100;b=(x-a*100)/10;c=x-a*100-b*10;if(x==(a*a*a+b*b*b+c*c*c))return true;elsereturn false;}}void NaturalNumber::printDaffodils(){int x;for(x=2;x<n;x++){if(x<100&&x>10){int a,b;a=x/10;b=x-a*10;if((a*a*a+b*b*b)==x)cout<<x<<" ";}else if(x<1000&&x>100){int a,b,c;a=x/100;b=(x-a*100)/10;c=x-a*100-b*10;if(x==(a*a*a+b*b*b+c*c*c))cout<<x<<" ";}}}  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(); cout<<endl;nn.setValue(888);cout<<nn.getValue()<<"的水仙花数有:  ";nn.printDaffodils();cout<<endl;}

0 0
原创粉丝点击