摘要(Abstract)
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
Eclipse是著名的跨平台开源集成开发环境(IDE)。最初主要用来Java语言开发,当前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性,所以许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse的基础是富客户机平台(即RCP)。RCP包括下列组件:
核心平台(启动Eclipse,运行插件)
OSGi(标准集束框架)
SWT(可移植构件工具包)
JFace(文件缓冲,文本处理,文本编辑器)
Eclipse工作台(即Workbench,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))
Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。
主题(Topic)
项目(Project)
kwint/conan-gnuplot-iostream
Toxe/test-cpp-iostream
fralalonde/iostream
vpedrosa/iostl
iostreamiostream01/iostreamstore
RedSkittleFox/iostream-table
iostream/chromatone-helper
skyrich62/ncursespp
IOStream-OpenEnd/StockScrutiny-emulator-
Protovision/socketstream
RaftLib/RaftLib
mike-matera/ArduinoSTL
denilsonsa/stdio_vs_iostream
ZRandomize/ArduinoIOStream
expnkx/fast_io
atharva2001b/KevinBacon
LiushiyiSpace/-
karthikeyaJ/FileCatalogue
>dog; pen=new int[dog]; } void call::set_3() { cout<<"輸入第二個位數:"; cin>>bit; fu=new int[bit]; } void call:: set_4() { if (bit>dog) { dog=bit; }; } void call::set_5() { int i=0; while(i=0; i--) //將i值序列做倒反:[0][1][2]>>[2][1][0] { cout<=10做判斷,如果兩位相加是17,carry=1,將該數加在其他位數。 pen[i]%=10; //留下17/10的餘數替代為該為超出十以上的數,即mother[0]=7 } } void call::set_6() { int i; progress_1(); if (carry>0) //避免999+1會出現000的情況,將其直接進位用carry值取代 { pen[dog]=carry; dog++; } for (i=0; i0) { pen[i]+=10; pen[i+1]-=1; } else { if (pen[i]>0&&pen[dog-1]<0) { pen[i]-=10; pen[i+1]+=1; } } } while(pen[dog-1]==0&&(dog-1)!=0) //將多出的零的相對高位數消除:陣列輸出100>>1 { dog--; } } void call::set_7() { int i,k,j; A=0, i=0, k=1, j=0; while (i>1 20 300) { while (j>object1.A; while(1) { object1.set_3(); cout<<"輸入第二個整數:"; cin>>object1.B; object1.set_4(); object1.set_5(); object1.progress_3(); cout<
shinakami/practice
>num1>>num2; int mark[num1],point[num1],bpoint[num1]; //重要的辅助数组 for(int i=0;i>ming[i].a>>ming[i].b; twnum *tw,*uw,*gw; save *yw; tw=new twnum[num1]; uw=new twnum[num1]; yw=new save[num1]; gw=new twnum[num1]; for(int i=0;i>aa>>bb>>cc; d=locate(aa,ming,num1); e=locate(bb,ming,num1); tw[d].c[e].a=cc; tw[e].c[d].a=cc; point[d]++; point[e]++; bpoint[d]--; bpoint[e]--;} for(int i=0;i>aa; cout<<"终点简称";cin>>bb; cout<"; if(uu>1) {lc=lc+tw[lx1].c[lx2].a;lx1=lx2,lx2=c[uu];} } lc=lc+tw[lx2].c[b].a; cout<<"总路程:"<"<
An-elemental--road-search-program
#include "list.h" #include "subwayGlobalDef.h" #include "subwayMacro.h" #include "subwayCard.h" #include "subwayCardHistory.h" using namespace std; typedef struct { EN_CARD_TYPE enCard; unsigned int cardNo; bool usrFlag; unsigned int balance; TListHead list; SUBWAY_CARD_HIS_RECORD hisRecord; }ST_SUBWAY_CARD; ST_SUBWAY_CARD g_cardList[MAX_CARD_NUM]; TListHead g_idleCardList; TListHead g_usredCardList; //乘车卡名称 char g_cardType[EN_CARD_TYPE_BUTT + 1][16] = { "单程卡", "老年卡", "普通卡", "未知卡类型" }; /* @ 初始化卡信息 @ 返回值: 无 */ void InitCardInfo(unsigned int cardNo) { IF_INVALID_RETURN_NOVALUE(cardNo < MAX_CARD_NUM) g_cardList[cardNo].enCard = EN_CARD_TYPE_BUTT; g_cardList[cardNo].cardNo = cardNo; g_cardList[cardNo].usrFlag = false; g_cardList[cardNo].balance = 0; g_cardList[cardNo].list.next = NULL; g_cardList[cardNo].list.prev = NULL; InitSubwayCardHisRecord(&(g_cardList[cardNo].hisRecord)); } /* @ 初始化所有卡信息 @ 返回值: 无 */ void InitCardManagerInfo() { InitListHead(&g_idleCardList); InitListHead(&g_usredCardList); for(unsigned int i = 0; i < MAX_CARD_NUM; i++) { InitCardInfo(i); ListAddTail(&(g_cardList[i].list), &g_idleCardList); } InitCardHistoryPool(); } /* @ 开卡,分配卡号和卡信息 @ 入参:enCard,卡类型; charge: 充值 @ 出参: cardNo, 分配的卡号 @ 返回值: EN_RETURN_SUCC,分配成功; EN_RETURN_CARD_OVERLOW, 分配失败; */ EN_RETURN_CODE AssignCard(unsigned int &cardNo, EN_CARD_TYPE enCard, unsigned int charge) { if(ListEmpty(&g_idleCardList)) { return EN_RETURN_CARD_OVERLOW; } IF_INVALID_RETURN(charge <= MAX_BALANCE, EN_RETURN_RECHARGE_OVERFLOW) TListHead* pNode = g_idleCardList.next; ST_SUBWAY_CARD* pCard = /*lint --e(413)*/CONTAINER_OF(pNode, ST_SUBWAY_CARD, list);/*lint --e(831)*/ //从空闲队列中删除, 并加到使用队列中 ListDel(pNode); ListAddTail(pNode, &g_usredCardList); pCard->usrFlag = true; pCard->enCard = enCard; pCard->balance = charge; cardNo = pCard->cardNo; return EN_RETURN_SUCC; } /* @ 充值 @ 入参:cardNo,卡号; recharge: 充值 @ 出参: 无 @ 返回值: EN_RETURN_SUCC,成功; 其他, 失败; */ EN_RETURN_CODE RechargeCard(unsigned int cardNo, unsigned int recharge) { IF_INVALID_RETURN(cardNo < MAX_CARD_NUM, EN_RETURN_INVALID_CARD) IF_INVALID_RETURN(g_cardList[cardNo].usrFlag, EN_RETURN_INVALID_CARD) IF_INVALID_RETURN(g_cardList[cardNo].enCard != EN_CARD_TYPE_SINGLE, EN_RETURN_SINGLE_CARD_CANNOT_RECHARGE) IF_INVALID_RETURN(g_cardList[cardNo].enCard != EN_CARD_TYPE_SINGLE, EN_RETURN_SINGLE_CARD_CANNOT_RECHARGE) IF_INVALID_RETURN((g_cardList[cardNo].balance + recharge) <= MAX_BALANCE, EN_RETURN_RECHARGE_OVERFLOW) g_cardList[cardNo].balance += recharge; return EN_RETURN_SUCC; } /* @ 获取卡余额 @ 入参:cardNo,卡号; @ 出参: balance: 余额 enCard: 卡类型 @ 返回值: EN_RETURN_SUCC,成功; EN_RETURN_INVALID_CARD, 失败; */ EN_RETURN_CODE GetCardInfo(unsigned int cardNo, unsigned int &balance, EN_CARD_TYPE &enCard) { IF_INVALID_RETURN(cardNo < MAX_CARD_NUM, EN_RETURN_INVALID_CARD) IF_INVALID_RETURN(g_cardList[cardNo].usrFlag, EN_RETURN_INVALID_CARD) balance = g_cardList[cardNo].balance; enCard = g_cardList[cardNo].enCard; return EN_RETURN_SUCC; } /* @ 卡扣费 @ 入参:cardNo,卡号; enCard, 卡类型; deductPrice, 扣费票价 @ 出参: balance, 扣费后的余额 @ 返回值: EN_RETURN_SUCC,成功; EN_RETURN_INVALID_CARD, EN_RETURN_BALANCE_NOT_ENOUGH, 失败; */ EN_RETURN_CODE DeductCard(unsigned int cardNo, EN_CARD_TYPE enCard, unsigned int deductPrice, unsigned int &balance) { IF_INVALID_RETURN(cardNo < MAX_CARD_NUM, EN_RETURN_INVALID_CARD) IF_INVALID_RETURN(g_cardList[cardNo].usrFlag, EN_RETURN_INVALID_CARD) balance = g_cardList[cardNo].balance; //余额不足 IF_INVALID_RETURN(deductPrice <= balance, EN_RETURN_BALANCE_NOT_ENOUGH) //扣费 g_cardList[cardNo].balance -= deductPrice; balance = g_cardList[cardNo].balance; //单程卡要注销Card if(EN_CARD_TYPE_SINGLE == enCard) { (void)DeleteCard(cardNo); } //余额过低 IF_INVALID_RETURN((EN_CARD_TYPE_SINGLE == enCard) || (balance >= 20), EN_RETURN_BALANCE_TOO_LOW) return EN_RETURN_SUCC; } void RecordCardHis(unsigned int cardNo, ST_SUBWAY_TIME& enterTime, ST_SUBWAY_TIME& exitTime, char* enterStation, char* exitStation, unsigned int ulExpenditure) { IF_INVALID_RETURN_NOVALUE(cardNo < MAX_CARD_NUM) IF_INVALID_RETURN_NOVALUE(g_cardList[cardNo].usrFlag) if(EN_RETURN_SUCC != AddSubwayCardHisRecord(&(g_cardList[cardNo].hisRecord), enterTime, exitTime, enterStation, exitStation, ulExpenditure)) { cout<<"RecordCardHis::AddSubwayCardHisRecord return fail!"; } } void QuerySubwayCardHis(unsigned int cardNo, string& outStr) { IF_INVALID_RETURN_NOVALUE(cardNo < MAX_CARD_NUM) IF_INVALID_RETURN_NOVALUE(g_cardList[cardNo].usrFlag) QuerySubwayCardHisRecord(&(g_cardList[cardNo].hisRecord), outStr); } /* @ 删除卡信息 @ 入参:cardNo,卡号; @ 出参: 无 @ 返回值: 0,成功; -1, 失败; */ int DeleteCard(unsigned int cardNo) { IF_INVALID_RETURN(cardNo < MAX_CARD_NUM, -1) IF_INVALID_RETURN(g_cardList[cardNo].usrFlag, -1) //从使用队列中删除, 并加到空闲队列中 TListHead* pNode = &(g_cardList[cardNo].list); ListDel(pNode); ListAddTail(pNode, &g_idleCardList); InitCardInfo(cardNo); return 0; } /* @ 获取卡类型字符串 @ 入参:enCard,卡类型; @ 出参: 无 @ 返回值: 卡类型字符串; */ char* GetCardTypeStr(EN_CARD_TYPE enCard) { return g_cardType[enCard]; } /* @ 根据卡类型字符串, 识别卡类型 @ 入参:cardType, 卡类型字符串; @ 出参: enCard, 卡类型 @ 返回值: EN_RETURN_SUCC,成功; EN_RETURN_INPUT_INVALID_CARDTYPE, 失败; */ EN_RETURN_CODE GetCardType(char cardType[], EN_CARD_TYPE &enCard) { string str = cardType; /* 目前仅支持普通卡 */ if((0 == str.compare("C")) || (0 == str.compare("c"))) { enCard = EN_CARD_TYPE_NOMAL; } else if((0 == str.compare("B")) || (0 == str.compare("b"))) { enCard = EN_CARD_TYPE_ELDER; } else { return EN_RETURN_INPUT_INVALID_CARDTYPE; } return EN_RETURN_SUCC; }" class="topic-tag topic-tag-link">
awfeequdng/SubWayCard.CPP