【C语言+sqlite3 API接口】实现水果超市
发布人:shili8
发布时间:2025-01-17 14:39
阅读次数:0
**水果超市管理系统**
本项目利用C语言和SQLite3 API接口,设计并实现了一个简单的水果超市管理系统。该系统支持基本的商品管理、客户管理以及交易记录管理功能。
### 系统结构1. **数据库**: 使用SQLite3作为数据存储引擎。
2. **商品管理模块**: 负责商品的添加、删除、修改和查询等操作。
3. **客户管理模块**: 负责客户的添加、删除、修改和查询等操作。
4. **交易记录管理模块**: 负责交易记录的添加、删除、修改和查询等操作。
### SQLite3数据库设计
sqlCREATE TABLE goods ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, price REAL NOT NULL, quantity INTEGER NOT NULL); CREATE TABLE customers ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, phone TEXT NOT NULL, address TEXT NOT NULL); CREATE TABLE transactions ( id INTEGER PRIMARY KEY, goods_id INTEGER NOT NULL, customer_id INTEGER NOT NULL, transaction_date DATE NOT NULL, quantity INTEGER NOT NULL, FOREIGN KEY (goods_id) REFERENCES goods(id), FOREIGN KEY (customer_id) REFERENCES customers(id) );
### C语言实现#### 商品管理模块
c#include <stdio.h> #include <stdlib.h> #include "sqlite3.h" // 添加商品int add_goods(sqlite3* db, const char* name, double price, int quantity) { sqlite3_stmt* stmt; const char* sql = "INSERT INTO goods (name, price, quantity) VALUES (?, ?, ?)"; // 绑定参数 sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); sqlite3_bind_text(stmt,1, name, -1, SQLITE_STATIC); sqlite3_bind_double(stmt,2, price); sqlite3_bind_int(stmt,3, quantity); // 执行SQL语句 int rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { printf("添加商品成功! "); } else { printf("添加商品失败:%s ", sqlite3_errmsg(db)); } //释放资源 sqlite3_finalize(stmt); return rc; } // 删除商品int delete_goods(sqlite3* db, int id) { sqlite3_stmt* stmt; const char* sql = "DELETE FROM goods WHERE id = ?"; // 绑定参数 sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); sqlite3_bind_int(stmt,1, id); // 执行SQL语句 int rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { printf("删除商品成功! "); } else { printf("删除商品失败:%s ", sqlite3_errmsg(db)); } //释放资源 sqlite3_finalize(stmt); return rc; }
#### 客户管理模块
c// 添加客户int add_customer(sqlite3* db, const char* name, const char* phone, const char* address) { sqlite3_stmt* stmt; const char* sql = "INSERT INTO customers (name, phone, address) VALUES (?, ?, ?)"; // 绑定参数 sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); sqlite3_bind_text(stmt,1, name, -1, SQLITE_STATIC); sqlite3_bind_text(stmt,2, phone, -1, SQLITE_STATIC); sqlite3_bind_text(stmt,3, address, -1, SQLITE_STATIC); // 执行SQL语句 int rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { printf("添加客户成功! "); } else { printf("添加客户失败:%s ", sqlite3_errmsg(db)); } //释放资源 sqlite3_finalize(stmt); return rc; } // 删除客户int delete_customer(sqlite3* db, int id) { sqlite3_stmt* stmt; const char* sql = "DELETE FROM customers WHERE id = ?"; // 绑定参数 sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); sqlite3_bind_int(stmt,1, id); // 执行SQL语句 int rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { printf("删除客户成功! "); } else { printf("删除客户失败:%s ", sqlite3_errmsg(db)); } //释放资源 sqlite3_finalize(stmt); return rc; }
####交易记录管理模块
c// 添加交易记录int add_transaction(sqlite3* db, int goods_id, int customer_id, const char* transaction_date, int quantity) { sqlite3_stmt* stmt; const char* sql = "INSERT INTO transactions (goods_id, customer_id, transaction_date, quantity) VALUES (?, ?, ?, ?)"; // 绑定参数 sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); sqlite3_bind_int(stmt,1, goods_id); sqlite3_bind_int(stmt,2, customer_id); sqlite3_bind_text(stmt,3, transaction_date, -1, SQLITE_STATIC); sqlite3_bind_int(stmt,4, quantity); // 执行SQL语句 int rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { printf("添加交易记录成功! "); } else { printf("添加交易记录失败:%s ", sqlite3_errmsg(db)); } //释放资源 sqlite3_finalize(stmt); return rc; } // 删除交易记录int delete_transaction(sqlite3* db, int id) { sqlite3_stmt* stmt; const char* sql = "DELETE FROM transactions WHERE id = ?"; // 绑定参数 sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); sqlite3_bind_int(stmt,1, id); // 执行SQL语句 int rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { printf("删除交易记录成功! "); } else { printf("删除交易记录失败:%s ", sqlite3_errmsg(db)); } //释放资源 sqlite3_finalize(stmt); return rc; }
### 主函数
cint main() { // 打开数据库连接 sqlite3* db; int rc = sqlite3_open("watermelon.db", &db); if (rc != SQLITE_OK) { printf("无法打开数据库:%s ", sqlite3_errmsg(db)); return1; } // 添加商品 add_goods(db, "苹果",5.99,100); add_goods(db, "香蕉",2.99,200); // 添加客户 add_customer(db, "张三", "1234567890", "北京市"); add_customer(db, "李四", "9876543210", "上海市"); // 添加交易记录 add_transaction(db,1,1, "2022-01-01",10); add_transaction(db,2,2, "2022-01-02",20); // 关闭数据库连接 sqlite3_close(db); return0; }
### 总结本项目利用C语言和SQLite3 API接口,设计并实现了一个简单的水果超市管理系统。该系统支持基本的商品管理、客户管理以及交易记录管理功能。通过添加商品、客户和交易记录,可以实现对数据的增删改查操作。