【C++】C++-机房收费管理系统(源码+注释)【独一无二】

请添加图片描述


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


【C++】C+±机房收费管理系统(源码+注释)【独一无二】


目录

  • 【C++】C++-机房收费管理系统(源码+注释)【独一无二】
  • 一、设计要求
  • 二、设计思路
      • 结构体
      • 输入学生信息
      • 计算上机费用
      • 查询学生信息
      • 显示机器使用情况
      • 将信息写入文件
      • 从文件读取信息
      • 主函数
  • 三、可视化分析


一、设计要求

(21)机房收费管理系统
功能要求:
1)输入功能:输入30名学生的学号、班级、姓名、上机起始时间。
2)计算功能:计算每个下机学生的上机费用,每小时1元。(上机费用=上机时间*1.0/h ,不足一小时按一小时计算)
3)查询功能:按条件(班级、学号、姓名)显示学生的上机时间。
4)机器使用情况的显示(显示方式不限但要一目了然)
5)能将所有信息读写文件

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈


二、设计思路

结构体

struct Student {
    string student_id;
    string class_name;
    string name;
    time_t start_time;
    double fee;
};

vector<Student> students;
  • 结构体 Student: 用于存储学生信息,包括学号、班级、姓名、上机起始时间和上机费用。
  • 全局变量 students: 存储所有学生信息的容器。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈

输入学生信息

void inputStudentInfo() {
    for (int i = 0; i < 30; ++i) {
        Student student;
        cout << "请输入第 " << i + 1 << " 个学生的信息:" << endl;
        cout << "学号: ";
        cin >> student.student_id;
        cout << "班级: ";
        cin >> student.class_name;
        cout << "姓名: ";
        cin >> student.name;
        
                // 此处略去 至少10行 代码。。。

        
        student.fee = 0.0;
        students.push_back(student);
    }
}
  • 函数 inputStudentInfo: 输入30个学生的信息并存储在students容器中。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈

计算上机费用

void calculateFee() {
    for (auto& student : students) {
        tm tm_end = {};
        cout << "请输入学生 " << student.name << " 的下机时间 (格式: YYYY MM DD HH MM SS): ";
                // 此处略去 至少10行 代码。。。

        
        double hours = difftime(end_time, student.start_time) / 3600.0;
        student.fee = ceil(hours) * 1.0; // 每小时 1 元,不足一小时按一小时计算
    }
}
  • 函数 calculateFee: 计算每个学生的上机费用,根据输入的下机时间计算上机时长并按每小时1元收费。

查询学生信息

void queryStudentInfo() {
    string condition;
    cout << "请输入查询条件(班级/学号/姓名): ";
    cin >> condition;
    
    for (const auto& student : students) {
                // 此处略去 至少10行 代码。。。

        }
    }
}
  • 函数 queryStudentInfo: 根据输入的查询条件(班级、学号或姓名)查询并显示学生信息。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈

显示机器使用情况

void displayUsage

() {
    cout << left << setw(12) << "学号" << setw(10) << "班级" << setw(10) << "姓名" << setw(20) << "上机起始时间" << "上机费用" << endl;
    for (const auto& student : students) {
                // 此处略去 至少10行 代码。。。

    }
}
  • 函数 displayUsage: 显示所有学生的上机使用情况,包括学号、班级、姓名、上机起始时间和上机费用。

将信息写入文件

void writeToFile() {
    ofstream file("student_info.txt");
            // 此处略去 至少10行 代码。。。

    file.close();
}
  • 函数 writeToFile: 将所有学生信息写入文件student_info.txt中。

从文件读取信息

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈

void readFromFile() {
    ifstream file("student_info.txt");
    if (!file.is_open()) return;
    
    Student student;
            // 此处略去 至少10行 代码。。。

    file.close();
}
  • 函数 readFromFile: 从文件student_info.txt中读取学生信息并存储到students容器中。

主函数

int main() {
    int choice;
    readFromFile();

    while (true) {
        cout << "\n机房收费管理系统\n";
        cout << "1. 输入学生信息\n";
        cout << "2. 计算上机费用\n";
        cout << "3. 查询学生信息\n";
        cout << "4. 显示机器使用情况\n";
        cout << "5. 保存并退出\n";
        cout << "请选择操作(1-5): ";
        cin >> choice;

        // 此处略去 至少10行 代码。。。
        }
    }
>👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈

    return 0;
}
  • 主函数 main: 提供用户界面,用户可以选择输入学生信息、计算上机费用、查询学生信息、显示机器使用情况以及保存并退出。根据用户选择执行相应的操作。

三、可视化分析

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈

在这里插入图片描述

在这里插入图片描述

剩余截图不再继续展示

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3568平台开发系列讲解(内存篇)Linux进程内存的消耗统计

🚀返回专栏总目录 文章目录 一、VSS(Virtual Set Size)二、RSS(Resident Set Size)三、PSS(Proportional Set Size)四、USS(Unique Set Size)五、其他工具Linux 提供了多种进程内存占用的度量指标, 它们反映了不同的内存使用特征: VSS 反映进程虚拟内存总需求, 包括未…

Oracle基础以及一些‘方言’(一)

1、什么是Oracle ORACLE数据库系统是美国ORACLE公司&#xff08;甲骨文&#xff09;提供的以分布式数据库为核心的一组软件产品&#xff0c;是最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。 ORACLE 通常应用于大型系统的数据库产品。 ORACLE 数据库是目前世界…

企业内多个系统如何实现单点登录/SSO统一认证

背景 在现代化企业中&#xff0c;随着业务的不断扩展和技术的不断进步&#xff0c;企业通常会使用多个系统来支持其日常运营&#xff0c;如OA、HR、CRM、研发应用&#xff08;Git、Jira等&#xff09;、财务系统、档案管理系统等。然而&#xff0c;这些系统往往各自为政&#…

基于Spring Boot的高校后勤餐饮管理系统

1 项目介绍 1.1 研究背景 “互联网”时代的到来&#xff0c;既给高校后勤管理发展带来了机遇&#xff0c;也带来了更大的挑战。信息化应用已经开始普及&#xff0c;传统的高校后勤餐饮管理模式往往存在着效率低下、信息不透明、资源浪费等问题&#xff0c;已经难以满足现代高…

Chromium源码阅读(7):了解WTF的静态字符串机制

在浏览器的实现中&#xff0c;处理HTML和CSS涉及大量的字符串操作&#xff0c;这些操作通常包括字符串的比较、查找和匹配。如果使用普通的字符串对这些进行操作&#xff0c;在面临大量DOM元素和CSS规则时会导致效率低下。 例如&#xff0c;当解析CSS时&#xff0c;属性名如col…

人工智能算法工程师(中级)课程9-PyTorch神经网络之全连接神经网络实战与代码详解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程9-PyTorch神经网络之全连接神经网络实战与代码详解。本文将给大家展示全连接神经网络与代码详解&#xff0c;包括全连接模型的设计、数学原理介绍&#xff0c;并从手写数字识别到猫狗识…

Neo4j安装

下载地址&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 1.安装jdk&#xff0c;Neo4j 3.0需要jdk8&#xff0c;2.3.0之前的版本建议jdk7。Neo4j最新版本5.21.2&#xff0c;对应jdk版本17 2.将下载的zip文件解压到合适路径。 3.设置环境变量NEO4J_H…

历年HW已公开漏洞合集!(目前漏洞库更新至84个,Goby持续更新...)

截至2024年7月11日&#xff0c;Goby红队版已扩充以下历年HW已公开漏洞库&#xff0c;本次更新84个&#xff1a; &#xff08;后续将持续更新…) 华天动力OA 华天动力 OA getHtmlContent 文件读取漏洞华天动力OA办公系统 /OAapp/bfapp/buffalo/TemplateService 文件读取漏洞华…

在亚马逊云科技AWS利用IaC(基础设施即代码)设计和搭建云原生架构(附免费学习教程和证书)

今天小李哥为大家介绍的是利用IaC(基础设施即代码)设计和搭建亚马逊云科技AWS云原生架构。本篇文章将会介绍如何在亚马逊云科技上搭建云原生Serverless服务&#xff0c;所使用的开发服务介绍&#xff0c;并展示搭建云原生架构的cdk代码。小李哥同时会给大家分享快速学习亚马逊云…

python:sympy 求解一元五次方程式

pip install sympy 或者 本人用的 anaconda 3 自带 sympy 在北大数学训练营&#xff0c;韦东奕 用卡丹公式 巧妙 求解一元五次方程式&#xff1a; \latex $x^510*x^320*x-4 0$ from sympy import *x symbols(x) expr x**5 10*x**3 20*x -4# 用卡丹公式 尝试化简 a sym…

冒泡排序与其C语言通用连续类型排序代码

冒泡排序与其C语言通用连续类型排序代码 冒泡排序冒泡排序为交换排序的一种&#xff1a;动图展示&#xff1a;冒泡排序的特性总结&#xff1a;冒泡排序排整型数据参考代码&#xff08;VS2022C语言环境&#xff09;&#xff1a; 冒泡排序C语言通用连续类型排序代码对比较的方式更…

MVC 控制器 中Action 不能同名,参数不一样,路由器寻找不到对应的,要加特性

//1 方法不可能完全相同&#xff0c;参数不同//2 那还需要特性吗&#xff1f;需要的&#xff0c;因为MVC选择方法时&#xff0c;不是按参数选择&#xff1a;http请求发送很多数据&#xff0c;其实没法识别&#xff0c;//因为mvc找方法是通过反射来的&#xff0c;GetMethods(nam…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(六)仿钉钉流程的转bpmn流程图

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、转bpmn流程图接口 /*** 转为bpmn xml格式* param processModel* throws IOException*/PostMapping("/ddtobpmnxml")public Result<?> ddToBpmnXml(RequestBody Proce…

int类型变量表示范围的计算原理

文章目录 1. 了解2. 为什么通常情况下int类型整数的取值范围是-2147483648 ~ 21474836473. int类型究竟占几个字节4. 推荐 1. 了解 通常情况下int类型变量占4个字节&#xff0c;1个字节有8位&#xff0c;每位都有0和1两种状态&#xff0c;所以int类型变量一共可以表示 2^32 种状…

Javascript[ECMAScript] 新特性—1

背景 JS1.1&#xff08;1997&#xff09; 第一版基于Netscape Navigator 3.0中实现的JAVASCRIPT 1.1 JS1.2&#xff08;1999&#xff09; 基于Netscape Navigator 4.0中实现的JavaScript 1.2。添加了正则表达式、更好的字符串处理、新的控制语句、Try/Catch异常处理、更严格…

Qt/C++项目积累: 2.主机监控器 - 2.2 历史功能实现

修订历史&#xff1a; 20240711&#xff1a;初始表设计&#xff0c;采用sqlite 正文&#xff1a; 关于历史数据存储&#xff0c;考虑的是用数据库来完成&#xff0c;目前考虑使用Sqlite和mysql&#xff0c;先用sqlite来实现&#xff0c;设计表过程如下&#xff1a; 机器总览…

SpringBoot 3.3 【一】手把手讲解-使用Eclipse创建第一个SpringBoot应用程序

简单动作&#xff0c;深刻联结。在这技术海洋&#xff0c;我备好舟&#xff0c;等你扬帆。启航吧&#xff01; &#x1f31f;点击【关注】&#xff0c;解锁定期的技术惊喜&#xff0c;让灵感与知识的源泉不断涌动。 &#x1f44d;一个【点赞】&#xff0c;如同心照不宣的默契&a…

FL Studio21.9.821最新中文版来啦!附带永久免费下载地址

【音乐制作新宠&#xff0c;FL Studio21中文版来啦&#xff01;&#x1f389;】 嘿&#xff0c;音乐爱好者们&#x1f3a7;&#xff0c;今天要给大家种草一个超酷炫的宝贝儿——FL Studio21中文版&#xff01;这货简直就是音乐制作界的小可爱加实力派&#xff0c;让我彻底沦陷了…

Dify中的RAG和知识库

一.RAG 基本架构 当用户提问 “美国总统是谁&#xff1f;” 时&#xff0c;系统并不是将问题直接交给大模型来回答&#xff0c;而是先将用户问题在知识库中进行向量搜索&#xff0c;通过语义相似度匹配的方式查询到相关的内容&#xff08;拜登是美国现任第46届总统…&#xff0…

2024年7月2日~2024年7月8日周报

目录 一、前言 二、完成情况 2.1 吴恩达机器学习系列课程 2.1.1 分类问题 2.1.2 假说表示 2.1.3 判定边界 2.2 学习数学表达式 2.3 论文写作情况 2.3.1 题目选取 2.3.2 摘要 2.3.3 关键词 2.3.4 引言部分 2.3.4 文献综述部分 三、下周计划 3.1 存在的问题 3.2 …