当前位置:实例文章 » 其他实例» [文章]【C语言+sqlite3 API接口】实现水果超市

【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接口,设计并实现了一个简单的水果超市管理系统。该系统支持基本的商品管理、客户管理以及交易记录管理功能。通过添加商品、客户和交易记录,可以实现对数据的增删改查操作。

其他信息

其他资源

Top