一、设计要求
(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
: 提供用户界面,用户可以选择输入学生信息、计算上机费用、查询学生信息、显示机器使用情况以及保存并退出。根据用户选择执行相应的操作。
三、可视化分析
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈
剩余截图不再继续展示
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 机房 ” 获取。👈👈👈