您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 电子商务 > 北邮C银行门户与电商平台
C++电商交易平台设计班级:2013211306姓名:严浩学号:2013211321一.实验目的1.锻炼我们用c++编程的能力2.培养我们考虑问题是否全面的能力3.训练我们的代码优化能力二.基本内容题目一:银行门户的设计该门户是一个单独的程序,程序要求至少支持以下功能:1)注册银行卡,银行可选;2)修改银行卡密码;3)存款取款;银行卡至少需要有卡号,密码,所属银行名称,持卡人身份证号,卡内金额等内容。要求1:请把所有的银行名写入文件(或数据库),注册银行卡的时候,要求只能选择已经存在的银行进行注册。要求2:请做好错误场景的处理,例如读银行文件错误,输入数据不合法等等。题目二:电商平台的设计该平台是银行门户之外的一个单独的程序,程序要求至少支持以下功能:1)注册&登录:支持新用户注册平台账号,已注册用户用平台账号登录平台。(要求已注册用户的信息长久保留。)2)浏览平台产品信息。3)优惠活动:支持对同一品类下所有产品打折的活动,支持单笔订单满X减Y的活动。4)购买产品:支持用户添加产品到购物车,查看实际应付的产品价格,提交订单。在题目二我们暂时不考虑提交订单后支付等后续需求。要求1:电商平台上至少有三类产品:如食物、服装、图书等,每类产品中至少有三个具体的产品(如图书中可以有《C++Primer》、《EffertiveC++》等),每个具体的产品请至少包含产品描述,产品原价,产品剩余量等数据。所有的产品信息需要存储在数据库或文件中,不能写在代码中,平台管理员通过直接修改数据库或文件,管理本平台上的产品,包括产品的增加和删除,修改数量以及具体产品的属性信息等。要求2:请至少设计一层继承体系(产品基类-产品子类),设计一个产品基类,然后让图书类、电子产品类和服装类等产品子类类继承它,具体的产品是产品子类的实例对象(C++Primer是图书类的实例对象)。产品基类请至少具有一个虚函数getPrice()用于计算具体产品的价格。要求3:请通过为每个产品子类定义“品类折扣系数”来支持对同产品子类下所有产品打折扣的活动(如图书全场5折,则图书类这一产品子类的折扣系数为0.5)。要求4:请做好错误场景的处理。题目三:网上支付的设计实现题目三会让你设计的平台像个真正的运行在网络上的平台。题目三要求在题目一、二的基础上支持通过网上支付在电商平台上购物,请至少实现以下功能:1)绑定银行卡:支持电商平台账号绑定银行卡。同一账号可以绑定多张银行卡,而且银行卡可以属于不同银行。2)网上支付:选择绑定的任一银行卡支付电商平台上的订单。要求1:绑定银行卡和选择银行卡进行支付时都要求提供对应的银行卡密码。要求2:当在电商平台上绑定银行卡或者进行网上支付的时候,请不要直接打开某个文件查找银行卡的信息,因为银行卡信息文件是银行门户系统私有的,电商平台系统无法直接访问,而应该由电商平台系统去向银行门户系统对接数据。请用socket通信来传送数据。要求3:请做好错误场景的处理,如绑定银行卡失败,支付失败等。三.实验方法题目一:创建了银行卡类、银行门户类,银行卡里包含了卡号、姓名、密码、身份证号、银行名称、余额几个属性。银行门户有操作银行卡,注册银行卡两个功能,操作银行卡又包括存取款,修改密码等功能,账户信息和银行名称保存在文件里,银行卡用vector类型保存。题目二:创建了电商平台类、账户类、商品类(商品类有3个派生类)、绑定银行卡类、购物车项目类。其中账户类中包含了用户名、密码、手机号、购物车、应付款、绑定银行卡、绑定银行卡数量这几个属性,其中购物车里的项目用vector类型保存。电商平台中的账户也用vector类型保存,平台的功能有:登录、注册,登录后可以绑定银行卡、查看商品并添加购物车、查看购物车和应付金额、结算购物车、退出登录等功能。题目三:在绑定银行卡和付款时用socket通信来传送数据。绑定银行卡时,先向银行门户发送绑定银行卡标志位表示绑定功能,然后发送卡号密码,验证通过后返回成功标志位,电商平台收到后绑定成功。付款时,先向银行门户发送付款标志位表示付款功能,,然后发送卡号密码,验证通过后返回成功标志位,电商平台收到后发送应付金额,银行门户收到后调用付款函数,余额不足返回余额不足标志位,余额够则返回付款成功标志位。四.源代码银行门户代码:#ifndef_BANKCARD_H_#define_BANKCARD_H_#includestring#includefstreamusingnamespacestd;classbankcard{private:stringcardnum;stringpassword;stringbankname;stringname;stringID;doubleremainder;public:bankcard(){}bankcard(stringnum,stringpassword,stringbankname,stringname,stringID,doubleremainder);voidsetPassword(stringpassword);voidaddRemainder(doublemoney);voidsubRemainder(doublemoney);stringgetCardnum();stringgetPassword();stringgetBankname();stringgetName();stringgetID();doublegetRemainder();boolmatchPassport(stringpassword);ofstream&operator(ofstream&ofs);};#endif#includebankcard.husingstd::string;bankcard::bankcard(stringcardnum,stringpassport,stringbankname,stringname,stringID,doubleremainder){this-cardnum=cardnum;this-password=passport;this-bankname=bankname;this-name=name;this-ID=ID;this-remainder=remainder;}voidbankcard::setPassword(stringnewpassport){this-password=newpassport;}voidbankcard::addRemainder(doublemoney){this-remainder+=money;}voidbankcard::subRemainder(doublemoney){this-remainder=this-remainder-money;}stringbankcard::getCardnum(){returncardnum;}stringbankcard::getPassword(){returnpassword;}stringbankcard::getBankname(){returnbankname;}stringbankcard::getName(){returnname;}stringbankcard::getID(){returnID;}doublebankcard::getRemainder(){returnremainder;}boolbankcard::matchPassport(stringpassword){if(this-password==password)returntrue;elsereturnfalse;}ofstream&bankcard::operator(ofstream&ofs){ofs卡号:cardnum;ofs密码:password;ofs银行:bankname;ofs姓名:name;ofs身份证号:ID;ofs余额:decremainderendl;returnofs;}#ifndefBANKPORTAL_H#defineBANKPORTAL_H#includeWINSOCK2.H#includestdio.h#pragmacomment(lib,ws2_32.lib)#includevector#includestring#includebankcard.husingstd::vector;classBankPortal{private:vectorstringvBankN;vectorbankcardvBankC;voidinit();voidregisterBankC();voidloginBankC();voidchangePassword(intindex);voiddeposit(intindex);voidwithdraw(intindex);intmatch(stringcardnum);boolcheck(stringcardnum);voidoutput();voidbankNaming();doubleStrToDouble(stringstr,intstart,intend);voidBind();boolpay(stringnum,doublemoney);intMatch(stringusername,stringpassword);public:BankPortal();};#endif#includeiostream#includefstream#includestring#includestrstream#includecmath#includetime.h#includebankportal.hconststringbankname_file=bankname.txt;conststringoutput_file=output.txt;BankPortal::BankPortal(){init();cout1:进入银行门户系统2:进入监听模式,请输入您的选择:;intChoice;stringSelect;while(!(cinSelect)||(Select[0]!='1'&&Select[0]!='2'))cout输入错误,请重新输入:endl;coutendl;Choice=std::atoi(Select.c_str());if(Choice==2)Bind();while(true){coutendl;cout=================欢迎来到银行门户==================endl;cout===================================================endl;cout=================您想进行什么操作?================endl;cout=================1:操作账户================endl;cout=================2:注册银行卡================endl;cout=================3:退出================endl;cout===================================================endlendl;cout请输入您要进行的操作:;intselect;stringSelect;while(!(cinSelect)||Select[0]'1'||Select[0]'3')cout输入错误,请重新输入:endl;coutendl;select=std::atoi(Select.c_str());switch(select){case1:loginBa
本文标题:北邮C银行门户与电商平台
链接地址:https://www.777doc.com/doc-31584 .html