📄 mainframe.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 + -