C面向对象程序设计习题集Word下载.docx
- 文档编号:737390
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:144
- 大小:50.03KB
C面向对象程序设计习题集Word下载.docx
《C面向对象程序设计习题集Word下载.docx》由会员分享,可在线阅读,更多相关《C面向对象程序设计习题集Word下载.docx(144页珍藏版)》请在冰点文库上搜索。
cout<
<
"
日期存入取出余额"
endl;
for(i=0;
i<
top;
i++)
{
setw(10)<
date[i];
if(money[i]<
0)
setw(6)<
-money[i];
else
money[i]<
;
rest[i]<
};
intBank:
:
sum=0;
voidmain()
Bankobj;
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();
2.
编写一个程序,已有若干个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。
20分
#include<
#include<
classStud
intno;
charname[10];
intdeg;
staticintsum;
staticintnum;
Stud(intn,charna[],intd)
no=n;
deg=d;
strcpy(name,na);
sum+=d;
num++;
}
staticdoubleavg()
returnsum/num;
voiddisp()
setw(5)<
nO<
setw(8)<
name<
deg<
};
intStud:
sum=0j
num=O;
voidmain()
Studs1(1,"
Li"
89),s2(2,"
Chert"
78),s3(3,"
zheng"
94);
cout:
学号姓名成绩"
s1.disp();
s2.disp();
s3.disp();
cout<
平均分="
Stud:
avg()<
3.
有10个单词存放在一维指针数组words中,编写一个程序,根据用户的输入找出所有及之从前向后匹配的单词和个数。
2.2
设计一个Word类,包含一个私有数据成员words、一个构造函数和一个公有成员函数lookup(),构造函数用于给words赋初值,lookup()用于找出所有及之从前向后匹配的单词和个数。
程序如下:
C1assWord
charwords[10][12];
Word()//构造函数给words赋初值
strcpy(words[0],"
elapse"
);
strcpy(words[1],"
elucidate"
);
strcpy(words[2],"
elude"
strcpy(words[3],"
embody"
strcpy(words[4],"
embrace"
strcpy(words[5],"
embroider"
strcpy(words[6],"
emrtge"
strcpy(words[7],"
emphasize"
strcpy(words[8],"
empower"
strcpy(words[9],"
emulate"
voidlookup(chars[]);
voidWord:
lookup(chars[])
char*w;
inti,j,n=0;
//n记录相匹配的单词个数
匹配的单词:
10;
i++)//一个单词一个单词地匹配
for(w=words[i],j=0;
s[j]!
='
\0'
&
*w!
*w==s[j];
j++,w++);
if(s[j]=='
)//匹配成功
n++;
\t"
words[i]<
相匹配的单词个数:
n<
Wordobj;
charstr[20];
输入单词:
cin>
>
str;
obj.lookup(str);
4.
创建一个Employee类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。
把表示构造函数、changenameO、display()的函数原型放在类定义中,构造函数初始化每个成员,display()~数把完整的对象数据打印出来。
其中的数据成员是保护的,函数是公共的。
2.22.33.1
classEmployee
protected:
//姓名
charstreet[20];
//街道地址
charcity[10];
//市
charprov[10];
//省
charpost[7];
//邮政编码
//记录序号
Employee(char[],char[],char[],char[],char[],int);
voidchangename(charstr[]);
voiddisplay();
Employee:
Employee(charn[],chars[],charc[],charpl[],charp2[],intnum)
strcpy(name,n);
strcpy(Street,s);
strcpy(city,c);
Strcpy(prov,p1);
strcpy(post,p2);
no=num;
voidEmployee:
changename(charn[])
strcpy(name,n);
display()
输出记录"
no<
endl;
姓名:
街道地址:
street<
市:
city<
endlj
tout<
省:
prov<
邮政编码:
post<
Employeeobj1("
王华"
,"
中华路15号"
"
武汉市"
湖北省"
430070"
,1);
Employeeobj2("
杨丽"
天津路30号"
南京市"
江苏省"
210020"
2);
obj1.display();
obj2.display();
5.
编写一个程序,已有若干个学生数据,这些数据包括学号、姓名、语文成绩、数学成绩和英语成绩,求各门课程的平均分。
要求设计不同的成员函数求各门课程的平均分,并使用成员函数指针调用它们。
C
设计一个学生类student,包括no(学号)、name(姓名)、degl(语文成绩)、deg2(数学成绩)、deg3(英语成绩)数据成员和3个静态数据成员suml(累计语文总分)、sum2(累计数学总分)、sum3(累计英语总分);
另外有一个构造函数、3个求三门课程平均分的成员函数和一个disp()成员函数。
constintN=4;
classstudent
//学号
//姓名
intdegl;
//语文成绩
intdeg2;
//数学成绩
intdeg3;
//英语成绩
staticintsuml;
//语文总分
statacintsum2;
//数学总分
staticintsum3;
//英语总分
student(intn,charna[],intdl,intd2,intd3)
degl=dl;
deg2=d2;
deg3=d3;
suml+=degl;
sum2+=deg2;
sum3+=deg3;
doubleavgl(){return(suml*1.0)/N;
doubleavg2(){return(sum2*1.0)/N;
doubleavg3(){return(sum3*1.0)/N;
}}
setw(4)<
degl<
setw(6)
<
deg2<
deg3<
intstudent:
suml=0;
sum2=0;
sum3=0;
double(student:
*fp)();
//定义成员函数指针
students1(1,"
67,89,90);
students2(2,"
Na"
students3(3,"
Zheng"
students4(4,"
67,89,90);
输出结果"
学号姓名语文数学英语"
s1.disp();
S2.disp();
S3.disp();
S4.disp();
fp=student:
avgl;
语文平均分:
(S1.*fP)()<
avg2;
数学平均分:
(S1.*fp)()<
avg3;
英语平均分:
6.
编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分数段的学生数据。
设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在80~89分数段的学生数据。
在main()函数中定义了一个对象数组用于存储输入的学生数据。
string.h>
constintN=3;
classStud
publiC:
voidsetdata(intn,charna[],intd)
deg=d;
strcpy(name,na);
if(deg>
=80&
=89)
Studst[N];
inti,n,d;
charna[10];
输入学号姓名成绩"
N;
第"
i+l<
个学生:
n>
na>
d;
St[i].Setdata(n,na,d);
输出数据"
for(i=0;
st[i].disp();
7.
编写一个程序统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前70%的学生定为合格(PASS),而后30%的学生定为不及格(FAIL)。
40分
A
设计一个类student,包含学生的姓名和成绩等数据,以及setname()、setdeg()、getname()和getdeg()等4个成员函数。
设计一个类compute,包含两个私有数据成员,即学生人数ns和student类的对象数组na[],另有3个公共成员函数getdata()、sort()、disp(),它们的功能分别用于数据获取、按成绩排序和输出数据。
iOStream.h>
constintMax=10;
intdeg;
voidsetname(charna[]){strcpy(name,na);
char*getname(){returnname;
voidsetdeg(intd){deg=d;
intgetdeg(){returndeg;
classcompute
intns;
studentna[Max];
voidgetdata();
voidsort();
voiddisp();
voidcompute:
getdata()
inti,tdeg;
chartname[10];
输入学生人数:
ns;
输入学生姓名和成绩:
for(i=O;
tname>
tdeg;
na[i].setname(tname);
me[i].setdeg(tdeg);
sort()
inti,j,pick;
studenttemp;
ns-1;
pick=i;
for(j=i+1;
j<
J++)
if(na[J].getdeg()>
na[pick].getdeg())
pick=j;
temp=na[i];
na[i]=na[pick];
na[pick]=temp;
disp()
intcutoff,i;
姓名成绩合格否"
”-----------------”<
cutoff=ns*7/10-1;
na[i].getname()<
na[i].getdeg();
if(i<
=cutoff)
PASS"
FAIL"
computeobj;
obj.getdata();
obj.sort();
obj.disp()
8.
编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排列后,输出用户的姓名和电话号码。
设计一个类person,包含学生的姓名和电话号码等数据,以及semame()、setnum()、gemame()和gemum()等4个成员函数。
设计一个类compute,包含一个私有数据成员,即person类的对象数组pn[],另有3个公共成员函数getdata()、sort()、disp(),它们的功能分别用于数据获取、按姓名的词典顺序排序和输出数据。
iostream.h>
constintN=5;
classperson
charname[10];
charnum[10];
voidsetnum(charnu[]){strcpy(num,nu);
)
char*getname(){returnname;
char*getnum(){returnnum;
personpn[N];
voidgetsort();
voidoutdata();
charna[10],nu[10];
输入姓名和电话号码"
for(i=0;
i<
i++)
第"
i+1<
个人:
nu;
pn[i].setname(na);
pn[i].setnum(nu);
getsort()
inti,j,k;
persontemp;
N-1;
k=i;
j++)
if(strcmp(pn[k].getname(),pn[j].getname())>
k=j;
temp=pn[k];
pn[k]=pn[i];
pn[i]=temp;
outdata()
输出结果:
姓名电话号码"
cout<
"
----------------"
endl;
setw(11)<
pn[i].getname()<
setw(8)
pn[i].getnum()<
obj.getsort();
obj.outdata();
9.
编写一个程序,输入n个学生的姓名和出生日期,并按年龄从大到小输出。
设计一个结构体person,包含学生的姓名和出生日期等数据:
设计一个类compute,包含私有数据成员,即person结构体数组st[],另有3个私有成员函数daynum()、countday()、leap()和3个公共成员函数getdam()、sort()、disp(),它们的功能分别用于数据获取、按出生日期排序和输出数据,在实现过程中调用前面的3个私有成员函数。
sort()成员函数按结构体数组元素的d成员排序,d存放的是该学生从1900年1月l日到出生日期的天数。
intcountday(int,int,int,int);
intleap(int);
structperson
structdates
intyear;
intmonth;
intday;
}date;
intd;
//从1900.1.1到出生日的天数
structpersonst[N];
intdaynum(int,int,int,int,int,int);
intcount_day(int,int,int,int);
boolleap(int);
intcompute:
daynum(ints_year,ints_month,int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 习题集
![提示](https://static.bingdoc.com/images/bang_tan.gif)