ERP巨头温州困局解读
2007-09-05 18:05
295 查看
其实早就写完了的,但是一直存在朋友的电脑上,朋友出去比赛了,直到今天才从她那儿拷过来,给大家分享一下自我感觉是写得比较好的一次
还是那句话,不当之处,还请拍砖哈...
代码实现:
本文出自 “Boost” 博客,请务必保留此出处http://zhujifang.blog.51cto.com/8634872/1380266
还是那句话,不当之处,还请拍砖哈...
代码实现:
#include <iostream> #include <malloc.h> #include <iomanip> #include <fstream> using namespace std; const int OVERFLOW = -2; const int LIST_INIT_SIZE = 100; const int LISTINCREMENT = 10; enum status {success,underflow,overflow,range_error}; class SqList { private: int *data; int length; protected: int listSize; public: SqList(); ~SqList(); bool empty(void) const; int size(void) const; status create(int num); status insert(int position,const int &item); status replace(int position,const int &item); status remove(int position); status get(int position,int &item) const; status traverse(void) const; status invert(void); }; SqList::SqList() { data = (int *)malloc(LIST_INIT_SIZE * sizeof(int)); if (!data) exit(OVERFLOW); length = 0; listSize = LIST_INIT_SIZE; } SqList::~SqList() { free(data); data = NULL; length = listSize = 0; } bool SqList::empty(void) const { return (length == 0); } int SqList::size(void) const { return length; } status SqList::create(int num) { cout << "Please input " << num << " numbers: "; while (listSize < num) { int *newbase = (int *)realloc(data,(listSize + LISTINCREMENT)*sizeof(int)); if (!newbase) exit(OVERFLOW); data = newbase; listSize += LISTINCREMENT; } length = num; for (int i = 0; i < length; i++) cin >> data[i]; return success; } status SqList::insert(int position,const int &item) { if (position < 1 || position > length + 1) return overflow; if (length >= listSize) { int *newBase = (int *)realloc(data,(listSize+LISTINCREMENT)*sizeof(int)); if (!newBase) exit(OVERFLOW); data = newBase; listSize += LISTINCREMENT; } int *q = &(data[position - 1]); for (int *p = &(data[length-1]); p >= q; --p) *(p+1) = *p; *q = item; ++length; return success; } status SqList::replace(int position,const int &item) { if (position < 1 || position > length) return range_error; if (empty()) return underflow; data[position-1] = item; return success; } status SqList::remove(int position) { if (empty()) return underflow; if (position < 1 || position > length) return range_error; for (int i = position - 1; i < length-1; i++) data[i] = data[i+1]; length--; return success; } status SqList::get(int position,int &item) const { if (empty()) return underflow; if (position < 1 || position > length) return range_error; item = data[position-1]; return success; } status SqList::traverse(void) const { if (empty()) return underflow; cout << "All the data :" ; for (int i = 0; i < length; i++) cout << ' ' << setw(3) << data[i]; cout << endl; return success; } status SqList::invert(void) { int halfpos,tempdata; if (empty()) return underflow; halfpos = length / 2; for (int i = 0; i < halfpos; i++) { tempdata = data[i]; data[i] = data[length-i-1]; data[length-i-1] = tempdata; } return success; } int main() { freopen("input.txt","r",stdin); SqList L; L.create(5); for (int i = 6; i < 20; i++) L.insert(i,i*10); L.traverse(); cout << L.size() << endl; L.remove(1); L.traverse(); cout << L.size() << endl; L.invert(); L.traverse(); int item; L.get(2,item); cout << "Item is: " << item << endl; }
本文出自 “Boost” 博客,请务必保留此出处http://zhujifang.blog.51cto.com/8634872/1380266
相关文章推荐
- ERP巨头温州困局解读
- 读《ERP巨头温州困局解读 》有感
- ERP巨头进军物流产业
- 国内ERP巨头用友的SOA产品--U9将明年上市
- 如何摆脱ERP困局
- 三个启蒙寓言解读大企业的内部创业困局
- 解读离散制造企业ERP选型方略
- 解读日本三大数码巨头为何“陨落”?
- 解读智能拉手 ERP如何帮助团购脱胎换骨
- 狂赌智能手机 中国互联网巨头深陷零利润困局
- 温州民企走出寒冬 SOA解读新型工业模式
- ERP项目团队激励困局的破解
- 解读什么是ERP企业管理软件?
- 巨头困局一:移动互联时代英特尔对决ARM难出头
- 国内ERP巨头用友的SOA产品--U9将明年上市
- 外资巨头大举攻城 中国ERP市场危机四伏
- 美国共和党大金主Koch收购ERP巨头Infor部分股权
- 巨头困局(三):微软携手ARM或让英特尔大本营沦陷
- 深度解读3D打印巨头Stratasys为何1亿美金收购Grabcad
- 美国共和党大金主Koch收购ERP巨头Infor部分股权