Stock StockManager::addTempCsvStock( const string& code, const string& day_filename, const string& min_filename, price_t tick, price_t tickValue, int precision, size_t minTradeNumber, size_t maxTradeNumber) { string new_code(code); boost::to_upper(new_code); Stock result("TMP", new_code, day_filename, STOCKTYPE_TMP, true, Datetime(199901010000), Null<Datetime>(), tick, tickValue, precision, minTradeNumber, maxTradeNumber); KDataTempCsvDriver *p = new KDataTempCsvDriver(day_filename, min_filename); result.setKDataDriver(KDataDriverPtr(p)); result.loadKDataToBuffer(KQuery::DAY); result.loadKDataToBuffer(KQuery::MIN); if (!addStock(result)){ //加入失败,返回Null<Stock> return Null<Stock>(); } return result; }
void updateStock() { int i; do { printf("----------------------------------------------------\n"); printf("Push 1 to add to stock.\n"); printf("Push 2 to delete from stock.\n"); printf("Push 3 to update price of stock.\n"); printf("Push 4 to update quantity.\n"); printf("Push 5 or higher to go back to main.\n"); printf("?: "); scanf("%d", &i); switch(i) { case 1: printf("\n----------------------------------------------------\n"); addStock(sFile1); printf("----------------------------------------------------\n\n"); break; case 2: printf("\n----------------------------------------------------\n"); delStock(sFile1); printf("----------------------------------------------------\n\n"); break; case 3: printf("\n----------------------------------------------------\n"); updatePrice(sFile1); printf("----------------------------------------------------\n\n"); break; case 4: printf("\n----------------------------------------------------\n"); updateQuantity(); printf("----------------------------------------------------\n\n"); break; } } while(i<5); }