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

请添加图片描述


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


【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: 提供用户界面,用户可以选择输入学生信息、计算上机费用、查询学生信息、显示机器使用情况以及保存并退出。根据用户选择执行相应的操作。

三、可视化分析

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

在这里插入图片描述

在这里插入图片描述

剩余截图不再继续展示

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


最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 00:10:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 00:10:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 00:10:04       62 阅读
  4. Python语言-面向对象

    2024-07-12 00:10:04       72 阅读

热门阅读

  1. 系统架构的基础:定义、原则与发展历程

    2024-07-12 00:10:04       23 阅读
  2. 如何调整Oracle SGA的大小

    2024-07-12 00:10:04       24 阅读
  3. 贪心算法-以高校科研管理系统为例

    2024-07-12 00:10:04       26 阅读
  4. ActivityThread与AMS之间关系是什么?

    2024-07-12 00:10:04       21 阅读
  5. 【学习笔记】Redis学习笔记——第7章 压缩列表

    2024-07-12 00:10:04       24 阅读
  6. Mysql中常用函数的使用示例

    2024-07-12 00:10:04       21 阅读
  7. IP地址笔记

    2024-07-12 00:10:04       19 阅读