C习题课剖析.docx
- 文档编号:26274087
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:19
- 大小:25.14KB
C习题课剖析.docx
《C习题课剖析.docx》由会员分享,可在线阅读,更多相关《C习题课剖析.docx(19页珍藏版)》请在冰豆网上搜索。
C习题课剖析
习题讲解5
3.4编程题
7.已知用梯形法求积分的公式为:
,其中h=(b-a)/n,n为积分区间的等分数,编程序求如下积分的值。
要求把求积分公式编写成一个函数,并使用函数指针作为形式参数。
调用该函数时,给定不同的被积函数作为实际参数求不同的积分。
①
②
③
【解答】
#include
#include
usingnamespacestd;
doublef1(doublex)
{return4/(1+x*x);
}
doublef2(doublex)
{returnsqrt(1+x*x);
}
doublef3(doublex)
{returnsin(x);
}
doubletrap(double(*fun)(doublex),doublea,doubleb,longn)
{doublet,h;inti;
t=((*fun)(a)+(*fun)(b))/2.0;
h=(b-a)/n;
for(i=1;i<=n-1;i++)t+=(*fun)(a+i*h);
t*=h;
returnt;
}
intmain()
{doublet1,t2,t3;
t1=trap(f1,0,1,10000);
cout<<"t1="< t2=trap(f2,1,2,10000); cout<<"t2="< t3=trap(sin,0,3.14159265/2,10000); cout<<"t3="< } 6.4编程题 1.定义一个Book(图书)类,在该类定义中包括以下数据成员和成员函数。 数据成员: bookname(书名)、price(价格)和number(存书数量)。 成员函数: display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。 在main函数中,要求创建某一种图书对象,并对该图书进行简单的显示、借阅和归还管理。 【解答】 #include usingnamespacestd; classBook { public: voidsetBook(char*,double,int); voidborrow(); voidrestore(); voiddisplay(); private: charbookname[40]; doubleprice; intnumber; }; //在类外定义Book类的成员函数 voidBook: : setBook(char*name,doublepri,intnum) { strcpy(bookname,name); price=pri; number=num; } voidBook: : borrow() { if(number==0) { cout<<"已没存书,退出! "< abort(); } number=number-1; cout<<"借一次,现存书量为: "< } voidBook: : restore() { number=number+1; cout<<"还一次,现存书量为: "< } voidBook: : display() { cout<<"存书情况: "< <<"bookname: "< <<"price: "< <<"number: "< } intmain() { charflag,ch; Bookcomputer; computer.setBook("c++程序设计基础",32,1000); computer.display(); ch='y'; while(ch=='y') { cout<<"请输入借阅或归还标志(b/r): "; cin>>flag; switch(flag) { case'b': computer.borrow();break; case'r': computer.restore(); } cout<<"是否继续? (y/n)"; cin>>ch; } computer.display(); } 6.4编程题 2.定义一个Box(盒子)类,在该类定义中包括以下数据成员和成员函数。 数据成员: length(长)、width(宽)和height(高)。 成员函数: 构造函数Box,设置盒子的长、宽和高3个初始数据;成员函数setBox对数据成员置值;成员函数volume计算盒子的体积。 在main函数中,要求创建Box对象,输入长、宽、高,输出盒子的体积。 【解答】 #include usingnamespacestd; classBOX { public: BOX(doublel,doublew,doubleh) {length=l; width=w; height=h; } voidvolume() {cout<<"volume="< } private: doublelength,width,height; }; intmain() { BOXbox1(1,3,5); box1.volume(); BOXbox2(2,4,6); box2.volume(); } 6.4编程题 3.定义一个Student类,在该类定义中包括: 一个数据成员(分数score)及两个静态数据成员(总分total和学生人数count);成员函数scoretotalcount(doubles)用于设置分数、求总分和累计学生人数;静态成员函数sum()用于返回总分;静态成员函数average()用于求平均值。 在main函数中,输入某班同学的成绩,并调用上述函数求全班学生的总分和平均分。 【解答】 #include usingnamespacestd; classstudent { public: voidscoretotalcount(doubles) {score=s; total=total+score; count++; } staticdoublesum() {returntotal; } staticdoubleaverage() {returntotal/count; } private: doublescore; staticdoubletotal; staticdoublecount; }; doublestudent: : total=0; doublestudent: : count=0; intmain() { inti,n;doubles; cout<<"请输入学生人数: "; cin>>n; studentstu; for(i=1;i<=n;i++) { cout<<"请输入第"< "; cin>>s; stu.scoretotalcount(s);} cout<<"总分: "< : sum()< cout<<"平均分: "< : average()< } 6.4编程题 4.定义一个表示点的结构类型Point和一个由直线方程y=ax+b确定的直线类Line。 结构类型Point有两个成员x和y,分别表示点的横坐标和纵坐标。 Line类有两个数据成员a和b,分别表示直线方程中的系数。 Line类有一个成员函数print用于显示直线方程。 友元函数setPoint(Line&l1,Line&l2)用于求两条直线的交点。 在main函数中,建立两个直线对象,分别调用print函数显示两条直线的方程,并调用函数setPoint求这两条直线的交点。 【解答】 #include usingnamespacestd; structpoint { doublex; doubley; }; classline { public: line(doubleu,doublev) { a=u;b=v; } voidprint() { cout<<"y="< } friendpointsetpoint(line&l1,line&l2); private: doublea,b; }; pointsetpoint(line&l1,line&l2) {pointp; p.x=(l2.b-l1.b)/(l1.a-l2.a); p.y=(l1.a*l2.b-l2.a*l1.b)/(l1.a-l2.a); returnp; } intmain() {pointsetp; linel1(2,3),l2(4,5); cout<<"直线l1: "; l1.print(); cout<<"直线l2: "; l2.print(); setp=setpoint(l1,l2); cout<<"直线l1和直线l2的交点: ("< } 8.2阅读下列程序,写出运行结果 1. #include usingnamespacestd; classBase { public: voidget(inti,intj,intk,intl) {a=i;b=j;x=k;y=l; } voidprint() {cout<<"a="< <<"x="< } inta,b; protected: intx,y; }; classA: publicBase { public: voidget(inti,intj,intk,intl) { Baseobj3; obj3.get(50,60,70,80); obj3.print(); a=i;b=j;x=k;y=l; u=a+b+obj3.a;v=y-x+obj3.b; } voidprint() {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题课剖析 习题 剖析