1/22#include#include#include#include#include#includeclassStocklist;//股票链表类的声明structCusttable;//用户资料结构体声明classCustlist;//股票数据类声明Stocklist*head;〃临时指向股票链表类的全局指针,作用是当程序运行时,把二进制中的数据写到这个临时的链表中,然后在这个临时的链表中进行各种操作,直到退出程序后再把临时的链表中的数据写入到二进制文件中,相当于保存并更新了文件中的数据。Custtable*table;〃临时指向用户资料结构体的指针,作用类似于上面的“临时指向股票链表类的全局指针”。inlineistream&Flush(istream&stream)//在书本中看到的用于清空输入缓冲区的函数。可以解决过多输入(如用 cin.getline()接收数据时,过多的输入可以用该函数来清除掉,以免影响后面的输入),输入数据不符等问题。{stream.clear();intchars_to_skip=stream.rdbuf()->in_avail();returnstream.ignore(chars_to_skip);}structCusttable//定义股票资料结构体2/22{charName[20];〃用户姓名intMoney;};classCStock//股票数据类{private:charstock_name[20];〃股票名称charstock_code[6];//股票代码intstock_volume;〃股票总股数intvolume_available,nHangup;〃可交易的股数doublePrice;//股票的价格CStock*pNext;public:CStock();〃构造函数CStock(char*code);〃用股票代码初始化数据CStock(char*name,char*code,intvolume,doubleprice);//初始化数据voidSetStock(char*name,char*code,intvolume,doubleprice);//数据赋值voidShow();//显示股票信息char*GetName(){returnstock_name;}〃返回股票名称char*GetCode(){returnstock_code;}〃返回股票代码double&GetPrice(){returnPrice;}//返回股票价格,买卖之前判断现金是否足够int&GetHangup(){returnnHangup;}//为 1 挂起,买卖之前判断是否能进行交易int&GetVolume_available(){returnvolume_available;}〃返回可交易总数,购买前判断输入的数据是否合理voidSubStockModify(intnNum);//购买股票,市场该股可交易总数减少3/22voidAddStockModify(intnNum);//卖出股票,市场该股可交易总数增多CStock*GetNext(){returnpNext;}//返回下一个结点的指针~CStock(){cout<<"析构 CStock 类"vvendl;}//析构函数};CStock::CStock()〃构造函数{strcpy(stock_name,"");strcpy(stock_code,"");stock_volume=0;volume_available=0;n...