في عملية تعلم البرمجة بلغة C++، يعد فهم كيفية التعامل مع الوقت وكيفية تحديثه أمرًا أساسيًا. سأقدم لك إرشادات وتوجيهات حول كيفية تطوير برنامجك ليفهم ويعرض الوقت بشكل ديناميكي مثل عمل ساعة.
أولًا وقبل كل شيء، يجب عليك استخدام مكتبة
التي تحتوي على وظائف للتعامل مع الوقت. يمكنك استخدام time_t
لتخزين الوقت في ثواني. هناك دالة time()
التي تعيد عدد الثواني منذ منتصف الليل (الوقت العالمي المنسق UTC).
لنقم بتعديل برنامجك ليدعم هذه الوظائف ويقوم بتحديث الوقت في الخلفية. هذا مثال على كيف يمكنك تحسين برنامجك:
cpp#include
#include
class Time {
private:
time_t currentTime;
public:
// تعيين الوقت الحالي
void setCurrentTime() {
currentTime = time(0);
}
// عرض الوقت بتنسيق الساعة:الدقيقة:الثانية
void display() {
struct tm *localTime = localtime(¤tTime);
std::cout << "Current Time: ";
std::cout << localTime->tm_hour << ":" << localTime->tm_min << ":" << localTime->tm_sec << std::endl;
}
};
int main() {
Time time;
int hour, minute, second;
std::cout << "Enter the initial hour, minute, and second: ";
std::cin >> hour >> minute >> second;
// تعيين الوقت الابتدائي
time.setCurrentTime();
while (true) {
// عرض الوقت الحالي
time.display();
// انتظار ثانية واحدة
std::this_thread::sleep_for(std::chrono::seconds(1));
// تحديث الوقت في الخلفية
time.setCurrentTime();
}
return 0;
}
هذا البرنامج يقوم بعرض الوقت الحالي كل ثانية، ويستخدم std::this_thread::sleep_for
للانتظار ثانية واحدة بين كل عرض وآخر. كما يُظهر كيف يمكنك استخدام time()
و localtime()
للتحكم في الوقت بشكل فعال.
المزيد من المعلومات
بالطبع، سأزيد من التفاصيل حول البرنامج وأشرح بعض النقاط الإضافية لتعزيز فهمك وتحسين مستوى مهارات البرمجة في C++.
-
الوقت في C++:
في C++، يُستخدم نوع البياناتtime_t
لتخزين الوقت. يُمكن الحصول على الوقت الحالي باستخدام الدالةtime()
من مكتبة
. تُعيد هذه الدالة عدد الثواني منذ منتصف الليل (1 يناير 1970).الدالة
localtime()
تُستخدم لتحويلtime_t
إلى هيكل بياناتtm
يحتوي على معلومات مفصلة حول الوقت المحلي. -
الحلقة اللانهائية:
في البرنامج، تم استخدام حلقةwhile (true)
لإنشاء دورة لا نهاية لها. هذا يسمح للبرنامج بالاستمرار في عرض الوقت بشكل متكرر. -
التأخير بين العروض:
تُستخدمstd::this_thread::sleep_for
لتعليق تنفيذ البرنامج لمدة ثانية واحدة بين كل عرض وآخر. هذا يساعد في تقليل استهلاك وحدة المعالجة المركزية ويجعل البرنامج يعمل بشكل أكثر فعالية. -
تحديث الوقت في الخلفية:
بعد كل عرض، يتم استدعاءtime.setCurrentTime()
لتحديث الوقت إلى اللحظة الحالية. هذا يضمن أن الوقت المعروض يكون دائمًا حديثًا. -
التعامل مع الوقت الابتدائي:
يُطلب من المستخدم إدخال الوقت الابتدائي (ساعة، دقيقة، ثانية)، ويُستخدم هذا الوقت كنقطة انطلاق لعرض الوقت. -
أسلوب الطباعة:
يُطبع الوقت باستخدامstd::cout
بشكل نظيف ومنظم، مع تنسيق “ساعة:دقيقة:ثانية”.
باستخدام هذه النصائح والتوجيهات، يمكنك تطوير مهاراتك في برمجة C++ وتحسين فهمك لكيفية التعامل مع الوقت وتطبيقه في برامجك.