华科CPP慕课SPOC第七章 编程题3
请完整戏票类的实现代码。并使用测试代码测试该类,测试代码的运行结果应和输出样例完全相同 注意, 1. booking函数的购票失败提示示例如下,编写代码时请复制其中的标点符号,以免由于中英文编码问题导致判分失效 余票(11)不足,购买失败 2. 输出的“:”都是中文“:”(25分)
题目内容:
//->戏票类
#include<iostream>
#include<cstring>
using namespace std;
class opera{
char name[30];//歌剧名称
int ts[4]; // ts[0]:包厢的总数,ts[1]:一等座的总座位数
//ts[2]:二等座的总座位数,ts[3]:三等座的总座位数
int es[4];// es[0]:空包厢的数量,es[1]:一等座的空闲座位数
//es[2]:二等座的空闲座位数,es[3]:三等座的空闲座位数
int ps[4];// ps[0]:包厢的票价,ps[1]:一等座的票价
//ps[2]:二等座的票价,,ps[3]:三等座的票价
int income;//总收入
public:
opera(); //默认构造函数,数据成员的初始值请参看输出样例
void set_name(char *);//更改剧名
void set_ps(int []);//更改座位价格
void booking(int,int);//售票,如果余票小于订票数,
//终止该次售票,并输出购票失败提示信息
void refund(int,int);//退票,不收手续费
void print();
~opera(); //析构函数,完成票房统计,内容与格式请参看输出样例
char * getName();
int getPF(int);
int getIncome();
};
void opera::print(){
char line[20]="------------------";
cout<<line<<"戏曲名:"<<name<<line<<endl;
char st[4][20]={ "包厢","一等座","二等座","三等座"};
for(int i=0;i<4;i++)
cout<<st[i]<<"<"<<"票价:"<<ps[i]<<" /总数:"<<ts[i]<<" /可售:"<<es[i]<<">"<<endl;
cout<<line<<"总收入:"<<income<<line<<endl;
}
//->测试代码,测试结果应和输出样例完全相同
int main(){
opera p1;
p1.print();
p1.set_name("二进宫");//更改剧名
int p[]={700,380,180,80};
p1.set_ps(p);//更改座位价格
p1.booking(0,9);//购买9张包厢票
p1.booking(1,15);//购买15张一等票
p1.booking(3,20);//购买20张三等票
p1.print();
p1.booking(0,13);//购买13张包厢票
p1.booking(2,14);//购买14张二等票
p1.refund(3,6);//退6张三等票
//p1.print();
/*
cout<<p1.getName()<<"的总收入:"<<p1.getIncome()<<endl;
cout<<p1.getName()<<"的票房如下:"<<endl;
cout<<"包厢售出"<<p1.getPF(0)<<endl;
cout<<"一等座售出"<<p1.getPF(1)<<endl;
cout<<"二等座售出"<<p1.getPF(2)<<endl;
cout<<"三等座售出"<<p1.getPF(3)<<endl;
作为提示,要改掉;
*/
return 0;
}
样例输出:
------------------戏曲名:未命名------------------
包厢<票价:0 /总数:20 /可售:20>
一等座<票价:0 /总数:100 /可售:100>
二等座<票价:0 /总数:240 /可售:240>
三等座<票价:0 /总数:300 /可售:300>
------------------总收入:0------------------
------------------戏曲名:二进宫------------------
包厢<票价:700 /总数:20 /可售:11>
一等座<票价:380 /总数:100 /可售:85>
二等座<票价:180 /总数:240 /可售:240>
三等座<票价:80 /总数:300 /可售:280>
------------------总收入:13600------------------
余票(11)不足,购买失败
------------------戏曲名:二进宫------------------
包厢<票价:700 /总数:20 /可售:11>
一等座<票价:380 /总数:100 /可售:85>
二等座<票价:180 /总数:240 /可售:226>
三等座<票价:80 /总数:300 /可售:286>
------------------总收入:15640------------------
二进宫的总收入:15640
二进宫的票房如下:
包厢售出9
一等座售出15
二等座售出14
三等座售出14
代码如下:
//->戏票类
#include<iostream>
#include<cstring>
using namespace std;class opera{char name[30];//歌剧名称int ts[4]; // ts[0]:包厢的总数,ts[1]:一等座的总座位数//ts[2]:二等座的总座位数,ts[3]:三等座的总座位数int es[4];// es[0]:空包厢的数量,es[1]:一等座的空闲座位数//es[2]:二等座的空闲座位数,es[3]:三等座的空闲座位数int ps[4];// ps[0]:包厢的票价,ps[1]:一等座的票价//ps[2]:二等座的票价,,ps[3]:三等座的票价int income;//总收入
public:opera(); //默认构造函数,数据成员的初始值请参看输出样例void set_name(char *);//更改剧名void set_ps(int []);//更改座位价格void booking(int,int);//售票,如果余票小于订票数,//终止该次售票,并输出购票失败提示信息void refund(int,int);//退票,不收手续费void print();~opera(); //析构函数,完成票房统计,内容与格式请参看输出样例char * getName();int getPF(int);int getIncome();
};opera::opera()
{char _name[30]="未命名";strcpy(name,_name);for(int i=0;i<4;i++){ps[i]=0;}ts[0]=es[0]=20;ts[1]=es[1]=100;ts[2]=es[2]=240;ts[3]=es[3]=300;income=0;
}void opera::set_name(char *_name)
{strcpy(name,_name);
}void opera::set_ps(int *p)
{for(int j=0;j<4;j++){ps[j]=p[j];}
}void opera::booking(int a,int b)
{if(es[a]<b){cout<<"余票("<<es[a]<<")不足,购买失败"<<endl;return ;}else {es[a]-=b;income+=ps[a]*b;}
}void opera::refund(int a,int b)
{income-=ps[a]*b;es[a]+=b;
}char * opera::getName()
{return name;
}int opera::getIncome()
{return income;
}int opera::getPF(int x)
{return ts[x]-es[x];
}opera::~opera()
{char line[20]="------------------";cout<<line<<"戏曲名:"<<name<<line<<endl;char st[4][20]={ "包厢","一等座","二等座","三等座"};for(int i=0;i<4;i++) cout<<st[i]<<"<"<<"票价:"<<ps[i]<<" /总数:"<<ts[i]<<" /可售:"<<es[i]<<">"<<endl;cout<<line<<"总收入:"<<income<<line<<endl;cout<<getName()<<"的总收入:"<<getIncome()<<endl;cout<<getName()<<"的票房如下:"<<endl;cout<<"包厢售出"<<getPF(0)<<endl;cout<<"一等座售出"<<getPF(1)<<endl;cout<<"二等座售出"<<getPF(2)<<endl;cout<<"三等座售出"<<getPF(3)<<endl;
}void opera::print(){char line[20]="------------------";cout<<line<<"戏曲名:"<<name<<line<<endl;char st[4][20]={ "包厢","一等座","二等座","三等座"};for(int i=0;i<4;i++) cout<<st[i]<<"<"<<"票价:"<<ps[i]<<" /总数:"<<ts[i]<<" /可售:"<<es[i]<<">"<<endl;cout<<line<<"总收入:"<<income<<line<<endl;}//->测试代码,测试结果应和输出样例完全相同
int main(){opera p1;p1.print();p1.set_name("二进宫");//更改剧名int p[]={700,380,180,80};p1.set_ps(p);//更改座位价格p1.booking(0,9);//购买9张包厢票p1.booking(1,15);//购买15张一等票p1.booking(3,20);//购买20张三等票p1.print();p1.booking(0,13);//购买13张包厢票p1.booking(2,14);//购买14张二等票p1.refund(3,6);//退6张三等票//p1.print(); return 0;}
华科CPP慕课SPOC第七章 编程题3相关推荐
- C++ Primer Plus 第七章编程题练习
C++ Primer Plus 第七章编程题练习 第一题 题目描述 编写一个程序,不断要求用户输入两个数,直到其中的一个为0.对于每两个数,程序将使用一个 函数来计算它们的调和平均数,并将结果返回给m ...
- python期末编程题_Python 语言程序设计二级教程第七章编程题
编程题1 f=open('file1.txt','w') f.write('My name is Lin') f.write('I am from China') f.close() k=open(' ...
- c++primer plus 第13章 编程题第2题
c++primer plus 第13章 编程题第2题 #pragma once #ifndef CD_H_ #define CD_H_ //base classclass Cd { private:c ...
- C++ Primer Plus 第九章编程题练习
C++ Primer Plus 第九章编程题练习 第一题 题目描述 下面是一个头文件: const int Len = 40;struct golf {char fullname[Len];int h ...
- c++primer plus 第11章 编程题第7题
c++primer plus 第11章 编程题第7题 #pragma once #ifndef COMPLEX0_H_ #define COMPLEX0_H_ #include<iostream ...
- python123第七周测验编程题答案_Python第七周编程题
Python123第七周编程题 1.打印输出附件文件的平均列数,计算方法如下: ...
- 速学堂(java)第十一章编程题答案(自写)
速学堂(java)第十一章编程题答案(自写) 1.设计一个多线程的程序如下:设计一个火车售票模拟程序.假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况 ...
- 速学堂(java)第六章编程题自写答案
速学堂(java)第六章编程题自写答案 1. 编写程序接收用户输入分数信息,如果分数在0-100之间,输出成绩.如果成绩不在该范围内,抛出异常信息,提示分数必须在0-100之间. 要求:使用自定义异常 ...
- 实验七 字符串 编程题 1. 飞来飞去
实验七 字符串 编程题 1. 飞来飞去 [问题描述] 松雅作为一位商业人士,经常需要在天津和深圳之间飞来飞去,因为在这两个城市,她有多间旅馆.当然在冬天她更愿意从天津飞到深圳,因为深圳更暖和.她实在是 ...
最新文章
- DADA2中文教程v1.8
- web-QQ(腾讯)-Email-TMessage(腾讯微博记事本)
- Nginx源码分析:核心模块剖析及常见问题
- 漫说单例模式--宝宝成长记 你真的了解了吗?
- makefile进阶(四)-- 条件判断 (转)
- 好用的数据分析工具能顶半个BI团队?大佬力荐这款工具值得体验
- 谈谈java并发锁(重入锁、读写锁、公平锁)
- .NET Core 集成JWT认证
- masscan安装、研究、测试之旅、扫描结果处理
- dmidecode 硬件查看
- SSH学习(一)—— 基础概念篇
- linux gnu编译器下载,GNU Compiler Collection(gcc编译器)下载_GNU Compiler Collection(gcc编译器)官方下载-太平洋下载中心...
- CUDA文件缺失解决方法——以cudart64_110.dll not found为例
- 一次性奖励300万?成都市武侯区促进文化产业发展系列政策影视产业专项政策出来了
- word绿豆沙颜色设置_Win7系统下将txt和word背景颜色设置为豆沙绿的方法
- 计算机常见软件故障及处理,计算机常见软件故障处理
- word 页码怎么设置从任意指定页开始
- 转载黑苹果10.13N卡驱动方法
- HTML设计网站首页
- 苹果 iOS/iPadOS 14.4 beta 2新功能