当前位置: 首页 > article >正文

【id:59】【20分】D. 旅馆顾客统计(静态成员)

时间限制
1s
内存限制
128MB

题目描述
编写程序,统计某旅馆住宿客人的总数和收入总额。要求输入客人的姓名,输出客人编号(2015+顺序号,顺序号4位,如第1位为0001,第2位为0002,依此类推)、姓名、总人数以及收入总额。总人数和收入总额用静态成员,其他属性采用普通的数据成员。旅馆类声明如下:

class Hotel
{
private:
static int totalCustNum; // 顾客总人数
static float totalEarning; // 旅店总收入
static float rent; // 每个顾客的房租
char customerName; // 顾客姓名
int customerId; // 顾客编号
public:
// totalCustNum++,customerId按照totalCustNum生成
Hotel(char
customer);
~Hotel(); //记得delete customerName
void Display(); //相应输出顾客姓名、顾客编号、总人数、总收入
};

输入
第1行:输入旅馆单个顾客房租

第2行开始,依次输入顾客姓名,0表示输入结束, 姓名的最大字符长度为20

输出
每行依次输出顾客信息和当前旅馆信息。包括顾客姓名,顾客编号,旅馆当前总人数,旅馆当前总收入。

样例查看模式
正常显示
查看格式
输入样例1 <-复制

输出样例1

#define _CRT_SECURE_NO_WARNINGS 
#include<bits/stdc++.h>
using namespace std;
class Hotel
{
private:
    static int totalCustNum; // 顾客总人数
    static float totalEarning; // 旅店总收入
    static float rent; // 每个顾客的房租
    char* customerName; // 顾客姓名
    int customerId=20150000; // 顾客编号
public:
    // totalCustNum++,customerId按照totalCustNum生成
    Hotel(char* customer) {
        customerName = new char[strlen(customer) + 1];
        strcpy(customerName, customer);
        totalCustNum++;
        customerId+= totalCustNum;
    }
    ~Hotel() {
        delete[] customerName;
    }//记得delete customerName
    void Display() {

        cout << customerName << " "<< customerId <<" ";
        cout <<  totalCustNum<< " ";
        
        cout << totalCustNum * rent << endl;
    }
    static void getrent(float rent1) {
        /*totalCustNum = 0;
        totalEarning =0;*/
        rent = rent1;
    }//相应输出顾客姓名、顾客编号、总人数、总收入
};
int Hotel::totalCustNum = 0;
float Hotel::totalEarning = 0;
float Hotel::rent = 0;
int main() {

    float rent;
    char customer[10];
    cin >> rent;
    Hotel::getrent(rent);
    while (1) {
        cin >> customer;
        if (*customer == '0')
            break;
        Hotel h(customer);
        h.Display();
    }

    return 0;
}

http://www.kler.cn/news/17178.html

相关文章:

  • 应用,auto,内联函数
  • 计算机基础 -- 硬件篇
  • 2023年web前端开发之JavaScript进阶(一)
  • 开心档之C++ 指针
  • Flex弹性布局
  • Vue电商项目--axios二次封装
  • 2023-05-06 GPT替代
  • 容器适配器---deque和STL ---stack queue priority_queue的模拟实现 C++
  • 【刷题之路Ⅱ】LeetCode 61. 旋转链表
  • 【转存】SpringBoot 中的自带工具类,快速提升开发效率
  • 基于javaweb的学生就业管理系统
  • 如何固定权重,对某些层得学习率改为0?
  • 教育专题讲座(带答案)
  • 基于标签的协同过滤算法实现与个人兴趣相关的文章推荐
  • Renesas瑞萨A4M2和STM32 CAN通信
  • 程序员如何学好PHP?做好这五个方面就够了
  • 使用Webpack搭建项目(vue篇)
  • [230507]托福听力真题TPO66词汇 |无重复|20:50~21:55 + 8:00~8:30
  • Nginx搭建以及使用(linux)
  • ( 数组和矩阵) 697. 数组的度 ——【Leetcode每日一题】
  • 基于springboot的家政服务管理平台(源码,设计文档等)
  • 四元数快速入门【Quaternion】
  • 【软考数据库】第七章 关系数据库
  • 拥抱智能时代:初探RFID系统
  • C++每日一练:小艺照镜子(详解分治法)
  • Sprinboot+Vue前后端分离的电脑手机服装数码产品商城系统
  • 探索Qt线程编程的奥秘:多角度深入剖析
  • 在 Swift 中使用百度地图 SDK
  • Gitlab自动触发jenkins完成自动化构建
  • xcode打包导出ipa