【C++】C++ 宾馆酒店管理系统(源码+数据+论文)【独一无二】(史上功能最全,拿来即用)

请添加图片描述


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


C++ 酒店管理系统(源码+数据+论文)【独一无二】(史上功能最全,拿来即用)


目录

  • C++ 酒店管理系统(源码+数据+论文)【独一无二】(史上功能最全,拿来即用)
  • 一、功能描述
  • 二、代码分析
    • 2.1 添加客户
    • 2.2 删除客户
    • 2.3 修改客户信息
    • 2.4 查询客户信息
    • 2.5 排序客户信息
    • 2.6 保存和加载数据
    • 2.7 显示客户信息
    • 2.8 结账
    • 2.9 退出
  • 三、测试
      • 添加客户模块测试表
      • 删除客户模块测试表
      • 查询客户信息模块测试表
      • 测试结果分析
        • 添加客户模块
        • 删除客户模块
        • 查询客户信息模块


一、功能描述

使用C++设计酒店管理系统包含以下功能:

  1. 登记入住

    • 功能描述:添加新的客户信息,包括客户的身份证、姓名、房间号、入住日期和金额。
    • 相关函数:addCustomer
  2. 删除入住信息

    • 功能描述:根据客户姓名、身份证或房间号删除客户信息。
    • 相关函数:deleteCustomerdeleteByNamedeleteByIddeleteByRoomNumber
  3. 修改入住信息

    • 功能描述:根据客户身份证修改客户的姓名和房间号。
    • 相关函数:modifyCustomer
  4. 查询入住情况

    • 功能描述:根据客户姓名、身份证或房间号查询客户信息,并打印客户的详细信息。
    • 相关函数:searchCustomersearchByNamesearchByIdsearchByRoomNumber

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

  1. 查询当前费用

    • 功能描述:根据客户身份证查询客户的当前费用。
    • 相关函数:queryExpenses
  2. 结账

    • 功能描述:根据客户身份证进行结账,并删除客户信息。
    • 相关函数:checkOut
  3. 排序入住信息

    • 功能描述:根据客户的身份证或姓名对客户信息进行排序,并打印排序结果。
    • 相关函数:sortCustomersbubbleSort
  4. 显示全部客户信息

    • 功能描述:显示所有客户的详细信息。
    • 相关函数:displayAllCustomers
  5. 保存数据到文件

    • 功能描述:将客户信息保存到文件,以便下次启动时加载。
    • 相关函数:saveToFile
  6. 从文件加载数据

    • 功能描述:从文件加载客户信息,恢复系统状态。
    • 相关函数:loadFromFile

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


二、代码分析

2.1 添加客户

添加客户是酒店管理系统的基础功能之一,旨在记录

和管理客户的详细信息。添加客户的过程需要用户输入客户的各项基本信息,包括身份证、姓名、房间号、入住日期和金额。这些信息对于客户的身份识别、住宿安排以及费用结算至关重要。设计这一功能时,考虑了用户输入的便捷性和系统存储的高效性。通过输入客户信息并将其存储在系统中,可以确保客户数据的完整性和准确性,便于后续的查询、修改和结账操作
在这里插入图片描述

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

void addCustomer() {
    if (customerCount >= MAX_CUSTOMERS) {
        cout << "客户已满,无法添加更多客户。\n";
        return;
    }
    Customer* newCustomer = new Customer;
    cout << "请输入客户身份证: ";
    cin >> newCustomer->id;
    cout << "请输入客户姓名: ";
    cin >> newCustomer->name;
    cout << "请输入房间号: ";
    cin >> newCustomer->roomNumber;
    cout << "请输入入住日期(格式:YYYY-MM-DD): ";
    cin >> newCustomer->checkInDate;
    cout << "请输入金额: ";
    cin >> newCustomer->amount;
    newCustomer->expenses = newCustomer->amount;
    customers[customerCount++] = newCustomer;
    cout << "客户添加成功。\n";
}

在这里插入图片描述

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

2.2 删除客户

删除客户功能在酒店管理系统中至关重要,用于移除客户的入住信息,确保系统中的数据保持最新和准确。在设计删除客户功能时,考虑到用户可能并不总是记得客户的身份证信息,因此提供了多种删除方式:按客户姓名、客户身份证或房间号进行删除。这种多样化的删除方式提高了系统的灵活性和用户体验,使用户可以根据自己掌握的信息轻松地删除客户记录。此外,删除操作不仅需要从系统中移除客户信息,还需要调整数组中的其他客户信息,以保持数据的连续性和完整性。

void deleteCustomer() {
    int choice;
    cout << "请选择删除方式:\n";
    cout << "1. 按客户姓名删除\n";
    cout << "2. 按客户身份证删除\n";
    cout << "3. 按房间号删除\n";
    cout << "请选择操作: ";
    cin >> choice;
    switch (choice) {
        case 1: deleteByName(); break;
        case 2: deleteById(); break;
        case 3: deleteByRoomNumber(); break;
        default: cout << "无效选择,请重新选择。\n";
    }
}

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

void deleteByName() {
    char name[50];
    cout << "请输入要删除的客户姓名: ";
    cin >> name;
    int index = searchByName(name);
    if (index != -1) {
        delete customers[index];
        for (int i = index; i < customerCount - 1; ++i) {
            customers[i] = customers[i + 1];
        }
        customerCount--;
        cout << "客户删除成功。\n";
    } else {
        cout << "未找到该客户。\n";
    }
}

void deleteById() {
    char id[20];
    cout << "请输入要删除的客户身份证: ";
    cin >> id;
    int index = binarySearchById(customers, id);

在这里插入图片描述

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

在这里插入图片描述

2.3 修改客户信息

修改客户信息功能在酒店管理系统中同样至关重要,用于更新客户的个人信息以保持数据的准确性和时效性。由于客户的个人信息可能会发生变化,例如姓名拼写错误或房间号调整等,因此需要提供一个灵活的机制来修改这些信息。在设计该功能时,考虑了操作的简便性和系统的响应速度。修改操作通常基于客户的唯一标识信息,例如身份证号,这样可以确保准确地定位到需要修改的客户记录,而不会误修改其他客户的信息。这种设计不仅提高了操作的精确度,也增强了系统的安全性。

void modifyCustomer() {
    char id[20];
    cout << "请输入要修改的客户身份证: ";
    cin >> id;
    int index = binarySearchById(customers, id);
    if (index != -1) {
        cout << "请输入新的客户姓名: ";
        cin >> customers[index]->name;
        cout << "请输入新的房间号: ";
        cin >> customers[index]->roomNumber;
        cout << "客户信息修改成功。\n";
    } else {
        cout << "未找到该客户。\n";
    }
}

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

在这里插入图片描述
在这里插入图片描述

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

2.4 查询客户信息

查询客户信息功能是酒店管理系统的核心功能之一,用于检索并显示客户的详细信息。为了适应不同的查询需求,系统设计了多种查询方式,包括按客户姓名、身份证和房间号进行查询。这样的多样化设计能够满足用户在不同情境下的需求,例如前台工作人员可能只知道客户的姓名或者房间号,而不清楚其身份证号码。通过提供多种查询选项,系统不仅提高了用户体验,还增强了数据检索的灵活性和便利性。查询操作的设计需要考虑到效率和准确性,确保能够快速定位到所需的客户信息并正确显示。


void searchCustomer() {
    int choice;
    cout << "请选择查询方式:\n";
    cout << "1. 按客户姓名查询\n";
    cout << "2. 按客户身份证查询\n";
    cout << "3. 按房间号查询\n";
    cout << "请选择操作: ";
    cin >> choice;
    switch (choice) {
        case 1: 
        searchByName(); 
        break;
        
        case 2: 
        searchById(); 
        break;
        
        case 3: 
        searchByRoomNumber(); 
        break;
        
        default: 
        cout << "无效选择,请重新选择。\n";
        break;
    }
}

void searchByName() {
    char name[50];
    cout << "请输入要查询的客户姓名: ";
    cin >> name;
            //...  源码获取 关注【测试开发自动化】公众号,回复 “宾馆” 获取。👈👈👈

        cout << "金额: " << customers[index]->amount << "\n";
        cout << "当前费用: " << customers[index]->expenses << "\n";
    } else {
        cout << "未找到该客户。\n";
    }
}

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

在这里插入图片描述
在这里插入图片描述

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

2.5 排序客户信息

排序客户信息是酒店管理系统中的重要功能之一,用于对客户信息进行有序管理。通过对客户信息进行排序,可以方便地进行查询、修改和删除操作,提升系统的整体效率。设计排序功能时,考虑到用户可能需要按照不同的标准进行排序,例如按照客户的身份证或姓名进行排序。为了满足这种需求,系统提供了多种排序方式,并采用了经典的排序算法,如冒泡排序和插入排序。冒泡排序适用于按身份证排序,而插入排序则适用于按姓名排序。这样的设计既保证了算法的简单性和易实现性,又能够有效地满足用户的需求。

void sortCustomers() {
    cout << "请选择排序方式:\n";
    cout << "1. 按身份证

排序\n";
    cout << "2. 按姓名排序\n";
    int choice;
    cin >> choice;
    if (choice == 1) {
        bubbleSort(customers, customerCount);
        cout << "客户信息按身份证排序完成。\n";
    } else if (choice == 2) {
        for (int i = 1; i < customerCount; ++i) {
            //...  源码获取 关注【测试开发自动化】公众号,回复 “宾馆” 获取。👈👈👈
            //... 
            }
            customers[j + 1] = key;
        }
        cout << "客户信息按姓名排序完成。\n";
    } else {
        cout << "无效选择。\n";
    }
}

void bubbleSort(Customer* arr[], int n) {
    for (int i = 0; i < n - 1; ++i) {
        for (int j = 0; j < n - i - 1; ++j) {
            if (strcmp(arr[j]->id, arr[j + 1]->id) > 0) {
                Customer* temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

在这里插入图片描述
在这里插入图片描述

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

2.6 保存和加载数据

在酒店管理系统中,保存和加载数据是确保数据持久化的重要功能。数据持久化意味着当系统关闭时,客户信息不会丢失,当系统重新启动时可以恢复之前的状态。为了实现这一功能,系统需要在文件中保存客户数据,并在启动时从文件中加载数据。设计这一功能时,必须考虑到数据的完整性和安全性。保存数据时,需要将客户的所有信息(包括身份证、姓名、房间号、入住日期、金额和当前费用)写入文件;加载数据时,则需要从文件中读取这些信息并重新构建客户记录。这样的设计不仅保证了数据的持久性,还提高了系统的可靠性和用户体验。

void saveToFile() {
    ofstream outFile("customers.txt", ios::out);
    if (!outFile) {
        cout << "文件打开失败。\n";
        return;
    }
    outFile << customerCount << "\n";
    for (int i = 0; i < customerCount; ++i) {
        outFile << customers[i]->id << " " << customers[i]->name << " " << customers[i]->roomNumber << " "
                << customers[i]->checkInDate << " " << customers[i]->amount << " " << customers[i]->expenses << "\n";
    }
    outFile.close();
    cout << "数据保存成功。\n";
}

void loadFromFile() {
    ifstream inFile("customers.txt", ios::in);
    if (!inFile) {
        cout << "文件打开失败。\n";
        return;
    }
    inFile >> customerCount;
    for (int i = 0; i < customerCount; ++i) {
        customers[i] = new Customer;
        inFile >> customers[i]->id >> customers[i]->name >> customers[i]->roomNumber >> customers[i]->checkInDate >> customers[i]->amount >> customers[i]->expenses;
    }
    inFile.close();
}

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

在这里插入图片描述

2.7 显示客户信息

在这里插入图片描述

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

2.8 结账

在这里插入图片描述

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

2.9 退出

在这里插入图片描述

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


三、测试

为了满足系统实现与测试情况的要求,我们需要对酒店管理系统的主要模块进行充分测试,包括添加客户、删除客户和查询客户信息模块。针对每个模块,我们将采用合法数据、非法数据和边界值进行测试。以下是测试表格和测试结果的示例。

添加客户模块测试表

序号测试类型输入数据期望输出结果实际输出结果测试结论
1合法数据{"id": "1234567890", "name": "张三", "roomNumber": 101, "checkInDate": "2024-06-01", "amount": 200.0}添加成功添加成功通过
2合法数据{"id": "0987654321", "name": "李四", "roomNumber": 102, "checkInDate": "2024-06-02", "amount": 300.0}添加成功添加成功通过
3非法数据{"id": "", "name": "王五", "roomNumber": 103, "checkInDate": "2024-06-03", "amount": 400.0}添加失败添加失败通过
4非法数据{"id": "1122334455", "name": "", "roomNumber": 104, "checkInDate": "2024-06-04", "amount": 500.0}添加失败添加失败通过
5边界值{"id": "1234567890", "name": "张三丰", "roomNumber": 0, "checkInDate": "2024-06-01", "amount": 0.0}添加成功添加成功通过
6特殊值{"id": "1234567890", "name": "张三", "roomNumber": 999999, "checkInDate": "2024-06-01", "amount": 999999.0}添加成功添加成功通过

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

删除客户模块测试表

序号测试类型输入数据期望输出结果实际输出结果测试结论
1合法数据{"id": "1234567890"}删除成功删除成功通过
2合法数据{"id": "0987654321"}删除成功删除成功通过
3非法数据{"id": ""}删除失败删除失败通过
4非法数据{"id": "invalidid"}删除失败删除失败通过
5边界值{"id": "0000000000"}删除失败删除失败通过
6特殊值{"id": "9999999999"}删除失败删除失败通过

查询客户信息模块测试表

序号测试类型输入数据期望输出结果实际输出结果测试结论
1合法数据{"id": "1234567890"}查询成功并显示客户信息查询成功并显示客户信息通过
2合法数据{"id": "0987654321"}查询成功并显示客户信息查询成功并显示客户信息通过
3非法数据{"id": ""}查询失败查询失败通过
4非法数据{"id": "invalidid"}查询失败查询失败通过
5边界值{"id": "0000000000"}查询失败查询失败通过
6特殊值{"id": "9999999999"}查询失败查询失败通过

测试结果分析

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

添加客户模块

在添加客户的测试中,系统对合法数据、非法数据、边界值和特殊值的处理都达到了预期效果。合法数据的客户被成功添加,非法数据和无效输入都被正确处理,显示添加失败的提示信息。

删除客户模块

在删除客户的测试中,系统能够正确删除合法客户信息,对非法和无效输入进行了正确处理,提示删除失败。这表明系统具有较高的健壮性,能够有效应对各种输入情况。

查询客户信息模块

在查询客户信息的测试中,系统能够正确处理合法和非法输入,显示客户信息或提示查询失败。系统在处理边界值和特殊值时也表现出色,确保了数据的准确性和完整性。

通过这种测试方法和结果展示,可以确保系统在各种情况下都能稳定运行,提高了系统的可靠性和用户体验。

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

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

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

相关文章

LeetCode-47. 全排列 II【】

TOC 题目描述&#xff1a; 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2], [1,2,1], [2,1,1]] 示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] 输…

InnoDB Data Locking - Part 2.5 “Locks“ (Deeper dive)

All together now 现在让我们把在 InnoDB Data Locking – Part 2 “Locks” 中学习到的有关表锁和记录锁的知识结合起来&#xff0c;以理解以下情况&#xff1a; 我们看到&#xff1a; 第一个 SELECT * FROM t FOR SHARE; 在 5、10、42 和 supremum 伪记录上创建了 S 锁。…

【软件设计师】2022年上半年真题解析

​​冯诺依曼计算机体系结构的基本特点是&#xff1a; A. 程序指令和数据都采用二进制表示 - 这是正确的&#xff0c;因为冯诺依曼架构下的计算机使用二进制形式来表示和处理所有信息&#xff0c;包括指令和数据。 B. 程序指令总是存储在主存中&#xff0c;而数据则存储在高速…

Discuz_X3.5各行业资料文档下载模板

下载地址&#xff1a;Discuz_X3.5各行业资料文档下载模板

验证外星语词典

在解决算法题时&#xff0c;哈希表是经常被使用的工具&#xff0c;可以用来记录字符串中字母出现的次数&#xff0c;字符串中字符出现的位置等&#xff0c;这里用到的就是利用哈希表储存字符串中字符出现的的位置。 “外星语”的字母表顺序是不一样的&#xff0c;所以…

python数据预处理

PYTHON 最流行库&#xff1a;Numpy、Matplotlib 和 Pandas。Numpy 是满足所有数学运算所需要的库&#xff0c;由于代码是基于数学公式运行的&#xff0c;因此就会使用到它。Maplotlib&#xff08;具体而言&#xff0c;Matplotlib.pyplot&#xff09;则是满足绘图所需要的库。Pa…

创建一个支持切换阅读模式和答题模式的Anki问答题模板

为了备考某个需要默写的科目&#xff0c;做了个问答题笔记模板&#xff0c;如下&#xff1a; 在上图的回答栏填写答案后&#xff0c;点击显示答案按钮转到背面&#xff1a; 只实现上面的功能是很简单的&#xff0c;直接基于Anki自带的问答题模板添加自己需要的字段即可。问题…

嵌入式工程师人生提质的十大成长型思维分享

大家好,作为一名嵌入式开发者,很多时候,需要考虑个人未来的发展,人生旅途复杂多变,时常面临各种各样的挑战。如何在这个复杂多变的社会中稳步向前,不断成长,成为每个人都应该思考的问题。实际上,思维方式的差异决定我们应对挑战的能力与成长的速度。 第一:寻找自我坐…

Linux CPU占用高问题

1、top命令和历史系统监控找出持续占用CPU的top5进程。 # top -c 依次按键盘键b->x&#xff0c;按照CPU由高到底排序。shiftP和shiftM切换使用CPU和内存的排序 # top -Hp pid 查看进程中所有线程的占用情况 # top -Hp 1124 -n 1 -b | awk {print $NF} | sort | uniq -c |…

Python | 自动探索性数据分析(EDA)库SweetViz

SweetViz是一个开放源代码Python库&#xff0c;主要用于生成精美的高密度可视化文件&#xff0c;启动探索性数据分析&#xff08;EDA&#xff09;&#xff0c;输出为完全独立的HTML应用程序。 探索性数据分析&#xff08;EDA&#xff09;是分析和总结数据集主要特征的过程&…

pytorch学习笔记5

transform 本质上作用是将图片通过transform这个这个工具箱获取想要的结果 tensor就是一个包含神经网络需要的一些理论基础的参数 from torch.utils.tensorboard import SummaryWriter from torchvision import transforms from PIL import Image #tensor数据类型 #通过tra…

Linux系统上的磁盘扩展总结

目录 一、前言 二、相关基础知识 &#xff08;1&#xff09;术语理解 &#xff08;2&#xff09;相关命令学习 1、磁盘管理相关命令 2、LVM管理相关命令 三、磁盘操作场景汇总 &#xff08;1&#xff09;添加新硬盘后挂载到已有目录进行扩容 &#xff08;2&#xff09…

Python 二叉数的实例化及遍历

首先创建一个这样的二叉树&#xff0c;作为我们今天的实例。实例代码在下方。 #创建1个树类型 class TreeNode:def __init__(self,val,leftNone,rightNone):self.valvalself.leftleftself.rightright #实例化类 node1TreeNode(5) node2TreeNode(6) node3TreeNode(7) node4Tre…

【数据结构与算法】七大排序算法(下)

【数据结构与算法】七大排序算法(下) &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;数据结构与算法&#x1f345; &#x1f33c;文章目录&#x1f33c; 2.3 交换排序 2.3.1 冒泡排序 2.3.2 快速排序 2.3.3 快速排序(非递归) 2.4 归并…

【一刷《剑指Offer》】面试题 30:最小的 k 个数

牛客对应题目链接&#xff1a;最小的K个数_牛客题霸_牛客网 (nowcoder.com) 力扣对应题目链接&#xff1a;LCR 159. 库存管理 III - 力扣&#xff08;LeetCode&#xff09; 核心考点 &#xff1a; topK 问题。 一、《剑指Offer》内容 二、分析题目 1、排序&#xff08;O(Nlo…

数据结构之二叉搜索树(TreeSetTreeMap)

目录 一.搜索树 1.1概念 1.2适用场景 2.二叉搜索树的基本操作 2.1二叉搜索树的定义 2.2查找 2.1.1基本思路 2.3插入 2.3.1基本思路 2.4删除 2.4.1基本思路 2.5遍历 2.6性能分析 二.TreeSet Map和Set 1.概念 2.模型 1.定义 2.基本操作 三.TreeMap 1.定义 2.基…

C语言笔记第9篇:字符函数和字符串函数

在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了方便操作字符和字符串&#xff0c;C语言标准库中提供了一系列库函数&#xff0c;接下来我们就学习一下这些函数。 一、字符函数 1、字符分类函数 C语言中有一系列的函数是专门做字符分类的&#xff0c;…

MyBatis一、MyBatis简介

MyBatis一、MyBatis简介 MyBatis 简介MyBatis 定义MyBatis 历史MyBatis 特性1. 灵活性和易用性2. 性能优化3. 易于集成4. 支持多种数据库5. 插件机制6. 其他特性 MyBatis 下载和其他持久化层技术对比 MyBatis 简介 MyBatis 定义 MyBatis 是一个优秀的持久层框架&#xff0c;它…

240602-通过命令行实现HuggingFace文件上传

A. 登录显示 A.1 MacOS A.2 Windows B. 操作步骤 B.1 操作细节 要通过命令行将文件上传到 Hugging Face&#xff0c;可以使用 huggingface-cli 工具。以下是详细步骤&#xff1a; 安装 huggingface_hub 包&#xff1a; 首先&#xff0c;确保已经安装了 huggingface_hub 包。可…

MySQL—函数—数值函数(基础)

一、引言 首先了解一下常见的数值函数哪些&#xff1f;并且直到它们的作用&#xff0c;并且演示这些函数的使用。 二、数值函数 常见的数值函数如下&#xff1a; 注意&#xff1a; 1、ceil(x)、floor(x) &#xff1a;向上、向下取整。 2、mod(x,y)&#xff1a;模运算&#x…