2020年第二学期数据结构与算法课程实践:Python编码

需积分: 5 0 下载量 2 浏览量 更新于2024-12-17 收藏 81KB ZIP 举报
资源摘要信息:"2020年第二学期课程资料压缩包" 从给定文件信息中可以提取出以下知识点: 1. 课程时间信息:资源涉及的时间是2020年第二学期,这是针对特定学期的教学资料,意味着其中包含的课程内容、教学安排和作业要求等都是针对这一特定学期而制定的。 2. 课程代号:文件中提到了两个课程代号“01076005”和“01076009”,这通常代表了课程的特定编码,可用于查询课程信息,了解课程的基本介绍、学分、开设学院、授课教师等信息。 3. 课程名称:第一个课程代号“01076005”对应的课程名称是“数据结构和算法”,这是计算机科学与技术专业核心课程之一。该课程的主要内容包括数据结构(如数组、链表、栈、队列、树、图等)的基本概念、存储方法、操作算法及其应用;算法的基本概念、设计方法、复杂性分析等。 4. 第二个课程代号“01076009”对应的课程名称是“计算机组织化模拟器:可视”,这门课程可能涉及到计算机体系结构的模拟和可视化。课程内容可能包括模拟计算机硬件的工作原理,模拟器的设计与实现,以及如何使用可视化工具来帮助学生理解计算机硬件的工作机制。 5. 编程语言标签:资源的标签是“Python”,这可能表明文件中包含的内容,比如代码示例、实验项目、作业等,都需要使用Python编程语言来实现和操作。 6. 文件结构信息:提供的文件名称为“Year2020_2-main”,暗示这个压缩包可能包含了一个主项目或者主文件夹,里面可能包含若干个子目录和文件,具体的内容结构需要解压后进一步分析。 7. 编程实践与项目开发:由于提到了“CODE”,表明文件内可能包含与数据结构和算法、计算机组织化模拟器相关的编程代码,可能是作业、实验、课程项目等。这些代码可以是用于教学的示例代码,也可以是学生需要自己动手编写、调试的实践性项目。 8. 教学资源与支持:以上信息表明,这是一个专业的IT教学资源,可能包含讲义、PPT、教学视频、代码示例等,为学生学习提供全方位的支持。 在学习这类课程时,学生通常需要掌握理论知识,并结合实际编程实践来巩固学习效果。编程语言如Python的掌握将有助于学生在课程中更好地完成项目和作业,同时也为将来的软件开发、数据处理等职业发展打下基础。通过计算机组织化模拟器这类课程,学生还能深入理解计算机底层工作原理,增强对硬件与软件协同工作的认识。 这些课程通常要求学生具有一定的计算机基础知识和编程能力,同时也可能需要学生在学习过程中不断地进行实践,如编写代码、调试程序、分析算法复杂度等。学生在学习过程中应注重理论与实践的结合,以确保能够真正理解和掌握课程中的知识点。

#include<iostream> #include<ctime> #include<chrono> #include<string> #include<filesystem> #include<fstream> #include<sstream> #include<thread> #include<boost/filesystem.hpp> const uintmax_t MAX_LOGS_SIZE = 10ull * 1024ull * 1024ull * 1024ull; //const uintmax_t MAX_LOGS_SIZE = 10ull; void create_folder(std::string folder_name) { boost::filesystem::create_directory(folder_name); std::string sub_foldername=folder_name+"/logs_ros"; boost::filesystem::create_directory(sub_foldername); } std::string get_current_time() { auto now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now); std::tm parts = *std::localtime(&now_c); char buffer[20]; std::strftime(buffer, sizeof(buffer), "%Y-%m-%d-%H-%M", &parts); return buffer; } void check_logs_size() { std::string logs_path = "/home/sage/logs/"; boost::filesystem::path logs_dir(logs_path); std::uintmax_t total_size = 0; for (const auto& file : boost::filesystem::recursive_directory_iterator(logs_dir)) { if (boost::filesystem::is_regular_file(file)) { total_size += boost::filesystem::file_size(file); } } if (total_size > MAX_LOGS_SIZE) { boost::filesystem::path earliest_dir; std::time_t earliest_time = std::time(nullptr); for (const auto& dir : boost::filesystem::directory_iterator(logs_dir)) { if (boost::filesystem::is_directory(dir)) { std::string dir_name = dir.path().filename().string(); std::tm time_parts = {}; std::istringstream ss(dir_name); std::string part; std::getline(ss, part, '-'); time_parts.tm_year = std::stoi(part) - 1900; std::getline(ss, part, '-'); time_parts.tm_mon = std::stoi(part) - 1; std::getline(ss, part, '-'); time_parts.tm_mday = std::stoi(part); std::getline(ss, part, '-'); time_parts.tm_hour = std::stoi(part); std::getline(ss, part, '-'); time_parts.tm_min = std::stoi(part); std::time_t dir_time = std::mktime(&time_parts); if (dir_time < earliest_time) { earliest_time = dir_time; earliest_dir = dir.path(); } } } if (!earliest_dir.empty()) { boost::filesystem::remove_all(earliest_dir); } } } int main() { std::string logs_path = "/home/sage/logs/"; while (true) { std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now); std::tm parts = *std::localtime(&now_c); if (parts.tm_min % 10 == 0) { std::string folder_name = logs_path + get_current_time(); create_folder(folder_name); } check_logs_size(); std::this_thread::sleep_for(std::chrono::minutes(1)); } return 0; }修改为ros节点

2023-06-09 上传