电子通讯录uml模型
时间: 2024-06-09 20:02:50 浏览: 28
电子通讯录是一个管理联系人信息的应用程序,通常包括添加、删除、修改、查找联系人等功能。以下是电子通讯录的 UML 模型:
1. 类图
电子通讯录的类图包括以下几个类:
- Contact:联系人类,包括联系人的姓名、电话号码等属性。
- ContactList:联系人列表类,包括联系人列表的操作方法,如添加、删除、查找等。
- UI:用户界面类,包括用户界面的操作方法,如显示联系人列表、添加联系人等。
- Controller:控制器类,用于协调 UI 和 ContactList 之间的交互。
2. 时序图
电子通讯录的时序图描述了用户添加联系人时的流程:
- 用户在 UI 上输入联系人信息。
- UI 调用 Controller 的添加联系人方法。
- Controller 调用 ContactList 的添加联系人方法,将联系人信息存储到联系人列表中。
- ContactList 返回添加结果给 Controller。
- Controller 根据添加结果,在 UI 上显示相应的提示信息。
相关问题
golang实现电子通讯录程序
好的,下面是一个简单的电子通讯录程序的实现示例:
```go
package main
import (
"fmt"
)
type Contact struct {
name string
number string
email string
}
func main() {
contacts := make(map[string]Contact)
// 添加联系人
contacts["张三"] = Contact{name: "张三", number: "123456789", email: "zhangsan@example.com"}
contacts["李四"] = Contact{name: "李四", number: "987654321", email: "lisi@example.com"}
contacts["王五"] = Contact{name: "王五", number: "555555555", email: "wangwu@example.com"}
// 显示联系人列表
fmt.Println("联系人列表:")
for _, contact := range contacts {
fmt.Printf("%s, %s, %s\n", contact.name, contact.number, contact.email)
}
// 根据名字查找联系人
fmt.Println("查找联系人:")
name := "张三"
if contact, ok := contacts[name]; ok {
fmt.Printf("%s, %s, %s\n", contact.name, contact.number, contact.email)
} else {
fmt.Printf("找不到名字为 %s 的联系人\n", name)
}
// 修改联系人信息
fmt.Println("修改联系人:")
name = "李四"
if contact, ok := contacts[name]; ok {
contact.number = "888888888"
contact.email = "lisi@example.com"
contacts[name] = contact
fmt.Printf("%s, %s, %s\n", contact.name, contact.number, contact.email)
} else {
fmt.Printf("找不到名字为 %s 的联系人\n", name)
}
// 删除联系人
fmt.Println("删除联系人:")
name = "王五"
if _, ok := contacts[name]; ok {
delete(contacts, name)
fmt.Printf("已删除名字为 %s 的联系人\n", name)
} else {
fmt.Printf("找不到名字为 %s 的联系人\n", name)
}
// 显示修改后的联系人列表
fmt.Println("修改后的联系人列表:")
for _, contact := range contacts {
fmt.Printf("%s, %s, %s\n", contact.name, contact.number, contact.email)
}
}
```
这个程序使用了一个 `Contact` 结构体来表示联系人,使用了一个 `map` 来存储所有联系人。程序中包含了添加、查找、修改、删除联系人等功能。你可以根据自己的需求来修改和扩展这个程序。
用C语言设计一个通讯录模型
以下是一个简单的通讯录模型的C语言代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义联系人结构体
typedef struct Contact {
char name[20];
char phone[12];
char email[30];
} Contact;
// 定义通讯录结构体
typedef struct AddressBook {
Contact *contacts; // 联系人数组
int size; // 当前通讯录中联系人数量
int capacity; // 通讯录的容量
} AddressBook;
// 初始化通讯录
void initAddressBook(AddressBook *addrBook) {
addrBook->size = 0;
addrBook->capacity = 2;
addrBook->contacts = (Contact *) malloc(sizeof(Contact) * addrBook->capacity);
}
// 添加联系人
void addContact(AddressBook *addrBook, char *name, char *phone, char *email) {
// 如果通讯录已满,需要扩容
if (addrBook->size == addrBook->capacity) {
addrBook->capacity *= 2;
addrBook->contacts = (Contact *) realloc(addrBook->contacts, sizeof(Contact) * addrBook->capacity);
}
// 添加联系人
Contact newContact;
strcpy(newContact.name, name);
strcpy(newContact.phone, phone);
strcpy(newContact.email, email);
addrBook->contacts[addrBook->size++] = newContact;
}
// 根据姓名查找联系人
void searchContact(AddressBook *addrBook, char *name) {
int i;
for (i = 0; i < addrBook->size; i++) {
if (strcmp(addrBook->contacts[i].name, name) == 0) {
printf("姓名:%s,电话:%s,邮箱:%s\n", addrBook->contacts[i].name, addrBook->contacts[i].phone, addrBook->contacts[i].email);
return;
}
}
printf("未找到该联系人\n");
}
// 删除联系人
void deleteContact(AddressBook *addrBook, char *name) {
int i, j;
for (i = 0; i < addrBook->size; i++) {
if (strcmp(addrBook->contacts[i].name, name) == 0) {
// 找到要删除的联系人,将后面的联系人向前移动一位
for (j = i; j < addrBook->size - 1; j++) {
addrBook->contacts[j] = addrBook->contacts[j+1];
}
addrBook->size--;
printf("已删除联系人:%s\n", name);
return;
}
}
printf("未找到要删除的联系人:%s\n", name);
}
// 显示所有联系人
void showAllContacts(AddressBook *addrBook) {
int i;
for (i = 0; i < addrBook->size; i++) {
printf("姓名:%s,电话:%s,邮箱:%s\n", addrBook->contacts[i].name, addrBook->contacts[i].phone, addrBook->contacts[i].email);
}
}
int main() {
AddressBook addrBook;
initAddressBook(&addrBook);
// 添加联系人
addContact(&addrBook, "张三", "12345678901", "zhangsan@abc.com");
addContact(&addrBook, "李四", "23456789012", "lisi@abc.com");
addContact(&addrBook, "王五", "34567890123", "wangwu@abc.com");
// 显示所有联系人
printf("所有联系人:\n");
showAllContacts(&addrBook);
// 根据姓名查找联系人
printf("查找联系人:\n");
searchContact(&addrBook, "李四");
searchContact(&addrBook, "赵六");
// 删除联系人
printf("删除联系人:\n");
deleteContact(&addrBook, "王五");
showAllContacts(&addrBook);
return 0;
}