东软培训练习题_第1页
东软培训练习题_第2页
东软培训练习题_第3页
东软培训练习题_第4页
东软培训练习题_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/*c到c+练习题*/*请输出:120(int类型数据)。 显示如下: #120 /7个#*/#include #include using namespace std;void main()coutsetfill(#)setw(10)120;/*不使用c语言库函数,完成以下功能,输入一个正整数n(n 10),输出下面的图形,其中层数由n来确定。 * * * * * * * * * * .*/#include #include using namespace std;#include void main()int n;cinn;assert(n10);int i,j;for(i=0;in;+i

2、)for(j=0;j9-i;+j)cout ;for(j=0;ji+1;+j)cout* ;coutn;/*3、撰写一个程序,使之能够询问用户的姓名,并读取用户输入的内容.请确保用户输入的名字长度大于两个字符.如果用户输入了有效的名称,就显示该名字,否则给出相应的错误提示信息。分别使用以下两种方式实现操作,第一种,使用c-style字符处理方法,第二种,使用string对象类型。*/#include #include #include using namespace std;#include void main()/*cout2)const char *buf=strname.c_str();

3、int i=0;while(bufi!=0)if(!isalpha(bufi)&bufi!= &bufi!=t)cout输入名字错误n;break;+i;if(i=strname.length()coutstrnameendl;elsecout长度要求大于2n;*/cout输入用户名:n;char aname20;cin.getline(aname,19);int i=0;while(anamei!=0)if(!isalpha(anamei)&anamei!= &anamei!=t)cout2&anamei=0)coutanameendl;elsecout长度要求大于2n;/*4、要求使用ne

4、w, delete完成如下练习(1) 首先,在main函数中动态开辟一个整型,并初始化为10,再赋值为20,最后注意内存的释放。(2),在main函数中动态开辟一个数组,元素个数为10,并将元素依次赋值为1,2 9, 10,最后注意内存的释放。*/#include using namespace std;#include void main()/*int *pn=new int(10);assert(pn!=null);*pn=20;cout*pn;delete pn;pn=null;*/*int *ap=new int10;assert(ap!=null);for(int i=0;i10;+

5、i)api=i+1;delete ap;ap=null;*/*5、写一个swap函数,能够交换两个整数,要求传参数时使用引用,并尝试在main函数中使用冒泡法将一个整型数组里面的数据按从大到小的顺序排序。*/#include using namespace std;#include #define n 10void swap(int &x,int &y)int t=x;x=y;y=t;void main()int anumn;int i=0,j;for(;in;+i)anumi=rand()%100;coutanumi ;coutendl;for(i=0;in-1;+i)for(j=0;jn-

6、1-i;+j)if(anumjanumj+1)swap(anumj,anumj+1);for(i=0;in;+i)coutanumi ;/*6、一个班级有n个学生,n由用户输入,每个学生有学号1-n,有三门成绩(语、数、外)成绩由随机数生成(0到100之间),每个学生的成绩由动态数组保存。要求:(1). 取得总分最高的学生的学号。(2). 提示用户输入1,2,3来获得语、数、外的平均分。*/#include using namespace std;#include typedef struct studentint nid;int *pscore;student;void main()int

7、nstudent,nsumscore=0,max=0,nmaxid;int navgyu=0,navgmath=0,navgenglish=0;coutnstudent;student *ps=new studentnstudent;assert(ps!=null);int i,j;for(i=0;instudent;+i)/初始化学生及成绩psi.nid=i+1;psi.pscore=new int3;assert(psi.pscore!=null);for(j=0;j3;+j)(psi.pscore)j=rand()%101;/显示及求和及平均和cout学号:t语文t数学t英语n;for(

8、i=0;instudent;+i)nsumscore=0;coutpsi.nidt;for(j=0;j3;+j)cout(psi.pscore)jt;nsumscore+=(psi.pscore)j;coutn;if(maxnsumscore)max=nsumscore;nmaxid=i;navgyu+=(psi.pscore)0;navgmath+=(psi.pscore)1;navgenglish+=(psi.pscore)2;cout最高成绩的学号是:psnmaxid.nidendl;int num;bool flag=true;while(flag)coutnum;if(cin.fai

9、l()cin.clear();cin.sync();cout输入错误,退出n;elseswitch(num)case 1:cout语的平均分:(double)navgyu/nstudentendl;break;case 2:cout数学的平均分:(double)navgmath/nstudentendl;break;case 3:cout英语的平均分:(double)navgenglish/nstudentendl;break;case 0:flag=false;break;default:cout输入错了,退出endl;/释放空间for(i=0;instudent;+i)delete psi

10、.pscore;delete ps;ps=null;/*7、实现重载max的函数,让它接受以下参数 (a) 两个整数 (b) 两个浮点数 (c) 两个字符串 (d) 一个整数数组,以及一个表示数组大小的整数值 最后撰写main()测试这些函数。*/#include #include using namespace std;#include int max(int x,int y)if(xy)return y;elsereturn x;double max(double x,double y)if(xy)return y;elsereturn x;const string &max(const

11、string &x,const string &y)if(xy)return y;elsereturn x;int max(int *a,int len)int temp=a0;for(int i=1;ilen;+i)if(tempai)temp=ai;return temp;void main()coutmax(5,6)endl;coutmax(5.0,6.0)endl;coutmax(string(a),string(b)endl;int a=1,2,3,4;coutmax(a,sizeof(a)/sizeof(a0)endl;/*8、撰写一个程序,从键盘读取一串整数,并将读入的整数依次存

12、入array及vector,然后遍历这两种容器,求取数值总和,将总和及平均值输出至显示器。*/#include #include #include #include using namespace std;#include void main()/*string str;int num,sum=0;int arrn,i=0,len=0;getline(cin,str);for(istringstream iss(str);issnum;)arrlen=num;len+;for(;ilen;+i)coutarri ;coutendl;*/string str;getline(cin,str);v

13、ector v;int num;for(istringstream iss(str);issnum;)v.push_back(num);vector:iterator it1=v.begin(),it2=v.end();for(;it1!=it2;+it1)cout*it1 ;coutendl;/*9、撰写一个程序,实现时钟的设置与管理,设计合适的结构体(注意设计与算法分离)。*/#include using namespace std;typedef struct clockint hour;int minute;void (*psettime)(clock *,int,int);void

14、(*pshowtime)(const clock *);clock;void settime(clock *pc,int h,int m)pc-hour=h;pc-minute=m;void showtime(const clock *pc)couthour:minuteendl;void main()clock c;c.psettime=settime;c.pshowtime=showtime;(*(c.psettime)(&c,9,40);(*(c.pshowtime)(&c);类和对象_练习题./*1、定义一个时间类,提供设定时间、显示时间和秒数增加1的功能,其中设定时间的方法需要校验数

15、据的正确性,并在main函数中验证。*/#include #include #include using namespace std;class timeprivate:int hour;int minute;int second;public:void settime(int,int,int);void showtime();void secondadd();void time:settime(int h,int m,int s)assert(h=0&h=0&m=0&s60);hour=h;minute=m;second=s;void time:showtime()coutsetfill(

16、)setw(2)hour:;coutsetfill(0)setw(2)minute:;coutsetfill(0)setw(2)secondendl;void time:secondadd()+second;if(second=60)second=0;+minute;if(minute=60)minute=0;+hour;if(hour=24)hour=0;void main()time t;t.settime(23,59,02);t.showtime();for(int i=0;i100;+i)t.secondadd();t.showtime();/*2、设计一个矩形类,完成计算矩形面积和显

17、示矩形属性的功能。*/#include #include #include using namespace std;class rectangleprivate:int length;int width;public:rectangle(int,int);void show();int area();rectangle:rectangle(int h,int m)assert(h0);assert(m0);length=h;width=m;void rectangle:show()coutlength=length;width=widthendl;int rectangle:area()ret

18、urn length*width;void main()rectangle t(10,20);t.show();coutarea=t.area()endl;/*3、定义一个描述圆柱体的类cylinder,定义圆柱体的底面半径与高,计算圆柱体体积并显示圆柱体的半径、高和体积。然后动态创建一个圆柱体对象。*/#include #include #include using namespace std;class cylinderprivate:int radius;int hight;const double pi;public:cylinder(int,int);double volume();

19、void show();cylinder:cylinder(int h,int m):pi(3.1415926)assert(h0);assert(m0);radius=h;hight=m;void cylinder:show()coutradius=radius;hight=hightendl;coutvolume=volume()show();delete p;p=null;/*4、设计一个学生类(cstudent),它具有私有数据成员是:学号、姓名、数学、外语和计算机课程的成绩。要求能实现求三门课总成绩和平均成绩,并能设置和显示学生信息 (类声明和成员函数定义分离)。*/#include

20、 #include #include #include using namespace std;class cstudentprivate:string id;string name;int math;int english;int computer;public:void setinfo(const string &,const string &,int,int,int);void showinfo();int allscore();double avgscore();void cstudent:setinfo(const string &id,const string &name,int

21、m,int e,int c)this-id=id;this-name=name;math=m;english=e;computer=c;void cstudent:showinfo()coutidtnametmathtenglishtcomputerendl;int cstudent:allscore()return math+english+computer;double cstudent:avgscore()return allscore()/3.0;void main()cstudent s1,s2;s1.setinfo(001,zhang,80,90,100);s1.showinfo(

22、);coutsetiosflags(ios:fixed)setprecision(2);coutzongfen:s1.allscore()tavgscore:s1.avgscore()endl;s2.setinfo(002,li,81,90,100);s2.showinfo();coutzongfen:s2.allscore()tavgscore:s2.avgscore()endl;/*5、扩展练习4(学生类设计).设计一个友元函数,按照成绩从高到低的顺序输出姓名、学号和成绩信息。*/#include #include #include #include using namespace std

23、;class cstudentprivate:string id;string name;int math;int english;int computer;friend void sort(const cstudent &);public:void setinfo(const string &,const string &,int,int,int);void showinfo();int allscore();double avgscore();void cstudent:setinfo(const string &id,const string &name,int m,int e,int

24、c)this-id=id;this-name=name;math=m;english=e;computer=c;void cstudent:showinfo()coutidtnametmathtenglishtcomputerendl;int cstudent:allscore()return math+english+computer;double cstudent:avgscore()return allscore()/3.0;void sort(const cstudent &c)int a=c.math,c.english,puter;string s=数学,英语,计算机;int t;

25、string str;for(int i=0;i2;+i)for(int j=0;j2-i;+j)if(ajaj+1)t=aj;aj=aj+1;aj+1=t;str=sj;sj=sj+1;sj+1=str;tc.idt;for(t=0;t3;+t)coutst=att;coutendl;void main()cstudent s1,s2;s1.setinfo(001,zhang,80,90,100);s1.showinfo();sort(s1);s2.setinfo(002,li,81,90,100);s2.showinfo();sort(s2);/*6、设计一个圆类型,设

26、计之后,输入圆半径,计算圆周长、面积,并显示圆的半径、周长和面积(要求定义该类的构造函数和拷贝构造函数)。*/#include #include #include #include using namespace std;class circleprivate:int radius;const double pi;public:circle(int);circle(const circle &);void show();double area();double zhouchang();circle:circle(int r):pi(3.1415926)radius=r;circle:circl

27、e(const circle &r):pi(3.1415926)radius=r.radius;void circle:show()coutradius=radiust周长:zhouchang()t面积:area()endl;double circle:zhouchang()return 2*pi*radius;double circle:area()return pi*radius*radius;void main()circle c(2);c.show();circle c2(c);c2.show();/*7、设计book类,包括isbn号(string),书名(string),作者(st

28、ring)以及单价信息,还能根据数量确定折扣率并计算应付款项,折扣率五本以上90%,十本以上 80%,二十本以上70%。设计借书还书的函数,提示:只设计一个种类的书,设计适当的构造及析构函数(类声明和成员函数定义分离)。 */#include #include #include using namespace std;class bookprivate:string isbn;string name;string author;double price;static int num;public:book(const string &,const string &,const string &

29、,double);book();void showinfo();void printprice();double getprice();static double getdiscount();int book:num=0;book:book(const string &isbn, const string &name, const string &author, double price):isbn(isbn),name(name),author(author)this-price=price;+num;book:book()-num;double book:getprice()return

30、price;void book:showinfo()coutisbntnametauthortpriceendl;void book:printprice()if(num5)coutprice;elsecout20)discount=0.7;else if(num10)discount=0.8;else if(num5)discount=0.9;return discount;void main()double sum=0.0;book b1(001,f and s,zhang,34.4);book b2(002,f and s,jjang,4.4);book b3(003,f and s,z

31、kkng,34);book b4(004,f and s,zhee,32);book b5(005,f and s,zhang,12.3);book b6(006,f and s,zhffg,13.4);book *arr=&b1,&b2,&b3,&b4,&b5,&b6;for(int i=0;ishowinfo();sum+=arri-getprice();cout折扣:book:getdiscount()t总价格:book:getdiscount()*sumendl;/*8、写一个rectangle类,抽象自己的数据和成员函数.要求:(1) 写出构造函数和析构函数(2) 用一个静态数据成员

32、记录所创建的矩形的个数(3) 写出getarea()获得矩形的面积(4) 明确哪些函数需要被设计为const成员函数(5) 写出一个全局函数获得n个矩形的面积int getallrectarea( rectangle* prectarray, int count );*/#include #include #include using namespace std;class rectangleprivate:int length;int width;static int count;public:rectangle(int,int);rectangle();int getarea()const

33、;int rectangle:count=0;rectangle:rectangle(int h,int m)assert(h0);assert(m0);length=h;width=m;+count;rectangle:rectangle()-count;int rectangle:getarea()constreturn length*width;int getallrectarea( rectangle* prectarray, int count )int sum=0,i=0;for(;icount;+i)sum+=prectarrayi.getarea();return sum;vo

34、id main()rectangle r1(2,2),r2(3,4),r3(5,6);rectangle arr=r1,r2,r3;coutgetallrectarea(arr,sizeof(arr)/sizeof(arr0);/*9、写一个mystring类,基本构成如下,可以使用cstring(string.h)中库函数,然后编写代码使用函数。*/#include #include #include using namespace std;class mystring public: mystring(char *pstr=); mystring(const mystring& str);

35、 mystring();public: void showstring();/显示字符串 void add(const mystring& str);/与另外一个相加 void copy(const mystring& str);/从另外一个拷贝 int getlength()const;private: char *m_buf; ;mystring:mystring(char *pstr)int len=strlen(pstr);m_buf=new charlen+1;assert(m_buf!=null);char *temp=m_buf;while(*temp+=*pstr+);myst

36、ring:mystring(const mystring& str)if(this!=&str)int len=str.getlength();m_buf=new charlen+1;assert(m_buf!=null);char *temp=m_buf;char *source=str.m_buf;while(*temp+=*source+);mystring:mystring()delete m_buf;void mystring:showstring()coutgetlength()str.getlength();char *temp=m_buf,*source=str.m_buf;w

37、hile(*temp+=*source+);int mystring:getlength()constchar *temp=m_buf;while(*temp)+temp;return temp-m_buf;void main()mystring str(hello ),str2(world);str.showstring();str2.showstring();str.copy(ch);str.showstring();str.add(str2);str.showstring();运算符重载_练习题./货物有重量和总重量#include using namespace std;class g

38、oodsprivate:double weight;static double totalweight;public:goods(double);goods();goods(const goods &);goods();const goods &operator=(const goods &);/const goods operator+(const goods &)const;goods &operator+();const goods operator+(int);bool operator=(const goods &);bool operator!=(const goods &);vo

39、id showweight()const;void setweight(double);static double gettotalweight();friend const goods operator+(const goods &,const goods &);#include goods.hdouble goods:totalweight(0.0);goods:goods(double weight)this-weight=weight;this-totalweight+=weight;goods:goods()weight=0.0;goods:goods(const goods &g)

40、weight=g.weight;totalweight+=weight;goods:goods()totalweight-=weight;const goods &goods:operator =(const goods &g)totalweight-=weight;weight=g.weight;totalweight+=weight;return *this;goods &goods:operator +()+weight;totalweight+=1.0;return *this;const goods goods:operator +(int)goods temp(*this);+we

41、ight;totalweight+=1.0;return temp;bool goods:operator =(const goods &g)return weight=g.weight;bool goods:operator !=(const goods &g)return weight!=g.weight;/*const goods goods:operator +(const goods &g)constreturn goods(weight+g.weight);*/void goods:showweight() constcoutweight=weightweight;this-weight=weight;t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论