实验指导4(2)

2019-04-17 15:43

}

1.4.3 操作步骤

如前例,不再赘述。

1.4.4源代码

#define StrNum 20 //本案例作了如下假设:即所有的字符串长度不超过20。 #include class Book {

private: char name[StrNum]; //书名 float price; //单价 public: Book();//构造函数 Book::Book(const char *Name,const float newPrice);//重载构造函数 char *get_name(); //获取书名 void setName(const char *newName); //设置书名 float get_price(); //获取单价 void setPrice(const float newPrice); //更改单价 };

// 下面是Book类的成员函数 Book::Book()//构造函数Book() {

strcpy(name,\ price=0; };

Book::Book(const char *Name,const float newPrice) //重载构造函数 {

strcpy (name,Name); price=newPrice; }

char *Book::get_name() //获取书名 {

return name; };

void Book::setName(const char *newName) //设置书名

{

strcpy(name,newName); };

float Book::get_price() //获取单价 { return price; }

void Book::setPrice(const float newPrice) //更改单价 { price=newPrice; }

class BookList { Book bookList[10]; //生成Book类对象数组,即图书列表数组 public: int bookNum; //存储图书列表中当前的图书数目 BookList() { bookNum=0; } void insert(char *newName,float newPrice)//添加新书信息功能函数 { bookList[bookNum].setName(newName); bookList[bookNum].setPrice(newPrice); bookNum++; } void showBook(int i) //输出一本图书 { //cout<

if(i==bookNum) return -1; } void update(int i,char *newName)//修改图书信息功能函数 { bookList[i].setName(newName); } void deleted(int i)//删除图书信息功能函数 { for(int j=i;j<(bookNum-1);j++) { bookList[j].setName(bookList[j+1].get_name()); } bookNum--; } void showBook_title()//输出列名 { cout<

ostream & operator << (ostream & cout1,Book & book) //运算符重载方法,输出图书信息 { cout1<

源程序文件:

#include #include #include\

int main() {

BookList bl; float pr;

char Temp[20]; int f=1;

while (f==1) { //输出主菜单 cout<<\添加 2.查询 3.修改 4.删除 5.显示全部 6.退出\\n\\n\ int xz; cin>>xz; if (xz==1) {

//添加图书信息 cout<<\请输入新书的书名:\ cin>>Temp; cout<<\请输入新书的单价:\ cin>>pr; bl.insert(Temp,pr); bl.showBook(bl.bookNum-1); }

if (xz==2) {

//查找图书信息 cout<<\请要查找图书的书名:\ cin>>Temp; int x=bl.search(Temp); if( x>=0) bl.showBook(x); else cout<<\未找到该书!\}

if (xz==3) {

//修改图书信息

cout<<\请输入要修改图书的书名:\cin>>Temp;

int y=bl.search(Temp); if( y>=0) {

}

}

cout<<\请输入该图书新的书名:\ cin>>Temp; bl.update(y,Temp); bl.showBook(y); } else cout<<\未找到该书!\}

if (xz==4) { //删除图书信息 cout<<\请输入要删除图书的书名:\ cin>>Temp; int z=bl.search(Temp); if( z>=0) { bl.deleted(z); cout<<\共有图书本数:\ } else cout<<\未找到该书!\}

if (xz==5) { //显示所有图书 bl.showAll(); }

if (xz==6) {

f=0;//不符合循环条件退出 }

1.4.5进一步完善

1.可进一步完成对图书的增删查改功能的重复操作。

(1)完成对图书的增删查改功能的重复操作的思路:使用循环+条件判断 (2)进一步的详细思路

int f=1;

while (f==1) { //输出主菜单 cout<<\添加 2.查询 3.修改 4.删除 5退出\\n\\n\ int xz; cin>>xz; if (xz==1)

{

//添加新书信息的功能代码 } if (xz==2)

{

//查询新书信息的功能代码 } if (xz==3)

{

//修改新书信息的功能代码 } if (xz==4)

{

//删除图书信息的功能代码 } if (xz==5)

{

f=0;//不符合循环条件退出 }

2. 例子中已实现流插入运算符重载实现一个Book对象数据的输出。读者尝试应用流提取运算符重载实现一个Book对象数据的输入。

1.4.6课外同步训练

项目一:面向对象程序设计——简单的学生信息管理系统 模块4:多态的应用

使用多态等面向对象编程技术,在上一节完成对多咯学生信息的增删查改功能的基础上,应用函数重载和运算符重载进一步完善类的初始化和输出功能。


实验指导4(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三年级奥数培优第五讲复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: