北邮C银行门户与电商平台_第1页
北邮C银行门户与电商平台_第2页
北邮C银行门户与电商平台_第3页
北邮C银行门户与电商平台_第4页
北邮C银行门户与电商平台_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+电商交易平台设计班级:2013211306 姓名:严浩 学 号:2013211321实验目的锻炼我们用c+编程的能能力培养我们考虑问问题是否全面面的能力训练我们的代码码优化能力基本内容题目一:银行门门户的设计该门户是一个个单独的程序序,程序要求求至少支持以以下功能:注册银行卡,银银行可选;修改银行卡密码码;存款取款;银行卡至少需要要有卡号,密密码,所属银银行名称,持持卡人身份证证号,卡内金金额等内容。要求1:请把所所有的银行名名写入文件(或或数据库),注注册银行卡的的时候,要求求只能选择已已经存在的银银行进行注册册。要求2:请做好好错误场景的的处理,例如如读银行文件错错误,输入数数据不合法

2、等等等。题目二:电商平平台的设计该平台是银行行门户之外的的一个单独的的程序,程序序要求至少支支持以下功能能:注册&登录:支支持新用户注注册平台账号号,已注册用用户用平台账账号登录平台台。(要求已已注册用户的的信息长久保保留。)浏览平台产品信信息。优惠活动:支持持对同一品类类下所有产品品打折的活动动,支持单笔笔订单满X减减Y的活动。购买产品:支持持用户添加产产品到购物车车,查看实际际应付的产品品价格,提交交订单。在题目二我们暂暂时不考虑提提交订单后支支付等后续需需求。要求1:电商平平台上至少有有三类产品:如食物、服服装、图书等等,每类产品品中至少有三三个具体的产产品(如图书书中可以有CC+ Pr

3、rimer、EEfferttive CC+等),每每个具体的产产品请至少包包含产品描述述,产品原价价,产品剩余余量等数据。所所有的产品信信息需要存储储在数据库或或文件中,不不能写在代码码中,平台管管理员通过直直接修改数据据库或文件,管管理本平台上上的产品,包包括产品的增增加和删除,修修改数量以及及具体产品的的属性信息等等。要求2:请至少少设计一层继继承体系(产产品基类-产产品子类),设设计一个产品品基类,然后后让图书类、电电子产品类和和服装类等产产品子类类继继承它,具体体的产品是产产品子类的实实例对象( 是图书类类的实例对象象) 。产品品基类请至少具具有一个虚函函数getPPrice()用于计

4、算算具体产品的的价格。要求3:请通过过为每个产品品子类定义“品品类折扣系数数”来支持对对同产品子类类下所有产品品打折扣的活活动(如图书书全场5折,则则图书类这一一产品子类的的折扣系数为为0.5)。要求4:请做好好错误场景的的处理。题目三:网上支支付的设计实现题目三会让让你设计的平平台像个真正正的运行在网网络上的平台台。题目三要要求在题目一一、二的基础础上支持通过过网上支付在在电商平台上上购物,请至至少实现以下下功能:绑定银行卡:支支持电商平台台账号绑定银银行卡。同一一账号可以绑绑定多张银行行卡,而且银银行卡可以属属于不同银行行。网上支付:选择择绑定的任一一银行卡支付付电商平台上上的订单。要求1

5、:绑定银银行卡和选择择银行卡进行行支付时都要要求提供对应应的银行卡密密码。要求2:当在电电商平台上绑绑定银行卡或或者进行网上上支付的时候候,请不要直直接打开某个个文件查找银银行卡的信息息,因为银行行卡信息文件件是银行门户户系统私有的的,电商平台台系统无法直直接访问,而而应该由电商商平台系统去去向银行门户户系统对接数数据。请用ssockett通信来传送送数据。要求3:请做好好错误场景的的处理,如绑绑定银行卡失失败,支付失失败等。实验方法题目一:创建了银行卡类类、银行门户类类,银行卡里里包含了卡号号、姓名、密密码、身份证证号、银行名名称、余额几几个属性。银行门户有操作作银行卡,注注册银行卡两两个功

6、能,操操作银行卡又又包括存取款款,修改密码码等功能,账账户信息和银银行名称保存存在文件里,银银行卡用veector类类型保存。题目二:创建了电商平台台类、账户类类、商品类(商商品类有3个派生类)、绑定银行卡类、购物车项目类。其中账户类中包含了用户名、密码、手机号、购物车、应付款、绑定银行卡、绑定银行卡数量这几个属性,其中购物车里的项目用vector类型保存。电商平台中的账账户也用veector类类型保存,平平台的功能有有:登录、注注册,登录后后可以绑定银银行卡、查看看商品并添加加购物车、查查看购物车和和应付金额、结结算购物车、退退出登录等功功能。题目三:在绑定银行卡和和付款时用ssockett

7、通信来传送送数据。绑定银行卡时,先先向银行门户户发送绑定银银行卡标志位位表示绑定功功能,然后发发送卡号密码码,验证通过过后返回成功功标志位,电电商平台收到到后绑定成功功。付款时,先向银银行门户发送送付款标志位位表示付款功功能,然后后发送卡号密密码,验证通通过后返回成成功标志位,电电商平台收到到后发送应付付金额,银行行门户收到后后调用付款函函数,余额不不足返回余额额不足标志位位,余额够则则返回付款成成功标志位。源代码 银行门户代代码: #ifnddef _BBANKCAARD_H_#definee _BANKKCARD_H_#includde#includdeusing nnamesppace

8、sstd;class bbankcaardprivatte: striing caardnumm; striing paassworrd; striing baanknamme; striing naame; striing IDD; doubble reemaindder; publicc: bankkcard() bankkcard(strinng numm,striing paassworrd,strring bbanknaame,sttring name,strinng ID,doublle remmaindeer); voidd setPPasswoord(sttring passw

9、word); voidd addRRemainnder(ddoublee moneey); voidd subRRemainnder(ddoublee moneey); striing geetCarddnum(); striing geetPasssword(); striing geetBankkname(); striing geetNamee(); striing geetID(); doubble geetRemaainderr(); booll matcchPasssport(strinng passswordd); ofsttream& operrator cardnnum=ca

10、ardnumm;this-passwword=ppasspoort;this-banknname=bbanknaame;this-name=name;this-ID=IDD;this-remaiinder=remaiinder;void baankcarrd:seetPasssword(strinng newpaassporrt)this-passwword=nnewpasssportt;void baankcarrd:adddRemaainderr(doubble moneyy)this-remaiinder+=moneey;void baankcarrd:suubRemaainderr(d

11、oubble moneyy)this-remaiinder=this-remaiinder-moneyy;string bankccard:getCaardnumm()returnn carddnum;string bankccard:getPaassworrd()returnn passsword;string bankccard:getBaanknamme()returnn bankkname;string bankccard:getNaame()returnn namee;string bankccard:getIDD() retturn IID; double bankccard:ge

12、tReemaindder()returnn remaainderr;bool baankcarrd:maatchPaassporrt(strring passwword)if(thiis-paassworrd=paassworrd) retuurn true; elsse returrn falsee;ofstreaam& bankkcard:operrator (offstreaam& ofs)ofs 卡号:carrdnum;ofs 密码:passswordd;ofs 银行:bannknamee;ofs 姓名:namme;ofs 身份证号号:ID;ofs 余额:deccremmaindeer

13、enndl; retturn ofs;#ifndeff BANKKPORTAAL_H#definee BANKPPORTALL_H#includde #includde #pragmaa commeent(lib,ws2_32.liib)#includde #includde #includde bankkcard.husing sstd:vvectorr;class BBankPoortalprivatte:vectoor vBBankN;vectoor vBankkC;void init();void regissterBaankC();void loginnBankCC();void c

14、hanggePasssword(int inndex);void depossit(innt inddex);void withddraw(iint inndex);int mmatch(strinng carrdnum);bool checkk(striing caardnumm);void outpuut();void bankNNamingg();doublle StrrToDouuble(sstringg str, int sttart, int ennd);void Bind();bool pay(sstringg num,doublle monney);int MMatch(str

15、inng useernamee,striing paassworrd);publicc:BankPPortall(); #endif#includde #includde #includde #includde #includde #includde #includde bankkportaal.hconst sstringg bankkname_file = baanknamme.txtt;const sstringg outpput_fiile = outpput.txxt;BankPorrtal:BankPPortall()init();cout SSelectt) | (Seleect

16、0 != 1 & Seleect0 != 2)coutt 输入错误,请请重新输入: enndl;cout enndl; Choicce=stdd:atooi(Sellect.cc_str();if(Chooice=2) Binnd();while(true)cout enndl;cout =欢迎来到到银行门户= enddl;cout = endl;cout =您想进行行什么操作?= endll;cout =1:操作作账户 = endll;cout =2:注册册银行卡 = endl;cout =3:退出出 = enndl;cout = endl enddl;cout SSelectt) | Se

17、lecct0 3)coutt 输入错误,请请重新输入: enndl;cout enndl; selecct=stdd:atooi(Sellect.cc_str();switcch(selecct)casee 1:logginBannkC();breeak;casee 2:reggisterrBankCC();breeak;casee 3:outtput();retturn;defaault:breeak;void BaankPorrtal:regissterBaankC()cout 请选择你要要注册的银行行: enndl;for(unnsigneed int i=0;ivvBankNN.siz

18、ee();i+)if(i % 4 = 3)coutt ii : vBannkNi eendl;elsecoutt ii : vBannkNi;cout enddl nnum) | numm = vBankkN.sizze()cout enndl 输入错误,请请重新输入:;cout enddl; stringg bankk = vBBankNnum;int caardnumm;strstrream tt;stringg cardd;stringg passsword;stringg tempp;stringg namee;stringg ID;int i;cout namee; cout ID;

19、srand(int)tiime(0);docardnnum=10000+(rrand()%90000);tcaard;while(checkk(cardd);docout passswordd;cout temmp;while(passwword != temmp & cout enndl 前后输入的的密码不同,请请重新输入! eendl);cout enddl;bankcaard bccard(ccard, passwword, bank, namee, ID,0.0);vBankCC.pushh_backk(bcarrd);cout 注册银行账账号成功! enddl; cout 卡号为:c

20、arrdenndl;void BaankPorrtal:loginnBankCC()stringg carddnum;stringg passsword;unsignned int nuum;docout请输入要操操作的银行卡卡号:caardnumm;while(num=matchh(carddnum)=vBaankC.ssize()&couut账号输入错错误!enndl);while(true)cout = vBBankCnum.getNaame() 先生/女士= eendl;cout =卡内余额共共 vBankkCnumm.gettRemaiinder() RMB= endl;cout =

21、 endll;cout =请选选择您的操作作:= enndl;cout =1:存款 = enndl;cout =2:取款 = enndl;cout =3:修改银行卡卡密码= eendl;cout =4:返回上一级级菜单= eendl;cout = endll eendl;cout SSelectt) | Selecct0 4)coutt 输入错误,请请重新输入: enndl;selecct=stdd:atooi(Sellect.cc_str();cout enndl;switcch(selecct)casee 1:depposit(num); breeak;casee 2:witthdraww

22、(num);breeak;casee 3:chaangePaassworrd(numm);breeak;casee 4:retturn;defaault:breeak;void BaankPorrtal:depossit(innt num)doublee moneey;cout请输入您要要存入的金额额:mmoney;vBankCCnum.aaddRemmaindeer(monney);void BaankPorrtal:withddraw(iint num)doublee moneey; couut请输入您要要取出的金额额:mmoney;if(vBaankCnnum.ggetRemmainde

23、er()=moneyy) vBBankCnum.ssubRemmaindeer(monney);else ccout对不起,余余额不足!=monney) vBBankCindexx.subbRemaiinder(moneyy);returrn true;else rreturnn falsee;void BaankPorrtal:changgePasssword(int num)stringg passsword;stringg tempp;docout请输入新密密码:ppasswoord;cout再次确认新新密码:ttemp;while(passwword!=temp&coutt 前后输入的

24、的密码不同,请请重新输入! eendl);vBankCCnum.ssetPassswordd(passsword);int BannkPorttal:mmatch(strinng cardnnum)unsignned int i=0;for(;iivBannkC.siize();i+)if(vBBankCi.geetCarddnum()=carrdnum) reeturn i;returnn i;bool BaankPorrtal:checkk(striing cardnnum)unsignned int i=0;for(;iivBannkC.siize();i+)if(vBBankCi.ge

25、etCarddnum()=carrdnum) reeturn true;returnn falsee;void BaankPorrtal:outpuut()ofstreeam foout(ouutput_file.c_strr();for(unnsigneed int i=0;ivvBankCC.sizee();i+)vBankkCi(fouut);fout.cclose();void BaankPorrtal:bankNNamingg()ifstreeam fiin(bannknamee_filee.c_sttr();stringg inpuut;while(getliine(fiin,in

26、pput)vBankkN.pussh_bacck(inpput);fin.cllose();double BankPPortall:StrrToDouuble(sstringg str, int startt, int end)/把字符串串转化成doouble类类型 int sttate = 0;int i = 0;doublee num = 0;for(; startt cardnnum) carddnum=ccardnuum.subbstr(66); finpasssword; passsword=passwword.ssubstrr(6); finbankkname; bankkname

27、=banknname.ssubstrr(6); finnamee; namee=namee.subsstr(6); finID; ID=IID.subbstr(110); finremaainderrs; rremainnder=SStrToDDoublee(remaainderrs,6,rremainnders.size(); bankkcard bankcc(carddnum,ppasswoord,baanknamme,namme,ID,remaiinder); vBannkC.puush_baack(baankc);fin.cllose();bankNaaming();int Bannk

28、Porttal:MMatch(strinng cardnnum,strinng passwword)unsignned int i=0;for(;iivBannkC.siize();i+)if(vBBankCi.geetCarddnum()=carrdnum&vBannkCi.getPPasswoord()=passsword)retuurn i;returnn i; void BaankPorrtal:Bind() WORRD socckVerssion = MAKEEWORD(2,2); WSAADATA wsaDaata; if(WSASttartupp(sockkVersiion, &

29、wsaDaata)!=0) prinntf(嵌套字未打打开!); returrn; /创创建套接字 SOCCKET sslisteen = ssockett(AF_IINET, SOCK_STREAAM, IPPRROTO_TTCP); if(slistten = INVAALID_SSOCKETT) prinntf(ssockett erroor !); retuurn; /绑绑定IP和端口 socckaddrr_in ssin; sinn.sin_familly = AAF_INEET; sinn.sin_port = htoons(88888); sinn.sin_addr.S_un.S

30、_adddr = IINADDRR_ANY; if(bind(slistten, (LPSOCCKADDRR)&sinn, sizzeof(ssin) = SOOCKET_ERRORR) prinntf(bbind eerror !); /开开始监听 if(listeen(sliisten, 5) = SOCCKET_EERROR) prinntf(llistenn erroor !); retuurn; /循循环接收数据据 SOCCKET ssCliennt; socckaddrr_in rremoteeAddr; intt nAdddrlen = sizzeof(rremoteeAddr)

31、; chaar senndBuf2; chaar recceiveCChoicee2; intt choiice; whiile (truee) prinntf(等待连接.n); sCliient = acceept(sllistenn, (SOOCKADDDR *)&remotteAddrr, &nAAddrleen); if(sClieent = INVAALID_SSOCKETT) printtf(acccept errorr !); contiinue; prinntf(接受到一个个连接:%ss rnn, innet_nttoa(reemoteAAddr.ssin_adddr); re

32、cv(sClieent,reeceiveeChoicce,2,00); /监听选择 choiice=(rreceivveChoiice0-0); if(choicce=1) chhar reeceiveeCard5; chhar reeceiveePasswword330; reecv(sCClientt,receeiveCaard,5,0); /接受账号号密码 reecv(sCClientt,receeivePaassworrd,30,0); sttring cardnnum; caardnumm=receeiveCaard; sttring passwword; paassworrd=re

33、cceivePPasswoord; int inndex; iff(indeex=Mattch(caardnumm,passsword)vBaankC.ssize() spprintff(senddBuf,1); sendd(sCliient,ssendBuuf,strrlen(ssendBuuf)+1,0); /发送绑定定成功 sprinntf(seendBuff,vBannkCinndex.getBaanknamme().cc_str();/发送银行类类型 send(sClieent,seendBuff,strllen(seendBuff)+1,00); ellse spriintf(ss

34、endBuuf,0); sendd(sCliient,ssendBuuf,strrlen(ssendBuuf)+1,0); elsee if(chooice=2) chhar reeceiveeCard5; chhar reeceiveeShoulldpay20; chhar reeceiveePasswword330; intt indeex; reecv(sCClientt,receeiveCaard,5,0); /接受账号号密码 reecv(sCClientt,receeivePaassworrd,30,0); strring ccardnuum; carrdnum=receiiveCa

35、rrd; strring ppasswoord; paassworrd=recceivePPasswoord; inddex=Maatch(ccardnuum,passswordd); iff(indexxvBannkC.siize() sprinntf(seendBuff,1); send(sClieent,seendBuff,strllen(seendBuff)+1,00); /发送验证成成功 recv(sClieent,reeceiveeShoulldpay,20,0); douuble sshoulddpay; shoouldpaay=stdd:atoof(recceiveSShoul

36、ddpay); if(pay(ccardnuum,shoouldpaay) sprinntf(seendBuff,1); seend(sCClientt,senddBuf,sstrlenn(senddBuf)+1,0); /发送付款款成功 outtput(); elsee ccout余额不足!; ssprinttf(senndBuf,0); seend(sCClientt,senddBuf,sstrlenn(senddBuf)+1,0); /发送付款款成功 elssespriintf(ssendBuuf,0); send(sClieent,seendBuff,strllen(seendBuff

37、)+1,00); /发送验证失失败 closeesockeet(sliisten); WSSACleaanup(); 电商平台代码:#ifndeff _ACOOUNT_HH_#definee _ACOUUNT_H_#includde#includde#includde#includde itemm.h#includde bankkcard.husing nnamesppace sstd;class AAccounntprivatee:stringg userrname;stringg passsword;stringg phonnenum;doublee shouuldpayy;int caa

38、rdnumm;public:vectorr vBankk;vectorr vItemm;doublee getSShoulddpay() retuurn shhouldppay;int geetCarddnum()returrn carrdnum;void aaddCarrdnum(int num) carrdnum+=num;void cclshouuldpayy()shoulldpay=0.0;void aaddShoouldpaay(douuble pricee) shoouldpaay+=pricce;void ssubShoouldpaay(douuble pricee) shoou

39、ldpaay-=prrice; Acccount();Accounnt(strring uusernaame,sttring passwword,sstringg phonnenum,vectoor scartt,doubble shhouldppay,innt carrdnum);void ssetPassswordd(striing paassworrd);void ssetPhoone(sttring phoneenum);stringg getUUsernaame();stringg getPPasswoord();stringg getPPhonennum();ofstreeam&

40、ooperattor (ofsttream& ofs);#endif#ifndeff _BANNKCARDD_H_#definee _BANKKCARD_H_#includde#includdeusing nnamesppace sstd;class bbankcaardprivatte: striing caardnumm; striing baanknamme; publicc: bankkcard() bankkcard(strinng cardnnum,strinng banknname) thiis-caardnumm=carddnum; thiis-baanknamme=bannk

41、namee; striing geetCarddnum() reeturn cardnnum; sstringg getBBanknaame() reeturn banknname; ;#endif#ifndeff _GOOODS_H_#definee _GOODDS_H_#includde#includdeusing nnamesppace sstd;/登录后,11.查看现有有商品1.查看哪一类类商品(记得得显示产品描描述,产品原原价,产品剩剩余量,优惠惠信息)|2.回退class ggoodsprotectted:stringg namee;stringg desccriptiion;do

42、ublee origginalPPrice;int reemaindder;doublee disccount;/折扣public:goods()goods(strinng name,strinng descrriptioon,doublle origiinalPrrice,int remaiinder,doublle discoount) thiss-namme=namme; thiss-desscripttion=ddescriiptionn; thiss-oriiginallPricee=origginalPPrice; thiss-remmaindeer=remmaindeer; th

43、iss-disscountt=disccount; stringg getNName();stringg getDDescriiptionn();doublee getOOriginnalPriice();int geetRemaainderr();bool ssubRemmaindeer(intt num)if(reemaindder=nnum)remaainderr=remaainderr-num;retuurn true;returrn falsee;doublee getDDiscouunt();virtuaal doublle gettPricee()returrn disscoun

44、tt*origginalPPrice;ofstreeam& goodds:opperatoor (ofstrream& ofs);class ffood : publlic goodsspublic:virtuaal doublle gettPricee();food(sstringg name,strinng descrriptioon,doublle origiinalPrrice,int remaiinder,doublle discoount):goodss(name,descrriptioon,origiinalPrrice,remaiinder,discoount);class c

45、clothiing : publiic goodsspublic:virtuaal doublle gettPricee();clothiing(sttring name,strinng descrriptioon,doublle origiinalPrrice,int remaiinder,doublle discoount):goodss(name,descrriptioon,origiinalPrrice,remaiinder,discoount);class bbook : publlic goodsspublic:virtuaal doublle gettPricee();book(

46、sstringg name,strinng descrriptioon,doublle origiinalPrrice,int remaiinder,doublle discoount):goodss(name,descrriptioon,origiinalPrrice,remaiinder,discoount);#endif#ifndeff _ITEEM_H_#definee _ITEMM_H_#includdeusing nnamesppace sstd;class iitemprotectted:stringg namee;int nuum;doublee pricce;public:i

47、tem(sstringg name,int num,doublle pricee) thhis-nname=nname;this-num=num;this-pricce=priice;stringg getNName() retuurn naame;int geetNum() retuurn nuum;doublee getPPrice()returrn priice;#endif#ifndeff _PLAATFORMM_H_#definee _PLATTFORM_H_#includde #includde #pragmaa commeent(lib,ws2_32.liib) #includd

48、e #includde #includde Accoount.hh#includde goodds.husing sstd:vvectorr;class PPlatfoormprivatee:vectorr vvAccouunt;vectorr vFoodd;vectorr vClotthing;vectorr vBookk;void iinit();/初始化void rregistterAcccount();bool lloginAAccounnt();/voidd channgePhoone(sttring phoneenum);void ooutputt();bool ccheck(st

49、rinng useernamee);int maatch(sstringg userrname,strinng passswordd);void ccheckggoods(int acccountt);doublee StrTToDoubble(sttring str, int sttart, int ennd);bool aaddshooppinggcart(int chhoice,int inndex,iint nuum,intt accoount);void ccheckSScart(int acccountt);void BBand(iint inndex,sstringg cardd

50、num,sstringg passsword);bool PPay(innt inddex,sttring card);public:Platfoorm();#endif#includde Accoount.hhusing sstd:sstringg;Accountt:Accoount(sstringg usernname,strinng passwword,strinng phoneenum,vectoor scartt,doublle shoulldpay,int cardnnum)this-usernname=uusernaame;this-passwword=ppasswoord;th

51、is-phoneenum=pphonennum;this-vItemm=scarrt;this-shoulldpay=shoulldpay;this-cardnnum=caardnumm;void Acccountt:settPasswword(sstringg passwword)this-passwword=ppasswoord;void Acccountt:settPhonee(striing phoneenum)this-phoneenum=pphonennum;string Accouunt:ggetUseernamee()returnn userrname;string Accou

52、unt:ggetPassswordd()returnn passsword;string Accouunt:ggetPhoonenumm()returnn phonnenum;ofstreaam& Accoount:operaator (ofsstreamm& ofs)ofs 用户名:useernamee;ofs 密码:passswordd;ofs 手机号:phoonenumm;ofs 银行卡数数量:carrdnumendll;/ofs 购物物车:;/for(unsiggned ii=0;iscartt.getvvItem().sizze();ii+)/ofssscaart.geetvItee

53、m()ii.gettName() sccart.ggetvIttem()i.geetnum() sccart.ggetvIttem()i.geetPricce()endl;/returnn ofs;#includde goodds.husing sstd:sstringg;/goodss:gooods(sttring name,strinng desscripttion,ddoublee origginalPPrice,int rremainnder,ddoublee disccount)string goodss:gettName() retturn nname;string goodss:

54、gettDescrriptioon()returnn desccriptiion;double goodss:gettOrigiinalPrrice()returnn origginalPPrice;int gooods:ggetRemmaindeer()returnn remaainderr;double goodss:gettDiscoount()returnn disccount;double food:getPrrice()returnn disccount*origiinalPrrice;double clothhing:getPrrice()returnn disccount*or

55、igiinalPrrice;double book:getPrrice()returnn disccount*origiinalPrrice;ofstreaam& goodds:opperatoor (ofstrream& ofs)ofs 名称:namme;ofs 描述:desscripttion;ofs 原价:oriiginallPricee;ofs 剩余量:remmaindeer;ofs 折扣:disscounttenddl;returnn ofs;#includde Plattform.h#includde #includde #includde const sstringg Accoo

56、unt_ffile = Acccount.txt;const sstringg goodds_fille=gooods.ttxt;const sstringg bankkcard_file = baankcarrd.txtt;Platforrm:Pllatforrm()/登录前,登登录注册退出出init();while(true)cout enndl;cout =欢欢迎来到MYY电商平台= eendl;cout = endl;cout =您想进行行什么操作?= endll;cout =1:登录录账号 = endll;cout =2:注册册账号 = endll;cout =3:退出出 = enn

57、dl;cout = endl enddl;cout SSelectt) | Selecct0 3)coutt 输入错误,请请重新输入: enndl;cout enndl; selecct=stdd:atooi(Sellect.cc_str();switcch(selecct)casee 1:if(!logiinAccoount()coout输入密码超次数限限制!enddl;breeak;casee 2:reggisterrAccouunt();breeak;casee 3:outtput();retturn;defaault:breeak;double Platfform:StrTooDoub

58、lle(strring str, int startt, int end)/把字符串串转化成doouble类类型 int sttate = 0;int i = 0;doublee num = 0;for(; startt endd; +sttart)if(sttate = 0 & strrstartt != . & isdiigit(sstrstartt)num = numm * 100 + sttrstartt - 00;else if(staate = 0 & strstartt = .)statte = 11;else if(staate = 1 & isdiigit(sstrstart

59、t)num = numm * 100 + sttrstartt - 00;+i;returnn num/pow(110, i);void Pllatforrm:innit()ifstreeam fiin(Acccount_file.c_strr();stringg userrname;stringg passsword;stringg phonnenum;vectorr scartt;stringg carddnums;int caardnumm;while(finusernname)usernname=uusernaame.suubstr(8);finpasswword;passwword=

60、ppasswoord.suubstr(6);finphoneenum;phoneenum=pphonennum.suubstr(8);fincardnnums;cardnnums=ccardnuums.suubstr(12);cardnnum=sttd:attoi(caardnumms.c_sstr();Accouunt accouunt(ussernamme,passswordd,phonnenum,scartt,0.0,cardnnum);vAccoount.ppush_bback(aaccounnt);fin.cllose();ifstreeam fiingoodd(goodds_fil

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论