Python联系人(添、删、查、改)

本文介绍了一种使用Python实现的简单联系人管理系统,通过定义类来存储和操作联系人的姓名、关系和电话号码,包括添加、删除、显示和修改联系人信息的功能。
#!/usr/bin/python
#gavinlu1015@gmail.com
#linux OS

import pickle
import os

file='contact.data'
contact={}

class ContactInfo:
    def __init__(self, name, relationship, phonenum):
        self.name = name
        self.relationship = relationship
        self.phonenum = phonenum

        print('name: {0} - relationship: {1} - phonenum {2}'
                .format(self.name, self.relationship, 
                    self.phonenum))


class ContactOper:
    def PersonAdd(self, ContactInfo):
        f = open(file, 'rb')
        contact = pickle.load(f)
        contact[ContactInfo.name] = ContactInfo
        f.close()

        f = open(file, 'wb')
        pickle.dump(contact, f) 
        f.close()

        print('Add: {0}' .format(ContactInfo.name))

    def PersonDel(self, name):
        f = open(file, 'rb')
        contact = pickle.load(f)
        del contact[name]
        f.close()

        f = open(file, 'wb')
        pickle.dump(contact, f) 
        f.close()

        print('del: {0}' .format(name))

    def PersonShow(self):
        f = open(file, 'rb')
        contact = pickle.load(f)
        f.close()

        for name, contactinfo in contact.items():
            print('name:{0} contact:{1} phonenum:{2}'
                .format(name, contactinfo.relationship,
                    contactinfo.phonenum))

    def PersonRepair(self, rname, relationship, phonenum):
        f = open(file, 'rb')
        contact = pickle.load(f)
        f.close()

        for name, contactinfo in contact.items():
            if(name == rname and (relationship or phonenum)):
                contact[rname].relationship = relationship
                contact[rname].phonenum = phonenum

        f = open(file, 'wb')
        pickle.dump(contact, f) 
        f.close()

while(True):
    t = raw_input('A:add D:del S:show R:repair Q:quit\n')

    if not os.path.exists(file):  
        f = open(file, 'w')
        f.write("(dp0\n.")
        f.close()

    if(t == 'A'):
        print('Please input contact info')
        n = raw_input('name:')
        c = raw_input('contact:')
        p = raw_input('phonenum:')
        t = ContactInfo(n, c, p)
        h = ContactOper()
        h.PersonAdd(t)

    elif(t == 'D'):
        print('Please input contact name\n')
        n = raw_input('name:')
        h = ContactOper()
        h.PersonDel(n)

    elif(t == 'S'):
        h = ContactOper()
        h.PersonShow()

    elif(t == 'R'):
        n = raw_input('Please input repair contact name:')
        c = raw_input('contact:')
        p = raw_input('phonenum:')
        h = ContactOper()
        h.PersonRepair(n, c, p)

    elif(t == 'Q'):
        print('exiting now ...')
        exit()
    else:
        print('input error!')
        continue
一、实验目的和要求 1、熟悉并掌握多层 C/S 软件体系结构的相关知识; 2、掌握多层 C/S 结构应用系统的分析和设计; 3、掌握一种开发多层 C/S 结构应用系统的技术线路; 4、实际开发出一个简单的基于多层 C/S 结构的应用实例--个人通讯录管理系统。 二、实验内容 1、设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。 三、实验原理与实验方法 1. 需求分析 确定系统的基本功能:加、修改联系人。 确定联系人信息的字段:姓名、住址、电话。 2. 系统设计 架构设计:确定客户端、服务器端、业务逻辑层、数据访问层和数据层的职责和交互方式。 数据库设计:设计数据库模型,包括表结构和关系。 用户界面设计:设计用户操作界面,确定用户交互流程。 网络通信设计:确定客户端和服务器端的通信协议和数据格式。 3. 技术选型 选择适合的编程语言和开发工具。 选择数据库系统(如SQLite, MySQL, PostgreSQL等)。 确定网络通信方式(如HTTP, TCP/IP等)。 4. 环境搭建 安装必要的开发环境和数据库系统。 配置开发工具和数据库连接。 5. 编码实现 数据层实现:编写数据库访问代码,实现数据的增。 业务逻辑层实现:编写业务逻辑代码,处理用户请求和数据操作。 客户端实现:开发用户界面,实现用户交互功能。 服务器端实现:开发服务器端程序,处理客户端请求,与业务逻辑层和数据层交互。 6. 测试 单元测试:对每个模块进行单独测试。 集成测试:测试模块间的交互和整体功能。 系统测试:测试整个系统的功能和性能。 用户测试:邀请用户测试系统,收集反馈 Windows 11 、pycharm、MySQL 五、实验步骤 采用多层C/S结构实现个人通讯录系统。该系统的设计目标是能够轻松地管理个人的联系人信息,包括加、修改除操作。联系人信息包括姓名、住址、电话。整个系统的功能图如下图所示: 1、建立数据库,建立数据库表; 2、建立用户界面程序; 3、编写应用程序层代码,用于实现数据访问、
最新发布
04-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值