股票交易资料系统代码大全Word格式.docx
- 文档编号:19285002
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:16
- 大小:20.36KB
股票交易资料系统代码大全Word格式.docx
《股票交易资料系统代码大全Word格式.docx》由会员分享,可在线阅读,更多相关《股票交易资料系统代码大全Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
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挂起,买卖之前判断是否能进行交易
GetVolume_available(){returnvolume_available;
}//返回可交易总数,购买前判断输入的数据是否合理
voidSubStockModify(intnNum);
//购买股票,市场该股可交易总数减少
voidAddStockModify(intnNum);
//卖出股票,市场该股可交易总数增多
CStock*GetNext(){returnpNext;
}//返回下一个结点的指针
~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(char*code)//用股票代码初始化数据
CStock(char*name,char*code,intvolume,doubleprice)//初始化数据
{strcpy(stock_name,name);
strcpy(stock_code,code);
stock_volume=volume;
volume_available=volume;
Price=price;
voidCStock:
SetStock(char*name,char*code,intvolume,doubleprice)//数据赋值
Show()//显示股票信息
{cout<
setiosflags(ios:
left);
cout<
setw(15)<
股票名称"
setw(13)<
代码"
setw(14)<
总股数"
setw(16)<
可交易股数"
是否挂起"
setw(10)<
价格"
;
stock_name<
setw(12)<
stock_code<
stock_volume<
volume_available<
setw(11);
if(nHangup==1)cout<
是"
elsecout<
否"
Price<
SubStockModify(intnNum)//购买股票,市场该股可交易总数减少
{volume_available-=nNum;
}
AddStockModify(intnNum)//卖出股票,市场该股可交易总数增多
{volume_available+=nNum;
classStocknode//股票结点类
CStock*pdata;
//指向股票数据类的指针
Stocknode*pnext;
//指向股票结点类的指针
public:
Stocknode(){pdata=0;
pnext=0;
};
CStock*&
Getpdata();
//返回指向股票数据类的指针
Stocknode*&
Getpnext();
//返回指向股票结点类的指针
CStock*&
Stocknode:
Getpdata()//返回指向股票数据类的指针
{returnpdata;
}
Stocknode*&
Getpnext()//返回指向股票结点类的指针
{returnpnext;
}
classStocklist//股票链表类
Stocknode*phead;
//指向股票结点类的指针,是股票链表的头指针。
intnumofstock;
//记录市场中已存在的股票数量,最多5只。
Stocklist(){phead=0;
numofstock=0;
}//构造函数
~Stocklist(){Deletelist();
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->
GetCode())>
0)//链表中已有结点,把现在要插入的结点插入到链表开头
{pnode->
phead=pnode;
}
else
{Stocknode*p1,*p2;
p1=p2=phead;
while(strcmp(p2->
GetCode())<
0&
&
p2->
Getpnext()!
=0)//和链表中的其他几点进行比较,直到找到合适的插入位置
{p1=p2;
p2=p2->
if(strcmp(p2->
0)//找到适合的插入点后,插入到链表中
{p1->
Getpnext()=pnode;
pnode->
Getpnext()=p2;
elseif(strcmp(p2->
GetCode())==0)//若股票代码与之前已存在股票代码重复,则插入不成功
{cout<
该股票与之前的股票代码有重复!
请重新操作!
return;
else
{p2->
//把结点插入到链表的尾部
pnode->
Getpnext()=NULL;
}}
numofstock++;
Addnewstock()//添加新股票
{CStock*p;
Stocknode*pnode;
p=newCStock;
longintstock_volume;
doubleprice;
pnode=newStocknode;
//动态开辟新的股票结点空间
现在添加新股票,请输入该股票的数据:
请输入股票名称:
cin.getline(stock_name,20);
//输入股票名
Flush(cin);
//清空过多输入
请输入股票代码:
cin.getline(stock_code,6);
请输入股票总数:
cin>
>
stock_volume;
while(!
cin)//用于解决当输入数据类型不符出现的错误
{cerr<
输入数据类型不符,请输入数字!
Flush(cin);
cin>
请输入该股票价格:
price;
//输入股票价格
cin.ignore();
//清丢弃输入缓冲区中的字符,以免影响后面的输入
创建该股票中..."
p->
SetStock(stock_name,stock_code,stock_volume,price);
pnode->
Getpdata()=p;
//把股票数据赋到结点中
Insert(pnode);
//把刚创建的结点插入到链表中
Showlist()//展示股票链表中的所有股票
{Stocknode*pnode;
if(phead==0){cout<
该链表为空链表!
{pnode=phead;
while(pnode)
{pnode->
Show();
pnode=pnode->
Stocknode*Stocklist:
Lookupdata(char*str)//查找股票
pnode=phead;
str<
charcode[6];
cin.getline(code,6);
while(pnode->
Getpnext()&
strcmp(pnode->
GetCode(),code))
{pnode=pnode->
if(strcmp(pnode->
GetCode(),code)==0)
{returnpnode;
return0;
Deleteoldstock()//删除已存在的股票
{
Stocknode*pnode,*p;
请输入你想删除的股票代码:
charcode[6];
if(phead==0)//若链表为空,则结束该函数
{cout<
该链表为空链表!
return;
GetCode(),code))//若链表不为空,则在链表中查找该股票
{p=pnode;
pnode=pnode->
查找出的股票为:
charstr[30];
while
(1)
{do
{cout<
是否确定删除该股票(y/n)?
cin.getline(str,30);
while((strcmp(str,"
y"
)!
=0)&
(strcmp(str,"
Y"
n"
N"
=0));
if((strcmp(str,"
)==0)||(strcmp(str,"
)==0))
{if(pnode==phead)//查找出的要删除的股票结点为链表的头结点
phead=phead->
else
p->
Getpnext()=pnode->
//不为头结点的情况
deletepnode;
numofstock--;
//删除该节点,删除动态开辟的空间
cout<
删除股票成功!
return;
}}
cout<
数据中没有该股票!
//链表中没有该股票的情况
Modifystock(intnChoice)//修改股票
{char*str="
请输入你想修改的该股票的代码:
Stocknode*pnode;
system("
cls"
if(phead==0)//若链表为空链表
pause"
else//若链表不为空
{pnode=head->
Lookupdata(str);
//首先查找出该股票
if(pnode)//如果要查找的股票存在
{cout<
该股票为:
endl<
//把查找出来要修改的股票展示出来
switch(nChoice)
{case1:
//更改股票名
{charname[20];
cout<
你想把股票名称更改成:
cin.getline(name,20);
Flush(cin);
strcpy(pnode->
GetName(),name);
break;
case2:
//更改股票代码
{charcode[6];
你想把股票代码更改成:
cin.getline(code,6);
Flush(cin);
GetCode(),code);
}
cout<
修改后的股票变成:
system("
else//要修改的股票在链表中不存在
链表中没有该股票!
system("
Deletelist()//删除链表
{if(phead==0)cout<
该列表为空列表!
//若链表为空
else//若不为空则把节点从链表头结点开始逐个删除
{Stocknode*pnode;
pnode=phead;
while(pnode)
{phead=phead->
deletepnode;
}}
voidInterface();
//声明函数:
初始界面
voidManagementface();
股票管理界面
voidRegister();
注册
intLogin();
登录
voidreaddata()//从二进制文件中读入数据
{ifstreaminfile("
Stock_File.dat"
ios:
binary|ios:
nocreate);
if(!
infile)//若要读取的二进制文件不存在
要读取的\"
Stock_File.dat\"
文件不存在!
请确认该文件!
现在退出程序..."
exit(0);
Stocknode*p1;
CStock*p2;
infile.eof())//若未到二进制文件结尾则继续把数据读进临时股票链表中
{p1=newStocknode;
p2=newCStock;
infile.read((char*)p2,sizeof(CStock));
if(p2->
GetPrice()==0)
break;
p1->
Getpdata()=p2;
head->
Insert(p1);
infile.close();
voidwritedata()//把临时股票链表中数据写入到二进制文件
pnode=head->
Getphead();
ofstreamoutfile("
out);
while(pnode)//若未到股票链表结尾,则继续把链表中的数据写入到二进制文件中
{outfile.write((char*)pnode->
Getpdata(),sizeof(CStock));
outfile.close();
voidmanagementchoice(intnChoice)//股票管理界面选项判断函数
{switch(nChoice)
{case1:
{head->
Addnewstock();
//添加股票
charstr[30];
while
(1)
{do
{system("
是否继续添加?
(y/n)"
while((strcmp(str,"
{head->
system("
else
return;
}}
case2:
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 股票交易 资料 系统 代码 大全