当前位置:文档之家› C++_小型股票交易系统的设计及代码

C++_小型股票交易系统的设计及代码

C++课程设计-股票交易系统设计程序名称:股票交易系统难易级别:A级选择这个程序,我主要考虑到以下方面的原因:1. 本程序难度较大,在编写程序的过程当中可以更加深刻地理解VC++当中的相关知识点,可以更好地通过实践了解编程的内涵。

2.3. 该课题所涉及到的内容和实际生活联系比较紧密,所以编写此程序意义较大。

该课题是管理系统方面的小型程序,这类程序可以不断地扩充新的内容新的功能,可塑性高,实用性好,有很好的实际意义。

程序设计要求:本程序要求改变数据结构,每个用户的数据库中要增加现金数成员。

要求增加股票交易系统的接口设计:a. Add New Stock( )增加新的股票;b. Delete Old Stock( )删除旧的股票;c. Hang Up Stock( )挂起股票,停止交易;d. Modify Stock (Stock [])修改股票的名称代码。

要求的以上的修改都要输入密码,在输入正确的密码之后才能够进入数据库进行修改。

将股票数据的处理由数组变成链表,可以处理多只股票的交易,链表一交易代码的序号进行排序。

程序功能介绍:股票交易系统是一个小型的管理程序,在这个系统里,可以管理至多5只股票的交易。

首先用户要注册,注册完后方可登陆。

在登陆的界面中,管理员登陆后可以删减股票,挂起股票,解挂股票等等,通过这些功能来管理股票。

同时,用户还可以查看股票情况,帮助自己进行股票的有效交易。

股票的市场情况可根据用户的使用情况而随之变化。

程序完成过程:1、粗读程序第一遍看程序时,发现程序太长了,只是对整个程序有一个大致的了解。

程序的主要功能是实现用户对股票操作系统的自主可视操作,本完成用户和股票数据的存储,实现反复操作。

程序主要通过类来完成功能,涉及到数组及输入输出流的使用。

在主函数中调用类中方法,实现页面中的转换,对数据进行处理。

一开始有一点畏难情绪。

2、细读程序以下对程序中类及其函数进行分析Stock类:存放股票数据,类中方法对股票进行各项操作。

Void Hang Up Stock( ) ;//挂起股票void Un Hang Stock();//解挂股票void Modify Stock(Stock []);//修改股票void Delete Stock();//删除股票void Interface();//选择面板void Stock Exchange Market();//显示信息void Switch choice();//选择服务void Input For New Stock();//加入新股票void Market Analysis();//市场分析void Save(Stock[]);//保存修改Customer类:存放用户信息,类中方法对用户进行各项操作。

Customer();//对用户初始化void Log in(char *, char *,Customer) const;//登录void Register(Customer *);//注册void Stock Portfolio(Customer) const; // Portfolio--有价证券程序功能为对用户的指令进行处理,模拟股市的操作,完成对股票和对用户的修改及存档。

在认清设计方向的基础上,反复细读程序,我分析了Stock和Customer类下数据与成员函数的功能。

程序反复声明了Stock和Customer类的同一对象,浪费了系统资源;在一些函数调用中也存在缺陷,比如存在Input_For_New_Stock()方法,但是只有在第一次使用是才会调用,Customer类中原有Switch_function()也没有调用。

在用户选择登录时,无法辨别用户名,只根据密码进行登录,当遇到密码相同的用户时,就分不清楚用户。

密码是显示输入的不能有效的受到保护。

由于这是个小程序,数据通过数组存储,而不是通过指针,这使程序方便易懂,但限制了数据的空间,无法达到指针链表所能实现的不定长度存储。

但是从现阶段的使用来看指针链表的形式过于麻烦反而会造成程序过度的复杂。

现对系统进行操作分析:首先进入界面,进行用户识别,在这里用户可以查看市场信息、注册新用户、登录用户和分析股票。

然后若登录,显示下一股票操作界面,选其他有相应操作。

在股票操作界面中,有买入、卖出、添加新股票、挂出股票,恢复交易、删除已有股、挂起股票, 停止交易、修改代码及名称、查看等操作选择,用户可根据提示,完成相应操作。

其中添加新股票、挂出股票,恢复交易、删除已有股、挂起股票,停止交易、修改代码及名称操作只对管理员开放。

3、修改程序首先,将重复声明的 Stock和 Customer类对象删除,使用 Stock类的全局对象 temp和share[MAX]及Customer类的全局对象cust来实现数据的反复读取和存储,并修改因此引起的变动(如将Customer类中的char share holding name [30]改为char share holding name[5][30];char share holding code[5]改为char share holding code[5][5]等)。

在类中方法中涉及到查询处添加打印股票清单细明项目:(for(i=0;i<MAX;++i){share[i].Stock Exchange_Market();})。

修改已存在的Input For New Stock(),使其可在空位置存储新股票信息。

在理清了思路和对原来的源程序的分析思考,我对程序有了更为全面的了解,对所要添补或改进的程序有了大致的思路。

然后对原程序一遍又一遍的阅读,不断地改进思路,调整想法。

分析出的程序流程如下:对于新的函数的增加完成情况:新增加的函数(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>#include <stdlib.h>#include <string.h>#include <conio.h>#include <fstream.h>#include <iomanip.h>#include <time.h>#define MAX 5int i=0,j=0,Hang,flag;int num_of_stock;。

相关主题