python班级通讯录
时间: 2023-07-12 22:05:06 浏览: 240
好的,你想了解关于 Python 班级通讯录的信息,我可以帮你解答。首先,你需要明确你需要实现一个什么样的班级通讯录,例如需要记录哪些信息,需要支持哪些操作等等。以下是一个简单的 Python 班级通讯录的实现示例:
- 记录每位同学的姓名、性别、学号、手机号码等信息
- 支持添加、查询、修改、删除同学信息的操作
- 使用文件存储同学信息,例如 CSV 格式的文件
- 实现基本的数据校验,例如手机号码格式的校验
在 Python 中,你可以使用内置的 csv 模块来读写 CSV 文件,使用字典来表示每个同学的信息。同时,你也可以使用面向对象的方式实现班级通讯录,例如定义一个 Student 类来表示每个同学的信息,并在类中实现添加、查询、修改、删除等操作的方法。
相关问题
python班级通讯录代码
以下是一个Python班级通讯录项目的示例代码,可以作为参考:
```python
import sqlite3
import tkinter as tk
from tkinter import ttk, messagebox
class Student:
def __init__(self, id, name, phone, email):
self.id = id
self.name = name
self.phone = phone
self.email = email
class AddressBook:
def __init__(self):
self.conn = sqlite3.connect("address_book.db")
self.cursor = self.conn.cursor()
self.create_table()
def create_table(self):
self.cursor.execute("""CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
phone TEXT,
email TEXT
)""")
self.conn.commit()
def add_student(self, name, phone, email):
self.cursor.execute("INSERT INTO students (name, phone, email) VALUES (?, ?, ?)", (name, phone, email))
self.conn.commit()
def delete_student(self, id):
self.cursor.execute("DELETE FROM students WHERE id=?", (id,))
self.conn.commit()
def update_student(self, id, name, phone, email):
self.cursor.execute("UPDATE students SET name=?, phone=?, email=? WHERE id=?", (name, phone, email, id))
self.conn.commit()
def search_student(self, search_term):
self.cursor.execute("SELECT * FROM students WHERE name LIKE ? OR phone LIKE ? OR email LIKE ?", ('%' + search_term + '%', '%' + search_term + '%', '%' + search_term + '%'))
results = self.cursor.fetchall()
students = []
for row in results:
student = Student(row[0], row[1], row[2], row[3])
students.append(student)
return students
def get_all_students(self):
self.cursor.execute("SELECT * FROM students")
results = self.cursor.fetchall()
students = []
for row in results:
student = Student(row[0], row[1], row[2], row[3])
students.append(student)
return students
class App:
def __init__(self):
self.address_book = AddressBook()
self.create_gui()
def create_gui(self):
self.root = tk.Tk()
self.root.title("班级通讯录")
self.name_label = ttk.Label(self.root, text="姓名:")
self.name_label.grid(row=0, column=0)
self.name_entry = ttk.Entry(self.root)
self.name_entry.grid(row=0, column=1)
self.phone_label = ttk.Label(self.root, text="电话:")
self.phone_label.grid(row=1, column=0)
self.phone_entry = ttk.Entry(self.root)
self.phone_entry.grid(row=1, column=1)
self.email_label = ttk.Label(self.root, text="邮箱:")
self.email_label.grid(row=2, column=0)
self.email_entry = ttk.Entry(self.root)
self.email_entry.grid(row=2, column=1)
self.add_button = ttk.Button(self.root, text="添加", command=self.add_student)
self.add_button.grid(row=3, column=0)
self.update_button = ttk.Button(self.root, text="修改", command=self.update_student)
self.update_button.grid(row=3, column=1)
self.delete_button = ttk.Button(self.root, text="删除", command=self.delete_student)
self.delete_button.grid(row=3, column=2)
self.search_label = ttk.Label(self.root, text="搜索:")
self.search_label.grid(row=4, column=0)
self.search_entry = ttk.Entry(self.root)
self.search_entry.grid(row=4, column=1)
self.search_button = ttk.Button(self.root, text="搜索", command=self.search_student)
self.search_button.grid(row=4, column=2)
self.student_listbox = tk.Listbox(self.root, width=50, height=10)
self.student_listbox.grid(row=5, column=0, columnspan=3)
self.load_students()
def add_student(self):
name = self.name_entry.get()
phone = self.phone_entry.get()
email = self.email_entry.get()
self.address_book.add_student(name, phone, email)
self.load_students()
def update_student(self):
selected_index = self.student_listbox.curselection()
if len(selected_index) == 0:
messagebox.showwarning("错误", "请选择要修改的学生")
return
student = self.student_listbox.get(selected_index[0])
id, name, phone, email = student.split(",")
new_name = self.name_entry.get()
new_phone = self.phone_entry.get()
new_email = self.email_entry.get()
self.address_book.update_student(id, new_name, new_phone, new_email)
self.load_students()
def delete_student(self):
selected_index = self.student_listbox.curselection()
if len(selected_index) == 0:
messagebox.showwarning("错误", "请选择要删除的学生")
return
student = self.student_listbox.get(selected_index[0])
id, name, phone, email = student.split(",")
result = messagebox.askyesno("确认", f"确定要删除 {name} 吗?")
if result == tk.YES:
self.address_book.delete_student(id)
self.load_students()
def search_student(self):
search_term = self.search_entry.get()
students = self.address_book.search_student(search_term)
self.student_listbox.delete(0, tk.END)
for student in students:
self.student_listbox.insert(tk.END, f"{student.id},{student.name},{student.phone},{student.email}")
def load_students(self):
self.student_listbox.delete(0, tk.END)
students = self.address_book.get_all_students()
for student in students:
self.student_listbox.insert(tk.END, f"{student.id},{student.name},{student.phone},{student.email}")
def run(self):
self.root.mainloop()
if __name__ == "__main__":
app = App()
app.run()
```
该代码使用了SQLite数据库来存储学生和通讯录信息,使用了Tkinter图形界面库来设计用户界面。用户可以添加、修改、删除、搜索学生信息,并且可以在列表框中查看所有学生的信息。
python班级通讯录项目
好的,这是一个很好的项目,你需要设计一个班级通讯录系统,使得班级里的每个成员都可以登录系统,查看自己和其他成员的联系方式,也可以修改自己的联系方式。
以下是一些基本的功能要求:
1. 学生登录和注册:每个学生需要注册一个账号并登录系统。
2. 查看通讯录:学生可以查看班级其他成员的联系方式,包括姓名、电话、邮箱等信息。
3. 修改个人信息:学生可以修改自己的联系方式。
4. 添加新成员:管理员可以添加新成员的信息到通讯录中。
5. 删除成员:管理员可以删除通讯录中的成员信息。
6. 搜索功能:学生可以通过姓名、电话、邮箱等关键字搜索通讯录中的成员信息。
为了完成这个项目,你需要使用Python语言及相关的库来实现。你可以使用Tkinter等图形界面库来设计一个简单的用户界面,同时需要使用数据库来存储和管理学生和通讯录信息。
当然,这只是一个简单的需求列表,你可以根据自己的喜好和需求来扩展更多的功能。希望这些信息能对你有所帮助。
阅读全文