c++作业
来源:互联网 发布:淘宝快递最便宜多少钱 编辑:程序博客网 时间:2024/04/28 07:44
一、正整数类
#include<iostream>using namespace std;class NaturalNumber{private:int n;public:void setValue (int x);//置数据成员n的值,要求判断是否是正整数int getValue(); //返回私有数据成员n的值bool isPrime(); //判断数据成员n是否为素数,是返回true,否则返回falsevoid 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*3void printDaffodils(); //显示所有大于1,且小于数据成员n的水仙花数;};int main(){NaturalNumber nn; //定义类的一个实例(对象) nn.setValue (-1); 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.setValue (37); cout<<nn.getValue()<<(nn.isPerfect()?"是":"不是")<<"完全数"<<endl; int z; nn.setValue(123); z=nn.getValue(); cout<<(nn.isReverse(321)?"是":"不是")<<"n="<<z<<"的逆向数"<<endl; nn.setValue(123); z=nn.getValue(); cout<<(nn.isReverse(213)?"是":"不是")<<"n="<<z<<"的逆向数"<<endl; cout<<(nn.isDaffodil(153)?"是":"不是")<<"水仙花树"<<endl; cout<<(nn.isDaffodil(37)?"是":"不是")<<"水仙花树"<<endl; nn.setValue(1053); cout<<"大于1且小于数据成员"<<"n="<<nn.getValue()<<"的水仙花数:"; nn.printDaffodils(); //随着成员函数的实现,增加代码以完成相关的测试。注意判断类的成员函数需要测试是或否两种情况……}//请在下面定义类中的各个成员函数void NaturalNumber::setValue (int x){ cout << "请输入一个数据成员的值:"; cout<< x << endl;int a=0;a=(int)x;if(x==a&&x>0){cout<<"是整数";}else{ cout<<"不是整数请重新输入:"<<endl;}}int NaturalNumber::getValue(){ return n;}bool NaturalNumber::isPrime(){int i;for(i=2;i<=n;i++){if(n%i==0){ break;}if(i<n) { return true; }else{ return false;}}void NaturalNumber::printFactor(){int i;for(i=1;i<=n;i++){if(n%i==0){ cout<< i<< endl;}}}bool NaturalNumber::isPerfect(){int i,s=0;for(i=1;i<n;i++){if(n%i==0){ s+=i ;}}if(n==s){cout<<"是完全数";}else{ cout<<"不是完全数";}return 0;}bool NaturalNumber::isReverse(int x){ int t,s; while(x>0) { t=x%10; s+=t; x=x/10; if(x!=0) { s*=10; } } if (n == x) { cout << "形式参数x是数据成员n的逆向数"<< endl; } else { cout << "形式参数x不是数据n的逆向数"<< endl; }}bool NaturalNumber::isDaffodil(int x){ int t=0,s=0; while(x>0) { t=x%10; s+=t*t*t; x=x/10; } if(x==s) { cout << "是水仙花数"<< endl; } return 0;}void NaturalNumber::printDaffodils(){ int i,t=0,s=0;for(i=2;i<=n;i++){while(i>0) { t=i%10; s+=t*t*t; i=i/10; } if(i==s) { cout << i<< endl; } } }
二、book
#include<iostream> #include<string> using namespace std; class Book { public: void setBook(string n,string w,string p,int pr,int nu,int N); void borrow(); void restore(); void print(); void set_NO(int N); int get_NO(); private: string name,writer,publicer; int price,number,NO; }; int main() { Book bo; bo.setBook("二战风云","杨少丹","北京联合出版公司出版",18,5,69); bo.borrow(); bo.print(); bo.restore(); bo.print(); bo.set_NO(6); bo.print(); return 0; } void Book::setBook(string n,string w,string p,int pr,int nu,int N){ strcpy(name,n); strcpy(writer,w); strcpy(publicer,p); price=pr; number=nu; NO=N; } void Book::borrow() { number--; } void Book::print() { cout<<"书名:"<<name<<endl; cout<<"作者:"<<writer<<endl; cout<<"出版社:"<<publicer<<endl; cout<<"价格:"<<price<<endl; cout<<"数量:"<<number<<endl; cout<<"书号:"<<NO<<endl; } void Book::restore() { number++; } void Book::set_NO(int N) { NO=N; } int Book::get_NO() { return NO; }
三、学生成绩
#include<iostream> #include<string> using namespace std; class Stu { public: void setStudent(string n,float c,float m); void show(); void setName(string n); string *getName(); int average(); int Sum(); private: string name; //学生姓名 float chinese; //语文成绩 float math; //数学成绩 }; void Stu::setStudent(string n,float c,float m) { strcpy(name,n); chinese=c; math=m; } void Stu::show() { cout<<"Name:"<<name<<endl; cout<<"Score:"<<chinese<<" "<<math<<endl; cout<<"average:"<<average()<<" "<<"sum:"<<Sum()<<endl<<endl; } void Stu::setName(string n[20]) { strcpy(name,n); } string *Stu::getName() { return name; } int Stu::average() { return (chinese+math)/2; } int Stu::Sum() { return(chinese+math); } int main() { Stu s1,s2; s1.setStudent("Lin daiyu", 98, 96); //对象置初值 s2.setStudent("Jia baoyu", 90, 88); //对象置初值 s1.show();//打印信息 s2.show();//打印信息 s1.setName("xue baochai");//重新置p1对象的名字 s1.show(); cout<<"s1.Name: "<<s1.getName()<<endl;//打印对象的名字 cout<<"s1.average: "<<s1.average()<<endl;//打印对象的成绩 return 0; } </div><div></div><div></div>
四、分数类
#include<iostream> using namespace std; class CFraction { private: int nume; // 分子 int deno; // 分母 public: CFraction(int nu,int de); //构造函数,初始化用 void set(int nu,int de); //置值,改变值时用 void input(); //按照"nu/de"的格式,如"5/2"的形式输入 void simplify(); //化简(使分子分母没有公因子) void amplify(int n); //放大n倍,如2/3放大5倍为10/3 void output(int style); //输出:以8/6为例,style为0时,原样输出8/6; //style为1时,输出化简后形式4/3; //style为2时,输出1(1/3)形式,表示一又三分之一; //style为3时,用小数形式输出,如1.3333; //默认方式0 }; CFraction::CFraction(int nu,int de) { nume=nu;deno=de; } void CFraction::set(int nu,int de) { nume=nu; deno=de; cout<<nume<<"/"<<deno<<endl; } void CFraction::input() { char c; cin>>nume>>c>>deno; } void CFraction::simplify() { int i,max; max=nume>deno?(nume/2+1):(deno/2+1); for(i=2;i<max;i++) if(nume%i==0&&deno%i==0) { nume/=i;deno/=i; } } void CFraction::amplify(int n) { nume*=n; simplify(); } void CFraction::output(int style) { double t; if(style==0)cout<<nume<<"/"<<deno<<endl; else if(style==1) { simplify(); cout<<nume<<"/"<<deno<<endl; } else if(style==2) { simplify(); t=nume/deno; cout<<t<<"("<<nume-deno*t<<"/"<<deno<<")"<<endl; } else if(style==3) { cout<<nume*1.0/deno<<endl; } } int main() { CFraction c1(0,2); cout<<"关于c1:"<<endl<<"原样:"; c1.output(0); cout<<"改变c1:"<<endl<<"原样:"; c1.set(3,1); cout<<"输入c1:"<<endl<<"输入分数(m/n):"; c1.input(); cout<<"原样:"; c1.output(0); CFraction c2(4,6); cout<<"关于c2:"<<endl<<"原样:"; c2.output(0); cout<<"化简形式:"; c2.output(1); cout<<"带分数形式:"; c2.output(2); cout<<"近似值:"; c2.output(3); cout<<"原样:"; c2.set(4,6); cout<<"将c2化简:"<<endl<<"原样:"; c2.output(1); cout<<"将c2放大倍:"<<endl<<"原样:"; c2.amplify(3); c2.output(0); cout<<"化简形式:"; c2.output(1); return 0; }
0 0
- c 作业
- c作业
- C作业
- c作业
- c作业
- c作业
- c作业
- c作业
- 【C语言】【unix c】作业 前台作业和后台作业
- C语言期中作业
- C语言期末作业
- C基础作业
- C语言小作业
- c语言作业2
- C语言小作业
- 第一次C程序设计作业
- 第一次C程序设计作业
- 第一次C程序设计作业
- 【matlab】:matlab中如何取整?
- android 基础 getTag,setTag的用法
- c++第二次实验——作业
- u盘重新分区
- JSP访问Hadoop 图片存储服务
- c++作业
- cocos2d-JS (一)HelloWorld
- Git学习(四)----版本跳转
- 关于锚点链接的偏移问题
- Understanding the Android Source Code
- 提高Web服务端并发效率的异步编程技术
- Git的环境搭建与安装
- Codeforces 367A Sereja and Algorithm 【规律】
- Redis配置数据持久化---APPEND ONLY MODE