资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
#include#include#include#include#include#includeclass Stocklist; /股票链表类的声明struct Custtable; /用户资料结构体声明class Custlist; /股票数据类声明Stocklist *head; /临时指向股票链表类的全局指针,作用是当程序运行时,把二进制中的数据写到这个临时的链表中,然后在这个临时的链表中进行各种操作,直到退出程序后再把临时的链表中的数据写入到二进制文件中,相当于保存并更新了文件中的数据。Custtable *table; /临时指向用户资料结构体的指针,作用类似于上面的“临时指向股票链表类的全局指针”。inline istream& Flush(istream& stream) /在书本中看到的用于清空输入缓冲区的函数。可以解决过多输入(如用cin.getline()接收数据时,过多的输入可以用该函数来清除掉,以免影响后面的输入),输入数据不符等问题。stream.clear();int chars_to_skip=stream.rdbuf()-in_avail();return stream.ignore(chars_to_skip);struct Custtable /定义股票资料结构体 char Name20; /用户姓名int Money; ;class CStock /股票数据类 private: char stock_name20; /股票名称 char stock_code6; /股票代码 int stock_volume; /股票总股数 int volume_available,nHangup; /可交易的股数 double Price;/股票的价格CStock *pNext;public: CStock(); /构造函数 CStock(char *code); /用股票代码初始化数据 CStock(char *name,char *code,int volume,double price); /初始化数据 void SetStock(char *name,char *code,int volume,double price); /数据赋值 void Show(); /显示股票信息 char *GetName()return stock_name;/返回股票名称 char *GetCode()return stock_code; /返回股票代码 double &GetPrice()return Price; /返回股票价格,买卖之前判断现金是否足够 int &GetHangup()return nHangup; /为1挂起,买卖之前判断是否能进行交易 int &GetVolume_available()return volume_available; /返回可交易总数,购买前判断输入的数据是否合理 void SubStockModify(int nNum); /购买股票,市场该股可交易总数减少 void AddStockModify(int nNum); /卖出股票,市场该股可交易总数增多 CStock *GetNext()return pNext; /返回下一个结点的指针 CStock()cout析构CStock类endl; /析构函数;CStock:CStock() /构造函数 strcpy(stock_name,);strcpy(stock_code,); stock_volume=0;volume_available=0; nHangup=0;Price=0;pNext=0; CStock:CStock(char *code) /用股票代码初始化数据 strcpy(stock_name,);strcpy(stock_code,); stock_volume=0;volume_available=0; nHangup=0;Price=0;pNext=0; CStock:CStock(char *name,char *code,int volume,double price) /初始化数据 strcpy(stock_name,name);strcpy(stock_code,code);stock_volume=volume;volume_available=volume;nHangup=0;Price=price;pNext=0;void CStock:SetStock(char *name,char *code,int volume,double price) /数据赋值 strcpy(stock_name,name);strcpy(stock_code,code);stock_volume=volume;volume_available=volume;nHangup=0;Price=price;pNext=0;void CStock:Show() /显示股票信息coutsetiosflags(ios:left);coutsetw(15)股票名称setw(13)代码setw(14)总股数setw(16)可交易股数setw(13)是否挂起setw(10)价格;coutsetw(15)stock_namesetw(12)stock_codesetw(16)stock_volumesetw(16)volume_availablesetw(11);if(nHangup=1)cout是;elsecout否;coutsetw(10)PriceGetphead()=0) /当股票链表的头指针为空,则把现在插入的结点的指针赋给头指针 cout该链表为空链表,现在插入第一个结点!Getpnext()=phead;phead=pnode; else if(strcmp(phead-Getpdata()-GetCode(),pnode-Getpdata()-GetCode()0) /链表中已有结点,把现在要插入的结点插入到链表开头pnode-Getpnext()=phead;phead=pnode; else Stocknode *p1,*p2; p1=p2=phead; while(strcmp(p2-Getpdata()-GetCode(),pnode-Getpdata()-GetCode()Getpnext()!=0) /和链表中的其他几点进行比较,直到找到合适的插入位置 p1=p2;p2=p2-Getpnext(); if(strcmp(p2-Getpdata()-GetCode(),pnode-Getpdata()-GetCode()0) /找到适合的插入点后,插入到链表中 p1-Getpnext()=pnode;pnode-Getpnext()=p2; else if(strcmp(p2-Getpdata()-GetCode(),pnode-Getpdata()-GetCode()=0) /若股票代码
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号