欢迎来到天天文库
浏览记录
ID:40582137
大小:114.50 KB
页数:13页
时间:2019-08-04
《0508190107徐玉莲 股票交易系统doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计报告1、程序功能简介:股票交易系统的管理程序,可以管理多个股票,输入这些股票的名称、代码、总股数、可交易的股数以及状态,并且可不断添加新股票,但这些只能由管理员操作(输入密码正确方可)。用户先注册再登录(以后可应需要修改用户信息),然后可以买卖股票,股票交易市场的可交易股数随用户买卖股数的情况而变化。(结合了5.3-1、5.3-2的所有功能)2、程序设计变量说明:CCustNode*m_pHead;//指向用户链表的头指针CCustomer*m_pData;//指向用户数据信息的指针CCustNode
2、*m_pNext;//指向用户链表的下一个结点charm_chName[21];//用户名charm_chPassword[11];//用户密码doublem_dlmoney;//用户拥有现金数CCustStockList*m_pStockList;//用户股票链表类的指针charm_chName[20];//股票名称charm_chCode[10];//股票代码longintm_nVolume;//股票总股数longintm_nVolume_available;//可交易股数boolm_bHangup;
3、//表示股票是否挂起,为真则挂起doublem_dlPrice;//股票价格inttemp;//表示用户指定股票的股数CCustStockNode*m_pHead;//指向用户拥有股票的链表头结点的指针CCustStock*m_pData;//指向用户股票的数据类指针CCustStockNode*m_pNext;//指向用户股票链表下一个结点CStockNode*m_pHead;//指向股票交易系统股票链表头结点CStock*m_pData;//指向股票的数据类指针CStockNode*m_pNext;//指
4、向股票链表下一结点CCustListm_CustList;//定义一个CCustList类用户链表类CStockListm_StockList;//定义一个CStockList股票链表类CCustomercust;//定义的CCustomer类用户CStockstock;//定义的CStock类股票charcode[6];//股票代码charname;//用户名CSystemsys;//定义一个股票交易系统3、程序设计思想:1)类的封装:该程序比较复杂,原程序中股票与用户的数据都是由文件保存的,共有三种文件:
5、用户名及密码文件“customer.dat”,存储用户注册的用户名及密码,登录时核对用户名及密码;用户买卖股票数据文件用具体的用户名来命名,即以用户名作为文件名,存放用户买卖股票的名称、代码、数量;股票市场资料文件“stock.dat”,存放市场上管理的股票的目前交易情况。这三种文件都是二进制文件,只能用程序读写,起到保密的作用。按照课程设计题目的要求,将程序中数据的结构作成了链表的形式,设计了三个链表:市场股票CStockList、用户CCustList及用户购买的股票CCustStockList类,分别用
6、这些类的对象存放股票市场的数据、用户的数据及具体用户买卖股票的数据。每一种类的对象都各成一个体系,非常清晰。股票市场上的数据具体增加、修改、删除股票时需要输入密码(事先设定的,这里是xuyulian),在下级菜单上运行。但这些链表的基本功能事先都已在链表类中设计完成,分配在具体的选项中调用即可。类中事先定义的功能函数示例:voidShow()//显示用户购买的股票资料{cout<7、/增加股票数{m_nVolume+=num;}intSub(intnum)//减少股票数{if(m_nVolume-num>=0){m_nVolume-=num;returnnum;}else{inttemp=m_nVolume;cout<8、ckNode*pNode)//在首部添加结点{pNode->m_pNext=m_pHead->m_pNext;m_pHead->m_pNext=pNode;}CCustStockNode*DeleteNode(CCustStockNode*pNode)//删除指定的结点,返回该结点指针{GetListPreNode(pNode)->m_pNext=pNode->m_pNext;returnpNode
7、/增加股票数{m_nVolume+=num;}intSub(intnum)//减少股票数{if(m_nVolume-num>=0){m_nVolume-=num;returnnum;}else{inttemp=m_nVolume;cout<8、ckNode*pNode)//在首部添加结点{pNode->m_pNext=m_pHead->m_pNext;m_pHead->m_pNext=pNode;}CCustStockNode*DeleteNode(CCustStockNode*pNode)//删除指定的结点,返回该结点指针{GetListPreNode(pNode)->m_pNext=pNode->m_pNext;returnpNode
8、ckNode*pNode)//在首部添加结点{pNode->m_pNext=m_pHead->m_pNext;m_pHead->m_pNext=pNode;}CCustStockNode*DeleteNode(CCustStockNode*pNode)//删除指定的结点,返回该结点指针{GetListPreNode(pNode)->m_pNext=pNode->m_pNext;returnpNode
此文档下载收益归作者所有