基于sqlite3的通讯录(c语言)

这个C语言程序创建了一个基于SQLite3的通讯录系统,包括创建表、插入记录、显示联系人列表、搜索联系人、删除联系人和更新联系人等功能。用户可以交互式地输入联系人姓名和电话,进行相应的操作。
摘要由CSDN通过智能技术生成
/*
**************************************************************************
* File Name: 4.address_book.c
* Function : 1) 
*            2) 
* Author   : Xubing 
* Created Time: 2016年11月04日
**************************************************************************
*/

#include <stdio.h>
#include <string.h>
#include <sqlite3.h>
#include <stdlib.h>

#define NAME_SIZE 20
#define PHONE_SIZE 15

static sqlite3 *db = NULL;
static char *errmsg = NULL;

struct node
{
    char name[NAME_SIZE];
    char phone[PHONE_SIZE];
    struct node *next;
};

typedef struct node Node;

void create_table(sqlite3 *db);
void insert_record(sqlite3 *db);
int displaycb(void *para, int ncolumn, char ** columnvalue, char *columnname[]);
//void inquire_usecb(sqlite3 *db);
void Menu_Face();
void Menu();
void search_contact();
void contact_list();
void delete_contact();
void update_contact();

int main()
{
    int ret;

    ret = sqlite3_open("test.db", &db);
    create_table(db);

    while(1)
    {
        Menu();
#if 0
        insert_record(db);
        sqlite3_exec(db,"select * from addr_ablt",displaycb, NULL, &errmsg);
        if(ret != SQLITE_OK)
        {
            printf("insert table error: %s\n", errmsg);
        }
#endif
    
    }
    sqlite3_close(db);

    return 0;
}

void Menu_Face()
{

    printf("                              ============================================================================\n");
    printf("                              |                                                                          |\n");
    printf("                              |                               ADDRESS BOOK                               |\n");
    printf("                              |                                                                          |\n");
    printf("                              ========================
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,Python基于SQLite通讯录管理系统可以分为以下几个模块: 1. 数据库模块:使用SQLite数据库存储联系人信息,提供增删改查接口。 2. 用户界面模块:提供图形用户界面,包括添加联系人、删除联系人、修改联系人、查询联系人等操作。 3. 数据处理模块:将用户界面的操作转化为数据库操作,处理数据库返回的结果并展示给用户。 下面是一个简单的实现代码: ```python # 导入SQLite模块 import sqlite3 # 定义数据库文件名 DB_FILE = 'contacts.db' # 连接数据库 def connect_db(): conn = sqlite3.connect(DB_FILE) return conn # 创建联系人表 def create_table(conn): cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS contacts (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, phone TEXT, email TEXT)''') conn.commit() # 添加联系人 def add_contact(conn, name, phone, email): cursor = conn.cursor() cursor.execute('INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)', (name, phone, email)) conn.commit() # 删除联系人 def delete_contact(conn, id): cursor = conn.cursor() cursor.execute('DELETE FROM contacts WHERE id = ?', (id,)) conn.commit() # 修改联系人 def update_contact(conn, id, name, phone, email): cursor = conn.cursor() cursor.execute('UPDATE contacts SET name = ?, phone = ?, email = ? WHERE id = ?', (name, phone, email, id)) conn.commit() # 查询联系人 def query_contact(conn, name): cursor = conn.cursor() cursor.execute('SELECT id, name, phone, email FROM contacts WHERE name like ?', ('%' + name + '%',)) return cursor.fetchall() # 用户界面 def main(): conn = connect_db() create_table(conn) while True: print('1. 添加联系人') print('2. 删除联系人') print('3. 修改联系人') print('4. 查询联系人') print('5. 退出程序') choice = input('请输入选项: ') if choice == '1': name = input('请输入姓名: ') phone = input('请输入电话: ') email = input('请输入邮箱: ') add_contact(conn, name, phone, email) elif choice == '2': id = input('请输入要删除的联系人id: ') delete_contact(conn, id) elif choice == '3': id = input('请输入要修改的联系人id: ') name = input('请输入新的姓名: ') phone = input('请输入新的电话: ') email = input('请输入新的邮箱: ') update_contact(conn, id, name, phone, email) elif choice == '4': name = input('请输入要查询的联系人姓名: ') contacts = query_contact(conn, name) for contact in contacts: print(contact) elif choice == '5': break else: print('输入错误,请重新输入!') conn.close() if __name__ == '__main__': main() ``` 这段代码中,我们首先定义了一个`DB_FILE`常量,作为SQLite数据库文件名,然后定义了一些数据库操作函数,如`connect_db()`、`create_table()`、`add_contact()`、`delete_contact()`、`update_contact()`、`query_contact()`等。最后,在`main()`函数中,我们通过输入输出实现了一个简单的用户界面,将用户输入的操作转化为相应的数据库操作,并将处理结果展示给用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值