版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计基础项目设计说明书项 目:模拟网上购书的结账系统专 业: 软件工程 班 级: 16 级 1 班 学 号: 16044115 姓 名: 李泽 哈尔滨学院·信息工程学院一、功能要求模拟实现网上购书的结账功能。使用C+,实现图书信息的输入、输出,购书人信息的输出、购书账单的结算、保存等功能。二、设计要求1设计类。包含:(1)定义基类buyer,其中含有数据成员:姓名、购书人编号、地址等。(2)定义基类buyer的派生类:普通人、会员、贵宾。要求会员类增加数据成员会员级别,贵宾类增加数据成员折扣率。(3)定义书类book,其中含有数据成员:书号、书名、作者、定价等。2. 系统
2、实现以下相应的各项功能:(1)图书信息的输入、输出;(2)购书人信息的输出;(3)购书账单的结算;(4)购书信息的保存。3其它要求:(1)使用构造函数、析构函数和成员函数;(2)使用友元、继承;(3)使用文件保存;(4)使用适当的注释进行说明;(5)允许适当地增加其它功能。三、全部的程序源代码(有相应注释)/buy.hclass buyerprotected:string name;int buyerID;string address;double pay;public:buyer();buyer(string n,int b,string a,double p);string getbuyn
3、ame();string getaddress();double getpay();int getid();virtual void display()=0;virtual void setpay(double=0)=0;class member:public buyerint 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:publ
4、ic buyerdouble 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 buyerpublic:layfolk(string n,int b,string a,double p):buyer(n,b,a,p)void display();void setpay(double p);buyer:buyer()
5、name=""buyerID=0;address=" "pay=0; buyer:buyer(string n,int b,string a,double p)name=n;buyerID=b;address=a;pay=p; double buyer:getpay()return pay;string buyer:getaddress()return address;string buyer:getbuyname()return name;int buyer:getid()return buyerID;/void member:display()cou
6、t<<"购书人姓名:"<<name<<"t"cout<<"购书人编号:"<<buyerID<<"t"cout<<"购书人为会员,级别:"<<leaguer_grade<<"n"cout<<"购书地址:"<<address<<"n"/void member:setpay(double p)if(l
7、eaguer_grade=1) pay=.95*p+pay;else if(leaguer_grade=2) pay=.90*p+pay;else if(leaguer_grade=3) pay=.85*p+pay;else if(leaguer_grade=4) pay=.8*p+pay;else if(leaguer_grade=5) pay=.7*p+pay;else cout<<"级别错误!"/void member:display()void honoured_guest:display()cout<<"购书人姓名:"&
8、lt;<name<<"t"cout<<"购书人编号:"<<buyerID<<"t"cout<<"购书人为贵宾,折扣率为:"<<discount_rate*100<<"%n"cout<<"购书地址:"<<address<<"n"void honoured_guest:setpay(double p)pay=pay+(1-discoun
9、t_rate)*p;void layfolk:display()cout<<"购书人姓名:"<<name<<"t"cout<<"购书人编号:"<<buyerID<<"t"cout<<"购书人为普通人:"<<"n"cout<<"购书地址:"<<address<<"n"void layfolk:setpay(d
10、ouble p)pay=pay+p;/book.hclass bookprotected:string book_ID;string book_name;string author;string publishing;double price;public:book()book_ID=""book_name=""author=""publishing=""price=0;book(string b_id,string b_n,string au,string pu,double pr)book_ID=b_id;bo
11、ok_name=b_n;author=au;publishing=pu;price=pr;void display()cout<<"书号:"<<book_ID<<"t"cout<<"书名:"<<book_name<<"t"cout<<"作者:"<<author<<"n"cout<<"出版社:"<<publishing<&
12、lt;"t"cout<<"定价:"<<price<<"n"string getbook_ID()return book_ID;string getbook_name()return book_name;string getauthor()return author;string getpublishing()return publishing;double getprice()return price;/strclass.h#include"string.h"class stri
13、ngfriend ostream& operator<<(ostream& S,const string& Str);friend istream& operator>>(istream& S,string& Str);public:string();string(const string& Str);void operator=(const string& Str);string();string(char *p);private:short m_Length;char*m_Date;string:str
14、ing()m_Length=1;m_Date=new char m_Length;memcpy(m_DATE,"",m_Length);string:string(const string& Str)m_Length=Str.m_Length; m_Date=new char m_Length;memcpy(m_Date,Str.m_Date,m_Length);string:string(char*p) m_Length=strlen(p)+1;m_Date=new char m_Length;memcpy(m_Date,p,m_Length);void stri
15、ng:operator =(const string& Str)if(&Str!=this)delete m_Date;m_Length=Str.m_Length;m_Date=new char m_Length; memcpy(m_Date,Str.m_Date,m_Length);return;string:string()deletem_Date;ostream& operator<<(ostream& S,const string& Str)short i;for(i=1;i<Str.m_Length-1;i+)S<<
16、;Str.m_Datei;return S;istream& operator>>(istream& S,string& Str)const short BUFLEN=256;char BufBUFLEN;memset(Buf,0,BUFLEN);if(S.peek()='n')S.ignore();S.getline(Buf,BUFLEN,'n'); Str=Buf;return S;/buy_book.cpp#include<string>#include<iostream>using namesp
17、ace std;#include"buy.h"#include"book.h"class order public: order() buyerID=0; ordercount+; orderID=ordercount; listcount=0; void setbuyid(int b_id) buyerID=b_id; void buy_one_book(string b_id) orderlistlistcount=b_id; listcount+; void display(); private: static int ordercount; in
18、t orderID; int buyerID; int listcount; string orderlist20;void order:display() int i; cout<<"n订单信息nn订单号:"<<orderID<<"t" cout<<"购书人编号:"<<buyerID<<"n" cout<<"所购图书书号:" for(i=0;i<listcount;i+) cout<<orde
19、rlisti<<"t" cout<<endl;int order:ordercount=0;void main()int i=0,j=0;int buyerid,flag;book *c2; /用指针数组存放book对象的地址layfolk b1("林小茶",1,"北京",0);honoured_guest b2("王遥遥",2,.6,"上海",0);member b3("赵红艳",3,5,"广州",0);order o120;buyer *b3=&b1,&b2,&b3; /用指针数组存放继承了buyer类的3个对象的地址book c1("7-302-040504-6","c+程序设计","谭浩强","清华",25);book c2("7-402-03388-9","数据结构","许卓群","北大",20);c0=&c1;c1=&c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 税务局2025年度环境保护与治理合同
- 2025年度出口退税证明开具与跨境电商平台服务合同3篇
- 2024良乡校区物业管理服务合同
- 2025年度装载机租赁与施工技术指导合同3篇
- 二零二四年围栏产品研发与创新设计合同3篇
- 二零二五年度绿色通道不过户二手房买卖合同2篇
- 2025年度新能源发电项目变压器采购合同标准范本3篇
- 2024版跨国企业社会责任合规合同
- 二零二五版个人购房贷款担保与房屋维修基金代缴代理合同3篇
- 二零二五版股权代持实务解析与合规操作合同
- 割接方案的要点、难点及采取的相应措施
- 2025年副护士长竞聘演讲稿(3篇)
- 2025至2031年中国台式燃气灶行业投资前景及策略咨询研究报告
- 原发性肾病综合征护理
- (一模)株洲市2025届高三教学质量统一检测 英语试卷
- 第三章第一节《多变的天气》说课稿2023-2024学年人教版地理七年级上册
- 2025年中国电科集团春季招聘高频重点提升(共500题)附带答案详解
- 2025年度建筑施工现场安全管理合同2篇
- 建筑垃圾回收利用标准方案
- 2024年考研英语一阅读理解80篇解析
- 样板间合作协议
评论
0/150
提交评论