C++面向对象程序设计习题集(共80页).doc
《C++面向对象程序设计习题集(共80页).doc》由会员分享,可在线阅读,更多相关《C++面向对象程序设计习题集(共80页).doc(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C+面向对象程序设计习题集编程题:用面向对象的程序设计方法编制如下程序。设计一个Bank类,实现银行某账号的资金往来账管理,包括建账号、存入、取出等。Bank类包括私有数据成员top(当前指针)、date(日期)、money(金额)、rest(余额)和sum(累计余额)。另有一个构造函数和3个成员函数bankinO(处理存入账)、bankout()(处理取出账)和disp( )(出明细账)。【知识点】:2.2 2.3【参考分】:25分【难易度】:B【答案】:#include #include #include const int Max=100;class Bank
2、int top; char dateMax10;/日期 int moneyMax;/金额 int restMax;/余额 static int sum;/累计余额public: Bank()top=0;void bankin(char d ,int m) strcpy(datetop,d); moneytop=m; sum=sum+m; resttop=sum; top+;void bankout(char d,int m) strcpy(datetop,d); moneytop=-m; /取出数用负数表示 sum=sum-m; resttop=sum; top+;void disp() in
3、t i; cout日期 存入 取出余额endl; for(i=0;itop;i+) coutsetw(10)datei; if(moneyi0) coutsetw(6)-moneyi; else coutsetw(6)moneyi ; coutsetw(6)restiendl;int Bank:sum=0;void main() Bank obj; obj.bankin(2005.2.5.1000); obj.bankin(2006.3.2,2000); obj.bankout(2007.4.1,500); obj.bankout(2007.10.5,800); obj.disp();编写一个
4、程序,已有若干个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。【知识点】:2.2 2.3【参考分】:20分【难易度】:B【答案】: #include #include #include class Stud int no; char name10; int deg; static int sum; static int num; public: Stud(int n,char na,int d) no=n;deg=d; strcpy(name,na); sum+=d; num+; static double avg() return sum/num; void disp()
5、 coutsetw(5)nOsetw(8)namesetw(6)degendl; ; int Stud:sum=0j int Stud:num=O; void main() Stud s1(1,Li,89),s2(2,Chert,78),s3(3,zheng,94); cout:学号 姓名 成绩endl; s1.disp(); s2.disp(); s3.disp();cout平均分=Stud:avg()endl;有10个单词存放在一维指针数组words中,编写一个程序,根据用户的输入找出所有与之从前向后匹配的单词和个数。【知识点】:2.2【参考分】:25分【难易度】:B【答案】:设计一个Wo
6、rd类,包含一个私有数据成员words、一个构造函数和一个公有成员函数lookup(),构造函数用于给words赋初值,lookup()用于找出所有与之从前向后匹配的单词和个数。程序如下:#include#includeC1ass Word char words1012;public: Word() /构造函数给words赋初值strcpy(words0,elapse);strcpy(words1,elucidate);strcpy(words2,elude);strcpy(words3,embody);strcpy(words4,embrace);strcpy(words5,embroide
7、r);strcpy(words6,emrtge);strcpy(words7,emphasize);strcpy(words8,empower);strcpy(words9,emulate); void lookup(char s );void Word:lookup(char s ) char *w; int i,j,n=0; /n记录相匹配的单词个数 cout匹配的单词:endl; for(i=0;i10;i+) /一个单词一个单词地匹配 for(w=wordsi,j=0;sj!=0&*w!=0&*w=sj; j+,w+); if(sj=0) /匹配成功 n+; couttwordsi e
8、ndl; cout相匹配的单词个数:nendl;void main() Word obj; char str20; coutstr;obj.lookup(str); 创建一个Employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把表示构造函数、changenameO、display()的函数原型放在类定义中,构造函数初始化每个成员,display()数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。【知识点】:2.2 2.3 3.1【参考分】:20分【难易度】:B【答案】:#include#includeclass Employeeprotected: c
9、har name10; /姓名 char street20; /街道地址 char city10; /市 char prov10; /省 char post7; /邮政编码 int no; /记录序号public: Employee(char,char,char,char,char,int); void changename(char str); void display();Employee:Employee(char n,char s,char c,char pl,char p2,int num) strcpy(name,n); strcpy(Street,s); strcpy(city,
10、c); Strcpy(prov,p1); strcpy(post,p2); no=num;void Employee:changename(char n) strcpy(name,n);void Employee:display() cout输出记录noendl; cout姓名:nameendl; cout街道地址:streetendl; cout市:cityendlj tout省:provendl; cout邮政编码:postendl;void main()Employee obj1(王华,中华路15号,武汉市,湖北省,,1);Employee obj2(杨丽,天津路30号,南京市,江苏省,
11、2);obj1.display();obj2.display();编写一个程序,已有若干个学生数据,这些数据包括学号、姓名、语文成绩、数学成绩和英语成绩,求各门课程的平均分。要求设计不同的成员函数求各门课程的平均分,并使用成员函数指针调用它们。【知识点】:2.2 2.3 3.1【参考分】:20分【难易度】:C【答案】:设计一个学生类student,包括no(学号)、name(姓名)、degl(语文成绩)、deg2(数学成绩)、deg3(英语成绩)数据成员和3个静态数据成员suml(累计语文总分)、sum2(累计数学总分)、sum3(累计英语总分);另外有一个构造函数、3个求三门课程平均分的成员
12、函数和一个disp( )成员函数。程序如下:#include#include#includeconst int N=4;class student int no;/学号 char name10;/姓名 int degl;/语文成绩 int deg2;/数学成绩 int deg3;/英语成绩 static int suml;/语文总分 statac int sum2;/数学总分 static int sum3;/英语总分public:student(int n,char na,int dl,int d2,int d3) no=n; strcpy(name,na); degl=dl;deg2=d2
13、;deg3=d3; suml+=degl;sum2+=deg2;sum3+=deg3;double avgl()return(suml*1.0)/N;double avg2()return(sum2*1.0)/N;double avg3()return(sum3*1.0)/N;void disp() coutsetw(4)nosetw(10)namesetw(6)deglsetw(6) deg2setw(6)deg3endl; ;int student:suml=0;int student:sum2=0;int student:sum3=0;void main()double (student
14、:*fp)(); /定义成员函数指针student s1(1,Li,67,89,90);student s2(2,Na,67,89,90);student s3(3,Zheng,67,89,90);student s4(4,Chert,67,89,90);cout输出结果endl;cout学号 姓名 语文数学英语endl;s1.disp();S2.disp();S3.disp();S4.disp();fp=student:avgl;cout语文平均分:(S1.*fP)()endl;fp=student:avg2;cout数学平均分:(S1.*fp)()endl;fp=student:avg3;
15、cout英语平均分:(S1.*fP)()endl; 编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在8089分数段的学生数据。【知识点】:2.2 2.3【参考分】:20分【难易度】:B【答案】:设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在8089分数段的学生数据。在main()函数中定义了一个对象数组用于存储输入的学生数据。程序如下:#include#include#includeconst int N=3;class Stud int
16、no; char name10; int deg;publiC: void setdata(int n,char na,int d) no=n;deg=d; strcpy(name,na); void disp() if(deg=80°=89) coutsetw(5)nosetw(8)namesetw(5)degendl; ;void main() Stud stN; int i,n,d; char na10; cout输入学号姓名成绩endl; for(i=0;iN;i+) cout第i+lnnad; Sti.Setdata(n,na,d);cout输出数据endl;cout学号 姓名
17、 成绩endl;for(i=0;iN;i+)sti.disp( );编写一个程序统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前70的学生定为合格(PASS),而后30的学生定为不及格(FAIL)。【知识点】:2.2 2.3 3.1【参考分】:40分【难易度】:A【答案】:设计一个类student,包含学生的姓名和成绩等数据,以及setname()、setdeg()、getname()和 getdeg()等4个成员函数。设计一个类compute,包含两个私有数据成员,即学生人数ns和student类的对象数组na,另有3个公共成员函数getdata( )、sort
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 习题集 80
限制150内