没有合适的资源?快使用搜索试试~ 我知道了~
基于C++语言开发的股票交易系统代码
1星 需积分: 48 49 下载量 46 浏览量
2011-04-06
20:53:04
上传
评论 6
收藏 84KB DOC 举报
温馨提示
试读
12页
通过c++语言代码,对股票交易系统的分析,开发的源代码。
资源推荐
资源详情
资源评论
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<fstream.h>
#include<iomanip.h>
class 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 Name[20]; //用户姓名
int Money;
};
class CStock //股票数据类
{ private: char stock_name[20]; //股票名称
char stock_code[6]; //股票代码
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() //显示股票信息
{ cout<<setiosflags(ios::left);
cout<<setw(15)<<" 股 票 名 称 "<<setw(13)<<" 代 码 "<<setw(14)<<" 总 股
数"<<setw(16)<<"可交易股数"<<setw(13)<<"是否挂起"<<setw(10)<<"价格";
cout<<setw(15)<<stock_name<<setw(12)<<stock_code<<setw(16)<<stock_volume<<setw(16)<
<volume_available<<setw(11);
if(nHangup==1) cout<<"是";
else cout<<"否";
cout<<setw(10)<<Price<<endl;}
void CStock::SubStockModify(int nNum) //购买股票,市场该股可交易总数减少
{ volume_available-=nNum;
}
void CStock::AddStockModify(int nNum) //卖出股票,市场该股可交易总数增多
{ volume_available+=nNum; }
class Stocknode //股票结点类
{ private:
CStock *pdata; //指向股票数据类的指针
Stocknode *pnext; //指向股票结点类的指针
public:
Stocknode(){pdata=0;pnext=0;}; //构造函数
CStock *&Getpdata(); //返回指向股票数据类的指针
Stocknode *&Getpnext(); //返回指向股票结点类的指针
};
CStock *&Stocknode::Getpdata() //返回指向股票数据类的指针
{ return pdata;
}
Stocknode *&Stocknode::Getpnext() //返回指向股票结点类的指针
{ return pnext;
}
class Stocklist //股票链表类
{ private: Stocknode *phead; //指向股票结点类的指针,是股票链表的头指针。
int numofstock; //记录市场中已存在的股票数量,最多 5 只。
public:
Stocklist(){phead=0;numofstock=0;} //构造函数
~Stocklist(){Deletelist();} //析构函数
Stocknode *&Getphead(){return phead;} //返回股票链表的头指针
void Showlist(); //展示股票链表中的所有股票
void Insert(Stocknode *pnode); //插入股票结点到股票链表中
void Addnewstock(); //添加新股票
Stocknode *Lookupdata(char *str); //查找股票,返回指向股票结点类的指针
void Deleteoldstock(); //删除已存在的股票
void Modifystock(int nChoice); //修改股票数据
void Deletelist(); //删除整个股票链表
int Getnumofstock(){return numofstock;}
};
void Stocklist::Insert(Stocknode *pnode) //插入股票结点到股票链表中
{ if(head->Getphead()==0) //当股票链表的头指针为空,则把现在插入的结点的指针赋
给头指针
{ cout<<"该链表为空链表,现在插入第一个结点!"<<endl;
pnode->Getpnext()=phead;phead=pnode; }
else if(strcmp(phead->Getpdata()->GetCode(),pnode->Getpdata()->GetCode())>0) //链表中
已有结点,把现在要插入的结点插入到链表开头
剩余11页未读,继续阅读
资源评论
- 卜居老毛2012-09-26上当了,一点用都没有,赶紧还回积分!
jeraylikui
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功