版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品VC+ 课程设计 - 股票交易系统设计程序名称:股票交易系统难易级别: A 级选择这个程序,我主要考虑到以下方面的原因:1.本程序难度较大,在编写程序的过程当中可以更加深刻地理解VC+ 当中的相关知识点,可以更好地通过实践了解编程的内涵。2. 该课题所涉及到的内容和实际生活联系比较紧密,所以编写此程序意义较大。3. 该课题是管理系统方面的小型程序,这类程序可以不断地扩充新的内容新的功能,可塑性高,实用性好,有很好的实际意义。程序设计要求 :本程序要求改变数据结构,每个用户的数据库中要增加现金数成员。要求增加股票交易系统的接口设计:a. Add New Stock( )增加新的股票;b. D
2、elete OldStock( )删除旧的股票;c. Hang Up Stock( )挂起股票,停止交易;d. Modify Stock (Stock修改股票的名称代码。 要求的以上的修改都要输入密码, 在输入正确的密码之后才能够进入数据库进行修改。将股票数据的处理由数组变成链表,可以处理多只股票的交易,链表一交易代码的序号进行排序。程序功能介绍:股票交易系统是一个小型的管理程序,在这个系统里,可以管理至多5 只股票的交易。首先用户要注册,注册完后方可登陆。在登陆的界面中,管理员登陆后可以删减股票,挂起股票,解挂股票等等,通过这些功能来管理股票。同时,用户还可以查看股票情况,帮助自己进行股票的
3、有效交易。股票的市场情况可根据用户的使用情况而随之变化。程序完成过程:1 、 粗读程序第一遍看程序时,发现程序太长了,只是对整个程序有一个大致的了解。程序的主要功能是实现用户对股票操作系统的自主可视操作,本完成用户和股票数据的存储,实现反复操作。程序主要通过类来完成功能,涉及到数组及输入输出流的使用。在主函数中调用类中方法,实现页面中的转换,对数据进行处理。一开始有一点畏难情绪。2 、 细读程序以下对程序中类及其函数进行分析Stock 类:存放股票数据,类中方法对股票进行各项操作。Void Hang Up Stock( );/ 挂起股票void Un Hang Stock();/解挂股票感谢下
4、载载精品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 *
5、,Customer) const;/登录void Register(Customer *);/注册void Stock Portfolio(Customer) const; / Portfolio-有价证券程序功能为对用户的指令进行处理,模拟股市的操作,完成对股票和对用户的修改及存档。在认清设计方向的基础上,反复细读程序,我分析了Stock 和 Customer类下数据与成员函数的功能。程序反复声明了Stock和 Customer类的同一对象,浪费了系统资源;在一些函数调用中也存在缺陷,比如存在Input_For_New_Stock()方法,但是只有在第一次使用是才会调用, Customer
6、类中原有 Switch_function ()也没有调用。在用户选择登录时,无法辨别用户名,只根据密码进行登录,当遇到密码相同的用户时,就分不清楚用户。密码是显示输入的不能有效的受到保护。由于这是个小程序,数据通过数组存储,而不是通过指针,这使程序方便易懂,但限制了数据的空间,无法达到指针链表所能实现的不定长度存储。但是从现阶段的使用来看指针链表的形式过于麻烦反而会造成程序过度的复杂。现对系统进行操作分析:首先进入界面,进行用户识别,在这里用户可以查看市场信息、注册新用户、登录用户和分析股票。然后若登录,显示下一股票操作界面,选其他有相应操作。在股票操作界面中,有买入、卖出、添加新股票、挂出股
7、票 ,恢复交易、删除已有股、挂起股票 , 停止交易、修改代码及名称、查看等操作选择,用户可根据提示,完成相应操作。其中添加新股票、挂出股票 ,恢复交易、删除已有股、挂起股票 ,停止交易、修改代码及名称操作只对管理员开放。3 、修改程序首先,将重复声明的 Stock 和 Customer 类对象删除,使用 Stock 类的全局对象 temp 和 shareMAX 及 Customer 类的全局对象 cust 来实现数据的反复读取和存储,并修改因此引起的变动(如将Customer类中的 charshareholdingname30改为 charshareholdingname530; char s
8、hare holding code5改为char share holding code55等)。感谢下载载精品在类中方法中涉及到查询处添加打印股票清单细明项目:(for(i=0;i<MAX;+i)sharei.Stock Exchange_Market();)。修改已存在的Input For New Stock(),使其可在空位置存储新股票信息。对于新的函数的增加完成情况:新增加的函数完成的情况Input_For_New_Stock() 先对股票数据进行读取,显示股票信息,提示添加新股票输入股票代码,考虑到输入流读取时会出现的一些错误,如输入回车,输入错误代码等,我对程序加入了一些代码,
9、从而解决这些异常。然后调用Input_For_New_Stock(),提示输入股票的名称、代码、流通股数量、发行价,同时随机生成股票上市价。最后,在Stock_File.dat的空位置插入存储新股票信息。Delete_Stock()删除旧股先对股票数据进行读取,显示股票信息。然后票调用Delete_Stock(),提示输入要删除的股票代码,同样考虑到输入流读取时会出现的一些错误,如输入回车,输入错误代码等,我加入了一些代码,从而解决这些异常。最后,存储修改后的信息。Hang_Up_Stock()挂起股票,先对股票数据进行读取,显示股票信息。然后停止交易调用 Hang_Up_Stock(),提示
10、输入要挂起的股票代码,同样考虑到输入流读取时会出现的一些错误,如输入回车,输入错误代码等,我加入了一些代码,从而解决这些异常。最后,存储修改后的信息。Modify_Stock()修改股票的名先对股票数据进行读取,显示股票信息。然后称、代码调用 Modify_Stock(),提示输入要修改的股票代码,同样考虑到输入流读取时会出现的一些错误,如输入回车,输入错误代码等,我加入了一些代码,从而解决这些异常。最后,存储修改后的信息。感谢下载载精品修改后的结果存入Stock_File.dat。通过 stock 成员函数Save ()来实现此要求。程序创新:1.在程序设计要求外我添加了Un_Hang_St
11、ock()解挂股票,恢复交易。先对股票数据进行读取,显示股票信息。 然后调用Un_Hang_Stock(),提示输入要解挂的股票代码,同样考虑到输入流读取时会出现的一些错误,如输入回车,输入错误代码等,我加入了一些代码,从而解决这些异常。最后,存储修改后的信息。2. 加入股票发行价、上市价和帐户总资产、余额、市值等数据,并进行计算、输出等操作,加强系统功能,使系统更实用、逼真。程序调试分析:用户类为股票类的友元类实现对股票类的调用1.是否有记录登陆函数2.核对用户,密码1 输入用户名注册函数2 输入密码用户类股票类3 是否设置为管理员实现与股票类中的管理函数相用户交易主界面函数连接主界面函数(
12、进入交易系统)显示信息1买入2买出3添加新股票 4挂出股票恢复股票操作函数交易 5 删除股票6 挂起股票7修改代码名称8 查看9退出保存股票信息函数实现对股票文件的保存程序先进行用户注册才能够进入用户交易的主界面,在主菜单下只能看到股票信息不能操作买卖。登陆后方能实现对股票的操作,进一步如果是管理员可以修改股票信息改变股票交易状态。总结 (编程心得 ):通过本课题,我复习了类和数组,更好的掌握了类间函数调用的关系以及如何实现类间复杂的相关调用。同时,我学习了输入输出流的使用,懂得了如何从特定的地址读取数据,如何正确将信息存储到特定的位置。此外,在调试的过程中我还碰到了一些问题,运行时经常出现感
13、谢下载载精品一些意料之外的输出或无法输出预想的结果,症结在于没有合理的使用break 、 getch() 、cin.get()等一些编程课本上未学过的函数。最后,通过翻阅资料与上机实践终于解决了这些问题。通过阅读本课题的程序,我掌握了一些阅读程序的技巧,培养了认真阅读程序的好习惯,并能够从较长的程序中找到程序的核心实现部分。此次课程设计让我借此契机加深领悟了 C+ 的内涵,让我对编程有了实质性的了解和大致掌握,在不断思考与上机调试的过程中,培养自己的耐心,也培养了自己的意志。最终,终于完成了课程设计的任务。关键源代码及注解(修改后的代码用下划线标示)/*股票交易系统- 源代码及关键源代码注解如
14、下:*/#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;int gushu;class Customer;class Stockprivate:float faxing,shangshi;/股
15、票发行价,上市价char stock_name20;/股票名称char stock_code6;/股票代码char choice;/Interface()下选择int hang;/是否挂起( 1 为是, 0 为否)long int stock_volume;/股票总股数long int volume_available;/股票可流通量public:Stock();感谢下载载精品void Hang_Up_Stock();/挂起股票void Un_Hang_Stock();/解挂股票void Modify_Stock(Stock );/修改股票void Delete_Stock();/删除股票vo
16、id Interface();/选择面板void Stock_Exchange_Market();/显示信息void Switch_choice();/选择服务void Input_For_New_Stock();/加入新股票void Market_Analysis();/市场分析void Save(Stock);/保存修改friend class Customer;class Customerfriend class Stock;private:int gly;/是否管理员char customer_name30;/用户名char password10;/密码char share_holdi
17、ng_name530;/持有股票名称char share_holding_code55;/持有股票代码long int share_holding_value5;/持有股票数量double money,shzh,zzch;/现金余额,市值,总资产public:Customer();void Log_in(char *) const;/登录void Register(Customer *);/注册void Stock_Portfolio() const; / Portfolio-有价证券;Stock temp,shareMAX;/全局变量,声明股票对象Customer cust;/声明用户对象,
18、全局变量/Customer构造Customer:Customer()strcpy(Customer:customer_name,"");感谢下载载精品for(i=0;i<MAX;i+)strcpy(Customer:share_holding_namei,"");strcpy(Customer:share_holding_codei,"");share_holding_valuei=0;money=shzh=zzch=0;void Customer:Log_in(char *pass_word) constif(strcmp(p
19、ass_word,password)=0)/核对密码Stock_Portfolio();elsecout<<endl;cout<<"密码错误 ."<<endl;void Customer:Register(Customer *cust)char ch;system("cls"); /执行系统命令:清屏=clscin.get();cout<<"欢迎进入*股票交易系统 *"<<endl;cout<<""<<endl;cout<&l
20、t;"输入用户名 : "cin.getline(customer_name,30);cout<<"输入您的密码 ( 少于 8 字 ): "<<endl;char ch;int i=0;cout.flush();ch=getch();while(ch!=13)感谢下载载精品passwordi+=ch;cout<<'*'cout.flush();ch=getch();passwordi=0;cout<<endl;cout<<"输入您的资金 :"cin>>
21、;zzch;shzh=0;money=zzch;cout<<"是否设为管理员?(y/n)"<<endl;cin>>ch;if(ch='y'|ch='Y')gly=1;cout<<"已设置 ."else if(ch='n'|ch='N')gly=0;elsecout<<"默认为非管理员."getch();system("cls");cout<<endl<<endl;cou
22、t<<"注册成功 ."<<endl;cout<<"按任意键返回 ."<<endl;getch();void Customer:Stock_Portfolio() const/用户交易操作系统int i,a;char ch,share_code6,str20;感谢下载载精品long int volume;start:system("cls");cout<<endl<<endl;cout<<"ttt欢迎使用 !"<<endl
23、;cout<<"tt*股票交易系统 *"<<endl;cout<<"tt-"<<endl;cout<<"tt用户 : "<<cust.customer_name<<endl<<endl;cout<<"tt买入.1"<<endl;cout<<"tt卖出.2"<<endl;cout<<"tt添加新股票 .3"<<e
24、ndl;cout<<"tt挂出股票 ,恢复交易 .4"<<endl;cout<<"tt删除已有股 .5"<<endl;cout<<"tt挂起股票 ,停止交易 .6"<<endl;cout<<"tt修改代码及名称 .7"<<endl;cout<<"tt查看.8"<<endl;cout<<"tt退出.0"<<endl;cout<&l
25、t;endl<<"tt输入您的选择 : "cin>>ch;if(ch!='1')&&(ch!='2')&&(ch!='3')&&(ch!='4')&&(ch!='5')&&(ch!='6')&&(ch!='7')&&(ch!='8')&&(ch!='0')goto start;els
26、eswitch(ch)case '3':/ 加入新股票if(cust.gly=1)for(i=0;i<MAX;i+)if(strcmp(sharei.stock_name,"")=0)/在股票数据空处添加新的内容sharei.Input_For_New_Stock();temp.Save(share);/写数据感谢下载载精品getch();goto start;elsecout<<"您无权添加股票!"<<endl;getch();break;case '5': /删除股票if(cust.gly
27、=1)system("cls");cout<<"nntt*股票交易系统 *"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股t 可动股t 发行价t 上市价 "<<endl;for(i=0;i<MAX;+i)sharei.Stock_Exchange_Market();cin.get();temp.Delete_Stock();cin.get();break;elsecout<<"
28、;您无权删除股票!"<<endl;getch();break;感谢下载载精品case '4': /解挂股票if(cust.gly=1)system("cls");cout<<"nntt*股票交易系统 *"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股t 可动股t 发行价t 上市价 "<<endl;for(i=0;i<MAX;+i)sharei.Stock_Ex
29、change_Market();cin.get();temp.Un_Hang_Stock();break;elsecout<<"您无权恢复股票!"<<endl;getch();break;case '6':/ 挂起股票if(cust.gly=1)system("cls");cout<<"nntt*股票交易系统 *"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股t 可
30、动股t 发行价t 上市价 "<<endl;for(i=0;i<MAX;+i)sharei.Stock_Exchange_Market();cin.get();感谢下载载精品temp.Hang_Up_Stock();/进行break;elsecout<<"您无权挂起股票!"<<endl;getch();break;case '7':/修改股票if(cust.gly=1)system("cls");cout<<"nntt*股票交易系统 *"<<en
31、dl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股t 可动股t 发行价t 上市价 "<<endl;for(i=0;i<MAX;+i)sharei.Stock_Exchange_Market();cin.get();temp.Modify_Stock(share);break;elsecout<<"您无权挂起股票!"<<endl;getch();break;case '1':/买入system("cls&
32、quot;);cout<<"nntt*股票交易系统*"<<endl;感谢下载载精品cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股 t 可动股t 发行价上市价状态 "<<endl;for(i=0;i<MAX;+i)sharei.Stock_Exchange_Market();/显示市场信息cout<<"tt"<<endl;cout<<"持有股票市值 t 可用资金 t
33、总资产 "<<endl;cout<<cust.shzh<<"tt"<<cust.money<<"tt"<<cust.zzch<<endl;cin.get();cout<<endl<<"输入您要购买的股票代码:"cin.getline(share_code,6);if(strcmp(share_code,"")!=0)/当输入回车时报错i=0;flag=0;while(i<MAX)&&a
34、mp;(!flag)if (strcmp(sharei.stock_code,share_code)=0)if(sharei.hang=1)cout<<"股票已挂起,停止交易!"<<endl;break;elsegushu=int(cust.money/sharei.shangshi);cout<<"您最多可购买:"<<gushu<<endl;flag=1;cout<<"输入购买量 : "cin>>volume;a=cin.rdstate();感谢下载
35、载精品while(a)/判断输入是否为整数cin.clear();cin.getline(str,20);cout<<"非法输入 ,请重新输入一整数."<<endl;cin>>volume;a=cin.rdstate();if(sharei.volume_available>=volume&&cust.money>=volume*sharei.shangshi)/ 改动各数据cust.share_holding_valuei=cust.share_holding_valuei+volume; strncpy(c
36、ust.share_holding_namei,sharei.stock_name,30); strcpy(cust.share_holding_codei,sharei.stock_code); sharei.volume_available=sharei.volume_available-volume; cust.money-=sharei.shangshi*volume;cust.shzh+=sharei.shangshi*volume;system("cls");cout<<"交易成功 !"<<endl;cout<&
37、lt;endl;cout<<"tt*股票交易系统 *"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股 t 可动股t 发行价上市价状态 "<<endl;for(i=0;i<MAX;i+)cout<<""<<sharei.stock_name<<"t"<<sharei.stock_code<<"t"&l
38、t;<sharei.stock_volume<<"t"<<cust.share_holding_valuei<<"t"<<sharei.faxing<<"t"<<sharei.shangshi<<"t"<<(sharei.hang=0?"未挂起 ":" 已挂起 ")<<endl;cout<<"持有股票市值 t 可用资金 t 总资产 "
39、;<<endl;cout<<cust.shzh<<"tt"<<cust.money<<"tt"<<cust.zzch<<endl;cin.get();ofstream dataFile (cust.customer_name,ios:binary);感谢下载载精品dataFile.write(char*)(&cust),sizeof(cust);temp.Save(share);elseif(sharei.volume_available<=volume)c
40、out<<sharei.stock_name<<" 的可购股量少于您所要。"cout<<endl;cout<<"退出 . "cout<<endl;getch();system("cls");goto start;else if(cust.money<=volume*sharei.shangshi)cout<<"资金不足 !"cout<<"退出 . "cout<<endl;getch();syst
41、em("cls");goto start;elsei+;while(i=MAX)system("cls");cout<<"您所输入代码错误."<<endl;cout<<"退出 . "<<endl;goto start;感谢下载载精品elsecout<<endl<<"输入错误 !"cin.get();break;case '2':/卖出股票system("cls");cout<<
42、"tt*股票交易系统*"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股 t 可动股t 发行价上市价状态 "<<endl;for(i=0;i<MAX;i+)cout<<""<<sharei.stock_name<<"t"<<sharei.stock_code<<"t"<<sharei.stock_vo
43、lume<<"t"<<cust.share_holding_valuei<<"t"<<sharei.faxing<<"t"<<sharei.shangshi<<"t"<<(sharei.hang=0?"未挂起 ":" 已挂起 ")<<endl;cout<<"tt"<<endl;cout<<"持有股票市值
44、t 可用资金 t 总资产 "<<endl;cout<<cust.shzh<<"tt"<<cust.money<<"tt"<<cust.zzch<<endl;cin.get();cout<<endl<<"输入所卖股代码: "cin.getline(share_code,6);if(strcmp(share_code,"")!=0)i=0;flag=0;while(i<MAX)&&
45、(!flag)感谢下载载精品if (strcmp(sharei.stock_code,share_code)=0)if(sharei.hang=1)cout<<"股票已挂起,停止交易!"<<endl;break;elseflag=1;cout<<"输入卖出量 : "cin>>volume;a=cin.rdstate();while(a)cin.clear();cin.getline(str,20);cout<<"非法输入 ,重新输入一整数."<<endl;cin&
46、gt;>volume;a=cin.rdstate();if(cust.share_holding_valuei>=volume)cust.share_holding_valuei=cust.share_holding_valuei-volume; sharei.volume_available=sharei.volume_available+volume; cust.money+=sharei.shangshi*volume; cust.shzh-=sharei.shangshi*volume; system("cls");cout<<"交
47、易成功 !"<<endl;cout<<endl;cout<<"tt*股票交易系统*"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股 t 可动股t 发行价上市价状态 "<<endl;for(i=0;i<MAX;i+)cout<<""<<sharei.stock_name<<"t"<<sharei.s
48、tock_code感谢下载载精品<<"t"<<sharei.stock_volume<<"t"<<cust.share_holding_valuei<<"t"<<sharei.faxing<<"t"<<sharei.shangshi<<"t"<<(sharei.hang=0?"未挂起 ":" 已挂起 ")<<endl;cout
49、<<" 持有股票市值 t 可用资金 t 总资产 "<<endl; cout<<cust.shzh<<"tt"<<cust.money<<"tt"<<cust.zzch<<endl; ofstream data(cust.customer_name,ios:binary); data.write(char*)(&cust),sizeof(cust); temp.Save(share);elsecout<<"您没有
50、足够股票可卖, "cout<<"或您没有购买此股。按任意键返回"<<endl;cout<<"按任意键返回. "<<endl;getch();break;cin.get();elsei+;while(i=MAX)system("cls");cout<<"您没有购买该股或您输入错误。"<<endl;cout<<"退出 . "getch();goto start;感谢下载载精品else cout<<
51、;endl<<"输入错误 !"cin.get();break;case '8':/ 查看信息system("cls");cout<<"tt*股票交易系统*"<<endl;cout<<"tt-"<<endl;cout<<"公司 tt代码t 流通股 t 可动股t 发行价上市价状态 "<<endl;for(int i=0;i<MAX;i+)cout<<""<&
52、lt;sharei.stock_name<<"t"<<sharei.stock_code<<"t"<<sharei.stock_volume<<"t"<<cust.share_holding_valuei<<"t"<<sharei.faxing<<"t"<<sharei.shangshi<<"t"<<(sharei.hang=0?&q
53、uot;未挂起 ":" 已挂起 ")<<endl;cout<<"tt"<<endl;cout<<"持有股票市值 t 可用资金 t 总资产 "<<endl;cout<<cust.shzh<<"tt"<<cust.money<<"tt"<<cust.zzch<<endl;getch();break;/ 返回主页面case '0':temp.Interface();goto start;Stock:Stock()num_of_stock=0;感谢下载载精品volume_available=stock_volume;void Stock:Interface()system("cls");cout<<"nntt*股票交易市场 *"<<endl;cout<<"tt"<<endl;cout<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度供应链反担保保证合同书3篇
- 2025年度个人助学贷款合同3篇
- 2024清罐拆除工程附带特种作业人员培训合同3篇
- 二零二五年度农业科技公司股东退股保密与土地使用协议3篇
- 2024年网络安全员聘书3篇
- 揭阳古建施工方案
- 2025版特许经营合同:快餐品牌与加盟商之间的连锁加盟协议3篇
- 2024年早教市场深度调查评估及投资方向研究报告
- 二零二五年度儿童玩具展览合作合同范本2篇
- 2024年矿业资产并购专项法律咨询协议版B版
- 中国珠宝市场发展报告(2019-2024)(中英)-中国珠宝玉石首饰行业协会
- 双面埋弧焊螺旋钢管公称外公壁厚和每米理论重量
- 富士施乐VC2265打印机使用说明SPO
- 服务态度决定客户满意度试题含答案
- 中学历史教育中的德育状况调查问卷
- 教科版四年级科学上册全册复习教学设计及知识点整理
- 重庆万科渠道制度管理办法2022
- 上海黄金交易所贵金属交易员题库
- 蒸汽管道设计表(1)
- 提捞采油安全操作规程
- in、ing对比辨音练习.doc
评论
0/150
提交评论