⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.cpp

📁 课程设计做的个人股票管理系统
💻 CPP
字号:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include "Stock.h"
#include "GuestStock.h"
#include "Guest.h"
#include "Link.h"
#include "Menu.h"
#include "#Define.h"
#include "OverloadCout.h"
#include "Show.h"
#include "Search.h"
#include "Sort.h"
#include "Other.h"
#include "Exchange.h"

int main()
{

	cout.precision(2);
	cout<<setiosflags(ios::fixed);
/******************************************
Stock chunlan(600287, "江苏舜天", 100000, 16.91);
UpdateStock(chunlan);

  ShowLatestStockInfo(chunlan);
		cout<<endl;
	*/
	
	
	
	/*****************初始化股票最初信息*************************
	Stock stockObj[10] = {
	Stock(500001, "Google", 100000, 100.01, 100.01),  
	Stock(600028, "中国石化", 100000, 10.07, 10.07), 
	Stock(600072, "江南重工", 100000, 63.97, 63.97),
	Stock(600100, "同方股份", 100000, 24.61, 24.61), 
	Stock(600282, "南钢股份", 100000, 12.55, 12.55), 
	Stock(600287, "江苏舜天", 100000, 7.44, 7.44), 
	Stock(600690, "青岛海尔", 100000, 10.60, 10.60), 
	Stock(600692, "亚通股份", 100000, 6.77, 6.77), 
	Stock(600687, "春兰股份", 100000, 21.08, 21.08), 
	Stock(601381, "工商银行", 100000, 5.78, 5.78)};
	
	  
		for (int i=0; i<10; i++)
		{
		Update(stockObj[i]);
		}
	//****************************************************************/
	/*****************************************************************
	
	  for (int z=0; z<10; z++)
	  {
	  ofstream out;
	  out.open("开盘价", ios::app);
	  out.write((const unsigned char *)(stockObj+z), sizeof(Stock));
	  out.close();
	  }
	/*****************************************************************/
	
	
	/*
	chunlan.SetStkIss(8000);
	UpdateStock(chunlan);
	
	  ShowLatestStockInfo(chunlan);
	  cout<<endl;
	/***********************************************/
	
	/*****
	Stock chunlan;
	chunlan("春兰股份");
	cout<<chunlan;
	************/
	
	
	/******实在想不通,不管了,是你逼我简单的***
	Stock stock[10];
	ifstream fin("股票名字.txt");
	if (!fin)
	{
	cout<<"cannot open"<<endl;
	}
	char str[100];
	
	  for (int i=0; i<2; i++)
	  {
	  fin.read(str, 40);
	  char* token = strtok(str, " ,\t");
	  stock[i](token);
	  }
	  fin.close();
	  //Startup(stock);
	  cout<<stock[0]<<stock[1];
	  
	*********/
	
	
	
	
	
	/**********************/
	Stock stockObj[10];
	stockObj[0]("Google");
	stockObj[1]("中国石化");
	stockObj[2]("江南重工");
	stockObj[3]("同方股份");    
	stockObj[4]("南钢股份");
	stockObj[5]("江苏舜天");
	stockObj[6]("青岛海尔");
	stockObj[7]("亚通股份");
	stockObj[8]("春兰股份");
	stockObj[9]("工商银行");
	stockObj[1].SetStkOriPrice(10.07);
	
	/**************************************/
	
	
	
	/****************************搞不定**************
	Stock stockObjOri[10];
	ifstream fin("开盘价");
	if (!fin)
	{
				cout<<"cannot open"<<endl;
				}
				
				  for (int i=0; i<10; i++)
				  //for (int i=0; i<10; i++)
				  {
				  fin.seekg(i*sizeof(Stock), ios::beg);				//“-”似有隐患
				  fin.read((unsigned char *)(stockObjOri+i), sizeof(Stock));
				  }
				  fin.close();
	***************************************************************/
	
	
	/************************备份开盘价***************************/
	Stock stockObjOri[10];		//备份开盘价
	stockObjOri[0]("Google'");
	stockObjOri[1]("中国石化'");
	stockObjOri[2]("江南重工'");
	stockObjOri[3]("同方股份'");    
	stockObjOri[4]("南钢股份'");
	stockObjOri[5]("江苏舜天'");
	stockObjOri[6]("青岛海尔'");
	stockObjOri[7]("亚通股份'");
	stockObjOri[8]("春兰股份'");
	stockObjOri[9]("工商银行'");
	/**************************************/
	
	//Stock stockObjOri[10];
	
	char sel;
	
	/*******Initialize**************
	
	  Guest guestObj[5] = {
	  Guest("陈书杰", "男", 18, 1000000, 1000000),
	  Guest("陆洋", "男", 19, 100000, 100000),
	  Guest("陈民", "男", 19, 100000, 100000),
	  Guest("陈丽华", "男", 19, 100000, 100000),
	  Guest("李宏标", "男", 18, 100000, 100000),
	  };
	  
		for (i=0; i<5; i++)
		{
		Update(guestObj[i]);
		}
		
	/*********************************/
	
	
	
	
	/**************************/
	
	Guest guestObj[5];
	
	
	
	guestObj[0]("陈书杰");
	guestObj[1]("陆洋");
	guestObj[2]("陈民");
	guestObj[3]("陈丽华");
	guestObj[4]("李宏标");
	
	
	
	//guestObj[1]
	/**************************/
	
	
	
	/*******************************/
	
	
	
	Link *head[10] = {NULL};
	
	
	
	
	
	
	
	int flag1=1, flag1_1=1, flag1_1_1=1, flag1_1_2=1, flag1_1_3=1;
	
	
	do{
		flag1=1;
		system("cls");
		sel = Menu0();
		system("cls");
		switch(sel)
		{
		case '1': 
			{
				int i = Menu1()-1-'0';
				if (i != 0 && i != 1 && i != 2 && i != 3 && i != 4)
				{
					break;		//选角色时亦可退出
				}
				fstream fs;
				fs.open(guestObj[i].GetGuestName(), ios::app|ios::nocreate);		//其实没有必要,因是直接选,而不是输入用户名
				if (!fs)
				{
					system("cls");
					cout<<"无此用户!"<<endl;
					flag1 = 0;
				}
				else
				{
					do{
						flag1_1=1;
						system("cls");
						sel = Menu1_1();
						switch(sel)
						{
						case '1':
							{
								do{
									flag1_1_1=1;
									system("cls");
									guestObj[i].ShowGuest();
									sel = Menu1_1_1();
									switch(sel)
									{
									case '1':
										system("cls");
										SortGuestStockByIncome(guestObj[i]);	//按盈亏排序  -->ok
										//guestObj[i].ShowGuestStockTable();	//不需要cout,循环后会有guestObj[i].ShowGuest(),(在上面第八行)
										//guestObj[i].ShowGuestStock();			//后面的几个排序也一样
										break;
									case '2':
										system("cls");
										SortGuestStockByRange(guestObj[i]);		//按涨幅大小进行排序  -->ok
										break;
									case '3':
										system("cls");
										SearchByTime(head, guestObj[i], stockObj);	//显示指定时间段内盈亏
										break;
									case '4':
										system("cls");
										long stockCodeToSearch;
										cout<<"请输入您要查找的股票代码:"<<endl;
										cin>>stockCodeToSearch;
										int searchResult;							//个人感觉,这个功能是多余的...
										
										searchResult = SearchGuestStockByCode(guestObj[i], stockCodeToSearch);			//按股票号查询
										if (searchResult == -1)
										{
											cout<<"您未购买此股票"<<endl;
										}
										else
										{
											guestObj[i].ShowGuestStockTable();
											cout<<guestObj[i].GetGsObj()[searchResult]<<endl;
											//guestStockCode变名字?   --->就是代码了~~
										}
										cout<<"按任意键继续"<<endl;
										getch();
										break;
									case '5':
										flag1_1_1 = 0;
										break;
									default:
										Error();
										getch();
										break;
									}
								}while (flag1_1_1);	
								break;
							}
						case '2':
							{
								do{
									flag1_1_2=1;
									system("cls");
									sel = Menu1_1_2();
									switch(sel)
									{
									case '1':
										//买入			返回上一层菜单
										system("cls");
										ShowAllStock(stockObj);
										cout<<endl;
										guestObj[i].ShowGuest();
										Buy(stockObj, guestObj, stockObjOri, i, head);
										break;
									case '2':
										//卖出			返回上一层菜单
										system("cls");
										guestObj[i].ShowGuest();
										Sell(stockObj, guestObj, stockObjOri, i, head);
										break;
									case '3':
										//存钱
										system("cls");
										DepositMoney(guestObj[i]);
										break;
									case '4':
										//取钱
										system("cls");
										DrawMoney(guestObj[i]);
										break;
									case '5':
										flag1_1_2 = 0;
										break;
									default:
										Error();
										getch();
										break;
									}
								}while (flag1_1_2);
								break;
							}
						case '3':
							{
								do{
									flag1_1_3=1;
									system("cls");
									ShowAllStock(stockObj);
									sel = Menu1_1_3();
									switch(sel)
									{
									case '1':
										system("cls");										
										SortStockByCode(stockObj);			//按号码排序
										break;
									case '2':
										system("cls");
										SortStockByRange(stockObj);			//按涨幅排序
										break;
									case '3':
										flag1_1_3 = 0;
										break;
									default:
										Error();
										getch();
										break;
									}								
								}while (flag1_1_3);
								break;
							}
						case '4':
							flag1_1 = 0;
							break;
						default:
							Error();
							getch();
							break;
						}		//end of switch
					}while (flag1_1);
				}
				break;	//break of 最大的case1
			}
		case '2':
			//注册
			break;
		case '3':
			cout<<"感谢你的使用,再见!"<<endl;
			exit(0);
			break;
		case '4':
			About();
			getch();
			break;
		default:
			Error();
			getch();
			flag1 = 0;
		}
	}while (flag1);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -