جستجو برای:
سبد خرید 0
  • خانه
  • بسته‌های آموزش‌ها
  • مقالات آموزشی
  • رویدادها
  • محصولات
  • تماس با ما
    • مشهد - شهرک غرب - ساختمان اکسین
      051-36000050
      info@pronesh.ir
      اینستاگرام
      کانال تلگرام
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل

داده های شخصی شما برای پشتیبانی از تجربه شما در این وب سایت، برای مدیریت دسترسی به حساب کاربری شما و برای اهداف دیگری که در سیاست حفظ حریم خصوصی ما شرح داده می شود مورد استفاده قرار می گیرد.

رسانه آموزشی پرونش
  • خانه
  • بسته‌های آموزش‌ها
  • مقالات آموزشی
  • رویدادها
  • محصولات
  • تماس با ما
    • مشهد - شهرک غرب - ساختمان اکسین
      051-36000050
      info@pronesh.ir
      اینستاگرام
      کانال تلگرام
شروع یادگیری
0

پروژه دفترچه تلفن

برنامه نویسی، عمومی

پروژه دفترچه تلفن یک برنامه ساده اما کاربردی است که به کاربران امکان می‌دهد اطلاعات تماس (مانند نام و شماره تلفن) را ذخیره، جستجو، ویرایش و حذف کنند. این پروژه می‌تواند به عنوان یک تمرین آموزشی برای یادگیری مفاهیم پایه‌ای برنامه‌نویسی و کار با ساختمان داده‌ها استفاده شود. در این مقاله، پروژه دفترچه تلفن را به سه زبان برنامه‌نویسی C++، Python و Java پیاده‌سازی می‌کنیم. این دفترچه تلفن قابلیت‌های زیر را دارد:

  1. اضافه کردن مخاطب: افزودن یک مخاطب جدید به دفترچه.

  2. جستجوی مخاطب: جستجوی یک مخاطب بر اساس نام.

  3. حذف مخاطب: حذف یک مخاطب از دفترچه.

  4. نمایش همه مخاطبین: نمایش تمام مخاطبین موجود.

  5. ذخیره داده‌ها در فایل: ذخیره اطلاعات مخاطبین در یک فایل.

  6. بازیابی داده‌ها از فایل: بارگذاری اطلاعات مخاطبین از فایل.

در هر زبان، از فایل‌ها برای ذخیره و بازیابی داده‌ها استفاده می‌شود. همچنین، لیست توابع و کاربرد هر یک در برنامه توضیح داده می‌شود.

پیاده سازی در ++C :

ساختمان داده‌ها و توابع

  • ساختمان داده: از یک لیست پیوندی (Linked List) برای ذخیره مخاطبین استفاده می‌شود.
  • فایل: داده‌ها در یک فایل متنی ذخیره و بازیابی می‌شوند.

توابع و کاربرد آنها

  1. addContact: یک مخاطب جدید به لیست اضافه می‌کند.
  2. searchContact: یک مخاطب را بر اساس نام جستجو می‌کند.
  3. deleteContact: یک مخاطب را از لیست حذف می‌کند.
  4. displayContacts: تمام مخاطبین را نمایش می‌دهد.
  5. saveToFile: اطلاعات مخاطبین را در یک فایل ذخیره می‌کند.
  6. loadFromFile: اطلاعات مخاطبین را از فایل بازیابی می‌کند.

				
					#include <iostream>
#include <fstream>
#include <string>
using namespace std;

struct Contact {
    string name;
    string phone;
    Contact* next;
};

class PhoneBook {
private:
    Contact* head;
public:
    PhoneBook() : head(nullptr) {}

    void addContact(string name, string phone) {
        Contact* newContact = new Contact{name, phone, nullptr};
        if (!head) {
            head = newContact;
        } else {
            Contact* temp = head;
            while (temp->next) {
                temp = temp->next;
            }
            temp->next = newContact;
        }
        cout << "Contact added successfully!\n";
    }

    void searchContact(string name) {
        Contact* temp = head;
        while (temp) {
            if (temp->name == name) {
                cout << "Name: " << temp->name << ", Phone: " << temp->phone << endl;
                return;
            }
            temp = temp->next;
        }
        cout << "Contact not found!\n";
    }

    void deleteContact(string name) {
        if (!head) return;
        if (head->name == name) {
            Contact* temp = head;
            head = head->next;
            delete temp;
            cout << "Contact deleted successfully!\n";
            return;
        }
        Contact* temp = head;
        while (temp->next) {
            if (temp->next->name == name) {
                Contact* toDelete = temp->next;
                temp->next = temp->next->next;
                delete toDelete;
                cout << "Contact deleted successfully!\n";
                return;
            }
            temp = temp->next;
        }
        cout << "Contact not found!\n";
    }

    void displayContacts() {
        Contact* temp = head;
        while (temp) {
            cout << "Name: " << temp->name << ", Phone: " << temp->phone << endl;
            temp = temp->next;
        }
    }

    void saveToFile(string filename) {
        ofstream file(filename);
        Contact* temp = head;
        while (temp) {
            file << temp->name << "," << temp->phone << endl;
            temp = temp->next;
        }
        file.close();
        cout << "Contacts saved to file!\n";
    }

    void loadFromFile(string filename) {
        ifstream file(filename);
        string line;
        while (getline(file, line)) {
            size_t pos = line.find(",");
            string name = line.substr(0, pos);
            string phone = line.substr(pos + 1);
            addContact(name, phone);
        }
        file.close();
        cout << "Contacts loaded from file!\n";
    }
};

int main() {
    PhoneBook pb;
    pb.loadFromFile("contacts.txt");
    pb.addContact("Ali", "123456789");
    pb.addContact("Reza", "987654321");
    pb.displayContacts();
    pb.searchContact("Ali");
    pb.deleteContact("Reza");
    pb.displayContacts();
    pb.saveToFile("contacts.txt");
    return 0;
}
				
			

پیاده سازی در Python :

ساختمان داده‌ها و توابع

  • ساختمان داده: از یک دیکشنری (Dictionary) برای ذخیره مخاطبین استفاده می‌شود.

  • فایل: داده‌ها در یک فایل متنی ذخیره و بازیابی می‌شوند.

توابع و کاربرد آنها

  1. add_contact: یک مخاطب جدید به دیکشنری اضافه می‌کند.

  2. search_contact: یک مخاطب را بر اساس نام جستجو می‌کند.

  3. delete_contact: یک مخاطب را از دیکشنری حذف می‌کند.

  4. display_contacts: تمام مخاطبین را نمایش می‌دهد.

  5. save_to_file: اطلاعات مخاطبین را در یک فایل ذخیره می‌کند.

  6. load_from_file: اطلاعات مخاطبین را از فایل بازیابی می‌کند.

				
					class PhoneBook:
    def __init__(self):
        self.contacts = {}

    def add_contact(self, name, phone):
        self.contacts[name] = phone
        print("Contact added successfully!")

    def search_contact(self, name):
        if name in self.contacts:
            print(f"Name: {name}, Phone: {self.contacts[name]}")
        else:
            print("Contact not found!")

    def delete_contact(self, name):
        if name in self.contacts:
            del self.contacts[name]
            print("Contact deleted successfully!")
        else:
            print("Contact not found!")

    def display_contacts(self):
        for name, phone in self.contacts.items():
            print(f"Name: {name}, Phone: {phone}")

    def save_to_file(self, filename):
        with open(filename, "w") as file:
            for name, phone in self.contacts.items():
                file.write(f"{name},{phone}\n")
        print("Contacts saved to file!")

    def load_from_file(self, filename):
        with open(filename, "r") as file:
            for line in file:
                name, phone = line.strip().split(",")
                self.contacts[name] = phone
        print("Contacts loaded from file!")

# Example usage
pb = PhoneBook()
pb.load_from_file("contacts.txt")
pb.add_contact("Ali", "123456789")
pb.add_contact("Reza", "987654321")
pb.display_contacts()
pb.search_contact("Ali")
pb.delete_contact("Reza")
pb.display_contacts()
pb.save_to_file("contacts.txt")
				
			

پیاده سازی در java :

ساختمان داده‌ها و توابع

  • ساختمان داده: از یک HashMap برای ذخیره مخاطبین استفاده می‌شود.

  • فایل: داده‌ها در یک فایل متنی ذخیره و بازیابی می‌شوند.

توابع و کاربرد آنها

  1. addContact: یک مخاطب جدید به HashMap اضافه می‌کند.

  2. searchContact: یک مخاطب را بر اساس نام جستجو می‌کند.

  3. deleteContact: یک مخاطب را از HashMap حذف می‌کند.

  4. displayContacts: تمام مخاطبین را نمایش می‌دهد.

  5. saveToFile: اطلاعات مخاطبین را در یک فایل ذخیره می‌کند.

  6. loadFromFile: اطلاعات مخاطبین را از فایل بازیابی می‌کند.

				
					import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class PhoneBook {
    private Map<String, String> contacts;

    public PhoneBook() {
        contacts = new HashMap<>();
    }

    public void addContact(String name, String phone) {
        contacts.put(name, phone);
        System.out.println("Contact added successfully!");
    }

    public void searchContact(String name) {
        if (contacts.containsKey(name)) {
            System.out.println("Name: " + name + ", Phone: " + contacts.get(name));
        } else {
            System.out.println("Contact not found!");
        }
    }

    public void deleteContact(String name) {
        if (contacts.containsKey(name)) {
            contacts.remove(name);
            System.out.println("Contact deleted successfully!");
        } else {
            System.out.println("Contact not found!");
        }
    }

    public void displayContacts() {
        for (Map.Entry<String, String> entry : contacts.entrySet()) {
            System.out.println("Name: " + entry.getKey() + ", Phone: " + entry.getValue());
        }
    }

    public void saveToFile(String filename) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
            for (Map.Entry<String, String> entry : contacts.entrySet()) {
                writer.write(entry.getKey() + "," + entry.getValue() + "\n");
            }
            System.out.println("Contacts saved to file!");
        } catch (IOException e) {
            System.out.println("Error saving to file!");
        }
    }

    public void loadFromFile(String filename) {
        try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
            String line;
            while ((line = reader.readLine()) != null) {
                String[] parts = line.split(",");
                contacts.put(parts[0], parts[1]);
            }
            System.out.println("Contacts loaded from file!");
        } catch (IOException e) {
            System.out.println("Error loading from file!");
        }
    }

    public static void main(String[] args) {
        PhoneBook pb = new PhoneBook();
        pb.loadFromFile("contacts.txt");
        pb.addContact("Ali", "123456789");
        pb.addContact("Reza", "987654321");
        pb.displayContacts();
        pb.searchContact("Ali");
        pb.deleteContact("Reza");
        pb.displayContacts();
        pb.saveToFile("contacts.txt");
    }
}
				
			
برچسب ها: پروژه با سورس کدپروژه پایتونپروژه جاواپروژه دفترچه تلفنپروژه سی
بعدی پیاده سازی بازی Tic Tac Toe یا دوز

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پشتیبانی
دسته‌ها
  • برنامه نویسی
  • عمومی
  • هوش مصنوعی
برچسب‌ها
ai ChatGPT copilot json python spyder xml آموزش ChatGPT آموزش برنامه نویسی چند نخی اسپایدر بازی دوز دستیار هوشمند سورس کد مدیریت فایل نصب هوش مصنوعی ٍExcel درپایتون پایتون پردازش تصویر پروژه پروژه c++ پروژه java پروژه python پروژه با سورس کد پروژه جاوا پروژه دفترچه تلفن پروژه سی پروژه ماشین حساب پروژه پایتون چت جی پی تی
رسانه آموزش آنلاین پرونش قصد دارد با همکاری انشارات هوش‌آموز یکی از بهترین و کاراترین مراکز آموزشی در ضمینه علوم کامپیوتر را با استفاده از منابع معتبر، به صورت کامل کاربردی و پروژه محور، با هدف آموزش جهت ورودی به بازار کار در اختیار علاقمندان قرار دهد. از شما درخواست می‌کنیم با استفاده قانونی از محصولات این سایت ما را در راستای رسیدن به این منظور یاری کنید.
دسترسی سریع
  • خانه
  • دوره ها
  • اخبار
  • تماس با ما
خبرنامه

چیزی را از دست ندهید، ثبت نام کنید و در مورد شرکت ما مطلع باشید.

نمادها
© 1405. رسانه آموزشی پرونش Pronesh
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
سبد خرید شما