C++ 小型股票交易系统的设计及代码Word文档格式.docx
- 文档编号:7265524
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:39
- 大小:24.03KB
C++ 小型股票交易系统的设计及代码Word文档格式.docx
《C++ 小型股票交易系统的设计及代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++ 小型股票交易系统的设计及代码Word文档格式.docx(39页珍藏版)》请在冰点文库上搜索。
一开始有一点畏难情绪。
2、细读程序
以下对程序中类及其函数进行分析
Stock类:
存放股票数据,类中方法对股票进行各项操作。
VoidHangUpStock();
//挂起股票voidUnHangStock();
//解挂股票
voidModifyStock(Stock[]);
//修改股票
voidDeleteStock();
//删除股票voidInterface();
//选择面板
voidStockExchangeMarket();
//显示信息
voidSwitchchoice();
//选择服务
voidInputForNewStock();
//加入新股票
voidMarketAnalysis();
//市场分析
voidSave(Stock[]);
//保存修改
Customer类:
存放用户信息,类中方法对用户进行各项操作。
Customer();
//对用户初始化
voidLogin(char*,char*,Customer)const;
//登录
voidRegister(Customer*);
//注册
voidStockPortfolio(Customer)const;
//Portfolio--有价证券
程序功能为对用户的指令进行处理,模拟股市的操作,完成对股票和对用户的修改及存档。
在认清设计方向的基础上,反复细读程序,我分析了Stock和Customer类下数据与成员函
数的功能。
程序反复声明了Stock和Customer类的同一对象,浪费了系统资源;
在一些函数调
用中也存在缺陷,比如存在Input_For_New_Stock()方法,但是只有在第一次使用是才会调用,
Customer类中原有Switch_function()也没有调用。
在用户选择登录时,无法辨别用户名,只根据密码进行登录,当遇到密码相同的用户时,就分不清楚用户。
密码是显示输入的不能有效的受到保护。
由于这是个小程序,数据通过数组存储,而不是通过指针,这使程序方便易懂,但限制了
数据的空间,无法达到指针链表所能实现的不定长度存储。
但是从现阶段的使用来看指针链表
的形式过于麻烦反而会造成程序过度的复杂。
现对系统进行操作分析:
首先进入界面,进行用户识别,在这里用户可以查看市场信息、
注册新用户、登录用户和分析股票。
然后若登录,显示下一股票操作界面,选其他有相应操作。
在股票操作界面中,有买入、卖出、添加新股票、挂出股票,恢复交易、删除已有股、挂起股票,停止交易、修改代码及名称、查看等操作选择,用户可根据提示,完成相应操作。
其中添加新股票、挂出股票,恢复交易、删除已有股、挂起股票,停止交易、修改代码及名称操作只对管理员开放。
3、修改程序
首先,将重复声明的Stock和Customer类对象删除,使用Stock类的全局对象temp和
share[MAX]及Customer类的全局对象cust来实现数据的反复读取和存储,并修改因此引起的变动(如将Customer类中的charshareholdingname[30]改为charshareholdingname[5][30];
charshareholdingcode[5]改为charshareholdingcode[5][5]等)。
在类中方法中涉及到查询处添加打印股票清单细明项目:
(for(i=0;
i<
MAX;
++i)
{
share[i].StockExchange_Market();
}
)。
修改已存在的InputForNewStock(),使其可在空位置存储新股票信息。
在理清了思路和对原来的源程序的分析思考,我对程序有了更为全面的了解,对所要添补
或改进的程序有了大致的思路。
然后对原程序一遍又一遍的阅读,不断地改进思路,调整想法。
分析出的程序流程如下:
对于新的函数的增加完成情况:
新增加的函数完成的情况
(1)Input_For_New_Stock()——先对股票数据进行读取,显示股票信息,提示
添加新股票输入股票代码,考虑到输入流读取时会出现的一些错
误,如输入回车,输入错误代码等,我对程序加入了
一些代码,从而解决这些异常。
然后调用
Input_For_New_Stock(),提示输入股票的名称、代码、流通股数量、发行价,同时随机生成股票上市价。
最后,在Stock_File.dat的空位置插入存储新股票信息。
(1)Delete_Stock()——删除旧先对股票数据进行读取,显示股票信息。
然后
股票调用Delete_Stock(),提示输入要删除的股票代码,同
样考虑到输入流读取时会出现的一些错误,如输入回
车,输入错误代码等,我加入了一些代码,从而解决
这些异常。
最后,存储修改后的信息。
Hang_Up_Stock()——挂起股票,停止交先对股票数据进行读取,显示股票信息。
易调用Hang_Up_Stock(),提示输入要挂起的股票代码,
同样考虑到输入流读取时会出现的一些错误,如输入
回车,输入错误代码等,我加入了一些代码,从而解
决这些异常。
Modify_Stock()——修改股票的名称、代先对股票数据进行读取,显示股票信息。
码调用Modify_Stock(),提示输入要修改的股票代码,同
修改后的结果存入Stock_File.dat。
通过stock成员函数Save()来实现此要求。
程序创新:
1.在程序设计要求外我添加了Un_Hang_Stock()——解挂股票,恢复交易。
先对股票
数据进行读取,显示股票信息。
然后调用Un_Hang_Stock(),提示输入要解挂的股
票代码,同样考虑到输入流读取时会出现的一些错误,如输入回车,输入错误代码
等,我加入了一些代码,从而解决这些异常。
2.加入股票发行价、上市价和帐户总资产、余额、市值等数据,并进行计算、输出等
操作,加强系统功能,使系统更实用、逼真。
编程心得:
通过本课题,我复习了类和数组,更好的掌握了类间函数调用的关系以及如何实现类间复
杂的相关调用。
同时,我学习了输入输出流的使用,懂得了如何从特定的地址读取数据,如何
正确将信息存储到特定的位置。
此外,在调试的过程中我还碰到了一些问题,运行时经常出现
一些意料之外的输出或无法输出预想的结果,症结在于没有合理的使用break、getch()、
cin.get()等一些编程课本上未学过的函数。
最后,通过翻阅资料与上机实践终于解决了这些问
题。
通过阅读本课题的程序,我掌握了一些阅读程序的技巧,培养了认真阅读程序的好习惯,
并能够从较长的程序中找到程序的核心实现部分。
此次课程设计让我借此契机加深领悟了C++的内涵,让我对编程有了实质性的了解和大致
掌握,在不断思考与上机调试的过程中,培养自己的耐心,也培养了自己的意志。
最终,终于
完成了课程设计的任务。
关键源代码及注解(修改后的代码用下划线标示)
/*股票交易系统--源代码及关键源代码注解如下:
*/
#include<
iostream.h>
stdlib.h>
string.h>
conio.h>
fstream.h>
iomanip.h>
time.h>
#defineMAX5
inti=0,j=0,Hang,flag;
intnum_of_stock;
intgushu;
classCustomer;
classStock
private:
floatfaxing,shangshi;
//股票发行价,上市价
charstock_name[20];
//股票名称
charstock_code[6];
//股票代码
charchoice;
//Interface()下选择
inthang;
//是否挂起(1为是,0为否)
longintstock_volume;
//股票总股数
longintvolume_available;
//股票可流通量
public:
Stock();
voidHang_Up_Stock();
//挂起股票
voidUn_Hang_Stock();
voidModify_Stock(Stock[]);
voidDelete_Stock();
//删除股票
voidInterface();
voidStock_Exchange_Market();
voidSwitch_choice();
voidInput_For_New_Stock();
voidMarket_Analysis();
friendclassCustomer;
};
classCustomer
friendclassStock;
intgly;
//是否管理员
charcustomer_name[30];
//用户名
charpassword[10];
//密码
charshare_holding_name[5][30];
//持有股票名称
charshare_holding_code[5][5];
//持有股票代码
longintshare_holding_value[5];
//持有股票数量
doublemoney,shzh,zzch;
//现金余额,市值,总资产
voidLog_in(char*)const;
voidStock_Portfolio()const;
Stocktemp,share[MAX];
//全局变量,声明股票对象
Customercust;
//声明用户对象,全局变量
//Customer构造
Customer:
:
Customer()
strcpy(Customer:
customer_name,"
"
);
for(i=0;
i++)
share_holding_name[i],"
share_holding_code[i],"
share_holding_value[i]=0;
money=shzh=zzch=0;
}
voidCustomer:
Log_in(char*pass_word)const
if(strcmp(pass_word,password)==0)//核对密码
Stock_Portfolio();
else
cout<
<
endl;
密码错误..."
Register(Customer*cust)
charch;
system("
cls"
//执行系统命令:
清屏=cls
cin.get();
欢迎进入*************股票交易系统***********"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
输入用户名:
"
;
cin.getline(customer_name,30);
输入您的密码(少于8字):
inti=0;
cout.flush();
ch=getch();
while(ch!
=13)
password[i++]=ch;
'
*'
password[i]=0;
输入您的资金:
cin>
>
zzch;
shzh=0;
money=zzch;
是否设为管理员?
(y/n)"
ch;
if(ch=='
y'
||ch=='
Y'
)
gly=1;
已设置..."
elseif(ch=='
n'
N'
gly=0;
默认为非管理员..."
getch();
endl<
注册成功..."
按任意键返回..."
Stock_Portfolio()const//用户交易操作系统
inti,a;
charch,share_code[6],str[20];
longintvolume;
start:
\t\t\t欢迎使用"
\t\t*************股票交易系统***********"
\t\t-----------------------------------------"
\t\t用户:
cust.customer_name<
\t\t买入..........................[1]"
\t\t卖出..........................[2]"
\t\t添加新股票....................[3]"
\t\t挂出股票,恢复交易.............[4]"
\t\t删除已有股....................[5]"
\t\t挂起股票,停止交易.............[6]"
\t\t修改代码及名称................[7]"
\t\t查看..........................[8]"
\t\t退出..........................[0]"
\t\t输入您的选择:
if((ch!
='
1'
)&
&
(ch!
2'
3'
4'
5'
6'
7'
8'
0'
))
gotostart;
switch(ch)
case'
{//加入新股票
if(cust.gly==1)
if(strcmp(share[i].stock_name,"
)==0)//在股票数据空处添加新的内容
share[i].Input_For_New_Stock();
temp.Save(share);
//写数据
您无权添加股票!
break;
{//删除股票
\n\n\t\t*************股票交易系统**********"
公司\t\t代码\t流通股\t可动股\t发行价\t上市价"
share[i].Stock_Exchange_Market();
temp.Delete_Stock();
您无权删除股票!
{//解挂股票
\n\n\t\t***********股票交易系统***********"
temp.Un_Hang_Stock();
您无权恢复股票!
{//挂起股票
\t\t-------------------------------------------"
temp.Hang_Up_Stock();
//进行
您无权挂起股票!
{//修改股票
\n\n\t\t************股票交易系统**********"
\t\t------------------------------------------"
temp.Modify_Stock(share);
{//买入
\t\t----------------------------------------------"
公司\t\t代码\t流通股\t可动股\t发行价上市价状态"
//显示市场信息
\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
持有股票市值\t可用资金\t总资产"
cust.shzh<
\t\t"
cust.money<
cust.zzch<
输入您要购买的股票代码:
cin.getline(share_code,6);
if(strcmp(share_code,"
)!
=0)//当输入回车时报错
i=0;
flag=0;
while((i<
MAX)&
(!
flag))
if(strcmp(share[i].stock_code,share_code)==0)
if(share
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 小型股票交易系统的设计及代码 小型 股票交易 系统 设计 代码