用golang实现电子通讯录程序 功能:1、要有一个基本登录界面,防止外人非法查看 2、要有基本通信信息,用户名,电话号码,地址,铃声,单位,备注 .... 3、要针对以三个信息完成基本的增加 删改查操作 4、用户的电话号码要符合电话号码基本规则 5、用户通信信息要保存到本地文件,同时加密存储,下次启动自动加载。
时间: 2024-03-17 16:40:55 浏览: 19
好的,这是一个比较全面的功能需求,需要进行一些细节上的设计和实现。下面是一个基本框架,可以帮助你开始实现这个程序:
```go
package main
import (
"fmt"
"os"
"strings"
)
type User struct {
Name string
Phone string
Address string
Ringtone string
Company string
Note string
}
type AddressBook struct {
Users []User
}
func main() {
// TODO: 实现登录界面,防止外人非法查看
// 加载通讯录数据
book := loadAddressBook()
for {
// 显示菜单
fmt.Println("1. 增加联系人")
fmt.Println("2. 删除联系人")
fmt.Println("3. 修改联系人")
fmt.Println("4. 查找联系人")
fmt.Println("5. 显示所有联系人")
fmt.Println("6. 退出程序")
fmt.Print("请选择操作:")
var choice int
fmt.Scanln(&choice)
switch choice {
case 1:
// 增加联系人
book.addUser()
saveAddressBook(book)
case 2:
// 删除联系人
book.deleteUser()
saveAddressBook(book)
case 3:
// 修改联系人
book.modifyUser()
saveAddressBook(book)
case 4:
// 查找联系人
book.searchUser()
case 5:
// 显示所有联系人
book.displayUsers()
case 6:
// 退出程序
os.Exit(0)
default:
fmt.Println("无效的选择,请重新输入")
}
}
}
func (book *AddressBook) addUser() {
// TODO: 实现增加联系人的逻辑
}
func (book *AddressBook) deleteUser() {
// TODO: 实现删除联系人的逻辑
}
func (book *AddressBook) modifyUser() {
// TODO: 实现修改联系人的逻辑
}
func (book *AddressBook) searchUser() {
// TODO: 实现查找联系人的逻辑
}
func (book *AddressBook) displayUsers() {
for i, user := range book.Users {
fmt.Printf("%d. %s\t%s\t%s\t%s\t%s\t%s\n", i+1, user.Name, user.Phone, user.Address, user.Ringtone, user.Company, user.Note)
}
}
func loadAddressBook() *AddressBook {
// TODO: 实现加载通讯录数据的逻辑
return &AddressBook{}
}
func saveAddressBook(book *AddressBook) {
// TODO: 实现保存通讯录数据的逻辑
}
```
需要注意的是,此框架中的 `AddressBook` 和 `User` 结构体、以及与之相关的方法都需要根据具体的需求进行设计和实现。同时,还需要实现各个方法中提到的 TODO 注释。特别地,关于用户通信信息的加密存储,可以考虑使用 golang 自带的 AES 加密算法进行实现。