حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
همهٔ تمرین‌ها

سیستم حضور غیاب کارمندان

تمرین آسان 4798 visibility link download flag trending_up پربازدید

مواردی که موردنیاز است:

مدیر سیستم باید بتواند پس از وارد کردن نام کاربری admin و پسورد 12345، وارد شود و کارمند جدید اضافه کند و برای هر کارمند نام کاربری و رمزعبور تعریف کند. برنامه باید این اطلاعات را درون یک فایل به اسم دلخواه ذخیره کند.

کارمندان هم باید بتوانند با وارد کردن نام کاربری و رمز خود، وارد شوند و حضور خود را ثبت کنند. زمان دقیقی که کارمندان حضور خود را ثبت کرده اند باید در فایلی ذخیره شود.

این تمرین یه پروژه ست! یعنی پتانسیل اینو داره که خیلی بیشتر روش کار بشه بنابراین ایده اصلی رو از اینجا بردار و خودت بیشتر روش کار کن تا به یه تمرین بزرگتر تبدیل یشه
👨‍💻 4 ساعت قبل کاربر ناشناس این تمرین رو مشاهده کرد

پاسخ‌ها 22

# Employee attendance management
import datetime
import hashlib
import os

def hash_password(password):
    """رمز را هش می‌کند"""
    return hashlib.sha256(password.encode()).hexdigest()

while True:
    print("1.admin 2.employee 3.exit\n")
    choice = input("your choice: ")

    if choice == "1":
        username = input("Username: ")
        password = input("Password: ")

        if username == "admin" and password == "12345":
            print("\nadmin login")

            while True:
                print("\n1. Add employee 2. Exit")
                admin_choice = input("your choice: ")

                if admin_choice == "1":
                    employee_name = input("Name: ")
                    employee_username = input("Username: ")
                    employee_password = input("Password: ")


                    username_exists = False
                    if os.path.exists("employees.txt"):
                        with open("employees.txt", "r") as e:
                            for line in e:
                                parts = line.strip().split("|")
                                if len(parts) == 3 and parts[1] == employee_username:
                                    username_exists = True
                                    break

                    if username_exists:
                        print("This username already exists!")
                    else:
                        hashed_pass = hash_password(employee_password)
                        with open("employees.txt", "a") as e:
                            e.write(f"{employee_name}|{employee_username}|{hashed_pass}\n")
                        print("Employee added successfully")

                elif admin_choice == "2":
                    print("Exiting admin panel...")
                    break

                else:
                    print("Invalid choice")

        else:
            print("Wrong username or password, try again.")

    elif choice == "2":
        username = input("Username: ")
        password = input("Password: ")
        found = False

        if os.path.exists("employees.txt"):
            with open("employees.txt", "r") as e:
                for line in e:
                    parts = line.strip().split("|")
                    if len(parts) == 3:
                        name, user, hashed_pass = parts
                        if username == user and hash_password(password) == hashed_pass:
                            found = True
                            break

        if found:
            now = datetime.datetime.now()
            time_str = now.strftime("%Y-%m-%d %H:%M:%S")
            with open("attendance.txt", "a") as a:
                a.write(f"{username}|{time_str}\n")
            print("Attendance was recorded.")
        else:
            print("Wrong username or password")

    elif choice == "3":
        print("You have exited the program.")
        break

    else:
        print("Invalid entered value.")
b1 = []
b2 = []
S1 = []
S2 = []
S3 = []
S4 = []
print("لطفا ابتدا مشخصات (حداکثر 4) کاربر را در پنل مدیر مشخص کنید")

while True:
    for x1 in range(4):
        soalX = input("برای ورود به پنل کاربریت انتخاب کن (مدیر/ کاربر) :   ").strip()
        if soalX == "مدیر":
            name_admin = input("نام کاربری خود را وارد کنین:    ").lower()
            pass_admin = input("لطفا پسورد خود را وارد کنین:    ")
            if name_admin == "admin" and pass_admin == "12345":
                print("وارد پنل کاربری مدیر شدید ! لطفا انتخاب کنید : برای خروج (Z)")
                soal3 = input("اضافه کردن کاربر (A) / لیست حضور غیاب (B) ").strip()
                if soal3 == "A":
                    soal_list = input("لطفا نام کاربری کاربر رو وارد کنید :    ").strip()
                    soal2_list = input("لطفا پسورد کاربر را وارد کنید :    ")
                    b1.append(soal_list)
                    b2.append(soal2_list)
                    print("|| ثبت شد ! لطفا دوباره وارد شید. ||")
                elif soal3 == "B":
                    print("خالی بودن به معنی غایب بودن است.")
                    print(f"کاربر 1 {S1} , کاربر 2 {S2} , کاربر 3 {S3} , کاربر 4 {S4}")
            else:
                print("اشتباه!!!")

        if soalX == "کاربر":
            Q = input("نام کاربری خود را وارد کنید : ")
            Q1 = input("لطفا پسورد خود را وارد کنید: ")
            if Q == b1[0] and Q1 == b2[0]:
                print("وارد پنل کاربری شدید!")
                H = input("برای اعلام حضور کلمه حاضر را بنویسید : ")
                if H == "حاضر":
                    S1.append(H)

            elif Q == b1[1] and Q1 == b2[1]:
                print("وارد پنل کاربری شدید")
                H1 = input("برای اعلام حضور کلمه حاضر را بنویسید : ")
                if H1 == "حاضر":
                    S2.append(H1)

            elif Q == b1[2] and Q1 == b2[2]:
                print("وارد پنل کاربری شدید")
                H2 = input("برای اعلام حضور کلمه حاضر را بنویسید : ")
                if H2 == "حاضر":
                    S3.append(H2)

            elif Q == b1[3] and Q1 == b2[3]:
                print("وارد پنل کاربری شدید")
                H3 = input("برای اعلام حضور کلمه حاضر را بنویسید : ")
                if H3 == "حاضر":
                    S4.append(H3)

        else:
            print("لطفا یکی را انتخاب کنید")

ارسال جواب

جوابت را با Markdown بنویس و ثبت کن

×
بستن