【C++面向对象】用电管理数据管理系统(面向对象)

news2024/11/24 11:27:14

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


用电管理数据管理系统(面向对象)


目录

  • 用电管理数据管理系统(面向对象)
  • 一、设计要求
  • 二、运行结果
    • 2.1 输入数据
    • 2.2 显示用电量
    • 2.3 显示某用户某月用电量
    • 2.4 显示某楼栋某时间段用电量
  • 三、代码设计
    • 3.1 输入数据
    • 3.2 根据用户显示用电量
    • 3.3 根据用户名和月份显示用电量
  • 四、总结


一、设计要求

统计用电管理数据,要求能用菜单实现如下功能:
(1)输入每个电表的用户名,楼 栋号,抄表日期,电表读数。
(2) 按作者的用电量,从高到低排出每个用户的总用电量。
(3)根据用户要求输出某用户某月 (从键盘输入用户名和月份)的总用电量。(4)统计某楼 栋从某月到某月(从键盘输入)的总用电量.

要求:数据采用文件输入,保存。


二、运行结果

2.1 输入数据

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

在这里插入图片描述


2.2 显示用电量

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

在这里插入图片描述


2.3 显示某用户某月用电量

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

在这里插入图片描述


2.4 显示某楼栋某时间段用电量

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

在这里插入图片描述


三、代码设计

3.1 输入数据

将用户输入的数据写入到指定文件中。用户会被提示输入用户名、楼栋号、抄表日期和电表读数。

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

void input_data(const std::string& filename) {
    std::ofstream file(filename, std::ios::app);

    std::string username;
    std::string building_number;
    std::string date;
    int reading;

    std::cout << "请输入用户名: ";
    std::cin >> username;
    std::cout << "请输入楼栋号: ";
    std::cin >> building_number;
    std::cout << "请输入抄表日期 (格式 YYYY-MM): ";
    std::cin >> date;
    std::cout << "请输入电表读数: ";
    std::cin >> reading;

    MeterReading entry{ username, building_number, date, reading };
    data.push_back(entry);

    file << username << "," << building_number << "," << date << "," << reading << "\n";
    file.close();
}

3.2 根据用户显示用电量

对存储的数据进行排序,并按照每个用户的电表读数总和进行降序排列。然后将排序后的结果输出显示。

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

void sort_and_display() {
    std::map<std::string, int> user_total;

    for (const auto& entry : data) {
        user_total[entry.username] += entry.reading;
    }

    std::vector<std::pair<std::string, int>> sorted(user_total.begin(), user_total.end());
    std::sort(sorted.begin(), sorted.end(), [](const auto& a, const auto& b) {
        return a.second > b.second;
        });

    for (const auto& pair : sorted) {
        std::cout << pair.first << " " << pair.second << "\n";
    }
}

3.3 根据用户名和月份显示用电量

获取用户输入的用户名和月份,然后遍历存储的数据,找到符合用户名和月份条件的数据条目,并计算它们的电表读数总和。最后,输出显示该用户在指定月份的总用电量。

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

void display_user_month() {
    std::string username, month;
    std::cout << "请输入用户名: ";
    std::cin >> username;
    std::cout << "请输入月份 (格式 YYYY-MM): ";
    std::cin >> month;

    int total = 0;
    for (const auto& entry : data) {
        if (entry.username == username && entry.date.substr(0, 7) == month) {
            total += entry.reading;
        }
    }
    std::cout << "用户" << username << " 在 " << month << " 的总用电量是 " << total << "\n";
}

四、总结

展示如下【关注 测试开发自动化 回复 用电管理数据管理系统 公众号获取源码】 :

  1. 输入数据:允许用户输入用户名、楼栋号、抄表日期和电表读数,并将数据保存到文件和内存中。

  2. 显示用户用电量:计算每个用户的电表读数总和,并按照总用电量降序排列,然后将结果显示出来。

  3. 显示某用户某月用电量:根据用户输入的用户名和月份,计算指定用户在指定月份的总用电量,并将结果显示出来。

  4. 显示某楼栋某时间段用电量:根据用户输入的楼栋号、开始月份和结束月份,计算指定楼栋在指定时间段内的总用电量,并将结果显示出来。

  5. 退出程序:当用户选择退出时,程序终止执行。

电表读数管理系统可以帮助用户记录和统计电表读数数据,方便了解用户和楼栋的用电情况。用户可以根据需要进行数据录入、查询和分析,从而更好地管理和控制用电量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

word转化为ftl格式文件模板,导出后office提示文件错误

需求如下: 使用模板,导出word文件,最近在做这个需求,本地环境用的是wps,结合本地的环境快速完成了开发需求之后,有一天客户发现office打开报错,本人深感不接,wps都能打开,各个在线文档也都支持,为何office就不支持,环境不同。 分析: wps是按照office版本迭代开发…

对比学习论文-系列4

文章目录 MedCLIP: Contrastive Learning from Unpaired Medical Images and Text目标问题来源模型架构 Supervised Prototypical Contrastive Learning for Emotion Recognition in ConversationPrototypical Contrastive LearningCurriculum Strategy&#xff1a; KECP: Know…

Lion:闭源大语言模型的对抗性蒸馏

通过调整 70k 指令跟踪数据&#xff0c;Lion (7B) 可以实现 ChatGPT 95% 的能力&#xff01; 消息 我们目前正在致力于训练更大尺寸的版本&#xff08;如果可行的话&#xff0c;13B、33B 和 65B&#xff09;。感谢您的耐心等待。 **[2023年6月10日]**我们发布了微调过程中解…

MyBatis逆向工程的配置与生成

什么是逆向工程 所谓的逆向⼯程是&#xff1a;根据数据库表逆向⽣成Java的pojo类&#xff0c;SqlMapper.xml⽂件&#xff0c;以及Mapper接⼝类 等。 要完成这个⼯作&#xff0c;需要借助别⼈写好的逆向⼯程插件。 1.在pom中添加逆向工程插件 <!--定制构建过程--> <bu…

字符流的使用

1&#xff1a;文件字符流输入流-一次读取一个字符 1:文件字符输入流&#xff1a;Reader 以内存为基准&#xff0c;把磁盘文件中的数据以字符的形式读取到内存中去。 2&#xff1a;文件字符流输入流-一次读取一个字符数组 3&#xff1a;文件字符输出流 作用&#xff1a;以内存…

【现场问题】flink-cdc,Oracle2Mysql的坑,Oracle区分大小写导致

大小写导致的问题 错误的flink-cdc语句sql我们看一下oracle的数据库字段再看一下错误sql里面的内容flink报错内容 正确的sql三级目录 错误的flink-cdc语句sql CREATE TABLE t_wx_source_1 (id String,name String,age String ) WITH (connector oracle-cdc,hostname 192.168…

U-Boot移植 (3)- uboot启动Linux内核测试

文章目录 1. bootcmd 和 bootargs 环境变量1.1 环境变量 bootcmd1.2 环境变量 bootargs 2. uboot 启动 Linux 测试2.1 从 EMMC 启动 Linux 系统2.2 从网络启动 Linux 系统 3. 总结 1. bootcmd 和 bootargs 环境变量 1.1 环境变量 bootcmd bootcmd 保存着 uboot 默认命令&…

Netty专题:netty概述,及丢弃协议服务(1)

Netty 是一个 Java NIO 客户端服务器框架&#xff0c;使用它可以快速简单地开发网络应用程序&#xff0c;比如服务器和客户端的协议。Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发。 JDK 原生 NIO 程序的问题 JDK 原生也有一套网络应用程序 API&…

秋招算法岗c++面经

目录 1、指针与引用的区别 2.const关键字 3.重载和重写(覆盖)的区别 4.new和malloc的区别(new封装了malloc) 5.static和const的区别 6. c三大特性 7.虚函数 8.纯虚函数 9.虚继承 10. 智能指针 11. 内存泄漏 12.c的内存分布 13.STL介绍 1、指针与引用的区别 指针存…

【Web3】认识NFT

NFT&#xff08;非同质化代币&#xff09;在Web3中扮演着重要的角色。Web3是指下一代互联网&#xff0c;它建立在区块链技术之上&#xff0c;旨在实现更加去中心化、透明和用户掌控的互联网。 NFT在Web3的一些重要作用&#xff1a; 唯一性和可证明稀缺性&#xff1a;NFT是一种…

vscode突然不能输入中文句号,怎么办

vscode突然不能输入中文句号&#xff0c;怎么办? 敲代码敲得好好的&#xff0c;突然无论打句号&#xff0c;出来的都是英文的句号&#xff0c;无法打出中文的句号&#xff0c; 让人着实着急。。。 记录一下解决办法&#xff1a; Ctrl 句号&#xff0c;然后再测试一下&…

JavaWeb 速通HTML(常用标签汇总及演示)

目录 一、拾枝杂谈 1.网页组成 : 1 结构 2 表现 3 行为 2.HTML入门 : 1 基本介绍 2.基本结构 : 3.HTML标签 : 1 基本说明 2 注意事项 二、常用标签汇总及演示 1.font标签 : 1 定义 2 演示 2.字符实体 : 1 定义 2 演示 3.标题标签 : 1 定义 2 演示 4. 超链接标签 : 1…

香薰市场分析:天猫香薰销售额近7.2亿,市场增长潜力大

在Z世代崛起的背景下&#xff0c;香薰作为能够调节情绪&#xff0c;提升生活品质的产品&#xff0c;备受市场青睐。作为一种健康、美容、舒缓压力的新兴行业&#xff0c;香薰市场也形成了自己的特色和竞争力&#xff0c;其发展前景十分广阔。 根据鲸参谋电商数据分析平台的相关…

Redis集群主从复制哨兵

环境配置&#xff1a; 一主二从 从机配置 主机查看 真实的主从配置应该在配置文件中配置&#xff0c;才是永久的 没哨兵的情况下&#xff0c;主机断开后。从机不会默认升级为主节点。需要手动配置。主机在启动后。依赖可以正常使用。从机断开后&#xff0c;期间主机写入东西&am…

探索HTML的黑科技:让你的网页变得无与伦比!

文章目录 1. 使用语义化标签2. 嵌套标签正确闭合3. 使用无障碍&#xff08;Accessibility&#xff09;特性4. 利用表单验证5. 使用内联 SVG6. 优化图像加载7. 优化 CSS 和 JavaScript8. 使用响应式设计9. 使用嵌入式视频和音频10. SEO 优化 以下是十个常用的 HTML 技巧&#xf…

SpringBoot整合Redis哨兵模式

文章目录 1、Redis哨兵复习2、整合3、简单举例4、RedisTemplate详解5、补充 1、Redis哨兵复习 Redis哨兵主要有三点作用&#xff1a; 监控&#xff1a;不断检查master和slave是否正常运行通知&#xff1a;当被监控的主从服务器发生问题时&#xff0c;向其他哨兵和客户端发送通…

当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估

第一章 理论基础与研究热点分析 1. 生态系统服务与生态系统服务价值介绍 ​ 2. 生态系统服务价值研究方法 3. 生态系统服务价值研究热点 Citespace文献可视化分析 VOSviewer文献可视化分析 第二章 空间数据来源及预处理 1. 空间数据简介 2. ArcGIS Pro数据采集与分析 数…

直流运算放大器-----四种反馈电路(一)

目录 电压串联负反馈 电路图 计算公式 仿真 电压并联负反馈 电路图 计算公式 仿真 电流串联负反馈 电路图 计算公式 仿真 电流并联负反馈 电路图 计算公式 仿真 电压电流&#xff0c;串联并联反馈区分 电压串联负反馈 电路图 计算公式 仿真 因为是二倍放大&#x…

Spring boot +React集成ChatGPT 智能AI

在这里插入代码片import {Button, Input, Radio,Alert,Modal } from antd; import Marquee from react-fast-marquee; import {ChromeOutlined,WifiOutlined,AimOutlined } from ant-design/icons; import React, {useEffect, useState, useRef} from react; import chatgptPn…

MIT 6.S081 Lab Seven -- 多线程

MIT 6.S081 Lab Seven -- 多线程 引言MultithreadingUthread: switching between threads (moderate)代码解析补充 Using threads (moderate)代码解析 Barrier(moderate)代码解析 引言 本文为 MIT 6.S081 2020 操作系统 实验七解析。 MIT 6.S081课程前置基础参考: 基于RISC-V…