c++11之第一章

当我们又一些C语言基础的时候,读到第一章中的编写一个程序来解决简单的书店问题时,我们不由的会想写一个程序练一下手试试,在我把自己的程序写完之前,我想还是对第一章书店问题进行一个简单的描述吧。
  问题如下:
我们的书店保存所有销售记录的档案,每条记录报存了某本书的一次销售的信息(一册或多册)。每条记录包含三个数据项:
  0-201-70353-X 4 24.99
第一项是书的ISBN号(国际标准书号,一本书的唯一标识),第二项是售出的册数,最后一项是书的单价。有时,书店老板需要查询此档案,计算每本书的销售量、销售额及平均售价。

好了,问题描述完了,作为一位标准的写C程序出身的程序员,肯定会这样去思考问题,定义一个结构体,我们暂且把这个结构体叫做library_book_info_st,里面包含3个成员,分别为isbn,count,price。结构体定义如下:

typedef struct _library_book_info_st
{
	string isbn;
	unsigned int count;
	double price;
} library_book_info_st;

然后我们开始编写主体功能,

#define MAX_BOOK_SIZE 		100
static library_book_info_st book_info[MAX_BOOK_SIZE];
static unsinged int index = 0;
int main(int argc, char *argv[])
{
	int i = 0;
	int result = 0;
	std::string str_isbn;
	library_book_info_st temp = {0};
	for(i=0; i<MAX_BOOK_SIZE; i++)
	{
		memset(book_info[I], 0x00, sizeof(library_book_info_st));
	}
	
	std::cout<< "please input the book followwing info(isbn count price):" <<std::endl;
	while(std::cin >> temp.isbn>>temp.count>>temp.price)
	{
		book_info[index++] = temp;
		std::cout<< "please input the book followwing info(isbn count price):" <<std::endl;
	}
	
	std::cout<< "please input the isbn of the book we nedd query: ";
	std::cin >> str_isbn;
	for(i=0; i<index; i++)
	{
		if( str_isbn.compare(book_info[i].isbn)== 0)
		{
			break;
		}
	}
	if( i < index)
		std::cout<<"ISBN:"<<book_info[i].isbn<<" count:"<<book_info[i].count<<" price:"<<book_info[i].price<< std::endl;
	else
		std::cout << " no book with isbn = "<< str_isbn << std::endl;
	return result;
}

在上面程序当中,我们使用了C++中的string类型,std命令空间,cin和cout作为输入和输出,所以感觉是一个很标准的C++程序写的,这也是我开始对c++的认识,但是我想说的是,这里面缺少了c++的灵魂-“面向对象的思想”,这个我暂时抛出这个话题,后面我们还会回顾这个问题的,好了,图书管也要闭馆了,我得溜了。。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章