股票交易系统代码.docx
- 文档编号:1307091
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:16
- 大小:20.33KB
股票交易系统代码.docx
《股票交易系统代码.docx》由会员分享,可在线阅读,更多相关《股票交易系统代码.docx(16页珍藏版)》请在冰豆网上搜索。
股票交易系统代码
#include
#include
#include
#include
#include
#include
classStocklist;//股票链表类的声明
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//定义股票资料结构体
{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);//购买股票,市场该股可交易总数减少
voidAddStockModify(intnNum);//卖出股票,市场该股可交易总数增多
CStock*GetNext(){returnpNext;}//返回下一个结点的指针
~CStock(){cout<<"析构CStock类"< }; 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,intvolume,doubleprice)//初始化数据 {strcpy(stock_name,name);strcpy(stock_code,code); stock_volume=volume;volume_available=volume; nHangup=0;Price=price;pNext=0;} voidCStock: : SetStock(char*name,char*code,intvolume,doubleprice)//数据赋值 {strcpy(stock_name,name);strcpy(stock_code,code); stock_volume=volume;volume_available=volume; nHangup=0;Price=price;pNext=0;} voidCStock: : Show()//显示股票信息 {cout< : left); cout< cout< if(nHangup==1)cout<<"是"; elsecout<<"否"; cout< voidCStock: : SubStockModify(intnNum)//购买股票,市场该股可交易总数减少 {volume_available-=nNum; } voidCStock: : AddStockModify(intnNum)//卖出股票,市场该股可交易总数增多 {volume_available+=nNum;} classStocknode//股票结点类 {private: CStock*pdata;//指向股票数据类的指针 Stocknode*pnext;//指向股票结点类的指针 public: Stocknode(){pdata=0;pnext=0;};//构造函数 CStock*&Getpdata();//返回指向股票数据类的指针 Stocknode*&Getpnext();//返回指向股票结点类的指针 }; CStock*&Stocknode: : Getpdata()//返回指向股票数据类的指针 {returnpdata; } Stocknode*&Stocknode: : Getpnext()//返回指向股票结点类的指针 {returnpnext; } classStocklist//股票链表类 {private: Stocknode*phead;//指向股票结点类的指针,是股票链表的头指针。 intnumofstock;//记录市场中已存在的股票数量,最多5只。 public: Stocklist(){phead=0;numofstock=0;}//构造函数 ~Stocklist(){Deletelist();}//析构函数 Stocknode*&Getphead(){returnphead;}//返回股票链表的头指针 voidShowlist();//展示股票链表中的所有股票 voidInsert(Stocknode*pnode);//插入股票结点到股票链表中 voidAddnewstock();//添加新股票 Stocknode*Lookupdata(char*str);//查找股票,返回指向股票结点类的指针 voidDeleteoldstock();//删除已存在的股票 voidModifystock(intnChoice);//修改股票数据 voidDeletelist();//删除整个股票链表 intGetnumofstock(){returnnumofstock;} }; voidStocklist: : Insert(Stocknode*pnode)//插入股票结点到股票链表中 {if(head->Getphead()==0)//当股票链表的头指针为空,则把现在插入的结点的指针赋给头指针 {cout<<"该链表为空链表,现在插入第一个结点! "< pnode->Getpnext()=phead;phead=pnode;} elseif(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())<0&&p2->Getpnext()! =0)//和链表中的其他几点进行比较,直到找到合适的插入位置 {p1=p2;p2=p2->Getpnext();} if(strcmp(p2->Getpdata()->GetCode(),pnode->Getpdata()->GetCode())>0)//找到适合的插入点后,插入到链表中 {p1->Getpnext()=pnode;pnode->Getpnext()=p2;} elseif(strcmp(p2->Getpdata()->GetCode(),pnode->Getpdata()->GetCode())==0)//若股票代码与之前已存在股票代码重复,则插入不成功 {cout<<"该股票与之前的股票代码有重复! "<<"请重新操作! "< return;} else {p2->Getpnext()=pnode;//把结点插入到链表的尾部 pnode->Getpnext()=NULL;}} numofstock++; } voidStocklist: : Addnewstock()//添加新股票 {CStock*p;Stocknode*pnode; p=newCStock;longintstock_volume; charstock_name[20];charstock_code[6];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 股票交易 系统 代码