一、
#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;
else
return 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;
else
return 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;
else
return 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;
else
return 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;
}
C++第二次上机-作业
最新推荐文章于 2022-11-16 19:12:00 发布