c++上机作业
来源:互联网 发布:安卓网络抓包工具 编辑:程序博客网 时间:2024/05/01 22:56
(1)时钟类:
#include <iostream> using namespace std; class Time { public: void set_time( ); void show_time( ); int add_a_sec() { return(sec=sec+1); } int add_a_minute() { return(minute=minute+1); } int add_an_hour() { return(hour=hour+1); } int add_seconds(int n); int add_minutes(int n); int add_hours(int n); void tiao(); private: bool is_time(int, int, int); //这个成员函数设置为私有的,是合适的,请品味 int hour; int minute; int sec; }; int Time::add_seconds(int n) { return(sec=sec+n); } int Time::add_minutes(int n) { return(minute=minute+n); } int Time::add_hours(int n) { return(hour=hour+n); } 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::tiao() { if(sec>=60) sec=0; if(minute>=60) minute=0; if(hour>=60) hour=0; } int main( ) { Time t1; t1.set_time( ); t1.show_time( ); t1.add_a_minute(); t1.show_time(); t1.add_hours(5); t1.show_time(); return 0; }
(2)正整数类:
/* 文件名称:正整数类.cpp 作者 :吕松林日期 :2016.4.1平台 :visual c++ 6.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 printDaffodils(); //显示所有大于1,且小于数据成员n的水仙花数; }; void NaturalNumber ::setValue(int x) { n=x; while(x<=0) { cout<<"n不是正整数,请重新输入:"<<endl; cin>>n; if(n>0) break; } } 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=1; while((n%i)==0) { cout<<i<<" "; i++; } cout<<endl; } bool NaturalNumber::isPerfect() { int i,s=0; for(i=1;i<n;i++) if(n%i==0) s+=i; if(n==s)return true; return false; } bool NaturalNumber::isReverse(int x) { cout<<x; int a[10],i,k,j; for(i=0;n!=0;i++) { a[i]=n%10; n/=10; } k=i-1; for(i=0;i<=k;i++) { for(j=0;j<k-i;j++) { a[i]*=10; } n+=a[i]; } if(n==x)return true; return false; } bool NaturalNumber::isDaffodil(int x) { int m=x; cout<<"x="<<x; int a[10],s=0,i,k; for(i=0;x!=0;i++) { a[i]=x%10; x/=10; } k=i; for(i=0;i<k;i++) s+=a[i]*a[i]*a[i]; if(m==s)return true; return false; } void NaturalNumber::printDaffodils(); { int j; for(j=2;j<n;j++) { int m; m=j; int a[10],s=0,i,k; for(i=0;j!=0;i++) { a[i]=j%10; j/=10; } k=i; for(i=0;i<k;i++) s+=a[i]*a[i]*a[i]; if(m==s) cout<<m<<" "; j=m; } cout<<endl; }
(3)分数类:
#include<iostream> using namespace std; class CFraction { private: int nume; // 分子 int deno; // 分母 public: CFraction(int nu=0,int de=1) { nume=nu;deno=de; } void set(int nu=0,int de=1) { nume=nu;deno=de; } void input(); //按照"nu/de"的格式,如"5/2"的形式输入 void simplify(); //化简(使分子分母没有公因子) void amplify(int n); //放大n倍,如2/3放大5倍为10/3 void output(int style=0) //输出:以8/6为例,style为0时,原样输出8/6; { if(style==0) cout<<"原样输出:"<<nume<<"/"<<deno<<endl; else if(style==1) {cout<<"输出化简后的分数: ";simplify();} else if(style==2) { int a,b; if(nume>deno) { a=nume-deno; while(1) { if(a>deno) a=a-deno; else if(a<deno) break; } } b=(nume-a)/deno; cout<<"输出真分数形式: "<<b<<"("<<a<<"/"<<deno<<")"<<endl; } else if(style==3) { double c; c=double(nume)/double(deno); cout<<"输出小数形式: "<<c<<endl; } } }; void CFraction::input() { char a; cout<<"请输入一个分数(格式a/b): "<<endl; while(1) { cin>>nume>>a>>deno; if(a!='/') cout<<"输入格式不正确,请重新输入"<<endl; else break; } } void CFraction::simplify() { int a; for(a=2;a<=nume;a++) { if(nume%a==0) { if(deno%a==0) {nume=nume/a;deno=deno/a;} } } cout<<nume<<"/"<<deno<<endl; } void CFraction::amplify(int n) { nume=nume*n; }(4)学生成绩类:
#include<iostream> #include<string> using namespace std; class Stu { public: void setStudent(string ,float ,float ); void show(); float average(); void setName(string ); string getName(); private: string name; //学生姓名 float chinese; //语文成绩 float math; //数学成绩 }; void Stu::setStudent(string n,float c,float m) { name=n; chinese=c; math=m; } void Stu::show() { cout<<"Name: "<<name<<endl; cout<<"Score: "<<chinese<<" "<<math<<endl; cout<<"average: "<<(chinese+math)/2<<" Sum: "<<chinese+math<<endl; cout<<endl; } float Stu::average() { float average; average=(math+chinese)/2; return average; } void Stu::setName(string n) { name=n; } string Stu::getName() { return name; }
0 0
- 第二次c程序设计上机作业
- C语言第二次上机作业
- 上机作业
- 上机作业
- 上机作业
- 上机作业
- 上机作业
- 上机作业
- 上机作业
- C语言上机作业,第一次自己编程,欢迎挑错
- 【c++】第十二周上机实践作业 项目 1-1
- 【c++】第十二周上机实践作业 项目 1-2
- 【c++】第十二周上机实践作业 项目 1-3
- 【c++】第十二周上机实践作业 项目 2
- 【c++】第十二周上机实践作业 项目 3
- 【c++】第十二周上机实践作业 项目 4
- 【上机作业】 第一次上机试题
- 【上机作业】第二次上机试题
- Android MTK 锁屏图片和背景墙纸的修改
- 安卓学习笔记之读取内存信息
- fread函数详解
- 学习python单元测试框架nose之---06nose的插件编写扩展功能
- Python:正则表达式模块
- c++上机作业
- [查异常网]-20160401-为什么你应该尝试全栈
- 初入VE设计#1初识MVC框架和VE设计、主类的创建
- poj 3696 The Luckiest number (数论-快速幂+欧拉定理)
- TL-WN725N 安装问题
- Android内存性能优化(内部资料总结)
- 关于主页版权问题
- JavaScript数组方法
- [查异常网]-20160401-程序猿的一天