- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C面向对程序设计教程课程设计模拟网上购书的结账功能
课程设计报告课程名称_《C++面向对象程序设计》设计题目_模拟网上购书的结账功能2015年6月模拟网上购书的结账功能课题内容和要求随着互联网的飞速发展,网上购物越来越受到大家的喜爱,坐在家中,点点鼠标,就有人把你要的东西送到手中,多惬意呀!现在要解决的问题是,用户在网上购书以后,系统根据购书人的不同类型计算出购书人的费用。网上购书的一般过程是:用户首先输入自己的会员号,然后,选择想买的书籍放到购书筐中,选择结束以后,用户要求系统结账,系统便计算出费用通知用户。本设计并不想模拟网上购书的全部过程,所以会把选择书的过程略去,假设用户已经选定了两本书。根据实际情况,确定购书人可以分为三类:普通人、会员、贵宾。“普通人”的购书费用按照书的原价收取。、“会员”的购书费用计算方法是:五星级会员按照原价的70% 收取,四星级会员按照原价的80% 收取,三星级会员按照原价的85% 收取,二星级会员按照原价的90% 收取,一星级会员按照原价的95% 收取。“贵宾”的购书费用根据特别指定的折扣率计算收取的费用,例如折扣率40%,则按照实际书费的60%收取。用例图比较简单,在此略去。对象(类)设计根据上面的分析,需要设计一个基类buyer和它的3个派生类member(会员)、layfolk(普通人)、honoured_guest(贵宾)。基类中包含的数据成员是姓名、购书人编号、地址、购书金额。member类中除了继承buyer的数据,还增加了会员级别leaguer_grade。honoured_guest则增加了折扣率discount_rate。在基类中定义了构造函数和对所有类型的购书人相同的操作,getbuyname负责取出购书者的姓名,getaddress负责取出购书者的地址,getpay负责取出购书者应付的金额,getid则负责取出购书者的编号。由于对不同购书者的购书金额的计算方法不同,所以不能在基类中确定计算方法,又由于各类购书者的数据内容不同,显示的方法也不一样,因此,在基类中将setpay和display定义为虚函数。在此基础上增加buyers和bookshop类,再利用c++STL里的vector类库,实现对图书和购书人信息的增删补查操作。有关购书者的类定义如下:class buyer { // 基类 protected: string name; // 姓名 int buyerID; // 购书人编号 string address; // 地址 double pay; // 购书金额 public: buyer(); buyer(string n, int b, string a, double p); string getbuyname(); // 取姓名 string getaddress(); // 取地址 double getpay(); // 取应付金额 int getid(); // 取购书人编号 virtual void display() = 0; //显示函数 virtual void setpay(double = 0) = 0; // 计算购书金额};class member : public buyer { // 会员类 int leaguer_grade; // 会员级别 public: member(string n, int b, int l, string a, double p) : buyer(n, b, a, p) { // 构造函数 leaguer_grade = l; } void display(); // 显示函数 void setpay(double p); // 计算购书金额};class honoured_guest : public buyer { // 贵宾类 double discount_rate; // 折扣率 public: honoured_guest(string n, int b, double r, string a, double p) : buyer(n, b, a, p) { // 构造函数 discount_rate = r; } void display(); // 显示函数 void setpay(double p); // 计算购书金额};class layfolk : public buyer
您可能关注的文档
- 高考总复习必备2013年高考数学闯关密练特训51平面向量概念与线性运算新人教A版.doc
- 高考总复习必备2013年高考数学闯关密练特训52平面向量基本定理及向量坐标表示新人教A版.doc
- 高考总复习必备2013年高考数学闯关密练特训43三角函数图象与性质新人教A版.doc
- 高考化学第二轮复习 几种重要金属元素.ppt
- 高考总复习必备2013年高考数学闯关密练特训61数列概念新人教A版.doc
- 高考历史第二轮复习 必修Ⅰ 专题一 古代中国政治制度.ppt
- 高考总复习必备2013年高考数学闯关密练特训82圆方程新人教A版.doc
- 高考总复习必备2013年高考数学闯关密练特训83直线圆与圆位置关系及空间直角坐标系新人教A版.doc
- 高考总复习必备2013年高考数学闯关密练特训73简单线性规划问题新人教A版.doc
- 高考总复习必备2013年高考数学闯关密练特训92简单几何体表面积和体积新人教A版.doc
文档评论(0)