c++编程题目算法大全

c++编程题目算法大全

ID:12542144

大小:261.50 KB

页数:64页

时间:2018-07-17

上传者:直挂云帆济沧海
c++编程题目算法大全_第1页
c++编程题目算法大全_第2页
c++编程题目算法大全_第3页
c++编程题目算法大全_第4页
c++编程题目算法大全_第5页
资源描述:

《c++编程题目算法大全》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

曾经在软通动力写过的算法题其中有一小部分是参考网上的资料,现在拿出来给大家分享!第3章控制语句/*1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。*/#includevoidmain(){inti,a=0,b=0,c=0;for(i=100;i<1000;i++){a=i%10;b=i/10%10;c=i/100%10;if(a*a*a+b*b*b+c*c*c==i)cout<<"i="<voidmain(){inti,j,sum=0,a[50],k,t;for(i=1;i<=1000;i++){sum=0;for(j=1;j"; for(k=0;kvoidmain(){doublea,sn=0.0,sum=0.0;intn,i;cout<<"pleaseinputanumber";cin>>a;   cout<<"pleaseinputnnumber";cin>>n;sn=a;sum=a;   for(i=2;i<=n;i++)   {sum=sum*10+a;sn+=sum;   }cout<<"Sn="<voidmain(){doubleh1=100,h2=100,sum=0.0;inti;for(i=1;i<=10;i++){sum+=h2;h1=h1/2.0; h2=h1*2;}cout<<"sum="<voidmain(){intnumber,i;number=1;for(i=10;i>1;i--)number=(number+1)*2;cout<<"number="<voidmain(){  inta;  cout<<"请输入a的值:";  cin>>a;  cout<<"a的值为:"<voidmain(){inti,j,temp,a[10];cout<<"pleaseinputtennumbers: ";for(i=0;i<10;i++)cin>>a[i]; for(i=0;i<10;i++)//每循环一次确定数组中一个数的位置for(j=i+1;j<10;j++)//每次循环对比一个数的大小{if(a[i]>a[j]){temp=a[j];a[j]=a[i];a[i]=temp;}}cout<<"resortresult=";for(i=0;i<10;i++)cout<1)*/#includedoublefun(double,double);voidmain(){doublen,x,sum;cout<<"inputnandx"<>n>>x;sum=fun(n,x);cout<<"P"<1)return((2*n1-1)*x1*fun(n1-1,x1)-(n1-1)*fun(n1-2,x1))/n1;}/*3、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。*/#includevoidjudge(chara[]);voidmain() {constintsize=100;chara[size];cin.getline(a,size);judge(a);}voidjudge(chara[100])//判断字符类型{intletter=0,number=0,others=0,i=0;while(a[i]!=''){if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='z'))letter++;//统计字母个数elseif(a[i]>='0'&&a[i]<='9')number++;//统计数字个数elseothers++;//统计其他数个数i++;}cout<<"letter="<intlead(int);voidmain(){intly,year,month,date,i,sum=0;cout<<"inputyear、month、date:";cin>>year>>month>>date;inta[12]={31,0,31,30,31,30,31,31,30,31,30,31};ly=lead(year);if(ly==1)a[1]=29;//366天elsea[1]=28;//365天for(i=0;iintcdivisor(int,int);intcmultiple(int,int,int);voidmain(){intx,y,d,m;cout<<"inputtwonumber:";cin>>x>>y;d=cdivisor(x,y);m=cmultiple(x,y,d);cout<<"commondivisoris"<#includevoidmain(){constintsize=100;chara[size],b[size]; cout<<"inputtwostring:"<#includevoidscpy(char*,char*);voidmain(){constintsize=100;chara[size]="Helloworld";charb[size]="Net";cout<<"a="<#includevoidouts(chara[]);voidmain(){constintsize=10;chara[size];cin.getline(a,size);outs(a);} voidouts(chara[10]){inti;if(strlen(a)<=4){for(i=0;i<4;i++)cout<voidback(char*);voidmain(){chara[50]="abcdefg";cout<<"a="<voidback(char*p){inti=0;while(*p!=''){p++;//把指针定位到字符串末尾i++;//统计字符个数}cout<<"a=";for(;i>0;i--)//逆序输出{p--;cout<<*p;}cout<voidtri(inta[][15]);voidmain(){inti,j,a[15][15];tri(a);cout<<"a=";for(i=0;i<15;i++)//遍历整个数组{for(j=0;j<=i;j++){cout<=1&&a[i][j]<=9)//当输出个位数之后输出4个空格保持整齐cout<<"   ";elseif(a[i][j]>=10&&a[i][j]<=99)//当输出十位数之后输出3个空格保持整齐cout<<"  ";elseif(a[i][j]>=100&&a[i][j]<=999)//当输出百位数之后输出2个空格保持整齐 cout<<" "; elsecout<<"";//当输出百位数之后输出1个空格保持整齐}cout<#includevoidscat(char*,char*);voidmain(){constintsize=100; chara[size]="Hello";charb[size]="Bye";cout<<"a="<voidsquare(inta[][10],intk,intn);voidmain(){intn,i,j,k,a[10][10]={0};cout<<"inputanoddnumber:"<>n;k=n/2;//确定第一个数列数square(a,k,n);for(i=0;i=n)//当数组行列都越出范围时候,确定数组正确位置{j+=2;k-=1;}elseif(j<0)//当数组行越出范围时候,确定数组正确位置j+=n;elseif(k>=n)//当数组列越出范围时候,确定数组正确位置         k-=n; elseif(a[j][k]!=0)//当数组原位置有数时候,确定数组位置 {j+=2;k-=1; }a[j][k]=i;}}//方法二:输出N介魔方阵所有魔方阵。#include#include#includeusingnamespacestd;voidprintA(int**p,intn)//输出这个n阶魔方阵{cout<=0,j>s;if(!strcmp(s.c_str(),"e")||!strcmp(s.c_str(),"E")){break;}elseif(s.find_first_not_of("0123456789")!=string::npos){cout<<"请输入有效的数字,不能含有非数字的字符。"<=1。"<intdia(inta[][3]);voidmain(){inti,j,sum,a[3][3]={2,3,5,6,2,3,1,9,0};cout<<"a="; for(i=0;i<3;i++){for(j=0;j<3;j++)cout<voidmain(){inti,j;for(i=1;i<=100;i++){for(j=2;jvoidcsort(inta[10]);voidmain(){inti;inta[10]={6,4,2,7,9,0,1,6,3,0};for(i=0;i<10;i++)//输出原数组数据顺序cout<a[j])k=j;if(k!=i){ temp=a[i];//把数放到正确位置a[i]=a[k];a[k]=temp;}}}第6章  指针/*1、在主函数中输入10个字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。(用指针实现)*/#includevoidpsort(int*p);voidmain(){inti,a[10];cout<<"pleaseinputtennumbers: ";for(i=0;i<10;i++)cin>>a[i];psort(a);cout<<"resortresult=";for(i=0;i<10;i++)cout<p[j]){temp=p[j];p[j]=p[i];p[i]=temp;}}}/*2、输入一个字符串,内有数字和非数字字符,如A123x4561233?8997jhlkll将其中连续的数字作为一个整数,依次存放到一数组a中,统计共有多少个整数,并输出这些数。*/#include #include#includeintcharge(int*,char*);voidmain(){inta[50],i,numb;charb[50];cout<<"pleaseinputacharacterstring:"<='0'&&*p<='9'){*q=(*p)-'0';//将字符型整数转换成整型整数赋值给新数组p++;while(*p>='0'&&*p<='9')//判断是否有连续字符型整数{*q=(*q)*10+((*p)-'0');//将连续字符型整数转换成一个整型整数赋值给新数组p++;}q++;numb++;//统计整数的个数}}returnnumb;}/*3、用指向指针的指针的方法对5个字符串排序并输出。*/#include#includevoidsort(char**str);voidmain() {inti;char*string[5];cout<<"输入5个字符串:"<#includeintchange(char*,char*);voidmain(){intsum;chara[10]="dog"; charb[20]="sdlkdogsddydodog";cout.write(a,10)<#includevoidcharge(inta[],int,int);voidmain(){inti,n,m,a[50];cout<<"请输入n的值:";cin>>n;cout<<"请输入移动位数:";cin>>m;cout<<"请输入整数:";for(i=0;i>a[i];}cout<<"您输入的整数为:";for(i=0;i=0;i--)//移动一个位置就要移动每一个数组元素{a[i+1]=a[i];}a[0]=a[n];}}/*6、有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。*/#includevoidchange(inta[],intn);voidmain(){inti,a[50],n;cout<<"输入人数:";cin>>n;for(i=0;i1)//直到只剩下1人时{if(a[i]!=0)k++;//报数if(k==3){a[i]=0;//退出圈子的人qnumber++;//退出的总人数k=0;//重新开始报数}i++;if(i==n)i=0;//当所有人都报过数之后重新每人再次报数}for(i=0;i#includeintchange(char*,char*);voidmain(){intresult;chara[10]="dog";charb[20]="sdlkdogsddydodog";cout.write(a,10)<*q){flag=1;//第一个字符串大于第二个字符串返回1break;}if(*p<*q){flag=-1;//第二一个字符串大于第一个字符串返回-1 break;}if((*p==*q)&&*(p+1)==''&&*(q+1)!=''){flag=-1;//第二一个字符串大于第一个字符串返回-1break;}*p++;*q++;}returnflag;}/*8、将一个5x5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。用main函数调用。*/#includevoidpsort(inta[]);voidmain(){inti;inta[25]={5,3,52,6,2,1,8,0,23,56,7,21,23,4,57,62,15,31,45,6,43,78,12,53,41};for(i=0;i<25;i++){cout<<""<a[j]){temp=a[j];a[j]=a[i];a[i]=temp;}} for(i=0;i<5;i++)for(j=0;j<5;j++){b[i][j]=a[k++];}temp=b[4][4];//确定5个位置的数值b[4][4]=b[2][2];b[2][2]=temp;temp=b[0][1];b[0][1]=b[0][4];b[0][4]=temp;temp=b[0][2];b[0][2]=b[4][0];b[4][0]=temp;temp=b[0][3];b[0][3]=b[4][4];b[4][4]=temp;for(i=0;i<5;i++){for(j=0;j<5;j++){cout<<"t"<typedefstructnode{intnumber;structnode*next;structnode*parent;}Node,*LinkNode;classLinkClass{public: LinkNodefirst,current;//头指针,当前指针voidinit();//初始化函数LinkNodeInsert(intdata,LinkNodecur);//插入函数voidRemove(LinkNodep);//删除函数voidPrior(LinkNodehead);//遍历函数};voidLinkClass::init(){structnode*head=newstructnode;structnode*tail=newstructnode;head->parent=NULL;head->next=tail;tail->parent=head;tail->next=NULL;first=current=head;}LinkNodeLinkClass::Insert(intdata,LinkNodecur){structnode*newNode=newstructnode;newNode->number=data;newNode->next=cur->next;cur->next=newNode;newNode->parent=cur;newNode->next->parent=newNode;cur=newNode;returncur;}voidLinkClass::Prior(LinkNodehead){LinkNodecur=head->next;while(cur->next!=NULL){cout<number<<"";cur=cur->next;}cout<<""<parent->next=temp->next;temp->next->parent=temp->parent;delete(temp);}voidmain(){LinkClasslc;lc.init();LinkNodecur=lc.current;for(inti=0;i<=10;i++)//用循环来初始化结构体内的number{cur=lc.Insert(i,cur);//调用插入函数}LinkNodehead=lc.first;cout<<"没调用删除函数的遍历:"<parent;}lc.Remove(cur);//执行删除函数cout<<"调用删除函数后的遍历:"<#include#defineSTACK_INIT_SIZE100#defineSTACKIN10structstack{int*top;int*base;intstacksize;   intinitstack(stack&s){s.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!s.base)return0;s.top=s.base; s.stacksize=STACK_INIT_SIZE;return1;}intgettop(stacks,int&e){if(s.top==s.base)return0;e=*(s.top-1);return1;}intpush(stack&s,inte){if(s.top-s.base>=s.stacksize){s.base=(int*)realloc(s.base,(s.stacksize+STACKIN)*sizeof(int));if(!s.base)return0;s.top=s.base+s.stacksize;s.stacksize+=STACKIN;}*s.top++=e;return1;}intpop(stack&s,int&e){if(s.top==s.base)return0;e=*--s.top;return1;}};voidmain(){stacks;intresult,e=0;result=s.initstack(s);if(result==1)cout<<"建栈成功!"<#includestructstudent{public:intnum;charname[20];intscore[3];};classcontral{public:voidprint(structstudent*p,intcount);intinput(structstudent*p,intcount);};voidcontral::print(structstudent*p,intcount){for(inti=0;i<=count;i++){cout<<"Num:"<num<name<score[0]<score[1]<score[2]<>p->num;cout<<"请输入姓名:"<>p->name;cout<<"请输入JAVA分数:"<>p->score[0];cout<<"请输入C++分数:"<>p->score[1];cout<<"请输入English分数:"<>p->score[2];p++;count++;cout<<"输入Q退出,输入其它继续"<>str;if(strcmp(str,"q")==0){break;}}returncount;}voidmain(){intcount=0;contralcon;studentNewS[100];student*p=NewS;count=con.input(p,count);cout< structnum{intdata;structnum*next;};voidfan(structnum node1[]){for(inti=9;i>=0;i--){node1[i].next=&node1[i-1];}}voidmain(){    structnum node[10];    for(inti=0;i<10;i++){      node[i].data=i;}    for(intj=0;j<10;j++)cout<0;k--)cout<<(node[k].next)->data;}第8章  类和对象/*1、自定义一个字符串处理类CString,且能实现取子串、删除子串的功能。*/#include#defineMAX_LENGTH100classCString{public:voidcpystring(char*str);voidgetSubstring(intbeginStr,intendStr);voiddelSubstring(intbeginStr,intendStr); voidprint();private:charcstr[MAX_LENGTH];intlength;};#include"CString.h"#include"string.h"voidCString::cpystring(char*str){inti=0;while(*str!=''){cstr[i++]=*str;str++;}cstr[i]='';}voidCString::getSubstring(intbeginStr,intendStr){inti,j=0;charpstr[MAX_LENGTH];if(beginStr<0||endStr>MAX_LENGTH||beginStr>endStr){cout<<"error!"<MAX_LENGTH||beginStr>endStr){cout<<"error!"<#include"CString.h"main(){CStringstr1,str2,str3;str1.cpystring("Justlikebefore,it'syesterdayoncemore!");//初始化str1str2=str1;str3=str1;str2.getSubstring(5,9);//截取字符串str3.delSubstring(10,16);//删除字符串str1.print();str2.print();str3.print();}/*2、定义一个循环队列类,且实现其相关的成员操作函数,并实例化调用之。*/CircularQueue.h文件:*********************************************************************#defineMAX_SIZE101classCircularQueue{private:intqueue[MAX_SIZE]; intfront;intrear;public:CircularQueue();virtual~CircularQueue();boolisEmpty();boolisFull();boolpush(int);intpop();};*********************************************************************CircularQueue.cpp文件:*********************************************************************#include"CircularQueue.h"CircularQueue::CircularQueue(){front=0;rear=0;}CircularQueue::~CircularQueue(){}boolCircularQueue::isFull(){if((rear+1)%MAX_SIZE==front){returntrue;}else{returnfalse;}}boolCircularQueue::isEmpty(){ if(rear==front){returntrue;}else{returnfalse;}}boolCircularQueue::push(inte){if(isFull()){returnfalse;}queue[rear]=e;rear=++rear%MAX_SIZE;returntrue;}CircularQueue::pop(){if(isEmpty()){return0;}inte=queue[front];front=++front%MAX_SIZE;returne;}*********************************************************************main.cpp文件*********************************************************************#include"CircularQueue.h"#includeusingnamespacestd; voidmain(){CircularQueuecQueue;for(inti=0;i<75;i++){cQueue.push(i);}for(i=0;i<50;i++){cout<#include"Vector.h"Vector::Vector(){}Vector::Vector(intx,inty){this->x=x;this->y=y;}Vector::operator++(){++x;++y;}VectorVector::operator++(int){Vectors;s.x=x++;s.y=y++;returns;}VectorVector::operator+(constVector&v){Vectorsum;sum.x=x+v.x;sum.y=y+v.y;returnsum;}voidVector::display(){cout<<"("<#include"Vector.h"voidmain(){Vectorv1(3,4),v2(1,2),v3;cout<<"v1=";v1.display();cout<<"v2=";v2.display();++v1;cout<<"++v1=";v1.display();cout<<"v2++=";(v2++).display();cout<<"v2=";v2.display();v3=v1+v2;cout<<"v1+v2=";v3.display();} /*2、将第一题中的相关重载项改为用友元函数的方式重载。*/classVector{public:Vector();Vector(intx,inty);friendvoidoperator++(Vector&v);friendvoidoperator++(Vector&v,int);friendVectoroperator+(constVector&v1,constVector&v2);voiddisplay();private:intx,y;};#include#include"Vector.h"Vector::Vector(){}Vector::Vector(intx,inty){this->x=x;this->y=y;}voidoperator++(Vector&v){++v.x;++v.y;}Vectoroperator++(Vector&v,int){Vectorbefore(v.x,v.y);v.x++;v.y++;returnbefore;}Vectoroperator+(constVector&v1,constVector&v2){Vectorsum;sum.x=v1.x+v2.x;sum.y=v1.y+v2.y;returnsum;}voidVector::display(){cout<<"("<#include"Vector.h"voidmain(){Vectorv1(3,4),v2(1,2),v3;cout<<"v1=";v1.display();cout<<"v2=";v2.display();++v1;cout<<"++v1=";v1.display();cout<<"v2++=";(v2++).display();cout<<"v2=";v2.display();v3=v1+v2;cout<<"v1+v2=";v3.display();}/*3、重载字符串处理类CString的“=”号和“+”号运算符。*/classCstring{public:Cstring(char*pn);~Cstring();Cstring&operator=(Cstring&c);Cstring&operator+(Cstring&c);voiddisplay();private:char*p;};#include#include#include"Cstring.h"Cstring::Cstring(char*pn){p=newchar[strlen(pn)+1];strcpy(p,pn);}Cstring::~Cstring(){delete[]p;} Cstring&Cstring::operator=(Cstring&s){delete[]p;p=newchar[strlen(s.p)+1];strcpy(p,s.p);return*this;}Cstring&Cstring::operator+(Cstring&s){char*pp=newchar[strlen(p)+strlen(s.p)+1];strcpy(pp,p);strcat(pp,s.p);delete[]p;p=pp;return*this;}voidCstring::display(){cout<#include#include"Cstring.h"voidmain(){Cstrings1("firsthello");Cstrings2("secondhello");cout<<"赋值之前:"<Person::Person(char*name,intage){strcpy(this->name,name);this->age=age;}classMan:virtualpublicPerson{public:Man(char*name,intage,char*sex);Man();virtual~Man();protected:charsex[8];};#include"Man.h"#include"Person.h"#includeMan::Man(char*name,intage,char*sex):Person(name,age){ strcpy(this->sex,sex);}#include"Person.h"classWoman:virtualpublicPerson {public:Woman(char*name,intage,char*sex);Woman();virtual~Woman();protected:charsex[8];};#include"Woman.h"#include"Person.h"#includeWoman::Woman(char*name,intage,char*sex):Person(name,age){strcpy(this->sex,sex);}classTransexual:publicMan,publicWoman{public:print();Transexual(char*name,intage,char*sex1,char*sex2);Transexual();virtual~Transexual();};#include"Transexual.h"#include"Man.h"#include"Woman.h"#include"Person.h"#includeTransexual::Transexual(char*name,intage,char*sex1,char*sex2):Person(name,age),Man(name,age,sex1),Woman(name,age,sex2){ }Transexual::print(){cout<<"姓名:"<classPoint{public:Point(doublex){this->x=x;cout<<"PointConstructorcalled"<#definePI3.14159265classCircle:virtualpublicPoint{public:Circle(doublex):Point(x){cout<<"CircleConstructorcalled"<classRectangle:virtualpublicPoint{public:Rectangle(doublex,doubley):Point(x){this->y=y;cout<<"RectangleConstructorcalled"<#definePI3.14159265classFootball:publicCircle,publicRectangle{public:Football(doublex,doubley):Point(x),Circle(x),Rectangle(x,y){cout<<"FootballConstructorcalled"<#include"Point.h"#include"Circle.h"#include"Rectangle.h"#include"Football.h"voidmain(){Circlec(10);Rectangler(10,20);Footballf(10,20);c.setCarea();r.setRarea();f.setFarea();cout<<"Circlearea:"<classTemqueue{private:Tqueue[MAX_SIZE];Tfront;Trear;public:Temqueue();virtual~Temqueue();boolisEmpty();boolisFull();boolpush(T);Tpop(); };templateTemqueue::Temqueue(){front=0;rear=0;}templateTemqueue::~Temqueue(){}templateboolTemqueue::isFull(){if((rear-MAX_SIZE)==front){returntrue;}else{returnfalse;}}templateboolTemqueue::isEmpty(){if(rear==front){returntrue;}else{returnfalse;}}templateboolTemqueue::push(Te){ if(isFull()){returntrue;}queue[rear]=e;rear=++rear;returntrue;}templateTTemqueue::pop(){if(isEmpty()){returntrue;}Te=queue[front];front=++front;returne;}#include"Temqueue.h"#includeusingnamespacestd;voidmain(){intk;cout<<"请输入要给数列初始化的长度,队列长度为50。"<>k;TemqueuecQueue;for(inti=0;i0){for(i=0;i=MAX_SIZE){cout<<"队列已满!"<classList;    //对List类的申明templateclassNode{    //定义一个描述节点的类public:Node();friendclassList;private:Tdata;Node*next;};templateNode::Node(){data=0;next=NULL;}templateclassList{                    //定义一个描述链表的类public:List();                                        //空链表的构造(链表中只含表头结点)~List();                                       //析构函数voidMakeEmpty();                              //清空链表(删除链表中除表头结点以外的所有结点)Node*Find(Td);                           //查找数据域与d相同的结点(返回所找到结点的指针)voidPrintList();                              //输出链表中各结点的数据域voidCreateList();//初始化链表private: Node*head,*rear;};templateList::List(){head=rear=newNode;}templatevoidList::MakeEmpty(){Node*temp;while(head->next!=NULL){temp=head->next;   head->next=temp->next;  deletetemp;}rear=head;}templateList::~List(){MakeEmpty();deletehead;}templatevoidList::PrintList(){rear=head->next;while(rear!=NULL){cout<data<next;}}templatevoidList::CreateList(){Td;cout<<"现在开始创建链表,请依次输入数据(以Ctrl+Z结束):"<>d){rear->next=newNode;  rear->next->data=d;  rear=rear->next;  rear->next=NULL;}}#include#include"Node.h"#include"List.h" usingnamespacestd;voidmain(){Listl;   l.CreateList();l.PrintList();cout<<"over!"<classTe{public:Tte;};templateclassTte:publicTe{public:Ttte;};classFte:publicTe{public:intfte;};#include#include"Te.h"#include"Tte.h"#include"Fte.h"voidmain(){Tete;te.te=10;cout<<"te="<itte;itte.tte=20;cout<<"itte="<dtte;dtte.tte=3.14; cout<<"dtte="<radius=radius;}virtualdoubleshow_area(){return3.14*radius*radius;}virtualchar*shapeName(){return"Circle:";}protected:doubleradius;};classSquare:publicShape{public:Square(doublelength,doublewidth){this->length=length;this->width=width;}virtualdoubleshow_area(){returnlength*width;}virtualchar*shapeName(){return"Square:";} protected:doublelength,width;};classTriangle:publicShape{public:Triangle(doublelength,doubleheight){this->length=length;this->height=height;}virtualdoubleshow_area(){returnlength*height/2;}virtualchar*shapeName(){return"Triangle:";}protected:doublelength,height;};#include#include"Shape.h"#include"Circle.h"#include"Square.h"#include"Triangle.h"voidmain(){Shape*ptr;Circlecircle(10);Squaresquare(10,15);Triangletriangle(10,15);ptr=&circle;cout<shapeName()<show_area()<shapeName()<show_area()<shapeName()<show_area()<radius=radius;}virtualdoubleshow()=0;virtualchar*shapeName()=0;protected:doubleradius;};classArea:publicCircle{public:Area(doubleradius):Circle(radius){}virtualdoubleshow(){return3.14*radius*radius;}virtualchar*shapeName(){return"CircleArea:";}};classPerimeter:publicCircle{public:Perimeter(doubleradius):Circle(radius){}virtualdoubleshow(){return2*3.14*radius;}virtualchar*shapeName(){return"CirclePerimeter:";}};#include#include"Circle.h"#include"Area.h"#include"Perimeter.h"voidmain(){Circle*ptr;Areaarea(10);Perimeterperimeter(10); ptr=&area;cout<shapeName()<show()<shapeName()<show()<>data[i].ID;cout<<"input姓名:";cin>>data[i].name;cout<<"input英语成绩:";cin>>data[i].score;cout<#include#include#include"Io.h"#defineNUM2voidmain(){Ioio;io.input();//写入文件io.output();//读取文件}第15章  异常处理1、自己写一个程序,在某种条件下抛出各种类型异常(如:整数、字符串、类对象、引用等),再捕捉这些异常,并进行相关处理,保证自己的程序不被中断,让它继续执行。#include#includeusingnamespacestd;classString{public:String(char*,int);classRange{//异常类1 public:Range(intj):index(j){}intindex;};classSize{};//异常类2char&operator[](intk){if(0<=k&&koutofrange:"<#include"Light.h"voidLight::setStatus(boolstatus){ this->status=status;}Light::Light(){status=false;bright=3;style=0;}boolLight::getStatus(){returnstatus;}voidLight::setBright(intbright){this->bright=bright;}intLight::getBright(){returnbright;}voidLight::setStyle(intstyle){this->style=style;}intLight::getStyle(){returnstyle;}intLight::input(){cout<<"请输入你要输入的值:";intres=-1;//返回输入的值,cin>>res;if(cin.fail()){cout<<"输入的数据超出范围!";exit(0);//程序退出}returnres;}voidLight::output(){cout<<"当前电灯系统状态为--"<<(this->getStatus()?"开启":"关闭")<<",亮度类型为--" <<(this->getStyle()==1?"增强":"标准")<<",亮度档位为--"<bright<#include"Light.h"voidmain(){Lightlight;do{cout<<"--------------------------------"<=0&& bright<=5){cout<<"操作成功!"<#include#includevoidmain(){intyear,month,startyear,today,day0,day1,k,j;chara,b,c;intM[12]={31,28,31,30,31,30,31,31,30,31,30,31};intM0[12]={31,29,31,30,31,30,31,31,30,31,30,31};   do{do{cout<<"请输入年份(1990-2020):";cin>>year; if(year<1990||year>2020){cout<<"您输入的年份越界,是否重新输入(Y/N||y/n)?";cin>>a;if(a=='Y'||a=='y'){continue;}elseexit(0);}else{break;}}while(true);do{cout<<"请输入月份(1-12):";cin>>month;if(month<1||month>12){cout<<"您输入的月份越界,是否重新输入(Y/N||y/n)?";cin>>b;if(b=='Y'||b=='y'){continue;}else{exit(0);}}else{break;}}while(true);//计算有效天数day0=0;day1=0;j=0;startyear=1990;   while(startyear!=year){    if((startyear%4==0&&startyear%100!=0)||(startyear%400==0))        day0=day0+366;    else        day0=day0+365;    startyear++;}if((year%4==0&&year%100!=0)||(year%400==0)){for(inti=0;i<(month-1);i++)           day1=day1+M0[i];           today=day0+day1;}else{for(inti=0;i<(month-1);i++)           day1=day1+M[i];           today=day0+day1;} //输出部分//闰年输出 if((year%4==0&&year%100!=0)||(year%400==0)){cout<>c;if(c=='Y'||c=='y')continue;elseexit(0);}while(true);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭