一、编程题 教材 P240 第 7 题,定义一个存放字符串的线性表类。
实验 11
二、面向对象编程:模拟图书管理应用程序
【要求】按以下描述和要求建立一个类 Book,执行主函数对其测试。
Book
int No;
int cap;
double Price;
int lend;
Book (int a=0, int b=0, double c=0);
int input(double m);
//图书序号
//图书库存数量(库存最多允许 10 本)
//图书价格
//已借出图书数量
私有成员
公有成员
//构造函数(a,b,c 初始化数据成//员中的序号、数量和价格,lend//赋值 0)
//添加图书数量 m 本(若 cap+m 超过 10 则//提示“只能添加 x 本”
//返回-x。x 表示能//添加的数量)
//借出 n 本图书(如果库存足够,给出“借书//成功!”的提示,否则//显示数量差额的提
示信//息。),对有关的数据成员 cap 和 lend 做相//应的运算。
//归还图书 n 本(cap 和 lend 相应加减 n)
//返回图书数量
//返回借出图书数量
//返回图书价格
//输出序号、数量、价格和借出数量
void lendout(int n);
void giveback (int n);
int getcap ( );
int getlend ( );
double getprice ( );
void display() ;
主函数要求:
1. 定义 Book 类对象 A(101, 2, 35.8)和 B(102, 5, 66.2)。
2. 调用函数 input 为对象 A 和 B 做添加图书操作:A. input(3); B. input(8); 如有添加失败,则
重新添加合适的数量。调用函数 display 输出对象 A 和 B 的全部数据,每个对象的信息占
一行。
3. 调用函数 lendout 做借出操作,先比较对象 A 和 B 的价格,借较高价格的图书 3 本,借较
低价格的图书 8 本。再调用函数 display 输出对象 A 和 B 的全部数据。再调用函数 giveback
做归还操作,还书数量自定。
4. 计算并输出所有图书的总数量 sum。
要求:写出所有成员函数的完整代码。
主函数代码参考:
void main(){
int t,sum=0;
Book A(101, 2, 35.8)和 B(102, 5, 66.2);
t=A.input(3);
if(t<0) A.input(t);
t=B.input(8);
if(t<0) B.input(t);
A.display();
B.display();
if( A.getprice() > B.getprice() ){
A.lendout(3); B.lendout(8);
}
else{
1
B.lendout(3); A.lendout(8);
}
A.display();
B.display();
A.giveback(2);
B.giveback(5);
A.display();
B.display();
sum=A.getcap()+A.getlend()+B.getcap()+B.getlend();
cout<<"所有图书的总数量="<0 则计算成绩 cent)
头文件包含语句为:
#include
#include
主函数要求:
1. 定义 Student 类对象 A(1101, 王林)、B(1202, 李明)、C(A)和 D=B(C、D 数据由 A、
B 拷贝而来)。
2. 调用函数修改 C 和 D 的姓名,继续交作业(次数自定)。
3. 调用函数 display 输出对象 A、B、C 和 D 的全部数据。每个对象的信息占一行。
4. 计算并输出 4 个对象的平均成绩。
提示:构造函数需要为 name 字符串动态分配内存。包含头文件可使用串复制函数
strcpy(),求串长度函数 strlen()。
要求:写出所有成员函数的完整代码。
主函数参考代码:
void main(){
Student A(1101, "王林"), B(1202, "李明",5), C(A), D=B ;
C.setname("张山");
D.setname("陈志");
A.display(); B.display();
C.display(); D.display();
A.upjob(4);
C.upjob(8);
2
D.upjob(6);
A.display(); B.display();
C.display(); D.display();
cout<<"A、B、C、D 的平均成绩=" <<(A.getcent()+B.getcent()
+C.getcent()+D.getcent())/4<